Vikhrmodels / Vikhr-Nemo-12B-Instruct-R-21-09-24

huggingface.co
Total runs: 51.7K
24-hour runs: 0
7-day runs: -3.0K
30-day runs: -3.0K
Model's Last Updated: October 25 2024
text-generation

Introduction of Vikhr-Nemo-12B-Instruct-R-21-09-24

Model Details of Vikhr-Nemo-12B-Instruct-R-21-09-24

Vikhr-Nemo-12B-Instruct-R-21-09-24
Описание

Vikhr-Nemo - это наша флагманская унимодальная LLM (Large Language Model) представляющая из себя улучшенную версию mistralai/Mistral-Nemo-Instruct-2407 командой VikhrModels , адаптированную преимущественно для русского и английского языков. Для ее обучения мы использовали несколько этапов включающих в себя SFT и SMPO - нашу собственную вариацию DPO, подробнее читайте в секции "Как эта модель создавалась" .

Модель оптимизированна для различных вариантов использования, включая ризонинг, суммаризацию, код, roleplay, поддержание диалога. Vikhr-Nemo обладает возможностью многоязычной генерации, и высокопроизводительными возможностями RAG. Модель иммет лучшие оценки среди прочих на наших инструктивных и RAG бенчарках и, поэтому, мы верим, что в некоторых задачах (например, RAG) может быть не хуже gpt-4o-mini от OpenAI.

Весь использованный код для обучения доступен в нашем репозитории effective_llm_alignment на GitHub, а основные датасеты доступны в нашем профиле на HF .

Особенности
  1. Высокое качество генераций на русском и английском языках, а также некоторых других языках, благодаря датасету Grandmaster-PRO-MAX и исходной модели
  2. Поддержка системных промптов для регулриования стиля ответов
  3. Поддержка до 128k токенов контекста благодаря исходной модели
  4. Grounded RAG режим - модель имеет специальную роль documents и специальный режим работы для поиска идентификаторов релевантных вопросу пользователя документов и использования их для ответа на вопрос, вдохновлено аналогичной способностью модели Command-R
Метрики и оценка качества

Модель оценивалась на нашем русскоязычном open-source SbS бенчмарке ru-arena-general (50 вопросов по 10 топикам), где судьей выступает gpt-4-1106-preview и бенчмарке для RAG на основе тестового сета Grounded-RAG-v2 , где судей выступа gpt-4o.

Результаты на Ru-Arena-General

В качестве референсых отвеов, с которыми сравниваются модели выступают ответы от gpt-3.5-turbo-0125, поэтому она имеет винрейт 50%.

Здесь приведена лишь часть лидерборда, подробнее смотрите в репозитории бенчмарка.

Model Name Winrate 95% CI Average # Tokens
gpt-4-1106-preview 90.9 (-1.3, 1.0) 541
gpt-4o-mini 83.9 (-1.8, 1.1) 448
vikhr-nemo-12b-instruct-r-21-09-24 79.8 (-2.2, 1.9) 627
gemma-2-9b-it-sppo-iter3 73.6 (-1.6, 2.2) 509
gemma-2-9b-it 69.2 (-2.5, 1.9) 459
t-lite-instruct-0.1 64.7 (-2.1, 1.7) 810
vikhr-llama3.1-8b-instruct-r-21-09-24 63.4 (-2.1, 2.5) 618
suzume-llama-3-8B-multilingual-orpo-borda-half 57.1 (-1.9, 2.2) 682
mistral-nemo-instruct-2407 50.5 (-2.7, 2.6) 403
gpt-3.5-turbo-0125 50.0 (0.0, 0.0) 220
c4ai-command-r-v01 49.0 (-1.7, 2.2) 529
meta-llama-3.1-8b-instruct 43.1 (-2.8, 2.3) 628
Результаты на бенчмарке RAG

Общий размер тестового сета - 200 примеров, 100 для in_domain вопросов и 100 для out_of_domain.

Тут для оценки качества модель-судья gpt-4o была проинструктирована учитывать релеватность и фактологичкскую полноту ответов исходя из документов и реферсного ответа от gpt-4-1106-preview.

Подробности промптов и оценок смотрите в коде бенчмарка на коллабе

in_domain - вопросы которые связаны с содержанием предоставленных документов в той или иной степени
out_of_domain - вопросы которые специально никак не связаны с содержанием предоставленных документов

question_type gpt-4o
judge_correct_percent avg_answer_match_rougeL avg_abs_indexes_diff
in_domain 73% 0.34 NaN
out_of_domain 81% 0.20 NaN
question_type Vikhr-Nemo-12B-Instruct-R-21-09-24
judge_correct_percent avg_answer_match_rougeL avg_abs_indexes_diff
in_domain 68% 0.41 0
out_of_domain 92% 0.52 0
question_type gpt-4o-mini
judge_correct_percent avg_answer_match_rougeL avg_abs_indexes_diff
in_domain 65% 0.33 NaN
out_of_domain 73% 0.18 NaN
question_type gpt-3.5-turbo-0125
judge_correct_percent avg_answer_match_rougeL avg_abs_indexes_diff
in_domain 49% 0.28 NaN
out_of_domain 76% 0.20 NaN
Как эта модель создавалась
Инструктивная SFT часть

