/ Модель

Характеристики

Контекст
1 024 000 токенов
Параметры
12,1 млрд
Размер весов
24,5 ГБ
Лицензия
Apache 2.0
Архитектура
mistral · dense
Базовая модель
Mistral-Nemo-Instruct-2407
Библиотека
transformers
Опубликована
20 сен 2024

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

Генерация текстаТекст → текст15 профессий

Русско-английская дообученная модель Mistral с 12,1 млрд параметров для диалога, генерации текста и ответов по документам в режиме grounded RAG.

50 614скачиваний за 30 дней141лайквеса обновлены25 окт 2024

Бенчмарки

Как модель справилась с задачами пользователей ailist и что о ней публикуют открытые лидерборды

Тесты пользователейпока нет

Никто ещё не опубликовал тест этой модели. Соберите бенчмарк из своих задач — результат появится здесь.

  1. Добавьте модель в бенчмарк

    Вместе с другими моделями категории «Текст» — сравнение идёт внутри одной категории.

  2. Опишите свои задачи

    Напишите запросы, при необходимости приложите файлы и эталонные ответы.

  3. Запустите и опубликуйте

    Модели ответят на каждую задачу, судья оценит ответы. Опубликованный результат появится на этой странице.

Публичные оценки6

Из открытых лидербордов. Сравнивайте результаты одного теста при одинаковых условиях — отсутствие оценки не значит, что модель хуже.

  • MUSR

    MUSR Raw · выше — лучше

    Результат

    0,4073

    Open LLM v2 · архив

    Публичная таблицадругая ревизия

  • GPQA

    GPQA Raw · выше — лучше

    Результат

    0,2911

    Open LLM v2 · архив

    Публичная таблицадругая ревизия

  • MMLU-PRO

    MMLU-PRO Raw · выше — лучше

    Результат

    0,3398

    Open LLM v2 · архив

    Публичная таблицадругая ревизия

  • IFEval

    IFEval Raw · выше — лучше

    Результат

    0,5999

    Open LLM v2 · архив

    Публичная таблицадругая ревизия

  • MATH Lvl 5

    MATH Lvl 5 Raw · выше — лучше

    Результат

    0,1715

    Open LLM v2 · архив

    Публичная таблицадругая ревизия

  • BBH

    BBH Raw · выше — лучше

    Результат

    0,5212

    Open LLM v2 · архив

    Публичная таблицадругая ревизия

Что умеет модель

Описание составлено по карточке модели и метаданным Hugging Face

Vikhr-Nemo-12B-Instruct-R-21-09-24 — русско-английская унимодальная языковая модель команды VikhrModels, дообученная на базе mistralai/Mistral-Nemo-Instruct-2407. Это плотная архитектура Mistral с 12,1 млрд параметров; модель распространяется в формате safetensors и предназначена для генерации текста и диалога. Для обучения использованы этапы SFT и SMPO, а среди обучающих данных — синтетические наборы GrandMaster-PRO-MAX и Grounded-RAG-RU-v2.

Модель подходит для ответов на вопросы, рассуждений, суммаризации, генерации кода и ролевого диалога. Она поддерживает системные промпты и специальный режим grounded RAG для ответов по предоставленным документам, включая поиск идентификаторов релевантных документов. README заявляет контекст до 128 тысяч токенов; в метаданных указано значение 1 024 000 токенов. Практический предел зависит от конфигурации запуска.

К ограничениям относятся низкий уровень безопасности ответов, возможные случайные дефекты генерации при высокой температуре и риск добавления модельных знаний к ответу по документам. Режим grounded RAG требует специального системного промпта; авторы рекомендуют низкую температуру. По оценке авторов на ru-arena-general часть тестовых примеров попала в обучающие данные, поэтому приведённый результат следует интерпретировать с осторожностью. Лицензия — Apache-2.0.

Сценарии применения

  • ответы на вопросы по предоставленным документам
  • поиск релевантных документов для ответа в RAG-системе
  • суммаризация текстов
  • генерация и объяснение кода
  • многоязычный диалог и следование инструкциям
  • создание ролевых ответов

Ограничения

У модели низкий уровень безопасности ответов; при высокой температуре возможны дефекты генерации. Для grounded RAG нужен специальный системный промпт, и модель может дополнять ответы сведениями из собственных знаний; в описанном бенчмарке ru-arena-general часть тестовых примеров утекла в обучение.

Для каких профессий подходит15

Разделы каталога профессий, в задачах которых используется эта модель

Все профессии

Также подходит для

Карточка модели

README от автора на Hugging Face, как он его опубликовал

Открыть на Hugging Face

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 - вопросы которые специально никак не связаны с содержанием предоставленных документов

Как эта модель создавалась

Инструктивная 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}
}

Как запустить

На своей GPU в ailist. Цена — по текущим предложениям провайдеров

GPU в ailist

Универсальный рантайм · transformers

Можно запустить

Подбираем GPU…

Класс архитектуры
MistralForCausalLM
Ревизия весов
7499757

0 моделей