Sergei Vorobev
update tokenizer, license and readme
8fc1784
|
raw
history blame
3.35 kB
metadata
license: other
license_name: yandexgpt-5-lite-8b-pretrain
license_link: LICENSE

YandexGPT-5-Lite-Pretrain

Pretrain-версия большой языковой модели YandexGPT 5 Lite на 8B параметров с длиной контекста 32k токенов. Обучение модели проходило в два этапа.

На первом этапе модель обучалась преимущественно на русскоязычных и англоязычных текстах общим объёмом 15T токенов с длиной контекста до 8k токенов. Состав датасета: 60% — веб-страницы, 15% — код, 10% — математика, остальное — другие специфичные данные, в том числе сгенерированная с помощью наших моделей синтетика и датасеты наших сервисов, например Яндекс Переводчика и база фактов Поиска.

На втором этапе, который мы назвали Powerup, модель обучалась на высококачественных данных объёмом 320B токенов. Состав Powerup-датасета: 25% — веб-страницы, 19% — математика, 18% — код, 18% — образовательные данные, остальное — синтетика, датасеты сервисов и прочие качественные тексты. На этом этапе мы увеличили длину контекста до 32k токенов. Более подробно — в нашей статье на Хабре.

Бенчмарки

В своей категории pretrain-версия YandexGPT 5 Lite достигает паритета с мировыми SOTA по ряду ключевых бенчмарков для pretrain-моделей.

Как использовать

Модель можно запустить через HF Transformers:

from transformers import AutoModelForCausalLM, AutoTokenizer


MODEL_NAME = "yandex/YandexGPT-5-Lite-8B-pretrain"

tokenizer = AutoTokenizer.from_pretrained(MODEL_NAME, legacy=False)
model = AutoModelForCausalLM.from_pretrained(
   MODEL_NAME,
   device_map="cuda",
)

input_text = "Кто сказал тебе, что нет на свете настоящей,"
input_ids = tokenizer(input_text, return_tensors="pt").to("cuda")

outputs = model.generate(**input_ids, max_new_tokens=19)
print(tokenizer.decode(outputs[0], skip_special_tokens=True))

Или через vLLM:

from vllm import LLM, SamplingParams


# MODEL_NAME = "yandex/YandexGPT5-8B-base"
MODEL_NAME = "/home/serv01/repos/YandexGPT-5-Lite-8B-pretrain"

sampling_params = SamplingParams(
    temperature=0.3,
    max_tokens=18,
)

llm = LLM(
    MODEL_NAME,
    tensor_parallel_size=1,
)
input_texts = ["Кто сказал тебе, что нет на свете настоящей,"]
outputs = llm.generate(input_texts, use_tqdm=False, sampling_params=sampling_params)

for i in range(len(input_texts)):
    print(input_texts[i] + outputs[i].outputs[0].text)

Как дообучить под свои задачи

Будет дополнено.