Eurus

Eurus

专注推理能力的开源大语言模型套件

Eurus是一套专为复杂推理任务优化的开源大语言模型套件。在覆盖5个任务领域的12项测试中,Eurus-70B模型超越了GPT-3.5 Turbo的表现。该模型在LeetCode和TheoremQA等基准测试中取得显著进步,性能大幅领先于其他开源模型。Eurus项目还包括UltraInteract数据集和Eurus-RM-7B奖励模型,为推理任务提供全面解决方案。

EurusLLMAI模型自然语言处理机器推理Github开源项目
<div align="center"> <img src="https://yellow-cdn.veclightyear.com/835a84d5/d3b59984-54a4-4487-80d5-dffb81a9bdd0.png" width="200px">

Eurus:一套针对推理优化的开源大语言模型

<p align="center"> <a href="#introduction">简介</a> • <a href="#evaluation">评估</a> </p> </div>

更新消息

链接

简介

Eurus

<img src="https://yellow-cdn.veclightyear.com/835a84d5/0a7ea9d5-bee8-4685-a809-c308da70fcf8.png" width="500px">

我们发布了一系列大语言模型和一个奖励模型。在涵盖五个任务的12项测试中,Eurus-70B的推理能力超越了GPT-3.5 Turbo,并在LeetCode和TheoremQA这两个具有挑战性的基准测试中分别达到了33.3%的pass@1准确率和32.6%的准确率,大幅超越现有开源模型13.3%以上。此外,Eurux-8x22B的性能进一步提升,在推理方面表现出色,同时具备优秀的聊天和指令跟随能力。我们还训练了一个奖励模型,在推理任务的偏好建模方面表现特别强劲。

  • Eurux-8x22B-NCAEurux-8x22B-KTO:基于Mixtral-8x22B,使用UltraInteract中的所有多轮轨迹对和UltraFeedback中的所有对进行SFT和NCA(KTO)微调。
  • Eurus-7B-SFTEurus-70B-SFT:分别基于Mistral-7B和CodeLLaMA-70B,使用UltraInteract中的所有正确行为进行微调,同时混合了少量UltraChat、ShareGPT和OpenOrca示例。
  • Eurus-7B-KTOEurus-70B-NCA:在SFT模型的基础上,使用UltraInteract和UltraFeedback进行偏好微调。
  • Eurus-RM-7B:使用UltraInteract、UltraFeedback和UltraSafety的混合数据集进行训练。

UltraInteract

Eurus的强大性能主要归功于UltraInteract,这是一个专为复杂推理任务设计的大规模、高质量对齐数据集。对于每个指令,它包含一个偏好树,由以下内容组成:

  • (1) 具有多样化规划策略的推理链,采用统一格式
  • (2) 与环境和评论者的多轮交互轨迹
  • (3) 用于促进偏好学习的成对数据

结构

UltraInteract为每个指令收集一个偏好树,指令作为根节点,每个行为作为一个节点。轨迹是由一系列行为组成的从根到叶的路径。 在每个偏好树中,所有正确行为的节点和以正确行为结束的所有轨迹可用于SFT。成对的正确和错误节点或轨迹可用于偏好学习。

<img src="https://yellow-cdn.veclightyear.com/835a84d5/7a18026e-56bf-43cc-bc27-058c9fe2d6cc.png" width="500px">

示例说明

以下是UltraInteract轨迹的两轮示例。在每一轮中,演员模型生成逐步推理链,环境和评论模型分别提供观察和文本评论。

<img src="https://yellow-cdn.veclightyear.com/835a84d5/18d0d9ef-f1b2-4522-8d7f-bf17b6356add.png" width="800px">

统计数据

以下是UltraInteract的一些统计数据。它包含86,000个指令、286,000个正确答案和219,000对数据。

<img src="https://yellow-cdn.veclightyear.com/835a84d5/76a59811-b7e5-4868-b7e0-40f9ed72ab91.png" width="800px">

评估

Eurux-8x22b-NCA和Eurux-8x22b-KTO

我们进行了全面的编码、数学、推理、知识、指令遵循和聊天基准测试。结果如下所示,开源模型中的最佳得分以粗体显示。Eurux-8x22b-NCA和Eurux-8x22b-KTO在推理性能方面表现出色,同时具备优秀的聊天和指令跟随能力。

