alt.freeweights.text / Vikhr-Nemo-12B-Instruct-R-21-09-24
From: Vikhrmodels <huggingface.co/Vikhrmodels>Newsgroups: alt.freeweights.textSubject:

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

Date: 2026-11-15Commit: 7499757Signed: 2DC28CC7B26A283B ✓

Text generation model with 12.2B parameters. Safetensors weights, 25.9 GB in all. Published by Vikhrmodels under Apache-2.0.

12.2B params25.9GBVikhr-Nemo-12B-Instruct-R-21-09-24safetensorspermissive
FactsParams12.2BSize25.9 GBFormatssafetensorsTasktext generationLicenseApache-2.0From sourcepermissive
$ fw get Vikhrmodels/Vikhr-Nemo-12B-Instruct-R-21-09-24
# manifest sha256 6479bba6814c… · 25.9 GB · 17 files
$ fw verify ./Vikhr-Nemo-12B-Instruct-R-21-09-24 Vikhrmodels/Vikhr-Nemo-12B-Instruct-R-21-09-24
From sourceHosted (signed)Vikhrmodels/Vikhr-Nemo-12B-Instruct-R-21-09-24Last check: 2026-11-15 02:32 UTC

Get help: custom fine-tune or private deploy. We review your setup before we quote.

Fine-tune of Mistral-Nemo-Instruct-2407.

Works with

Overview

Size
25.9 GB
Weights
25.9 GB (safetensors)
Parameters
12.2B
Formats
safetensors
Task
text generation
License
Apache-2.0 (permissive)
Files
17, each with a sha256
Publisher
Vikhrmodels
Added
2026-11-15
Section
alt.freeweights.text
Lineage

Original release from the publisher.

Base model: mistralai/Mistral-Nemo-Instruct-2407

Where these bytes come from
Publisher at the pinned commit→You

Sources are tried in order. A file counts only when its size and sha256 match the manifest. Sources are checked when you ask for them, not on a timer.

Sources
BadgeHostLast checkResult
From sourcehuggingface.co2026-11-15 02:32 UTCpassed

Model card

From the publisher at commit 7499757. Shown as plain text with links; images open at the publisher.

Reame.md in English

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

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

180 сэмплов из арены утекло в трейн, спасибо Илье за информацию!

Model NameWinrate95% CIAverage # Tokens
gpt-4-1106-preview90.9(-1.3, 1.0)541
gpt-4o-mini83.9(-1.8, 1.1)448
vikhr-nemo-12b-instruct-r-21-09-24(180 leaked)79.8(-2.2, 1.9)627
gemma-2-9b-it-sppo-iter373.6(-1.6, 2.2)509
gemma-2-9b-it69.2(-2.5, 1.9)459
t-lite-instruct-0.164.7(-2.1, 1.7)810
vikhr-llama3.1-8b-instruct-r-21-09-2463.4(-2.1, 2.5)618
suzume-llama-3-8B-multilingual-orpo-borda-half57.1(-1.9, 2.2)682
mistral-nemo-instruct-240750.5(-2.7, 2.6)403
gpt-3.5-turbo-012550.0(0.0, 0.0)220
c4ai-command-r-v0149.0(-1.7, 2.2)529
meta-llama-3.1-8b-instruct43.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 Sampling и достижения нужного margin.

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

Идея использования именно SMPO, а не другого PO метода, возникла в результате проведения большого количества экспериментов с классическими методами, при необходимости лучшего контроля процесса сходимости. При тщательной настройке других методов (например SimPO), можно добится похожего результата, однако мы постарались стаблизировать этот процесс и объединить лучшие практики из других методов.

Как работать с 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. Так же иногда модель может добавлять общую информацию из своих знаний в ответ к той, что есть в документах.
  • Модель лучше использовать с низкой темптературой (0.1-0.5), а таже использовать top_k (30-50), при температуре 1.0 были замечены случайные дефекты генерации.
Авторы#
  • Sergei Bratchikov, NLP Wanderer, Vikhr Team
  • Konstantin Korolev, Vikhr Team
  • Aleksandr Nikolich, Vikhr Team
