/ Модель

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

Контекст
512 токенов
Параметры
35,6 млн
Лицензия
OpenRAIL
Архитектура
llama · dense
Библиотека
transformers
Опубликована
31 авг 2023

charllama-35M

Генерация текстаТекст → текст3 профессии

Компактная русскоязычная посимвольная LLaMA-модель для генерации текста и экспериментов с орфографией, классификацией и транскрипцией.

381скачиваний за 30 дней6лайковвеса обновлены4 сен 2023

Бенчмарки

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

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

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

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

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

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

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

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

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

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

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

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

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

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

CharLLaMa-35M — компактная авторегрессионная языковая модель архитектуры LLaMA, созданная автором проекта «Литературная студия» для экспериментов с русским текстом. Модель насчитывает 35,6 млн параметров и использует посимвольную токенизацию; её контекст составляет 512 токенов. Предварительное обучение проводилось на русскоязычном корпусе объёмом около 80 млрд токенов, в котором заметную долю составляли поэтические тексты.

Модель предназначена для генерации текста и экспериментов с задачами, где важны символьные закономерности: генеративной проверки орфографии, классификации, транскрипции текста и обнаружения опечаток. Для работы требуется специальный токенизатор, который загружается отдельно от стандартного AutoTokenizer. По README модель распространяется по лицензии OpenRAIL. Поэтический состав обучающего корпуса может влиять на результаты в прикладных задачах; небольшие размер и контекст также ограничивают её возможности по сравнению с крупными языковыми моделями.

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

  • генерация русскоязычного текста на уровне символов
  • эксперименты с генеративной проверкой орфографии
  • классификация текстов по символьным n-граммам
  • обнаружение орфографических ошибок и опечаток
  • эксперименты с транскрипцией текста

Ограничения

Для работы требуется специальный токенизатор; его нельзя загружать через стандартный AutoTokenizer.from_pretrained. Поэтические тексты в корпусе предобучения могут влиять на результаты, а контекст ограничен 512 токенами.

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

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

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

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

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

Открыть на Hugging Face

CharLLaMa-35M

Это крошечная языковая модель, имеющая архитектуру LLaMa, с посимвольной токенизацией для всевозможных экспериментов, когда задача решается плохо из-за BPE токенизации на слова и их части:

  1. генеративные спеллчекеры
  2. классификация текста: замена TfidfVectorizer(analyzer='char'), т.е. когда хорошо сработал бейзлайн на символьных n-граммах
  3. транскрипция текста
  4. детекция орфографических ошибок, опечаток

Размер модели - 35 913 600 параметров.

Особенности предварительной тренировки

Я делал эту модель для экспериментов с русской поэзией в рамках проекта "Литературная студия". Поэтому корпус претрейна содержал значительное количество текстов поэтического формата. Это может повлиять на ваши downstream задачи.

Объем корпуса претрейна - около 80B токенов, тексты только на русском языке.

Кривая обучения: pretrain_loss_val

Токенизатор

Для использования модели нужно установить специальный токенизатор:

pip install git+https://github.com/Koziev/character-tokenizer

Кроме символов кириллицы и пунктуации, этот токенизатор знает про специальные токены <s>, </s>, <pad> и <unk>.

Так как это нестандартный для transformers токенизатор, его надо загружать не через transformers.AutoTokenizer.from_pretrained, а примерно так:

import charactertokenizer

...
tokenizer = charactertokenizer.CharacterTokenizer.from_pretrained('inkoziev/charllama-35M')

Чтобы посмотреть на токенизацию, можно использовать такой фрагмент кода:

prompt = '<s>У Лукоморья дуб зеленый\n'
encoded_prompt = tokenizer.encode(prompt, return_tensors='pt')
print('Tokenized prompt:', ' | '.join(tokenizer.decode([t]) for t in encoded_prompt[0]))

Вы увидите список токенов, разделенных символом |:

Tokenized prompt: <s> | У |   | Л | у | к | о | м | о | р | ь | я |   | д | у | б |   | з | е | л | е | н | ы | й | 

Использование

С библиотекой transformerts модель можно использовать штатным способом как обычную GPT'шку (точнее, transformers.LlamaModel):

import os
import torch
import transformers
import charactertokenizer

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

model_name_or_path = 'inkoziev/charllama-35M'
model = transformers.AutoModelForCausalLM.from_pretrained(model_name_or_path)
model.to(device)
model.eval()

tokenizer = charactertokenizer.CharacterTokenizer.from_pretrained(model_path)

prompt = 'Меня зовут Ар'
encoded_prompt = tokenizer.encode(prompt, return_tensors='pt')

output_sequences = model.generate(
    input_ids=encoded_prompt.to(device),
    max_length=500,
    temperature=1.0,
    top_k=0,
    top_p=0.8,
    repetition_penalty=1.0,
    do_sample=True,
    num_return_sequences=5,
    pad_token_id=0,
)

for o in output_sequences:
    text = tokenizer.decode(o)
    if text.startswith('<s>'):
        text = text.replace('<s>', '')
    text = text[:text.index('</s>')].strip()
    print(text)
    print('-'*80)

Также, будут работать все прочие инструменты для GPT моделей, например transformers.AutoModelForSequenceClassification.

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

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

GPU в ailist

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

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

Подбираем GPU…

Класс архитектуры
LlamaForCausalLM
Ревизия весов
36d1c28

0 моделей