File size: 7,413 Bytes
c52a27b 46be188 b24a7cd c52a27b 5a0a4d2 b333688 5a0a4d2 c52a27b e7428f6 c52a27b 46be188 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 |
---
license: apache-2.0
language:
- ru
- en
base_model:
- Qwen/Qwen3-8B
pipeline_tag: text-generation
library_name: transformers
---
A-vibe это большая языковая модель, созданная Авито Тех, дочерней технологической компанией Авито, на базе открытой модели Qwen3-8B-Base.
Мы адаптировали Qwen3-8B-Base под русский язык и домен Авито с помощью нескольких шагов
1. Сделали свой токенизатор, оптимальный для русского и английского языка
2. Подменили оригинальный токенизатор Qwen3-8B-Base на собственный токенизатор
3. Обучили полученную модель на большом корпусе данных
4. Провели SFT этап
5. Сделали 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
Ниже представлен фрагмент кода, демонстрирующий, как загрузить токенизатор и модель, а также как сгенерировать ответ.
```python
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)
```
<details>
<summary> Output:</summary>
Вот классический рецепт борща с пошаговыми инструкциями:
---
### **Ингредиенты (на 4 порции):**
- **Мясо** (говядина, свинина или курица) — 300–400 г
- **Свекла** — 2 шт. (средние)
- **Капуста белокочанная** — 300 г
- **Морковь** — 1 шт.
- **Лук репчатый** — 1 шт.
- **Картофель** — 3–4 шт.
- **Помидоры свежие** (или томатная паста) — 2 шт. (или 2 ст. ложки)
- **Чеснок** — 2–3 зубчика
- **Лавровый лист** — 1–2 шт.
- **Перец горошком** — 3–5 шт.
- **Соль, сахар** — по вкусу
- **Растительное масло** — 2–3 ст. ложки
- **Уксус или лимонный сок** — 1 ст. ложка (для сохранения цвета свеклы)
- **Зелень** (укроп, петрушка) — для подачи
- **Сметана** — по желанию
---
### **Пошаговое приготовление:**
1. **Подготовка бульона:**
- Мясо промойте, нарежьте на куски и залейте 2,5–3 литрами холодной воды.
- Доведите до кипения, снимите пену.
- Добавьте лавровый лист, перец горошком и варите 1,5–2 часа на медленном огне. За 30 минут до готовности посолите.
2. **Овощи:**
- **Свеклу** натрите на крупной терке. Обжарьте на растительном масле 5–7 минут, добавьте уксус (или лимонный сок) и 2 ст. ложки воды. Тушите 10 минут.
- **Капусту** нашинкуйте тонкой соломкой.
- **Картофель** нарежьте кубиками.
- **Морковь** натрите, лук — мелко нарежьте.
- **Помидоры** натрите на терке или используйте томатную пасту.
3. **Сборка борща:**
- В кипящий бульон сначала добавьте картофель, варите 10 минут.
- Затем введите капусту, морковь и лук. Варите еще 10 минут.
- Добавьте обжаренную свеклу и помидоры (или томатную пасту). Перемешайте.
- За 5 минут до готовности влейте измельченный чеснок (через пресс или мелко нарезанный).
4. **Финальные штрихи:**
- Проверьте вкус, добавьте сахар (если нужно) и зелень.
- Снимите с огня, накройте крышкой и дайте настояться 15–20 минут.
5. **Подача:**
- Разлейте борщ по тарелкам, добавьте сметану и свежую зелень.
---
### **Советы:**
- Для более насыщенного вкуса можно обжарить мясо перед варкой.
- Если любите кислинку, добавьте 1 ст. ложку уксуса или лимонного сока в самом конце.
- Вегетарианский вариант: замените мясо на грибы или варите на овощном бульоне.
Приятного аппетита! 🍲 </details> |