|
--- |
|
license: mit |
|
datasets: |
|
- NotEvilAI/ru-reasoning_effort-sft_dpo_think_gpt |
|
- NotEvilAI/gpt-ru-reasoning_effort-sft |
|
- NotEvilAI/gpt-oss-20b-ru-reasoning-dpo |
|
language: |
|
- ru |
|
- en |
|
base_model: |
|
- openai/gpt-oss-20b |
|
library_name: transformers |
|
tags: |
|
- reasoning |
|
- russian |
|
- gpt-oss |
|
- thinking |
|
--- |
|
|
|
# NotEvilAI/gpt-oss-20b-ru-reasoner |
|
|
|
[NotEvilAI/gpt-oss-20b-ru-reasoner](https://huggingface.co/NotEvilAI/gpt-oss-20b-ru-reasoner) - экспериментальная модель с адаптивным русскоязычным ризонингом на основе [openai/gpt-oss-20b](https://huggingface.co/openai/gpt-oss-20b). |
|
|
|
Модель думает на том языке, на котором требуется сгенерировать ответ(протестировано на английском и русском) без явного указания языка ризонинга. |
|
|
|
Имеется 5 режимов ризонинга(`reasoning_effort`): |
|
- `low`, `medium`, `high` - стандартные значения минимального, среднего и большого ризонинга для gpt-oss-20b/gpt-oss-120b |
|
- `none` - отключить ризонинг, в thinking будет пустая строка |
|
- `auto` - "автоматический" размер ризонинга |
|
|
|
## Предпосылки |
|
|
|
gpt-oss-20b и gpt-oss-120b по-умолчанию всегда думают только на английском языке. |
|
[Официальный Cookbook OpenAI](https://cookbook.openai.com/articles/gpt-oss/fine-tune-transfomers) предлагает сделать файн-тюн gpt-oss-20b на основе датасета `HuggingFaceH4/Multilingual-Thinking`(синтетический датасет из 1к примеров, полученных путём перевода prompt-reasoning-answer на 4 языка с английского). |
|
Этот подход позволяет задать 'Reasoning language' в системном промте и заставить модель думтаь на требуемом языке, что в теории должно повысить качество ответов. |
|
Во время файнтюна модель выявляет новые закономерности и учится думать на запрашиваемом языке. |
|
|
|
При разработке данной модели мы поставили цель исключить явное указание языка ризонинга, а также добавить два новых режима ризонинга: автоматический(auto) и без ризонинга(none). |
|
|
|
## Обучение |
|
|
|
Для обучения модели был составлен датасет [NotEvilAI/ru-reasoning_effort-sft_dpo_think_gpt](https://huggingface.co/datasets/NotEvilAI/ru-reasoning_effort-sft_dpo_think_gpt). |
|
|
|
Модель обучалась на собственном сервере с 8x H200 в 2 стадии: |
|
- Full fine-tuning SFT с помощью axolotl: |
|
- `num_epochs: 5` (20b версия модели сходится медленнее, чем 120b, однако переобучения замечено не было) |
|
- `learning_rate: 5e-5` подобран эмпирически |
|
- `optimizer: adamw_torch_fused` |
|
- Упаковка семплов через `sample_packing, multipack_real_batches, pad_to_sequence_len, group_by_length` |
|
- Обучение длилось ~ 5 часов |
|
- DPO с помощью transformers: |
|
- Семплирование по 25 семплов на промт с целью поиска ризонинга не на нужном языке |
|
- `learning_rate: 5e-6` |
|
- `gradient_accumulation_steps: 4` |
|
- Конвертация результатирующей модели из fp32 в bf16 |
|
- Обучение длилось ~ 3.5 часа |
|
|
|
## Больше информации |
|
|
|
Подписывайтесь на наш [Telegram-канал](https://t.me/ak_segfault). Там мы будем выкладывать новые модели и датасеты. Также там вы можете задать автору интересующие вас вопросы. |