Для SFT этапа обучения модели мы подготовили большой (150к инструкций) инструктивный синтетический датасет Vikhrmodels/GrandMaster-PRO-MAX . Его особенностью является встроеный CoT (Chain-Of-Thought), для сбора которого мы использовали модифицированный промет для gpt-4-turbo, подробности в карточке датасета.

Кроме того, для того чтобы сделать RAG Grounding, мы подготовили другой синтетический датасет - Vikhrmodels/Grounded-RAG-RU-v2 (50k диалогов), его пайплайн сборки достаточно сложный для короткого описания и полробнее об этом вы можете прочитать в его карточке.

Этап алайнмента с SMPO

Для дальнейшего улучшения качества ответов мы использовали следущий пайплайн:

  1. Обучили кастомную Reward модель (она пока не будет выкладываться в открытый доступ)
  2. Дедуплицировали и отфилтровали используя RM модель оригинальный датасет Vikhrmodels/GrandMaster-PRO-MAX, получив порядка 10к самых высококачественных и разнообразных диалогов.
  3. Сделали Rejection Sampling с SFT чекпоинтом используя полученный датасет и Reward модель. (Генерировали 7 гипотез и брали только 2 самые худшие как rejected)
  4. Дообучили SFT чекпоинт с помощью нашего метода SMPO используя полученный датасет из этапа 3. SMPO был спроектирован и выбран как метод для повышения стабильности тренировки преференсов в условиях Rejection Samping и достижения нужного margin.

Реализацию SMPO, rejection sampling и тд можно найти в нашей библиотеке effective_llm_alignment на GitHub

Как работать с RAG

Роль documents представляет из себя список словарей с описанием контента документов, с примнением json.dumps(array, ensure_ascii=False) (см. пример ниже).
Контент документов может быть представлен в 3 различных форматах: Markdown , HTML , Plain Text . Контент каждого документа - может быть чанком текста длиной до 4к символов.

[
  {
    "doc_id": (0..5),
    "title": "(null or str)",
    "content": "(html or markdown or plain text)"
  }
]
Пример правильного использования с OpenAI-like API

Запуск vLLM сервера: vllm serve --dtype half --max-model-len 32000 -tp 1 Vikhrmodels/Vikhr-Nemo-12B-Instruct-R-21-09-24 --api-key token-abc123

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."

documents = [
  {
    "doc_id": 0,
    "title": "Глобальное потепление: ледники",
    "content": "За последние 50 лет объем ледников в мире уменьшился на 30%"
  },
  {
    "doc_id": 1,
    "title": "Глобальное потепление: Уровень моря",
    "content": "Уровень мирового океана повысился на 20 см с 1880 года и продолжает расти на 3,3 мм в год"
  }
]
sample_history = [
    {'role': 'system', 'content': GROUNDED_SYSTEM_PROMPT}, 
    {'role': 'documents', 'content': json.dumps(documents, ensure_ascii=False)},
    {'role': 'user', 'content': 'Глоабльное потепление'}
]
relevant_indexes = llm_client.chat.completions.create(
    model=llm_model,
    messages=sample_history,
    temperature=0.0,
    max_tokens=2048
).choices[0].message.content

print('Using documents: ' + relevant_indexes + '\n----')
final_answer = llm_client.chat.completions.create(
    model=llm_model,
    messages=sample_history + [{'role': 'assistant', 'content': relevant_indexes}],
    temperature=0.3,
    max_tokens=2048
).choices[0].message.content

print(final_answer)

Ответ после выполнения кода будет выглядеть примерно так:

Using documents: {"relevant_doc_ids": [0, 1]}
----

Глобальное потепление – это долгосрочное повышение средней температуры атмосферы и океанов Земли. Это явление имеет множество последствий для нашей планеты, и среди них можно выделить два ключевых аспекта, основанных на доступных мне данных:

1. **Уменьшение объема ледников**: За последние 50 лет наблюдается значительное сокращение объема ледников по всему миру. Согласно данным, объем ледников уменьшился на 30%. Это может быть связано с таянием ледников из-за повышения температур, что является одним из признаков глобального потепления.

2. **Повышение уровня моря**: Уровень мирового океана также увеличивается, что связано с таянием ледников и ледяных покровов, а также с расширением воды при повышении температуры. С 1880 года уровень моря повысился на 20 сантиметров, и этот процесс продолжается, с ежегодным увеличением на 3,3 миллиметра.

Эти изменения имеют серьезные последствия для экосистем, климата и человеческого общества. Таяние ледников приводит к повышению уровня моря, что может привести к затоплению прибрежных территорий и островов, а также к изменению водных ресурсов и климатических паттернов.