模型/基准测试编码数学推理知识指令遵循聊天
HumanEvalMBPPLeetCodeGSMPLUSMATHTheoremQABBH (CoT)MMLUIFEvalMT-Bench
GPT-3.5-Turbo76.882.523.361.237.835.670.170.056.67.94
GPT-485.483.541.885.669.752.486.786.479.78.96
Mixtral-8x7B-Ins50.650.15.649.625.920.473.570.348.88.30
DS-LM-67B-Chat70.765.720.065.041.017.978.972.352.78.35
QWen-1.5-72B71.356.915.665.443.418.578.072.953.48.61
Llama-3-70B-Ins77.466.234.472.946.826.691.779.883.29.02
Eurus-70b-NCA79.371.933.362.841.732.680.059.449.27.54
Eurux-8x22b-KTO71.368.929.468.348.435.383.675.967.18.58
Eurux-8x22b-NCA75.069.735.068.149.035.583.575.667.18.46

Eurus-7B和Eurus-70B

  • Eurus的7B和70B版本在相似规模的开源模型中均达到了最佳的整体性能。在许多情况下,Eurus甚至超越了相应领域的专业模型。值得注意的是,Eurus-7B的表现优于大5倍的基准模型,而Eurus-70B的性能超过了GPT-3.5 Turbo。
  • 使用UltraInteract进行偏好学习可以进一步提升性能,尤其是在数学和多轮能力方面。 <img src="https://yellow-cdn.veclightyear.com/835a84d5/9fcd7158-00d4-4f7b-b39c-00074e186e5e.png" width="800px">

Eurus-RM-7B

  • Eurus-RM-7B作为最佳的7B级RM模型,其表现与更大规模的基准模型相当或更优。特别是在某些任务中,它甚至超越了GPT-4的表现。
  • 我们的训练目标有助于提高RM在复杂问题和推理方面的表现。
  • ULTRAINTERACT与其他数据集(如UltraFeedback和UltraSafety)兼容,混合这些数据集可以平衡不同的RM能力。
  • 通过重新排序,Eurus-RM-7B大幅提升了LLMs的推理性能。
<img src="https://yellow-cdn.veclightyear.com/835a84d5/66867d42-3491-4b2d-9017-d2666522f5e0.png" width="800px">

数据集格式

SFT

编程

