Vikhrmodels 发布俄英版Nemo——Vikhr-Nemo-12B-Instruct-R-21-09-24

Vikhr-Nemo 是我们的旗舰单模态 LLM(大语言模型),它是 VikhrModels 团队对 mistralai/Mistral-Nemo-Instruct-2407 的改进版本,主要适用于俄语和英语。 在训练过程中,我们使用了多个阶段,包括 SFT 和 SMPO(我们自己的 DPO 变体),更多信息请参阅 "如何创建该模型 "部分。

该模型针对各种使用情况进行了优化,包括标音、摘要、代码、角色扮演和对话维护。 Vikhr-Nemo 具有多语言生成功能和高性能 RAG 功能。 该模型在我们的教学和 RAG 基准测试中取得了最佳成绩,因此我们相信它在某些任务(如 RAG)中的表现不亚于 OpenAI 的 gpt-4o-mini。

所有使用的训练代码都可以在 GitHub 上的 effective_llm_alignment 代码库中找到,主要数据集可以在 HF 上的个人资料中找到。

特点

  1. 得益于 Grandmaster-PRO-MAX 数据集和原始模型,可生成高质量的俄语、英语和其他语言版本
  2. 支持调整回复风格的系统选项
  3. 借助源模型,最多可支持 128k 个上下文标记
  4. Grounded RAG 模式–受 Command-R 模型类似功能的启发,该模型具有特殊的文档角色和特殊的操作模式,可查找与用户问题相关的文档标识符,并利用它们来回答问题

指标和质量评估

该模型在俄语开源 SbS 基准 ru-arena-general (50 个主题,每个主题 10 个问题)和基于 Grounded-RAG-v2 测试集的 RAG 基准上进行了评估,前者的评判者是 gpt-4-1106-preview,后者的评判者是 gpt-4o。

Ru-Arena-General 上的结果

作为比较模型的参考答案,使用了 gpt-3.5-turbo-0125 中的答案,因此它的胜率为 50%。

这只是排行榜的一部分,更多详情请查看基准软件库。

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-2479.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 个,域外问题 100 个。

在此,为进行质量评估,指示模范评委 gpt-4o 根据文件和 gpt-4-1106-preview 的参考答案来考虑答案的相关性和事实完整性。

有关提示和分数的详细信息,请参阅 collab 上的基准代码。

in_domain–与所提交文件的内容有一定关系的问题 out_of_domain–与所提交文件的内容没有具体关系的问题。

question_typegpt-4o
judge_correct_percentavg_answer_match_rougeLavg_abs_indexes_diff
in_domain73%0.34NaN
out_of_domain81%0.20NaN
question_typeVikhr-Nemo-12B-Instruct-R-21-09-24
judge_correct_percentavg_answer_match_rougeLavg_abs_indexes_diff
in_domain68%0.410
out_of_domain92%0.520
question_typegpt-4o-mini
judge_correct_percentavg_answer_match_rougeLavg_abs_indexes_diff
in_domain65%0.33NaN
out_of_domain73%0.18NaN
question_typegpt-3.5-turbo-0125
judge_correct_percentavg_answer_match_rougeLavg_abs_indexes_diff
in_domain49%0.28NaN
out_of_domain76%0.20NaN

该模型是如何创建的

指导性 SFT 部分

在模型训练的 SFT 阶段,我们准备了一个大型(15 万条指令)教学合成数据集 Vikhrmodels/GrandMaster-PRO-MAX。 该数据集的特点是内嵌 CoT(Chain-Of-Thought,思维链),为了收集该数据集,我们使用了 gpt-4-turbo 的修改版 promet,详情请参见数据集卡片。

此外,为了制作 RAG Grounding,我们还准备了另一个合成数据集–Vikhrmodels/Grounded-RAG-RU-v2(50k 对话)。

与 SMPO 为进一步提高答复的质量。