Используя первый ответ модели relevant_indexes (JSON), можно понять нашла ли модель информацию в документах или нет, она обучена возврашать пустой массив если ее нет и в таком случае она будет отвечать, что не смогла найти информацию в базе знаний (при генерации второго ответа).

Нюансы и ограничения
  • Модель имеет низкий уровень безопасности ответов и нацелена на правильное и полное выполенние инстуркций, имейте это ввиду при использовании. Частично это исправляется системными промптами и дополнительными указаниями о важности безопасности в промпте пользователя.
  • Системные промпты не предназначены для описание персонажей, используйте их только для спецификации стиля ответа (вроде "answer only in json format"). Кроме того они должны быть на английском , так как так было в датасете, здесь от английского не зависит язык ответа.
  • RAG режим требует обязательного наличия системного промпта GROUNDED_SYSTEM_PROMPT описаного в секции Как работать с RAG . Так же иногда модель может добавлять общую информацию из своих знаний в ответ к той, что есть в документах.
Авторы
  • Sergei Bratchikov, NLP Wanderer , Vikhr Team
  • Konstantin Korolev, Vikhr Team
  • Aleksandr Nikolich, Vikhr Team

Runs of Vikhrmodels Vikhr-Nemo-12B-Instruct-R-21-09-24 on huggingface.co

51.7K
Total runs
0
24-hour runs
0
3-day runs
-3.0K
7-day runs
-3.0K
30-day runs

More Information About Vikhr-Nemo-12B-Instruct-R-21-09-24 huggingface.co Model

More Vikhr-Nemo-12B-Instruct-R-21-09-24 license Visit here:

https://choosealicense.com/licenses/apache-2.0

Vikhr-Nemo-12B-Instruct-R-21-09-24 huggingface.co

Vikhr-Nemo-12B-Instruct-R-21-09-24 huggingface.co is an AI model on huggingface.co that provides Vikhr-Nemo-12B-Instruct-R-21-09-24's model effect (), which can be used instantly with this Vikhrmodels Vikhr-Nemo-12B-Instruct-R-21-09-24 model. huggingface.co supports a free trial of the Vikhr-Nemo-12B-Instruct-R-21-09-24 model, and also provides paid use of the Vikhr-Nemo-12B-Instruct-R-21-09-24. Support call Vikhr-Nemo-12B-Instruct-R-21-09-24 model through api, including Node.js, Python, http.

Vikhr-Nemo-12B-Instruct-R-21-09-24 huggingface.co Url

https://huggingface.co/Vikhrmodels/Vikhr-Nemo-12B-Instruct-R-21-09-24

Vikhrmodels Vikhr-Nemo-12B-Instruct-R-21-09-24 online free

Vikhr-Nemo-12B-Instruct-R-21-09-24 huggingface.co is an online trial and call api platform, which integrates Vikhr-Nemo-12B-Instruct-R-21-09-24's modeling effects, including api services, and provides a free online trial of Vikhr-Nemo-12B-Instruct-R-21-09-24, you can try Vikhr-Nemo-12B-Instruct-R-21-09-24 online for free by clicking the link below.

Vikhrmodels Vikhr-Nemo-12B-Instruct-R-21-09-24 online free url in huggingface.co:

https://huggingface.co/Vikhrmodels/Vikhr-Nemo-12B-Instruct-R-21-09-24

Vikhr-Nemo-12B-Instruct-R-21-09-24 install

Vikhr-Nemo-12B-Instruct-R-21-09-24 is an open source model from GitHub that offers a free installation service, and any user can find Vikhr-Nemo-12B-Instruct-R-21-09-24 on GitHub to install. At the same time, huggingface.co provides the effect of Vikhr-Nemo-12B-Instruct-R-21-09-24 install, users can directly use Vikhr-Nemo-12B-Instruct-R-21-09-24 installed effect in huggingface.co for debugging and trial. It also supports api for free installation.

Vikhr-Nemo-12B-Instruct-R-21-09-24 install url in huggingface.co:

https://huggingface.co/Vikhrmodels/Vikhr-Nemo-12B-Instruct-R-21-09-24

Url of Vikhr-Nemo-12B-Instruct-R-21-09-24

Vikhr-Nemo-12B-Instruct-R-21-09-24 huggingface.co Url

Provider of Vikhr-Nemo-12B-Instruct-R-21-09-24 huggingface.co

Vikhrmodels
ORGANIZATIONS

Other API from Vikhrmodels

huggingface.co

Total runs: 918
Run Growth: -75.8K
Growth Rate: -8254.90%
Updated:September 18 2025
huggingface.co

Total runs: 12
Run Growth: 6
Growth Rate: 50.00%
Updated:January 30 2025
huggingface.co

Total runs: 9
Run Growth: 4
Growth Rate: 44.44%
Updated:June 11 2025