A-vibe это большая языковая модель, созданная Авито Тех, дочерней технологической компанией Авито, на базе открытой модели Qwen3-8B-Base. Мы адаптировали Qwen3-8B-Base под русский язык и домен Авито с помощью нескольких шагов
- Сделали свой токенизатор, оптимальный для русского и английского языка
- Подменили оригинальный токенизатор Qwen3-8B-Base на собственный токенизатор
- Обучили полученную модель на большом корпусе данных
- Провели SFT этап
- Сделали RL
В результате нам удалось получить модель, которая выигрывает instruct версию Qwen3-8B по многим русскоязычным бенчмаркам. На SFT и RL этапе нам удалось научить модель Function Calling и улучшить ее навыки в решении математических задач.
| Qwen3-8B (no_think) | A-vibe | |
|---|---|---|
| mmlu_ru | 0,701 | 0,718 | 
| mmlu_en | 0,730 | 0,752 | 
| gpqa_diamond_ru | 0,318 | 0,343 | 
| gpqa_diamond_en | 0,369 | 0,318 | 
| shlepa | 0,454 | 0,486 | 
| baby mmlu | 0,682 | 0,766 | 
| math_500_ru | 0,546 | 0,686 | 
| math_500_en | 0,736 | 0,714 | 
| gsm8k_en | 0,927 | 0,910 | 
| DOoM | 0,240 | 0,280 | 
| ru_facts | 0,724 | 0,718 | 
| rublimp | 0,916 | 0,930 | 
| ru_drop | 0,318 | 0,394 | 
| BFCL_V3_en | 60,2% | 58,63% | 
| BFCL_V3_ru | 50.72% | 49.00% | 
| MERA_text | 0,510 | 0,618 | 
| MERA CODE private total | 0,336 | 0,367 | 
В токенизаторе A-vibe плотность токенизации выше, чем у Qwen3-8B поэтому число токенов в контексте и при генерации стало меньше для одинаковых примеров. Кроме того, размер самой модели сократился до 7.9B при 8.2B у Qwen3-8B. За счет этого одинаковые русскоязычные примеры адаптированной моделью обрабатываются быстрее в среднем на 15-25% в сравнении с исходной Qwen3-8B
Quickstart
Ниже представлен фрагмент кода, демонстрирующий, как загрузить токенизатор и модель, а также как сгенерировать ответ.
from transformers import AutoModelForCausalLM, AutoTokenizer
model_name = "AvitoTech/avibe"
model = AutoModelForCausalLM.from_pretrained(
    model_name,
    torch_dtype="auto",
    device_map="auto"
)
tokenizer = AutoTokenizer.from_pretrained(model_name)
prompt = "Привет, подскажи рецепт борща"
messages = [
    {"role": "user", "content": prompt}
]
text = tokenizer.apply_chat_template(
    messages,
    tokenize=False,
    add_generation_prompt=True
)
model_inputs = tokenizer([text], return_tensors="pt").to(model.device)
generated_ids = model.generate(
    **model_inputs,
    max_new_tokens=1024
)
generated_ids = [
    output_ids[len(input_ids):] for input_ids, output_ids in zip(model_inputs.input_ids, generated_ids)
]
response = tokenizer.batch_decode(generated_ids, skip_special_tokens=True)[0]
print(response)
Output:
Вот классический рецепт борща с пошаговыми инструкциями:Ингредиенты (на 4 порции):
- Мясо (говядина, свинина или курица) — 300–400 г
- Свекла — 2 шт. (средние)
- Капуста белокочанная — 300 г
- Морковь — 1 шт.
- Лук репчатый — 1 шт.
- Картофель — 3–4 шт.
- Помидоры свежие (или томатная паста) — 2 шт. (или 2 ст. ложки)
- Чеснок — 2–3 зубчика
- Лавровый лист — 1–2 шт.
- Перец горошком — 3–5 шт.
- Соль, сахар — по вкусу
- Растительное масло — 2–3 ст. ложки
- Уксус или лимонный сок — 1 ст. ложка (для сохранения цвета свеклы)
- Зелень (укроп, петрушка) — для подачи
- Сметана — по желанию
Пошаговое приготовление:
- Подготовка бульона: - Мясо промойте, нарежьте на куски и залейте 2,5–3 литрами холодной воды.
- Доведите до кипения, снимите пену.
- Добавьте лавровый лист, перец горошком и варите 1,5–2 часа на медленном огне. За 30 минут до готовности посолите.
 
- Овощи: - Свеклу натрите на крупной терке. Обжарьте на растительном масле 5–7 минут, добавьте уксус (или лимонный сок) и 2 ст. ложки воды. Тушите 10 минут.
- Капусту нашинкуйте тонкой соломкой.
- Картофель нарежьте кубиками.
- Морковь натрите, лук — мелко нарежьте.
- Помидоры натрите на терке или используйте томатную пасту.
 
- Сборка борща: - В кипящий бульон сначала добавьте картофель, варите 10 минут.
- Затем введите капусту, морковь и лук. Варите еще 10 минут.
- Добавьте обжаренную свеклу и помидоры (или томатную пасту). Перемешайте.
- За 5 минут до готовности влейте измельченный чеснок (через пресс или мелко нарезанный).
 
- Финальные штрихи: - Проверьте вкус, добавьте сахар (если нужно) и зелень.
- Снимите с огня, накройте крышкой и дайте настояться 15–20 минут.
 
- Подача: - Разлейте борщ по тарелкам, добавьте сметану и свежую зелень.
 
Советы:
- Для более насыщенного вкуса можно обжарить мясо перед варкой.
- Если любите кислинку, добавьте 1 ст. ложку уксуса или лимонного сока в самом конце.
- Вегетарианский вариант: замените мясо на грибы или варите на овощном бульоне.
Приятного аппетита! 🍲
- Downloads last month
- 1,618
