/ Модель

Характеристики

Контекст
32 768 токенов
Параметры
494 млн
Лицензия
Apache 2.0
Архитектура
qwen2 · dense
Базовая модель
Qwen2.5-0.5B-Instruct
Библиотека
transformers
Опубликована
6 окт 2026

youtube-audiobook-title-parser

Генерация текстаТекст → текст

Дообученная модель Qwen извлекает название книги, автора и канал или шоу из шумных заголовков YouTube и аудиокниг, включая бенгальские названия.

775скачиваний за 30 дней1лайквеса обновлены6 окт 2026

Бенчмарки

Как модель справилась с задачами пользователей ailist и что о ней публикуют открытые лидерборды

Тесты пользователейпока нет

Никто ещё не опубликовал тест этой модели. Соберите бенчмарк из своих задач — результат появится здесь.

  1. Добавьте модель в бенчмарк

    Вместе с другими моделями категории «Текст» — сравнение идёт внутри одной категории.

  2. Опишите свои задачи

    Напишите запросы, при необходимости приложите файлы и эталонные ответы.

  3. Запустите и опубликуйте

    Модели ответят на каждую задачу, судья оценит ответы. Опубликованный результат появится на этой странице.

Публичные оценки

Из открытых лидербордов. Сравнивайте результаты одного теста при одинаковых условиях — отсутствие оценки не значит, что модель хуже.

В подключённых источниках результатов для этой модели пока нет.

Что умеет модель

Описание составлено по карточке модели и метаданным Hugging Face

youtube-audiobook-title-parser — компактная модель Salahin для извлечения названия книги, автора и названия канала или шоу из шумных заголовков YouTube и аудиокниг. Она дообучена на Qwen/Qwen2.5-0.5B-Instruct, имеет архитектуру Qwen2ForCausalLM и содержит 494 млн параметров. Модель принимает текстовые заголовки и выдаёт структурированный JSON. Контекст — до 32 768 токенов; доступны веса FP16 в safetensors и квантизированный формат GGUF Q4_K_M.

Модель рассчитана прежде всего на бенгальские литературные и аудиокнижные названия: она разбирает разделители, варианты порядка канала и заголовка, названия франшиз, обозначения эпизодов и лишние маркеры, сохраняя бенгальское письмо. Подходит для каталогизации аудиокниг и очистки метаданных видеоконтента. Лицензия — Apache-2.0. Модель может возвращать неполные поля для заголовков, сильно отличающихся от стандартных структур названий книг и аудиокниг.

Сценарии применения

  • Извлечение названия книги и автора из заголовка аудиокниги
  • Разбор названий бенгальских аудиокниг на YouTube
  • Выделение названия канала или радиошоу из составного заголовка
  • Очистка заголовков от номеров эпизодов и маркеров качества
  • Преобразование заголовков аудиокниг в структурированный JSON

Ограничения

Модель настроена на южноазиатские и бенгальские литературные форматы. Для заголовков, заметно отличающихся от стандартных структур названий книг и аудиокниг, она может возвращать неполные метаданные.

Карточка модели

README от автора на Hugging Face, как он его опубликовал

Открыть на Hugging Face

Model Card for youtube-audiobook-title-parser

youtube-audiobook-title-parser is a lightweight model fine-tuned from Qwen/Qwen2.5-0.5B-Instruct designed to parse noisy YouTube and audiobook track titles into structured JSON containing the book title, author, and channel or show name.

It reliably separates entities across multi-delimiter titles (|, -, :), handles channel-first and franchise prefix variations (e.g., মিসির আলি, ফেলুদা, ব্যোমকেশ), strips episode noise (1/2, ১ম পর্ব, Part 1), and preserves original Bengali script without unwanted translation or phonetic transliteration.


Available Model Formats

FileFormatSizeBest For
model.safetensorsFP16~980 MBTransformers, PyTorch, HF Serverless API, GPU inference
model-q4_k_m.ggufQ4_K_M~380 MBllama.cpp, fast CPU inference, mobile/desktop local apps

How to Get Started

Option 1: Using Transformers (GPU / Serverless)

import json
import re
import torch
from transformers import AutoModelForCausalLM, AutoTokenizer

MODEL_ID = "Salahin/youtube-audiobook-title-parser"

tokenizer = AutoTokenizer.from_pretrained(MODEL_ID)
model = AutoModelForCausalLM.from_pretrained(
    MODEL_ID,
    torch_dtype=torch.float16,
    device_map="auto"
)
model.eval()

