/ Модель

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

Контекст
1 024 токена
Параметры
42 млн
Архитектура
bart · dense
Базовая модель
bart-small-ru-en
Библиотека
transformers
Опубликована
4 сен 2024

bart_hin_eng_mt

Языковая модель3 профессии

Компактная дообученная модель BART для перевода текстов с хинди на английский.

17скачиваний за 30 дней0лайковвеса обновлены7 сен 2024

Бенчмарки

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

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

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

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

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

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

ar5entum/bart_hin_eng_mt — модель машинного перевода с хинди на английский, созданная дообучением danasone/bart-small-ru-en на наборе данных cfilt/iitb-english-hindi. Она построена на архитектуре BART с 42 млн параметров и предназначена для перевода текстовых фрагментов с хинди на английский. Модель использует библиотеку Transformers, веса сохранены в формате safetensors, длина контекста составляет 1024 токена.

В карточке приведены результаты оценки на тестовой выборке: BLEU 12,0235, loss 1,9 и средняя длина генерации 33,41 токена. Эти показатели описывают только указанную оценку и не гарантируют качество на других текстах. Условия лицензии в доступных данных не приведены.

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

  • перевод фраз с хинди на английский
  • перевод коротких сообщений с хинди
  • черновой перевод текстов на английский для последующей редакторской проверки

Ограничения

В опубликованной оценке на тестовой выборке BLEU составляет 12,0235; качество перевода на других данных может отличаться. Информация о лицензии в предоставленных источниках отсутствует.

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

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

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

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

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

Открыть на Hugging Face

bart_hin_eng_mt

This model is a fine-tuned version of danasone/bart-small-ru-en on cfilt/iitb-english-hindi dataset. It achieves the following results on the evaluation set:

  • Loss: 1.9000
  • Bleu: 12.0235
  • Gen Len: 33.4107

Model description

Machine Translation model from Hindi to English on bart small model.

Inference and evaluation

import torch
import evaluate
from transformers import AutoTokenizer, AutoModelForSeq2SeqLM

class BartSmall():
    def __init__(self, model_path = 'ar5entum/bart_hin_eng_mt', device = None):
        self.tokenizer = AutoTokenizer.from_pretrained(model_path)
        self.model = AutoModelForSeq2SeqLM.from_pretrained(model_path)
        if not device:
            device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
        self.device = device
        self.model.to(device)

    def predict(self, input_text):
        inputs = self.tokenizer(input_text, return_tensors="pt", max_length=512, truncation=True).to(self.device)
        pred_ids = self.model.generate(inputs.input_ids, max_length=512, num_beams=4, early_stopping=True)
        prediction = self.tokenizer.decode(pred_ids[0], skip_special_tokens=True)
        return prediction
    
    def predict_batch(self, input_texts, batch_size=32):
        all_predictions = []
        for i in range(0, len(input_texts), batch_size):
            batch_texts = input_texts[i:i+batch_size]
            inputs = self.tokenizer(batch_texts, return_tensors="pt", max_length=512, 
                                    truncation=True, padding=True).to(self.device)
            
            with torch.no_grad():
                pred_ids = self.model.generate(inputs.input_ids, 
                                               max_length=512, 
                                               num_beams=4, 
                                               early_stopping=True)
            
            predictions = self.tokenizer.batch_decode(pred_ids, skip_special_tokens=True)
            all_predictions.extend(predictions)

        return all_predictions

model = BartSmall(device='cuda')

input_texts = [
    "यह शोध्य रकम है।", 
    "जानने के लिए देखें ये वीडियो.",
    "वह दो बेटियों व एक बेटे का पिता था।"
    ]
ground_truths = [
    "This is a repayable amount.",
    "Watch this video to find out.",
    "He was a father of two daughters and a son."
    ]
import time
start = time.time()

predictions = model.predict_batch(input_texts, batch_size=len(input_texts))
end = time.time()
print("TIME: ", end-start)
for i in range(len(input_texts)):
    print("‾‾‾‾‾‾‾‾‾‾‾‾")
    print("Input text:\t", input_texts[i])
    print("Prediction:\t", predictions[i])
    print("Ground Truth:\t", ground_truths[i])
bleu = evaluate.load("bleu")
results = bleu.compute(predictions=predictions, references=ground_truths)
print(results)

# TIME:  1.2374696731567383
# ‾‾‾‾‾‾‾‾‾‾‾‾
# Input text:	 यह शोध्य रकम है।
# Prediction:	 This is a repayable amount.
# Ground Truth:	 This is a repayable amount.
# ‾‾‾‾‾‾‾‾‾‾‾‾
# Input text:	 जानने के लिए देखें ये वीडियो.
# Prediction:	 View these videos to know.
# Ground Truth:	 Watch this video to find out.
# ‾‾‾‾‾‾‾‾‾‾‾‾
# Input text:	 वह दो बेटियों व एक बेटे का पिता था।
# Prediction:	 He was a father of two daughters and a son.
# Ground Truth:	 He was a father of two daughters and a son.
# {'bleu': 0.747875245486914, 'precisions': [0.8260869565217391, 0.75, 0.7647058823529411, 0.7857142857142857], 'brevity_penalty': 0.9574533680683809, 'length_ratio': 0.9583333333333334, 'translation_length': 23, 'reference_length': 24}

Training Procedure

Training hyperparameters

The following hyperparameters were used during training:

  • learning_rate: 0.0001
  • train_batch_size: 100
  • eval_batch_size: 40
  • seed: 42
  • distributed_type: multi-GPU
  • num_devices: 2
  • total_train_batch_size: 200
  • total_eval_batch_size: 80
  • optimizer: Adam with betas=(0.9,0.999) and epsilon=1e-08
  • lr_scheduler_type: linear
  • lr_scheduler_warmup_steps: 1000
  • num_epochs: 15.0

Training results

Training LossEpochStepValidation LossBleuGen Len
2.62981.082652.61924.543539.8786
2.26562.0165302.28368.249835.8339
2.06253.0247952.17479.918235.5214
1.9744.0330602.076010.151533.9732
1.9255.0413252.028510.770234.175
1.80766.0495901.986011.428634.8875
1.78177.0578551.966411.457932.6411
1.70258.0661201.956111.922633.5179
1.66919.0743851.935411.735233.2161
1.663110.0826501.923111.930332.7679
1.631711.0909151.926411.588932.625
1.644912.0991801.904711.845133.8554
1.616513.01074451.904012.075532.7661
1.582614.01157101.900012.313733.3536
1.583515.01239751.900012.023533.4107

Framework versions

  • Transformers 4.45.0.dev0
  • Pytorch 2.4.0+cu121
  • Datasets 2.21.0
  • Tokenizers 0.19.1

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

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

GPU в ailist

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

Нельзя запустить

У модели не указана задача.

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

0 моделей