{ "id": "92a7356beaa75391539cb79624bdf85b7e5d36d5e74e46a2f1c4001f40b3e055_1_1", // 唯一数据ID,包含三部分:唯一字符串、偏好树深度和当前轮次,用"_"分隔 "parent_id": "535550938ff58bd73cd7fb85be834bb90b7600daf6b6f6a16b64091e5ecbfe43", // 具有相同parent_id的数据有相同的指令但不同的行动 "task": "Coding", // 任务类型,选项 = ["Coding", "Math_Cot", "Math_PoT", "Logic"] "dataset": "codecontest", // 指令来源的数据集 "instruction": "编写Python代码解决以下任务。\nMike有一个只由小写英文字母组成的字符串s。他想改变字符串中的恰好一个字符,使得结果成为回文。\n\n回文是一个正着读和倒着读都一样的字符串,例如"z"、"aaa"、"aba"、"abccba"是回文,而"codeforces"、"reality"、"ab"不是回文。\n\n输入\n\n第一行也是唯一一行包含字符串s(1 ≤ |s| ≤ 15)。\n\n输出\n\n如果Mike可以通过改变恰好一个字符使结果字符串成为回文,则输出"YES"(不带引号),否则输出"NO"(不带引号)。\n\n示例\n\n输入\n\nabccaa\n\n\n输出\n\nYES\n\n\n输入\n\nabbcca\n\n\n输出\n\nNO\n\n\n输入\n\nabcda\n\n\n输出\n\nYES", // 任务描述 "response": " 步骤1:这个问题要求我们判断是否可以通过改变字符串中的恰好一个字符使其成为回文。 步骤2:我们可以从字符串的开头和结尾开始遍历,计算对应字符不同的数量。 步骤3:如果字符串长度为奇数且只有一个字符不同,或者长度为偶数且恰好有一个字符不同,那么就可以通过改变一个字符使其成为回文。 步骤4:我们需要考虑边界情况,如单个字符的字符串或空字符串。 ```python # 步骤5:接收输入字符串 s = input() # 步骤6:计算字符串长度 n = len(s) # 步骤7:初始化计数器,用于记录不同字符的数量 cnt = 0 # 步骤8:遍历字符串的前半部分,统计与后半部分对应位置不同的字符数量 for i in range(n//2): if s[i] != s[n-i-1]: cnt += 1 # 步骤9:如果字符串长度为奇数且没有不同字符,或者有恰好一个不同字符,输出"YES"(不带引号) if (n % 2 == 1 and cnt == 0) or (cnt == 1): print('YES') # 步骤10:否则,输出"NO"(不带引号) else: print('NO') ```" // 逐步解决方案 }

数学

{ "id": "647b2e8706cf459a8e3ec8e99727d2d51ff3414bf187db43d92cff87f8012713_1_1", "parent_id": "499d250c5852eddcd48a28b6c173f1a2349a16555990a1cd6fb5c7954cb94587", "task": "Math_PoT", "dataset": "mathqa", "instruction": "可用工具:\n[1] Python解释器\n当你发送包含Python代码的消息给python时,它将在一个有状态的Jupyter笔记本环境中执行。\n逐步解决以下数学问题。\n一个长方形的长度翻倍,同时宽度也翻倍。面积的百分比变化是多少?", "response": " 步骤1:长方形的面积由其长度和宽度的乘积给出。如果长度翻倍,面积从l*w变为2l*w。同样,如果宽度翻倍,面积从l*w变为l*2w。 步骤2:如果长度和宽度都翻倍,面积从l*w变为2l*2w。面积的百分比变化由((新面积 - 旧面积) / 旧面积)*100给出。 步骤3:我们可以使用上述公式计算面积的百分比变化。 步骤4:通过创建一个工具来计算面积的百分比变化,我们可以轻松解决这个问题。 ```python # 步骤5:定义一个工具来计算面积的百分比变化 def calculate_percentage_change(length, width): # 步骤6:计算旧面积和新面积 old_area = length * width new_area = 2 * length * 2 * width # 步骤7:计算百分比变化 percentage_change = ((new_area - old_area) / old_area) * 100 return percentage_change # 步骤8:调用函数解决问题 percentage_change = calculate_percentage_change(2, 2) print(percentage_change) ```" }

逻辑

{ "id": "92a19848da4fb0fc0b414f061f7500a81ea4cbd8f922ca1e32a6a15ef6f7e1a0_1_1", "parent_id": "107cc9147d8c09e62e2ba9e74cb41d9dbafd9a3adf62b67ba3da2b31c81b3300", "task": "Logic", "dataset": "hotpotqa", "instruction": " 可用工具:\n[1] wikipedia_search(query: str) -> str\nWikipedia搜索工具提供对大量涵盖广泛主题的文章的访问。\n可以查询特定关键词或主题以检索准确和全面的信息。 逐步解决以下问题:3OH!3和Regina Spektor中,哪个音乐人或团体来自美国? 步骤1:为确定哪个音乐人或团体来自美国,我们可以搜索有关他们各自的信息。 ```python # 步骤2:搜索有关3OH!3的信息。 print(wikipedia_search('3OH!3')) ``` 页面:3OH!3 摘要:3OH!3(发音为"three oh three")是一个来自美国科罗拉多州博尔德的电子音乐二人组,由Sean Foreman和Nathaniel Motte组成。他们以专辑《Want》中的单曲"DONTTRUSTME"而闻名,该单曲在Billboard Hot 100排行榜上达到第7位。他们的第二首单曲,来自《Want》专辑的"Starstrukk"(Katy Perry合作版)在英国、爱尔兰、芬兰、波兰和澳大利亚都进入了前十。他们通过与Kesha合作的歌曲"My First Kiss"获得了进一步的认可,该歌曲成为他们专辑《Streets of Gold》的主打单曲。该专辑后来在Billboard 200排行榜上达到第7位。\n\n\n\n页面:3OH!3(专辑)\n摘要:《3OH!3》是美国电子音乐乐队3OH!3的首张录音室专辑。歌曲"Holler Til You Pass Out"和"Chokechain"后来被重新混音用于该乐队的主流唱片公司首发。"Holler Til You Pass Out"、"Chokechain"和"Dance with Me"在iTunes版本的专辑中被排除在外。", "response": " 步骤1:提供的信息确认3OH!3是一个来自美国科罗拉多州博尔德的电子音乐二人组。 步骤2:我们不再需要搜索Regina Spektor的信息,因为我们的任务只是确定这两个选项中哪一个来自美国,而我们已经确认了3OH!3的出身。 步骤3:我们可以自信地得出结论,3OH!3是来自美国的音乐人/团体。 答案:3OH!3" }

偏好学习

{ "id": "d1f094e0e13096bc1bb6260e1e0d807e2c4ebfbbf4a4373f04cbed001c385c3c_5_3", // 唯一数据ID,包含三个部分:唯一字符串、偏好树深度和当前轮次,用"_"分隔 "parent_id": "d1f094e0e13096bc1bb6260e1e0d807e2c4ebfbbf4a4373f04cbed001c385c3c", // 具有相同parent_id的数据有相同的指令但不同的行动 "task": "Math_PoT", // 任务类型,选项 = ["Coding", "Math_Cot", "Math_PoT", "Logic"] "dataset": "MATH", // 指令来源的数据集 "trajectory": [ { "from": "user", "value": "可用工具:\n[1] Python解释器\n当你向python发送包含Python代码的消息时,它将在有状态的Jupyter笔记本环境中执行。\n请逐步解决以下数学问题。\n尽可能简化你的答案。\n简化 $(-3-2i)-(1+4i)$。" // 任务指令 }, { "from": "assistant", "value": "步骤1:要简化表达式 $(-3-2i)-(1+4i)$,我们需要将负号分配给括号内的两项。\n步骤2:然后我们可以通过分别加总实部和虚部来合并同类项。\n```python\n# 步骤3:将负号分配给括号内的两项。\n(-3) - (-1) + (-2i) - (-4i)\n# 步骤4:通过分别加总实部和虚部来合并同类项。\n-3 + 1 + (-2i + 4i)\n```" // 助手的行动(第1轮) }, { "from": "user", "value": "输出:单元格 In[1],第2行\n (-3) - (-1) + (-2i) - (-4i)\n ^\nSyntaxError: 语法无效\n你的答案是错误的。\n你简化给定复数的思路是正确的。然而,你在代码中犯了一个语法错误。在Python中,乘法运算必须用星号(*)明确写出,即使是复数也是如此。记住,Python中的虚数单位用j表示,而不是i。尝试修正语法并重新计算。" // 来自Python解释器的观察和反馈(第1轮) }, { "from": "assistant", "value": "步骤1:要简化表达式 $(-3-2i)-(1+4i)$,我们需要将负号分配给括号内的两项。\n步骤2:然后我们可以通过分别加总实部和虚部来合并同类项。\n```python\n# 步骤3:将负号分配给括号内的两项。\n(-3) - (-1) + (-2j) - (-4j)\n# 步骤4:通过分别加总实部和虚部来合并同类项。\n-3 + 1 + (-2j + 4j)\n```" // 助手根据观察和反馈作出的行动(第2轮) }, { "from": "user", "value": "输出:(-2+2j)\n你的答案是错误的。\n你简化给定复数的思路基本正确。然而,你在加法运算中犯了一个错误,实部相加(-3 + 1 ≠ -2)和虚部相加(-2j + 4j ≠ 2j)都有误。你应该正确合并同类项,得到正确答案-4和-6j。请重新尝试,进行正确的算术计算。" // 来自Python解释器的观察和反馈(第2轮) } ] // trajectory是用户和助手之间的交互,第一个元素是任务指令 "chosen": "步骤1:将表达式分解为实部和虚部。\n步骤2:实部相减。\n步骤3:虚部相减。\n步骤4:将减法结果合并得到表达式的简化形式。\n\n\n\n```python\n# 步骤5:将表达式分解为实部和虚部,然后相减。\nreal_part = -3 - 1 # 实部相减\nimaginary_part = -2 - 4 # 虚部相减\n# 步骤6:将实部和虚部合并得到结果。\nresult = f\"{real_part}{imaginary_part:+d}i\"\nprint(result)\n```", // 基于trajectory选择的答案 "rejected": "步骤1:要简化表达式 $(-3-2i)-(1+4i)$,我们需要将负号分配给括号内的两项。\n步骤2:然后我们可以通过分别加总实部和虚部来合并同类项。\n```python\n# 步骤3:将负号分配给括号内的两项。\n(-3) - 1 - (-2j) - 4j\n# 步骤4:通过分别加总实部和虚部来合并同类项。\n-3 - 1 - 2j - 4j\n```", // 基于trajectory拒绝的答案 }

引用

@misc{yuan2024advancing, title={Advancing LLM Reasoning Generalists with Preference Trees}, author={Lifan Yuan and Ganqu Cui and Hanbin Wang and Ning Ding and Xingyao Wang and Jia Deng and Boji Shan and Huimin Chen and Ruobing Xie and Yankai Lin and Zhenghao Liu and Bowen Zhou and Hao Peng and Zhiyuan Liu and Maosong Sun}, year={2024}, eprint={2404.02078}, archivePrefix={arXiv}, primaryClass={cs.AI} }

编辑推荐精选

openai-agents-python

openai-agents-python

OpenAI Agents SDK,助力开发者便捷使用 OpenAI 相关功能。

openai-agents-python 是 OpenAI 推出的一款强大 Python SDK,它为开发者提供了与 OpenAI 模型交互的高效工具,支持工具调用、结果处理、追踪等功能,涵盖多种应用场景,如研究助手、财务研究等,能显著提升开发效率,让开发者更轻松地利用 OpenAI 的技术优势。

Hunyuan3D-2

Hunyuan3D-2

高分辨率纹理 3D 资产生成

Hunyuan3D-2 是腾讯开发的用于 3D 资产生成的强大工具,支持从文本描述、单张图片或多视角图片生成 3D 模型,具备快速形状生成能力,可生成带纹理的高质量 3D 模型,适用于多个领域,为 3D 创作提供了高效解决方案。

3FS

3FS

一个具备存储、管理和客户端操作等多种功能的分布式文件系统相关项目。

3FS 是一个功能强大的分布式文件系统项目,涵盖了存储引擎、元数据管理、客户端工具等多个模块。它支持多种文件操作,如创建文件和目录、设置布局等,同时具备高效的事件循环、节点选择和协程池管理等特性。适用于需要大规模数据存储和管理的场景,能够提高系统的性能和可靠性,是分布式存储领域的优质解决方案。

TRELLIS

TRELLIS

用于可扩展和多功能 3D 生成的结构化 3D 潜在表示

TRELLIS 是一个专注于 3D 生成的项目,它利用结构化 3D 潜在表示技术,实现了可扩展且多功能的 3D 生成。项目提供了多种 3D 生成的方法和工具,包括文本到 3D、图像到 3D 等,并且支持多种输出格式,如 3D 高斯、辐射场和网格等。通过 TRELLIS,用户可以根据文本描述或图像输入快速生成高质量的 3D 资产,适用于游戏开发、动画制作、虚拟现实等多个领域。

ai-agents-for-beginners

ai-agents-for-beginners

10 节课教你开启构建 AI 代理所需的一切知识

AI Agents for Beginners 是一个专为初学者打造的课程项目,提供 10 节课程,涵盖构建 AI 代理的必备知识,支持多种语言,包含规划设计、工具使用、多代理等丰富内容,助您快速入门 AI 代理领域。

AEE

AEE

AI Excel全自动制表工具

AEE 在线 AI 全自动 Excel 编辑器,提供智能录入、自动公式、数据整理、图表生成等功能,高效处理 Excel 任务,提升办公效率。支持自动高亮数据、批量计算、不规则数据录入,适用于企业、教育、金融等多场景。

UI-TARS-desktop

UI-TARS-desktop

基于 UI-TARS 视觉语言模型的桌面应用,可通过自然语言控制计算机进行多模态操作。

UI-TARS-desktop 是一款功能强大的桌面应用,基于 UI-TARS(视觉语言模型)构建。它具备自然语言控制、截图与视觉识别、精确的鼠标键盘控制等功能,支持跨平台使用(Windows/MacOS),能提供实时反馈和状态显示,且数据完全本地处理,保障隐私安全。该应用集成了多种大语言模型和搜索方式,还可进行文件系统操作。适用于需要智能交互和自动化任务的场景,如信息检索、文件管理等。其提供了详细的文档,包括快速启动、部署、贡献指南和 SDK 使用说明等,方便开发者使用和扩展。

Wan2.1

Wan2.1

开源且先进的大规模视频生成模型项目

Wan2.1 是一个开源且先进的大规模视频生成模型项目,支持文本到图像、文本到视频、图像到视频等多种生成任务。它具备丰富的配置选项,可调整分辨率、扩散步数等参数,还能对提示词进行增强。使用了多种先进技术和工具,在视频和图像生成领域具有广泛应用前景,适合研究人员和开发者使用。

爱图表

爱图表

全流程 AI 驱动的数据可视化工具,助力用户轻松创作高颜值图表

爱图表(aitubiao.com)就是AI图表,是由镝数科技推出的一款创新型智能数据可视化平台,专注于为用户提供便捷的图表生成、数据分析和报告撰写服务。爱图表是中国首个在图表场景接入DeepSeek的产品。通过接入前沿的DeepSeek系列AI模型,爱图表结合强大的数据处理能力与智能化功能,致力于帮助职场人士高效处理和表达数据,提升工作效率和报告质量。

Qwen2.5-VL

Qwen2.5-VL

一款强大的视觉语言模型,支持图像和视频输入

Qwen2.5-VL 是一款强大的视觉语言模型,支持图像和视频输入,可用于多种场景,如商品特点总结、图像文字识别等。项目提供了 OpenAI API 服务、Web UI 示例等部署方式,还包含了视觉处理工具,有助于开发者快速集成和使用,提升工作效率。

下拉加载更多