LakoMoor commited on
Commit
6ea2c28
·
verified ·
1 Parent(s): a0127df

Create README.md

Browse files
Files changed (1) hide show
  1. README.md +109 -0
README.md ADDED
@@ -0,0 +1,109 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ library_name: transformers
3
+ model_name: Vikhrmodels/QVikhr-2.5-1.5B-Instruct-SMPO
4
+ base_model:
5
+ - Vikhrmodels/Vikhr-Qwen-2.5-1.5B-Instruct
6
+ language:
7
+ - ru
8
+ - en
9
+ license: apache-2.0
10
+ ---
11
+
12
+ # 💨🦅 QVikhr-2.5-1.5B-Instruct-SMPO
13
+
14
+ Инструктивная модель на основе **Qwen-2.5-1.5B-Instruct**, обученная на русскоязычном датасете **GrandMaster-PRO-MAX** с использованием **SMPO** (Simple Margin Preference Optimization).
15
+
16
+
17
+ ## Quatized variants:
18
+
19
+
20
+ ## Особенности:
21
+
22
+ - 📚 Основа: [Vikhr-Qwen-2.5-1.5B-Instruct](https://huggingface.co/Vikhrmodels/Vikhr-Qwen-2.5-1.5B-Instruct)
23
+ - 🇷🇺 Специализация: **RU**
24
+ - 🌍 Поддержка: **Bilingual RU/EN**
25
+
26
+ ## Описание:
27
+
28
+ **QVikhr-2.5-1.5B-Instruct-SMPO** представляет собой языковую модель, прошедшую специализированное обучение с использованием метода **SMPO**. Эта модель демонстрирует прогресс в методах выравнивания, особенно в области улучшения качества ответов через оптимизацию предпочтений.
29
+
30
+ ## Обучение:
31
+
32
+ ### Этап алайнмента с SMPO (Simple Margin Preference Optimization)
33
+
34
+ [Конфиг обучения](https://github.com/VikhrModels/effective_llm_alignment/blob/e3672f6ec4023109699a951bf08f1bce23338921/training_configs/preference/smpo-qvikhr2.5-1.5b-lora-best-rs.yaml)
35
+
36
+
37
+
38
+ Для дальнейшего улучшения качества ответов мы использовали следущий пайплайн:
39
+
40
+ - Использовали [Skywork/Skywork-Reward-Llama-3.1-8B-v0.2](https://huggingface.co/Skywork/Skywork-Reward-Llama-3.1-8B-v0.2) в качестве Reward модель
41
+ - Дедуплицировали и отфилтровали используя RM модель оригинальный датасет Vikhrmodels/GrandMaster-PRO-MAX, получив порядка 10к самых высококачественных и разнообразных диалогов.
42
+ - Сделали Rejection Sampling с SFT чекпоинтом [Vikhr-Qwen-2.5-1.5B-Instruct](https://huggingface.co/Vikhrmodels/Vikhr-Qwen-2.5-1.5B-Instruct) используя полученный датасет и Reward модель. (Генерировали 7 гипотез)
43
+ - Дообучили SFT чекпоинт с помощью нашего метода SMPO используя полученный датасет из этапа 3.
44
+ SMPO был спроектирован и выбран как метод для повышения стабильности тренировки преференсов в условиях Rejection Sampling и достижения нужного margin.
45
+
46
+ Реализацию SMPO, rejection sampling и тд можно найти в нашей библиотеке [effective_llm_alignment](https://github.com/VikhrModels/effective_llm_alignment) на GitHub
47
+
48
+ Идея использования именно SMPO, а не другого PO метода, возникла в результате проведения большого количества экспериментов с классическими методами, при необходимости лучшего контроля процесса сходимости. При тщательной настройке других методов (например SimPO), можно добится похожего результата, однако мы постарались стаблизировать этот процесс и объединить лучшие практики из других методов.
49
+
50
+ ## Пример кода для запуска:
51
+
52
+ **Рекомендуемая температура для генерации: 0.4**.
53
+
54
+ ```python
55
+ from transformers import AutoModelForCausalLM, AutoTokenizer
56
+
57
+ # Load the model and tokenizer
58
+ model_name = "Vikhrmodels/QVikhr-2.5-1.5B-Instruct-SMPO"
59
+ model = AutoModelForCausalLM.from_pretrained(model_name)
60
+ tokenizer = AutoTokenizer.from_pretrained(model_name)
61
+
62
+ # Prepare the input text
63
+ input_text = "Напиши краткое описание книги Гарри Поттер."
64
+
65
+ messages = [
66
+ {"role": "system", "content": "Вы — Vikhr, ИИ помощник, созданный компанией Vikhr models для предоставления полезной, честной и безопасной информации."},
67
+ {"role": "user", "content": input_text},
68
+ ]
69
+
70
+ # Tokenize and generate text
71
+ input_ids = tokenizer.apply_chat_template(messages, truncation=True, add_generation_prompt=True, return_tensors="pt")
72
+ output = model.generate(
73
+ input_ids,
74
+ max_length=1512,
75
+ temperature=0.4,
76
+ )
77
+
78
+ # Decode and print result
79
+ generated_text = tokenizer.decode(output[0], skip_special_tokens=True)
80
+ print(generated_text)
81
+ ```
82
+
83
+ #### ��твет модели:
84
+
85
+ >**Краткое описание книги "Гарри Поттер"**
86
+
87
+ >"Гарри Поттер" – это серия книг о мальчике-волшебнике, который обнаруживает в себе силу волшебства после того, как его семья умирает от злого колдуна Драко Малфоя. Главный герой, Гарри Поттер, живёт с родителями на окраине Хогвартса, школы магии и волшебства.
88
+ >В детстве Гарри встречает своего лучшего друга Рона Уизли и его тётку Гермиону Грейнджер. Они вместе отправляются в Хогвартс, где начинают учиться волшебству. В ходе учебы Гарри знакомится с другими учениками: Слизеринами (главные антагонисты) и Хогвартсом как место обучения магии.
89
+ >Самым важным событием в жизни Гарри становится то, что он узнаёт о своем происхождении – он является последним из семьи Поттеров, которые когда-то владели всеми знаниями о волшебстве. Это знание открывает ему путь к своей миссии – борьбе против темных сил, которые стремятся уничтожить волшебство.
90
+ >По мере развития сюжета Гарри сталкивается с различными препятствиями, включая преследование со стороны Драко Малфоя и его друзей, а также внутренние конфликты внутри самого Хогвартса. Однако благодаря поддержке своих друзей и новых знакомых, таких как Философский камень, Гарри продолжает свой путь к победе над темными силами.
91
+ >В конце концов, Гарри и его друзья успешно борются с темными силами, восстанавливают мир в Хогвартсе и получают признание за свои поступки. Книги завершаются тем, что Гарри готовится стать волшебником, но его будущее ещё не определено.
92
+
93
+ ### Авторы
94
+
95
+ - Sergei Bratchikov, [NLP Wanderer](https://t.me/nlpwanderer), [Vikhr Team](https://t.me/vikhrlabs)
96
+ - Nikolay Kompanets, [LakoMoor](https://t.me/lakomoordev), [Vikhr Team](https://t.me/vikhrlabs)
97
+ - Konstantin Korolev, [Vikhr Team](https://t.me/vikhrlabs)
98
+ - Aleksandr Nikolich, [Vikhr Team](https://t.me/vikhrlabs)
99
+
100
+ ```
101
+ @inproceedings{nikolich2024vikhr,
102
+ title={Vikhr: Advancing Open-Source Bilingual Instruction-Following Large Language Models for Russian and English},
103
+ author={Aleksandr Nikolich and Konstantin Korolev and Sergei Bratchikov and Nikolay Kompanets and Igor Kiselev and Artem Shelmanov},
104
+ booktitle={Proceedings of the 4th Workshop on Multilingual Representation Learning (MRL) @ EMNLP-2024},
105
+ year={2024},
106
+ publisher={Association for Computational Linguistics},
107
+ url={https://arxiv.org/pdf/2405.13929}
108
+ }
109
+ ```