进一步提高响应质量 、 我们 使用了以下 管道 :

  1. 我们训练了一个自定义奖励模型(暂不公开)
  2. 使用 RM 模型对原始 Vikhrmodels/GrandMaster-PRO-MAX 数据集进行了重复和过滤,获得了约 10k 个质量最高、最多样化的对话。
  3. 我们使用接收到的数据集和奖励模型进行了带有 SFT 检查点的拒绝采样。(我们生成了 7 个假设,只将最差的 2 个假设作为拒绝假设)
  4. 我们使用 SMPO 方法,使用第 3 阶段生成的数据集进一步训练了 SFT 检查点。SMPO 的设计和选择是为了在拒绝采样条件下提高偏好训练的稳定性,并达到所需的余量。

SMPP、剔除采样等功能的实现可在 GitHub 上的 efficie_lm_alignment 库中找到

使用 SMP 而不是其他 PO 方法的想法是在使用经典方法进行大量实验后产生的,必要时可以更好地控制收敛过程。如果仔细配置其他方法(例如 SimPO),也能获得类似的结果,但我们试图简化这一过程,并结合其他方法的最佳实践。

如何使用 RAG

文档角色是描述文档内容的字典列表,使用 json.dumps(array,ensure_ascii=False)(见下面的示例)。 文档内容可以用 3 种不同的格式表示:Markdown、HTML 和纯文本。 每个文档内容都可以是长度不超过 4k 字符的文本块。

