Update README.md
Browse files
README.md
CHANGED
|
@@ -21,7 +21,7 @@ base_model:
|
|
| 21 |
Весь использованный код для обучения выложен в нашем репозитории [effective_llm_alignment](https://github.com/VikhrModels/effective_llm_alignment/) на GitHub, а основаные датасеты дсотупны в нашем [профиле на HF](https://huggingface.co/Vikhrmodels).
|
| 22 |
|
| 23 |
### Особенности
|
| 24 |
-
1. Высокое качество генераций на русском и английском языках, а также некоторых других языках, благодаря датасету [Grandmaster-PRO-MAX](https://huggingface.co/datasets/Vikhrmodels/GrandMaster-PRO-MAX) и исходной
|
| 25 |
2. Поддержка системных промптов для регулриования стиля ответов
|
| 26 |
3. Поддержка до 128k токенов контекста благодаря исходной модели
|
| 27 |
4. Grounded RAG режим - модель имеет специальную роль documents и специальный режим работы для поиска идентификаторов релевантных вопросу пользователя документов и использования их для ответа на вопрос, вдохновлено аналогичной способность модели Command-R
|
|
@@ -189,8 +189,8 @@ base_model:
|
|
| 189 |
|
| 190 |
### Как работать с RAG
|
| 191 |
|
| 192 |
-
Роль documents представляет из себя список словарей с описанием контента документов, с примнением json.dumps(array). \
|
| 193 |
-
Контент документов представлен в **3**
|
| 194 |
|
| 195 |
```json
|
| 196 |
[
|
|
@@ -202,9 +202,67 @@ base_model:
|
|
| 202 |
]
|
| 203 |
```
|
| 204 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 205 |
### Нюансы и ограничения
|
| 206 |
-
- Модель имеет
|
| 207 |
-
- Системные промпты не предназначены для описание персонажей, используйте их только для спецификации стиля ответа (вроде "answer only in json format"). Кроме того они должны быть
|
| 208 |
-
- RAG режим
|
| 209 |
|
| 210 |
### Авторы
|
|
|
|
|
|
|
|
|
|
|
|
| 21 |
Весь использованный код для обучения выложен в нашем репозитории [effective_llm_alignment](https://github.com/VikhrModels/effective_llm_alignment/) на GitHub, а основаные датасеты дсотупны в нашем [профиле на HF](https://huggingface.co/Vikhrmodels).
|
| 22 |
|
| 23 |
### Особенности
|
| 24 |
+
1. Высокое качество генераций на русском и английском языках, а также некоторых других языках, благодаря датасету [Grandmaster-PRO-MAX](https://huggingface.co/datasets/Vikhrmodels/GrandMaster-PRO-MAX) и исходной модели
|
| 25 |
2. Поддержка системных промптов для регулриования стиля ответов
|
| 26 |
3. Поддержка до 128k токенов контекста благодаря исходной модели
|
| 27 |
4. Grounded RAG режим - модель имеет специальную роль documents и специальный режим работы для поиска идентификаторов релевантных вопросу пользователя документов и использования их для ответа на вопрос, вдохновлено аналогичной способность модели Command-R
|
|
|
|
| 189 |
|
| 190 |
### Как работать с RAG
|
| 191 |
|
| 192 |
+
Роль documents представляет из себя список словарей с описанием контента документов, с примнением `json.dumps(array, ensure_ascii=False)` (см. пример ниже). \
|
| 193 |
+
Контент документов может быть представлен в **3** различных форматах: **Markdown**, **HTML**, **Plain Text**. Контент каждого документа - может быть чанком текста длиной до 4к символов.
|
| 194 |
|
| 195 |
```json
|
| 196 |
[
|
|
|
|
| 202 |
]
|
| 203 |
```
|
| 204 |
|
| 205 |
+
#### Пример правильного использования с OpenAI-like API
|
| 206 |
+
|
| 207 |
+
```python
|
| 208 |
+
GROUNDED_SYSTEM_PROMPT = "Your task is to answer the user's questions using only the information from the provided documents. Give two answers to each question: one with a list of relevant document identifiers and the second with the answer to the question itself, using documents with these identifiers."
|
| 209 |
+
|
| 210 |
+
documents = [
|
| 211 |
+
{
|
| 212 |
+
"doc_id": 0,
|
| 213 |
+
"title": "Глобальное потепление: ледники",
|
| 214 |
+
"content": "За последние 50 лет объем ледников в мире уменьшился на 30%"
|
| 215 |
+
},
|
| 216 |
+
{
|
| 217 |
+
"doc_id": 1,
|
| 218 |
+
"title": "Глобальное потепление: Уровень моря",
|
| 219 |
+
"content": "Уровень мирового океана повысился на 20 см с 1880 года и продолжает расти на 3,3 мм в год"
|
| 220 |
+
}
|
| 221 |
+
]
|
| 222 |
+
sample_history = [
|
| 223 |
+
{'role': 'system', 'content': GROUNDED_SYSTEM_PROMPT},
|
| 224 |
+
{'role': 'documents', 'content': json.dumps(documents, ensure_ascii=False)},
|
| 225 |
+
{'role': 'user', 'content': 'Глоабльное потепление'}
|
| 226 |
+
]
|
| 227 |
+
relevant_indexes = llm_client.chat.completions.create(
|
| 228 |
+
model=llm_model,
|
| 229 |
+
messages=sample_history,
|
| 230 |
+
temperature=0.0,
|
| 231 |
+
max_tokens=2048
|
| 232 |
+
).choices[0].message.content
|
| 233 |
+
|
| 234 |
+
print('Using documents: ' + relevant_indexes + '\n----')
|
| 235 |
+
final_answer = llm_client.chat.completions.create(
|
| 236 |
+
model=llm_model,
|
| 237 |
+
messages=sample_history + [{'role': 'assistant', 'content': relevant_indexes}],
|
| 238 |
+
temperature=0.3,
|
| 239 |
+
max_tokens=2048
|
| 240 |
+
).choices[0].message.content
|
| 241 |
+
|
| 242 |
+
print(final_answer)
|
| 243 |
+
```
|
| 244 |
+
|
| 245 |
+
Ответ после выоплнения кода будет выглядеть примерно так:
|
| 246 |
+
|
| 247 |
+
'Using documents: {"relevant_doc_ids": [0, 1]}'
|
| 248 |
+
----
|
| 249 |
+
|
| 250 |
+
Глобальное потепление – это долгосрочное повышение средней температуры атмосферы и океанов Земли. Это явление имеет множество последствий для нашей планеты, и среди них можно выделить два ключевых аспекта, основанных на доступных мне данных:
|
| 251 |
+
|
| 252 |
+
1. **Уменьшение объема ледников**: За последние 50 лет наблюдается значительное сокращение объема ледников по всему миру. Согласно данным, объем ледников уменьшился на 30%. Это может быть связано с таянием ледников из-за повышения температур, что является одним из признаков глобального потепления.
|
| 253 |
+
|
| 254 |
+
2. **Повышение уровня моря**: Уровень мирового океана также увеличивается, что связано с таянием ледников и ледяных покровов, а также с расширением воды при повышении температуры. С 1880 года уровень моря повысился на 20 сантиметров, и этот процесс продолжается, с ежегодным увеличением на 3,3 миллиметра.
|
| 255 |
+
|
| 256 |
+
Эти изменения имеют серьезные последствия для экосистем, климата и человеческого общества. Таяние ледников приводит к повышению уровня моря, что может привести к затоплению прибрежных территорий и островов, а также к изменению водных ресурсов и климатических паттернов.
|
| 257 |
+
|
| 258 |
+
Используя первый ответ модели `relevant_indexes`, можно понять нашла ли модель информацию в документах или нет, она обучена возврашать пустой массив если ее нет и в таком случае она будет отвечать, что не смогла найти информацию в базе знаний.
|
| 259 |
+
|
| 260 |
### Нюансы и ограничения
|
| 261 |
+
- Модель имеет **низкий уровень безопасности ответов** и нацелена на правильное и полное выполенние инстуркций, имейте это ввиду при использовании. Частично это исправляется системными промптами и дополнительными указаниями о важности безопасности в промпте пользователя.
|
| 262 |
+
- Системные промпты не предназначены для описание персонажей, используйте их только для спецификации стиля ответа (вроде "answer only in json format"). Кроме того они должны быть **на английском**, так как так было в датасете, здесь от английского не зависит язык ответа.
|
| 263 |
+
- RAG режим **требует обязательного** наличия системного промпта `GROUNDED_SYSTEM_PROMPT` описаного в секции *Как работать с RAG*. Так же иногда модель может добавлять также общую информацию в ответ к той, что есть в документах.
|
| 264 |
|
| 265 |
### Авторы
|
| 266 |
+
- Sergei Bratchikov, [NLP Wanderer](https://t.me/nlpwanderer), Vikhr Team
|
| 267 |
+
- Aleksandr Nikolich, Vikhr Team
|
| 268 |
+
- Konstantin Korolev, Vikhr Team
|