Files
ModelHub XC cc82b0adb8 初始化项目,由ModelHub XC社区提供模型
Model: Vikhrmodels/QVikhr-2.5-1.5B-Instruct-SMPO
Source: Original Platform
2026-10-19 23:34:13 +08:00

118 lines
8.8 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
library_name: transformers
model_name: Vikhrmodels/QVikhr-2.5-1.5B-Instruct-SMPO
base_model:
- Vikhrmodels/Vikhr-Qwen-2.5-1.5B-Instruct
language:
- ru
- en
license: apache-2.0
---
# 💨🦅 QVikhr-2.5-1.5B-Instruct-SMPO
Инструктивная модель на основе **Qwen-2.5-1.5B-Instruct**, обученная на русскоязычном датасете **GrandMaster-PRO-MAX** с использованием **SMPO** (Simple Margin Preference Optimization).
## Quatized variants:
- [GGUF](https://hf.co/Vikhrmodels/QVikhr-2.5-1.5B-Instruct-SMPO_GGUF)
- MLX
- [4 bit](https://hf.co/Vikhrmodels/QVikhr-2.5-1.5B-Instruct-SMPO_MLX-4bit)
- [8 bit](https://hf.co/Vikhrmodels/QVikhr-2.5-1.5B-Instruct-SMPO_MLX-8bit)
## Особенности:
- 📚 Основа: [Vikhr-Qwen-2.5-1.5B-Instruct](https://huggingface.co/Vikhrmodels/Vikhr-Qwen-2.5-1.5B-Instruct)
- 🇷🇺 Специализация: **RU**
- 🌍 Поддержка: **Bilingual RU/EN**
## Описание:
**QVikhr-2.5-1.5B-Instruct-SMPO** представляет собой языковую модель, прошедшую специализированное обучение с использованием метода **SMPO**. Эта модель демонстрирует прогресс в методах выравнивания, особенно в области улучшения качества ответов через оптимизацию предпочтений.
## Попробовать / Try now:
[![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/drive/1xpTj8gLZAl2kbgciEAP9XxF5G18f7znr?usp=sharing)
## Обучение:
### Этап алайнмента с SMPO (Simple Margin Preference Optimization)
[Конфиг обучения](https://github.com/VikhrModels/effective_llm_alignment/blob/e3672f6ec4023109699a951bf08f1bce23338921/training_configs/preference/smpo-qvikhr2.5-1.5b-lora-best-rs.yaml)
Для дальнейшего улучшения качества ответов мы использовали следущий пайплайн:
- Использовали [Skywork/Skywork-Reward-Llama-3.1-8B-v0.2](https://huggingface.co/Skywork/Skywork-Reward-Llama-3.1-8B-v0.2) в качестве Reward модель
- Дедуплицировали и отфилтровали используя RM модель оригинальный датасет Vikhrmodels/GrandMaster-PRO-MAX, получив порядка 10к самых высококачественных и разнообразных диалогов.
- Сделали Rejection Sampling с SFT чекпоинтом [Vikhr-Qwen-2.5-1.5B-Instruct](https://huggingface.co/Vikhrmodels/Vikhr-Qwen-2.5-1.5B-Instruct) используя полученный датасет и Reward модель. (Генерировали 7 гипотез)
- Дообучили SFT чекпоинт с помощью нашего метода SMPO используя полученный датасет из этапа 3.
SMPO был спроектирован и выбран как метод для повышения стабильности тренировки преференсов в условиях Rejection Sampling и достижения нужного margin.
Реализацию SMPO, rejection sampling и тд можно найти в нашей библиотеке [effective_llm_alignment](https://github.com/VikhrModels/effective_llm_alignment) на GitHub
Идея использования именно SMPO, а не другого PO метода, возникла в результате проведения большого количества экспериментов с классическими методами, при необходимости лучшего контроля процесса сходимости. При тщательной настройке других методов (например SimPO), можно добится похожего результата, однако мы постарались стаблизировать этот процесс и объединить лучшие практики из других методов.
## Пример кода для запуска:
**Рекомендуемая температура для генерации: 0.4**.
```python
from transformers import AutoModelForCausalLM, AutoTokenizer
# Load the model and tokenizer
model_name = "Vikhrmodels/QVikhr-2.5-1.5B-Instruct-SMPO"
model = AutoModelForCausalLM.from_pretrained(model_name)
tokenizer = AutoTokenizer.from_pretrained(model_name)
# Prepare the input text
input_text = "Напиши краткое описание книги Гарри Поттер."
messages = [
{"role": "system", "content": "Вы — Vikhr, ИИ помощник, созданный компанией Vikhr models для предоставления полезной, честной и безопасной информации."},
{"role": "user", "content": input_text},
]
# Tokenize and generate text
input_ids = tokenizer.apply_chat_template(messages, truncation=True, add_generation_prompt=True, return_tensors="pt")
output = model.generate(
input_ids,
max_length=1512,
temperature=0.4,
)
# Decode and print result
generated_text = tokenizer.decode(output[0], skip_special_tokens=True)
print(generated_text)
```
#### Ответ модели:
>**Краткое описание книги "Гарри Поттер"**
>"Гарри Поттер" – это серия книг о мальчике-волшебнике, который обнаруживает в себе силу волшебства после того, как его семья умирает от злого колдуна Драко Малфоя. Главный герой, Гарри Поттер, живёт с родителями на окраине Хогвартса, школы магии и волшебства.
>В детстве Гарри встречает своего лучшего друга Рона Уизли и его тётку Гермиону Грейнджер. Они вместе отправляются в Хогвартс, где начинают учиться волшебству. В ходе учебы Гарри знакомится с другими учениками: Слизеринами (главные антагонисты) и Хогвартсом как место обучения магии.
>Самым важным событием в жизни Гарри становится то, что он узнаёт о своем происхождении – он является последним из семьи Поттеров, которые когда-то владели всеми знаниями о волшебстве. Это знание открывает ему путь к своей миссии – борьбе против темных сил, которые стремятся уничтожить волшебство.
>По мере развития сюжета Гарри сталкивается с различными препятствиями, включая преследование со стороны Драко Малфоя и его друзей, а также внутренние конфликты внутри самого Хогвартса. Однако благодаря поддержке своих друзей и новых знакомых, таких как Философский камень, Гарри продолжает свой путь к победе над темными силами.
>В конце концов, Гарри и его друзья успешно борются с темными силами, восстанавливают мир в Хогвартсе и получают признание за свои поступки. Книги завершаются тем, что Гарри готовится стать волшебником, но его будущее ещё не определено.
### Авторы
- Sergei Bratchikov, [NLP Wanderer](https://t.me/nlpwanderer), [Vikhr Team](https://t.me/vikhrlabs)
- Nikolay Kompanets, [LakoMoor](https://t.me/lakomoordev), [Vikhr Team](https://t.me/vikhrlabs)
- Konstantin Korolev, [Vikhr Team](https://t.me/vikhrlabs)
- Aleksandr Nikolich, [Vikhr Team](https://t.me/vikhrlabs)
```
@inproceedings{nikolich2024vikhr,
title={Vikhr: Advancing Open-Source Bilingual Instruction-Following Large Language Models for Russian and English},
author={Aleksandr Nikolich and Konstantin Korolev and Sergei Bratchikov and Nikolay Kompanets and Igor Kiselev and Artem Shelmanov},
booktitle={Proceedings of the 4th Workshop on Multilingual Representation Learning (MRL) @ EMNLP-2024},
year={2024},
publisher={Association for Computational Linguistics},
url={https://arxiv.org/pdf/2405.13929}
}
```