[{"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.contentprint('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.contentprint(final_answer)

执行代码后的响应将如下所示:

Using documents: {"relevant_doc_ids": [0, 1]}
----Глобальное потепление – это долгосрочное повышение средней температуры атмосферы и океанов Земли. Это явление имеет множество последствий для нашей планеты, и среди них можно выделить два ключевых аспекта, основанных на доступных мне данных:1. **Уменьшение объема ледников**: За последние 50 лет наблюдается значительное сокращение объема ледников по всему миру. Согласно данным, объем ледников уменьшился на 30%. Это может быть связано с таянием ледников из-за повышения температур, что является одним из признаков глобального потепления.2. **Повышение уровня моря**: Уровень мирового океана также увеличивается, что связано с таянием ледников и ледяных покровов, а также с расширением воды при повышении температуры. С 1880 года уровень моря повысился на 20 сантиметров, и этот процесс продолжается, с ежегодным увеличением на 3,3 миллиметра.Эти изменения имеют серьезные последствия для экосистем, климата и человеческого общества. Таяние ледников приводит к повышению уровня моря, что может привести к затоплению прибрежных территорий и островов, а также к изменению водных ресурсов и климатических паттернов.

通过使用 relevant_indexes(JSON)模型的第一个响应,我们可以了解该模型是否在文档中找到了信息,该模型经过训练,如果信息不存在,就会返回一个空数组,在这种情况下,它将响应无法在知识库中找到信息(在生成第二个响应时)。

细微差别和局限性

  • 该模型的响应安全级别较低,旨在确保正确、完整地执行指令,因此在使用时要注意这一点,并亲自进行测试。 系统提示和用户提示中的额外安全考虑因素部分弥补了这一不足。
  • 系统提示并非用于字符描述,我们建议将其用于答案样式规范(如 “答案只能是 json 格式”)。 此外,最好用英文书写,因为在数据集中,系统提示中英文的使用并不取决于答案的语言。
  • RAG 模式需要使用 GROUNDED_SYSTEM_PROMPT 系统提示,详情请参见 如何使用 RAG 部分。 此外,有时模型还可以根据文档中的内容添加其知识中的一般信息。
  • 最好使用低温模型(0.1-0.5),同时使用 top_k(30-50),在temperature 为 1.0 时会发现随机生成缺陷。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/1548931.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

Vue devtools 插件

一、安装 去这下载https://chrome.zzzmh.cn/ 打开chrome的扩展程序 再打开开发模式 把刚才下载的拖到这里 然后把它固定到工具栏 就是这样了。 二、使用 程序通过open on live server后&#xff0c;打开开发者工具&#xff0c;找到vue就可以了。 这是代码 <div id"ap…

【Redis 源码】3dict字典数据结构

1 数据结构说明 dictionary数据结构&#xff0c;也称为哈希表&#xff08;hash table&#xff09;。用于存储字典。哈希是一个键值对的集合&#xff0c;每个键都是唯一的并与一个值相关联。字典的设计旨在提供高效的查找、插入和删除操作。 2 核心数据结构 hash 的数据结构定…

腾讯云SDK基本概念

本文旨在介绍您在使用音视频终端 SDK&#xff08;腾讯云视立方&#xff09;产品过程中可能会涉及到的基本概念。 音视频终端 SDK&#xff08;腾讯云视立方&#xff09; 应用 音视频终端 SDK&#xff08;腾讯云视立方&#xff09;通过应用的形式来管理您的项目&#xff08;Ap…

LabVIEW提高开发效率技巧----合理管理程序架构

在LabVIEW开发中&#xff0c;合理管理程序架构是保持项目可维护性和扩展性的关键。随着项目复杂度的增加&#xff0c;良好的架构设计可以避免代码混乱&#xff0c;并且便于后期的修改和扩展。以下是两种常见且有效的架构管理方式&#xff1a; 1. 面向对象编程&#xff08;OOP&a…

初识Tomcat

Tomcat是一款可以运行javaWebAPP的服务器软件。 一个服务器想要执行java代码&#xff0c;则需要JRE&#xff08;jvm、java运行环境等&#xff09;&#xff0c;但是需要执行javaWEB项目则还需要服务器软件&#xff0c;Tomacat就是其中很流行的一款。因为一个javaWEB项目会有很多…

USB2.0主机设备检测过程以及信号分析

一&#xff0c;USB协议发展 USB接口自1994年推出以来&#xff0c;经过30年的发展&#xff0c;从USB1.0发展到了现在的USB4.0&#xff0c;传输速率也从最开始的1.5Mbps&#xff0c;大幅提高到了最新的40Gbps。 USB协议按照速度等级和连接方式分可分为7个版本&#xff0c;但是从…

JAVAEE如何实现网页(jsp)间的数据传输?一文总结

刚刚接触到JAVAEE的WEB开发&#xff0c;解释不周的地方希望感谢指正&#xff01;&#xff01;&#xff01; 情景如下&#xff1a; 我的使用是21版的IDEA&#xff0c;9.03版本的tomcat&#xff0c;来做一个示范。 构建项目 点击下一步 -> 完成&#xff0c;等待项目构建结束…

Trie树之字符串统计问题

这是C算法基础-数据结构专栏的第二十七篇文章&#xff0c;专栏详情请见此处。 引入 Trie树&#xff0c;即字典树&#xff0c;顾名思义&#xff0c;就是用类似字典的方式存储数据&#xff0c;而Trie树最经典也是最简单的一个应用就是字符串统计问题。 字符串统计问题就是维护一个…

华为玄玑感知系统震撼发布:智能穿戴新品引领情绪健康新纪元

在科技日新月异的今天&#xff0c;华为再次以其卓越的创新能力&#xff0c;为智能穿戴领域带来了一场革命性的变革。 8月28日&#xff0c;华为玄玑感知系统暨穿戴创新技术发布会圆满落幕&#xff0c;会上正式揭晓了这款名为“玄玑”的神秘感知系统&#xff0c;预示着穿戴设备将…

element 中 v-loading 更改icon颜色、字体颜色

文章目录 问题分析 问题 如下图&#xff0c;由于背景的原因&#xff0c;可以看出展示的文字不是很清楚&#xff0c;因此需要自定义一下文字字体大小和文字颜色。像图二一样 分析 找到对应的class。然后直接修改即可 话不多说&#xff0c;直接上代码 ::v-deep {.el-loading…

Linux开源网络:高性能数据平面

数据平面的性能在很大程度上取决于网络 I/O 的性能&#xff0c;而网络数据包从网卡到用户空间的应用程序需要经历多个阶段&#xff0c;本文从数据平面基础到NFV&#xff0c;NFC基础设施再到OVS-DPDK VPP进行概论上的描述。 部分内容来源于《Linux开源网络全栈详解&#xff1a;从…

008——树

目录 树&#xff1a; 相关概念&#xff1a; 1.结点&#xff1a; 结点和结点之间的关系 2.度 3.n叉树 4.高度/深度 5.有序树和无序树 6.空树&#xff1a; 树的存储结构/表示方法&#xff1a; 树中都需要存储什么&#xff1f; 1.双亲表示法 2.孩子表示法 可以将上面…

MySQL之基础篇

数据库操作 1.查看当前的数据库版本 select version(); 2.显示所有数据库 show databases; 3.创建数据库 create [if not exists] database 数据库名 character set 字符编码集 collate 排序规则&#xff1b; 我们这里提前说一下 被方括号括起来的代码 表示可写可不写 示例…

Linux 安装redis主从模式+哨兵模式3台节点

下载 https://download.redis.io/releases/ 解压 tar -zxvf redis-7.2.4.tar.gz -C /opt chmod 777 -R /opt/redis-7.2.4/安装 # 编译 make # 安装&#xff0c; 一定是大写PREFIX make PREFIX/opt/redis-7.2.4/redis/ install配置为系统服务 cd /etc/systemd/system/主服务…

spring揭秘24-springmvc02-5个重要组件

文章目录 【README】【1】HanderMapping-处理器映射容器【1.1】HanderMapping实现类【1.1.1】SimpleUrlHandlerMapping 【2】Controller&#xff08;二级控制器&#xff09;【2.1】AbstractController抽象控制器&#xff08;控制器基类&#xff09; 【3】ModelAndView(模型与视…

从零开始搭建UVM平台(三)-加入objection机制

书接上回&#xff1a; 从零开始搭建UVM平台&#xff08;一&#xff09;-只有uvm_driver的验证平台 从零开始搭建UVM平台&#xff08;二&#xff09;-加入factory机制 加入objection机制 需要在第一个消耗仿真时间语句前raise_objection&#xff0c;最后再drop_objection&…

【微服务即时通讯系统】——etcd一致性键值存储系统、etcd的介绍、etcd的安装、etcd使用和功能测试

文章目录 etcd1. etcd的介绍1.1 etcd的概念 2. etcd的安装2.1 安装etcd2.2 安装etcd客户端C/C开发库 3. etcd使用3.1 etcd接口介绍 4. etcd使用测试4.1 原生接口使用测试4.2 封装etcd使用测试 etcd 1. etcd的介绍 1.1 etcd的概念 Etcd 是一个基于GO实现的 分布式、高可用、一致…

2024年7月大众点评武汉餐饮美食店铺基础信息

在做一些城市分析、学术研究分析、商业选址、商业布局分析等数据分析挖掘时&#xff0c;大众点评的数据参考价值非常大&#xff0c;截至2024年7月&#xff0c;大众点评美食店铺剔除了暂停营业、停止营业后的最新数据情况分析如下。 武汉餐饮美食店铺约9.6万家&#xff0c;有均…

实验1.2 熟悉VRP基本操作

实验1.2 熟悉VRP基本操作 原理概述 VRP&#xff08;Versatile Routing Platform&#xff0c;通用路由平台&#xff09;是华为公司数据通信产品的通用网络操作系统平台&#xff0c;拥有一致的网络界面、用户界面和管理界面。在VRP操作系统中&#xff0c;用户通过命令行对设备下…

Kettle9连接mysql8.0.36失败处理

一、问题描述 kettle作为数据转换同步的工具&#xff0c;使用java开发&#xff0c;连接数据库使用jar的驱动包&#xff0c;比如oracle连接使用ojdbc8.jar&#xff0c;mysql连接使用mysql-connect-java-8.0.*,但是截止目前mysql8.0.33到8.0.36在官网是没有mysql驱动包的&#x…