hivaze commited on
Commit
0a74edd
1 Parent(s): 2ca1209

Update README.md

Browse files
Files changed (1) hide show
  1. README.md +64 -6
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** случайных форматах: **Markdown**, **HTML**, **Plain Text**. Контент кажддого документа - случайный чанк из статьи длиной до 4к символов.
194
 
195
  ```json
196
  [
@@ -202,9 +202,67 @@ base_model:
202
  ]
203
  ```
204
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
205
  ### Нюансы и ограничения
206
- - Модель имеет низкий уровень безопасности ответов и нацелена на правильное и полное выполенние инстуркций, имейте это ввиду при использовании
207
- - Системные промпты не предназначены для описание персонажей, используйте их только для спецификации стиля ответа (вроде "answer only in json format"). Кроме того они должны быть на английском, так как так было в датасете, здесь от английского не зависит язык ответа.
208
- - RAG режим требует обязательного наличия системного промпта описаного в секции *Как работать с 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