llm-course-hw1 / README.md
01eg0's picture
Update README.md
bde6bad verified
metadata
tags:
  - model_hub_mixin
  - pytorch_model_hub_mixin
  - humor
license: apache-2.0
datasets:
  - IgorVolochay/russian_jokes
language:
  - ru
pipeline_tag: text-generation
library_name: transformers
model-index:
  - name: russian-jokes-transformer-128
    results:
      - task:
          type: text-generation
        dataset:
          name: IgorVolochay/russian_jokes
          type: IgorVolochay/russian_jokes
          split: test
        metrics:
          - type: loss
            value: 2.4
            name: Training loss
          - type: loss
            value: 2.6
            name: Validation loss

Модель генерации русских шуток

Модель - компактный авто-регрессионный Transformer для генерации коротких шуток на русском языке. Обучена на датасете IgorVolochay/russian_jokes.
Выполнена в рамках домашней работы по курсу «Большие языковые модели»

Детали

  • Архитектура: Causal Transformer
  • Размер контекста: 128 токенов
  • Токенайзер: Byte-level BPE, vocab_size 1024
  • Цель: генерация шуток и коротких юмористических реплик на русском

Лицензия

  • Код и веса доступны по лицензии Apache-2.0

Примеры

Начало «Шел медведь по лесу»:

Шел медведь по лесу, видит - машина горит. Мимо идет волк.
- Сынок, ты кем работаешь?

Начало «Штирлиц пришел домой»:

Штирлиц пришел домой. Взял медали, сел в сумку и говорит: "Сегодня ночью в тюрьме!"

Начало «Заходит в бар»:

Заходит в барана кошка, без презерватива

Быстрый старт

import torch

# Нужна инициализация ByteLevelBPETokenizer и TransformerForCausalLM из ipynb ноутбука домашнего задания

REPO_NAME = "01eg0/llm-course-hw1"

device = torch.device("cuda" if torch.cuda.is_available() else "cpu")

tokenizer = ByteLevelBPETokenizer.from_pretrained(REPO_NAME)
model = TransformerForCausalLM.from_pretrained(REPO_NAME).to(device).eval()

text = "Штирлиц пришел домой"
input_ids = torch.tensor(tokenizer.encode(text), device=device)
model_output = check_model.generate(
    input_ids[None, :], max_new_tokens=200, eos_token_id=tokenizer.eos_token_id, do_sample=True, top_k=10
)
tokenizer.decode(model_output[0].tolist())

Ответственность и безопасность

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