def parse_title(title: str) -> dict:
    messages = [
        {
            "role": "system",
            "content": "Extract book title, author, and channel as JSON. Keep Bengali in Bengali script."
        },
        {"role": "user", "content": title}
    ]
    prompt = tokenizer.apply_chat_template(messages, tokenize=False, add_generation_prompt=True)
    inputs = tokenizer([prompt], return_tensors="pt").to(model.device)

    with torch.no_grad():
        outputs = model.generate(
            **inputs,
            max_new_tokens=80,
            do_sample=False,
            eos_token_id=tokenizer.convert_tokens_to_ids("<|im_end|>")
        )

    text = tokenizer.decode(outputs[0][len(inputs.input_ids[0]):], skip_special_tokens=True).strip()
    match = re.search(r'\{.*?\}', text, re.DOTALL)
    return json.loads(match.group(0)) if match else {"raw": text}

# Example
print(parse_title("হিমুর হাতে কয়েকটি নীলপদ্ম 1/2 | Humayun Ahmed | Golpokothon"))
# Output: {'book_title': 'হিমুর হাতে কয়েকটি নীলপদ্ম', 'author': 'Humayun Ahmed', 'channel': 'Golpokothon'}

Option 2: Using GGUF on CPU (Ultra-Fast & Low Memory)

Install llama-cpp-python:

pip install llama-cpp-python huggingface-hub

import json
import re
from huggingface_hub import hf_hub_download
from llama_cpp import Llama

# Download quantized GGUF binary (~380 MB)
model_path = hf_hub_download(
    repo_id="Salahin/youtube-audiobook-title-parser",
    filename="model-q4_k_m.gguf"
)

llm = Llama(
    model_path=model_path,
    n_ctx=512,
    n_threads=4,  # Adjust to your CPU core count
    verbose=False
)

def parse_title_cpu(title: str) -> dict:
    prompt = (
        "<|im_start|>system\n"
        "Extract book title, author, and channel as JSON. Keep Bengali in Bengali script.<|im_end|>\n"
        f"<|im_start|>user\n{title}<|im_end|>\n"
        "<|im_start|>assistant\n"
    )
    output = llm(
        prompt,
        max_tokens=80,
        stop=["}", "<|im_end|>"],
        temperature=0.0
    )
    raw = output["choices"][0]["text"].strip()
    if not raw.endswith("}"):
        raw += "}"
    match = re.search(r'\{.*?\}', raw, re.DOTALL)
    return json.loads(match.group(0)) if match else {"raw": raw}

# Example
print(parse_title_cpu("Golpokothon Presents | হিমুর হাতে কয়েকটি নীলপদ্ম | হুমায়ূন আহমেদ"))


Training Details

Training Data

The training data is available directly in this repository: dataset.jsonl.

It comprises 600 synthetic and curated title variations addressing real-world edge cases:

  • Multi-delimiter patterns (|, -, :, /)
  • Leading channel markers (Channel Presents | Title | Author)
  • Bengali franchise patterns (মিসির আলি, হিমু, ব্যোমকেশ, ফেলুদা)
  • Missing metadata fields (titles without channels or authors)
  • Undelimited radio show titles (Sunday Suspense, Midnight Horror Station)
  • Noise tokens (1/2, ১ম পর্ব, [HD], Full Audiobook)

Training Procedure

  • Base Model: Qwen/Qwen2.5-0.5B-Instruct
  • Method: LoRA (Low-Rank Adaptation) with standard sequence-to-sequence loss masking (loss calculated solely on assistant response tokens and EOS)
  • Hyperparameters:
  • r: 16
  • lora_alpha: 32
  • target_modules: ["q_proj", "k_proj", "v_proj", "o_proj"]
  • lora_dropout: 0.05
  • learning_rate: 3e-4 (Cosine schedule)
  • epochs: 3
  • optimizer: adamw_torch

Bias, Risks, and Limitations

  • Specifically tuned for South Asian / Bengali literature naming conventions and formats.
  • Strings that diverge significantly from standard book or audiobook naming structures may produce incomplete metadata fields.

Как запустить

На своей GPU в ailist. Цена — по текущим предложениям провайдеров

GPU в ailist

Универсальный рантайм · transformers

Можно запустить

Подбираем GPU…

Класс архитектуры
Qwen2ForCausalLM
Ревизия весов
495a37c

0 моделей