/ Модель

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

Контекст
512 токенов
Параметры
136 млн
Архитектура
albert · dense
Базовая модель
albert-fa-zwnj-base-v2
Опубликована
12 дек 2025

persian-ezafe-albert

Разметка токеновТекст → label3 профессии

Дообученная на персидском тексте модель ALBERT определяет позиции эзофе для улучшения фонемизации и синтеза речи.

1 154скачиваний за 30 дней5лайковвеса обновлены12 дек 2025

Бенчмарки

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

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

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

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

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

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

abreza/persian-ezafe-albert — модель классификации токенов на основе ALBERT, дообученная на HooshvareLab/albert-fa-zwnj-base-v2 для обнаружения эзофе в персидском тексте. Она определяет, где при фонемизации следует добавить непишущийся звук эзофе (/e/ или /ye/), чтобы разрешать неоднозначности произношения. Модель предназначена для использования в конвейерах персидского преобразования текста в речь, в частности с Piper и LCA Phonemizer.

В репозитории представлены веса PyTorch и квантованная версия ONNX для инференса. По README, F1 на отложенной тестовой выборке составляет 98,73%; метаданные указывают 136,3 млн параметров и контекст до 512 токенов. Модель обучена на обработанной части набора HomoRich для персидских графемно-фонемных задач. Лицензия в предоставленных сведениях не указана.

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

  • определение позиций эзофе в персидском тексте
  • устранение неоднозначностей персидского произношения
  • подготовка текста к персидской фонемизации
  • предобработка текста для синтеза персидской речи с Piper

Ограничения

F1 98,73% указан для отложенной тестовой выборки; качество на других данных не приведено. В предоставленных сведениях не указана лицензия.

Для каких профессий подходит3

Разделы каталога профессий, в задачах которых используется эта модель

Все профессии

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

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

Открыть на Hugging Face

Persian Ezafe Detection (ALBERT)

This is a lightweight, high-performance Ezafe detection model for Persian, fine-tuned on the HooshvareLab/albert-fa-zwnj-base-v2 architecture.

It was designed to resolve phonemization ambiguities where the "Ezafe" (kasra) sound is grammatically required but not written in text.

Project Context

This model was developed as part of the Piper with LCA Phonemizer project. You can find the full source code, implementation details, and the custom PiperTTS build at the official repository:

🔗 https://github.com/MahtaFetrat/Piper-with-LCA-Phonemizer

Training Pipeline Notebook

The full end-to-end training pipeline used to build this model (dataset preparation, SpaCy-based labeling, ALBERT fine-tuning, ONNX export, and quantization) is available as a notebook here:

📓 ezafe_detection_training_pipeline.ipynb 🔗 https://github.com/MahtaFetrat/Piper-with-LCA-Phonemizer/blob/main/albert_finetuning/ezafe_detection_training_pipeline.ipynb

Repository Structure

The repository contains both the standard PyTorch weights (root) and a quantized ONNX model (in the quantized/ directory) for efficient inference.

.
├── config.json                  # PyTorch model configuration
├── model.safetensors            # PyTorch model weights
├── quantized/                   # Optimized ONNX model folder
│   ├── config.json
│   ├── model_quantized.onnx     # Quantized ONNX weights
│   ├── ort_config.json
│   ├── special_tokens_map.json
│   ├── spiece.model
│   ├── tokenizer_config.json
│   └── tokenizer.json
├── Readme.md
├── special_tokens_map.json
├── spiece.model                 # SentencePiece model
├── tokenizer_config.json
└── tokenizer.json

Model Details

  • Task: Token Classification (Ezafe Detection)
  • Base Model: HooshvareLab/albert-fa-zwnj-base-v2
  • Format:
    • PyTorch (Root directory)
    • ONNX Quantized (Inside quantized/ directory)
  • Labels:
    • 0: NO_EZAFE (No sound added)
    • 1: NEEDS_EZAFE (Add /e/ or /ye/ sound)

Performance

The model was trained on a refined subset of the HomoRich dataset, utilizing context-aware labelling.

MetricScore
F1 Score98.73%

Evaluated on a held-out test set.

Usage

1. Using Transformers (PyTorch)

Use the root path to load the PyTorch model for training or standard inference.

from transformers import AutoTokenizer, AutoModelForTokenClassification
import torch

model_id = "abreza/persian-ezafe-albert"

tokenizer = AutoTokenizer.from_pretrained(model_id)
model = AutoModelForTokenClassification.from_pretrained(model_id)

text = "کتابخانه مرکزی دانشگاه شریف، فضای وسیع و چشم‌نوازی دارد."
inputs = tokenizer(text, return_tensors="pt")

with torch.no_grad():
    logits = model(**inputs).logits
    predictions = torch.argmax(logits, dim=2)

tokens = tokenizer.convert_ids_to_tokens(inputs["input_ids"][0])
id2label = {0: "-", 1: "EZAFE"}

for token, label_id in zip(tokens, predictions[0].tolist()):
    if token not in tokenizer.all_special_tokens:
        print(f"{token.replace("▁", ""):<15} | {id2label[label_id]}")

2. Using ONNX Runtime (Production)

For production environments, load from the quantized subfolder. This is the format used in the Piper-with-LCA-Phonemizer Docker container.

from optimum.onnxruntime import ORTModelForTokenClassification
from transformers import AutoTokenizer
import torch

model_id = "abreza/persian-ezafe-albert"

tokenizer = AutoTokenizer.from_pretrained(model_id, subfolder="quantized")
model = ORTModelForTokenClassification.from_pretrained(
    model_id,
    subfolder="quantized",
    file_name="model_quantized.onnx"
)

text = "کتابخانه مرکزی دانشگاه شریف، فضای وسیع و چشم‌نوازی دارد."
inputs = tokenizer(text, return_tensors="pt")

with torch.no_grad():
    outputs = model(**inputs)
    predictions = torch.argmax(outputs.logits, dim=2)

tokens = tokenizer.convert_ids_to_tokens(inputs["input_ids"][0])

id2label = {0: "-", 1: "EZAFE"}

for token, label_id in zip(tokens, predictions[0].tolist()):
    if token not in tokenizer.all_special_tokens:
        print(f"{token.replace("▁", ""):<15} | {id2label[label_id]}")

Training Data

The model uses the HomoRich dataset, a high-quality resource for Persian Grapheme-to-Phoneme tasks. The dataset was preprocessed to extract binary Ezafe labels based on phonemic transcriptions.

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

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

GPU в ailist

Универсальный рантайм · token-classification

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

Подбираем GPU…

Класс архитектуры
AlbertForTokenClassification
Ревизия весов
e661437

0 моделей