Cite#
@inproceedings{nikolich2024vikhr,
  title={Vikhr: Constructing a State-of-the-art Bilingual Open-Source Instruction-Following Large Language Model for {Russian}},
  author={Aleksandr Nikolich and Konstantin Korolev and Sergei Bratchikov and  Igor Kiselev and Artem Shelmanov },
  booktitle = {Proceedings of the 4rd Workshop on Multilingual Representation Learning (MRL) @ EMNLP-2024}
  year={2024},
  publisher = {Association for Computational Linguistics},
  url={https://arxiv.org/pdf/2405.13929}
}

Files

17 files · 25.9 GBWeights 25.9 GB (safetensors). Sizes and sha256 from the signed manifest.
Hide all 17 files with their sha256
FileSizesha256
.gitattributes1.52 KB11ad7efa24975ee4b0c3c3a38ed18737f0658a5f75a0a96787b576a78a023361
README.md20.2 KBc0acbac3cd94aa672398764e044181008ac273837550fef8670373e8a79db90e
Readme_en.md14.3 KB21af500c1a5e9c3691d7f6e4e14e33874f3ed6ebccddbd6a38b91da6d1dd2ef2
config.json687 B7daba15d456549f0e85a86fea7541c70beab3ee2b3a296d972b63a5d61db74fe
generation_config.json111 B63b76107a660687d9591beb7db277a7fb50862f00e805b19c021a266bbaef051
model-00001-of-00005.safetensors4.87 GB7407d4489580d9d88ea6f206c2ae3b1a8f13210d1855c24e9b1009b3a5c946d9
model-00002-of-00005.safetensors4.91 GB5bca6716427e3330fa0476e965dc2feaf98cf12bfe67bbd59e768bb241fbe2d4
model-00003-of-00005.safetensors4.91 GBa701a4a2aa012f4c554ffaeade0c674a0e24ee8fd287547373dd61cc694fe2e2
model-00004-of-00005.safetensors4.91 GB6e763dfd5f201b7d054d083377d8fb97b63c4995f9c2c62f196e19a8280f36ab
model-00005-of-00005.safetensors4.91 GB680409f4e39ecb9945bf4bb55cad878dff4ddde47c883eaea69a5d496edc24e0
model.safetensors.index.json29.9 KB5432488a016ebe19dc22bc0764c9ab5f5a3c21b0a1cf9a67a8dc96369ad6d55c
original_adapter/README.md5.12 KB2d2e89ac0889e215601edb13815e6fe5f7b45a88723d5214cd1e90aee3622423
original_adapter/adapter_config.json749 B5a1aa5159fad852c0ef8ddbcba7c0016262d459c1437e7f788acdb9f0426c9ad
original_adapter/adapter_model.safetensors1.37 GB3e338736bfba1083e8e081c3d6ef857668843049a34d06e9e01bef06f7d57d74
special_tokens_map.json641 B2a29044b9714a22cba1b057fcec6a62b823e2ea82f6c86ad4254b05a44ea9c41
tokenizer.json9.26 MB387548d5369d16e63d362cbb19192a2c25a94e4761e7bd34094f90fa12bf5d51
tokenizer_config.json178 KBd5075ea9c53876c685f394aefb8da2d7cd509aac309ee1e497b5e3ddb40fb133
VersionsEach time the pinned upstream commit or file list changed in this repo. Newest first.
Upstream commitDateContents
7499757d9f pinned now2026-11-15 02:32 UTC17 files · 25.9 GB

Use it

$ fw get Vikhrmodels/Vikhr-Nemo-12B-Instruct-R-21-09-24
# manifest sha256 6479bba6814c… · 25.9 GB · 17 files
$ fw verify ./Vikhr-Nemo-12B-Instruct-R-21-09-24 Vikhrmodels/Vikhr-Nemo-12B-Instruct-R-21-09-24
fw.pyChecks the signature and every sha256, tries each source in order, resumes.
$ python3 fw.py get https://freeweights.allternit.com/manifests/Vikhrmodels/Vikhr-Nemo-12B-Instruct-R-21-09-24.json --dir ./Vikhr-Nemo-12B-Instruct-R-21-09-24 $ python3 fw.py verify ./Vikhr-Nemo-12B-Instruct-R-21-09-24 ./Vikhrmodels__Vikhr-Nemo-12B-Instruct-R-21-09-24.json
hfThe Hugging Face CLI with one setting. Same repo id.
$ HF_ENDPOINT=https://freeweights.allternit.com hf download Vikhrmodels/Vikhr-Nemo-12B-Instruct-R-21-09-24 --revision 7499757d9f41a2965b0e9db94c976e0982e292b8 --local-dir ./Vikhr-Nemo-12B-Instruct-R-21-09-24
transformersLoad the weights in Python.
import os os.environ["HF_ENDPOINT"] = "https://freeweights.allternit.com" from transformers import AutoModelForCausalLM, AutoTokenizer tok = AutoTokenizer.from_pretrained("Vikhrmodels/Vikhr-Nemo-12B-Instruct-R-21-09-24", revision="7499757d9f41a2965b0e9db94c976e0982e292b8") model = AutoModelForCausalLM.from_pretrained("Vikhrmodels/Vikhr-Nemo-12B-Instruct-R-21-09-24", revision="7499757d9f41a2965b0e9db94c976e0982e292b8", device_map="auto")
vLLMServe an OpenAI-compatible API.
$ HF_ENDPOINT=https://freeweights.allternit.com vllm serve Vikhrmodels/Vikhr-Nemo-12B-Instruct-R-21-09-24 --revision 7499757d9f41a2965b0e9db94c976e0982e292b8

License

Name
Apache License 2.0
Id
Apache-2.0
Class
Permissive
Redistribution
yes
Listing
Hosted (signed)
Decided
License as declared by the publisher. No person read it. 2026-11-15
Text in
README.md
Text sha256
c0acbac3cd94aa672398764e044181008ac273837550fef8670373e8a79db90e
Terms gate
No extra terms beyond the license.

Read the license text

Licenses are checked against the license table. A custom license passes only after a person reads it.

Provenance

From: Vikhrmodels <huggingface.co/Vikhrmodels>Newsgroups: alt.freeweights.textSubject: Vikhr-Nemo-12B-Instruct-R-21-09-24Date: 2026-11-15Commit: 7499757Signed: 2DC28CC7B26A283B ✓
Upstream
Vikhrmodels/Vikhr-Nemo-12B-Instruct-R-21-09-24
Pinned commit
7499757d9f41a2965b0e9db94c976e0982e292b8
Manifest
Vikhr-Nemo-12B-Instruct-R-21-09-24.json · .minisig
Manifest sha256
6479bba6814c7564b7198ea57ca2c4618056f576a51176b3525611b16947ee53
Signature
minisign, Ed25519, key 2DC28CC7B26A283B
Created
2026-11-15 02:32 UTC
Generator
freeweights-manifest/0.1.0
Takedowns
None.

How to verify

$ curl -O https://freeweights.allternit.com/manifests/Vikhrmodels/Vikhr-Nemo-12B-Instruct-R-21-09-24.json $ curl -O https://freeweights.allternit.com/manifests/Vikhrmodels/Vikhr-Nemo-12B-Instruct-R-21-09-24.json.minisig $ minisign -Vm Vikhr-Nemo-12B-Instruct-R-21-09-24.json -P RWQ7KGqyx4zCLXtUFOqvfv8L3g+8fpKJ1FsuxPyOYMF+4KufbUxKq1Oq $ shasum -a 256 <file> # compare with the Files tab

A manifest whose signature fails must be rejected. A file whose size or sha256 does not match must be discarded. Verify a download

Model tree

Parent

mistralai/Mistral-Nemo-Instruct-2407 · this model is a finetune of it

1 model in the catalog name this one as their parent.

Quantizations
1
Get it
Download
$ HF_ENDPOINT=https://freeweights.allternit.com hf download Vikhrmodels/Vikhr-Nemo-12B-Instruct-R-21-09-24
Open in Freeweights Studio

Pull, verify and run it in the Allternit app on Desktop, web or phone.

Signed manifest
minisign, key 2DC28CC7B26A283B. Vikhr-Nemo-12B-Instruct-R-21-09-24.json. Provenance. Takedown history: none.

Variants

1 quantized or adapter build of Vikhr-Nemo-12B-Instruct-R-21-09-24. Each has its own license check and page.

From: laion <huggingface.co/laion>Subject: a2-rl-e2egit_large-50-32B
From: laion <huggingface.co/laion>Subject: a3-rl-DCAgent_exp_rpt_e2egit-large-15-8B
From: laion <huggingface.co/laion>Subject: a3-rl-DCAgent_exp_rpt_e2egit-v2-10-8B
From: laion <huggingface.co/laion>Subject: a3-rl-DCAgent_exp_rpt_pymethods2test-large-80-8B
From: laion <huggingface.co/laion>Subject: a3-rl-DCAgent_exp_rpt_unitsyn-python-large-10-8B
From: laion <huggingface.co/laion>Subject: a3-rl-DCAgent_mix_h2_language_proportional-65-8B