🚀 史矛革(Smaug)模型 - 72B-v0.1版本
史矛革(Smaug)模型72B-v0.1版本震撼登场!它在HuggingFace的开源大语言模型排行榜上拔得头筹,是首个平均得分超过80%的开源模型。该模型直接基于moreh/MoMo-72B-lora-1.8.7-DPO进行微调,最终基于Qwen-72B构建。

🚀 快速开始
本项目发布了Smaug-72B-v0.1模型,它采用了全新的微调技术DPO-Positive(DPOP),结合ARC、HellaSwag和MetaMath等数据集的新成对偏好版本进行训练。相关技术和完整训练细节可参考我们的新论文:https://arxiv.org/abs/2402.13228。
✨ 主要特性
- 创新微调技术:使用DPO-Positive(DPOP)损失函数和训练过程,避免了标准DPO损失在某些数据集上的失效模式,在多种数据集和下游任务中表现优于DPO。
- 优异性能表现:在多个评估基准测试中取得了出色的成绩,平均得分超过80%,在多个单项测试中也名列前茅。
- 广泛适用性:新方法适用于多种模型类型和下游用例,为模型训练提供了更有效的解决方案。
📚 详细文档
评估结果
平均得分 |
ARC |
HellaSwag |
MMLU |
TruthfulQA |
Winogrande |
GSM8K |
80.48 |
76.02 |
89.27 |
77.15 |
76.67 |
85.08 |
78.70 |
MT-Bench测试
使用llama-2对话模板和Qwen系统提示进行MT-Bench测试,单模型模式下的结果如下:
第一轮得分 |
第二轮得分 |
平均得分 |
8.18 |
7.34 |
7.76 |
污染结果
使用https://github.com/swj0419/detect-pretrain-code-contamination/tree/master工具,以Llama7B为参考模型,对Smaug-72B进行污染检测,结果如下:
ARC |
TruthfulQA |
GSM8K |
0.20 |
0.45 |
1.00 |
对比模型MoMo-72B-lora-1.8.7-DPO的污染检测结果:
ARC |
TruthfulQA |
GSM8K |
0.20 |
0.39 |
1.00 |
同时,对Llama-2-70B进行检测的结果如下:
ARC |
TruthfulQA |
GSM8K |
0.22 |
0.51 |
0.89 |
样本MT Bench结果
示例1
问题:假设你正在撰写一篇比较两款热门智能手机型号的博客文章。为该博客文章制定一个大纲,包括关键点和副标题,以便有效地比较和对比这两款型号的功能、性能和用户体验。请用少于200个单词回答。
回答:
大纲:
- 介绍要比较的两款智能手机型号(提及品牌名称和型号)
- 设计与制造质量
- 比较尺寸、重量、使用的材料和整体美学吸引力
- 如有适用,比较防水防尘性能
- 显示屏和屏幕质量
- 比较屏幕技术(OLED、IPS LCD等)
- 比较显示分辨率、刷新率和亮度级别
- 性能和硬件
- 处理器、RAM和存储配置
- 比较基准测试分数(如安兔兔、Geekbench)
- 摄像头系统和图像质量
- 比较主镜头、超广角镜头、长焦镜头和微距镜头(如果有)
- 比较低光性能和图像处理能力
- 电池续航和充电
- 电池容量和估计使用时间
- 充电技术(有线、无线、快速充电、反向充电)
- 软件和用户体验
- 比较操作系统(iOS与Android)及其功能
- 用户界面、定制选项和应用生态系统
- 附加功能和额外特性
- 比较生物识别认证(指纹、面部解锁等)
- 额外功能如NFC、5G连接和音频质量
- 价格和性价比
- 结论和根据潜在买家的偏好提供的建议
示例2
问题:在当地一所高中进行的一项调查中,对新学校颜色的偏好进行了测量:58%的学生喜欢蓝色,45%的学生喜欢绿色,22%的学生两种颜色都喜欢。如果我们从学校中随机挑选一名学生,那么该学生既不喜欢蓝色也不喜欢绿色的概率是多少?
回答:要找到随机挑选的学生既不喜欢蓝色也不喜欢绿色的概率,我们需要找到只喜欢一种颜色或两种颜色都不喜欢的学生的百分比。
根据给定信息,我们知道:
- 58%的学生喜欢蓝色
- 45%的学生喜欢绿色
- 22%的学生两种颜色都喜欢
要找到只喜欢一种颜色的学生的百分比,我们可以从喜欢蓝色和绿色的学生的总和中减去两种颜色都喜欢的学生的百分比:
- 58%(蓝色)+ 45%(绿色)- 22%(两种颜色都喜欢)= 83%
现在,要找到学生既不喜欢蓝色也不喜欢绿色的概率,我们从100%中减去至少喜欢一种颜色的学生的百分比:
- 100% - 83% = 17%
所以,随机挑选的学生既不喜欢蓝色也不喜欢绿色的概率是17%。
示例3
问题:实现一个程序,在不使用任何额外数据结构的情况下,找出两个数组中的公共元素。
回答:在不使用额外数据结构的情况下找出两个数组中的公共元素,可以通过一个简单的算法来实现。以下是这个问题的Python实现:
def find_common_elements(arr1, arr2):
common_elements = []
for num1 in arr1:
if num1 in arr2 and num1 not in common_elements:
common_elements.append(num1)
return common_elements
array1 = [1, 2, 3, 4, 5]
array2 = [4, 5, 6, 7, 8]
print(find_common_elements(array1, array2))
这个程序遍历第一个数组(arr1)的元素,并检查每个元素是否存在于第二个数组(arr2)中。如果存在,并且该元素尚未添加到common_elements列表中,则将其添加。然后,该函数返回公共元素列表。
示例4
问题:识别给定新闻文章中提到的命名实体(人物、组织、地点)。请生成一个JSON字典,根据实体类型将命名实体分为三组列出。键是实体类型,值是字符串列表。
昨天,法拉第(Faraday)首席执行官亚当森·爱默生(Adamson Emerson)和戴姆勒(Daimler AG)首席执行官迪特尔·蔡澈(Dieter Zetsche)宣布计划在柏林建造一座新的超级工厂。该工厂将是法拉第和戴姆勒的合资企业,为两家公司生产电动汽车和电池组,为该地区创造数千个就业机会。爱默生和蔡澈表示,柏林的战略位置,加上其熟练的劳动力和强大的基础设施,使其成为扩张的理想选择。新的超级工厂旨在满足欧洲对电动汽车不断增长的需求,并为可持续未来做出贡献。大众汽车(Volkswagen)首席执行官赫伯特·迪斯(Herbert Diess)对这一消息表示欢迎,称更多的合作将有利于汽车行业向电动出行的转型。
回答:
{
"people": ["Adamson Emerson", "Dieter Zetsche", "Herbert Diess"],
"organizations": ["Faraday", "Daimler AG", "Volkswagen"],
"locations": ["Berlin", "Europe"]
}
🔧 技术细节
在编辑距离较小的数据集(如基于数学的数据集)中,标准DPO损失可能导致模型对首选示例的似然性降低,只要首选和非首选类之间的相对概率增加。基于这些见解,我们设计了DPOP,一种新的损失函数和训练过程,避免了这种失效模式。令人惊讶的是,我们还发现DPOP在各种数据集和下游任务中都优于DPO,包括完成之间编辑距离较大的数据集。
📄 许可证
本项目使用其他许可证,具体名称为tongyi-qianwen-license-agreement。
📖 引用
如果您使用了本仓库中的数据、模型或方法,请引用以下论文:
@article{pal2024smaug,
title={Smaug: Fixing Failure Modes of Preference Optimisation with DPO-Positive},
author={Pal, Arka and Karkhanis, Deep and Dooley, Samuel and Roberts, Manley and Naidu, Siddartha and White, Colin},
journal={arXiv preprint arXiv:2402.13228},
year={2024}
}