license: other
license_name: 通义千问许可协议
license_link: https://github.com/QwenLM/Qwen/blob/main/Tongyi%20Qianwen%20LICENSE%20AGREEMENT
base_model: moreh/MoMo-72B-lora-1.8.7-DPO


史矛革降临!
我们最新发布的Smaug-72B-v0.1模型登顶HuggingFace开放大语言模型排行榜,成为首个平均分突破80%的开源模型。
Smaug-72B直接基于moreh/MoMo-72B-lora-1.8.7-DPO微调,其基础架构源自Qwen-72B。
我们采用创新的DPO-Positive(DPOP)微调技术,结合新构建的ARC、HellaSwag和MetaMath成对偏好数据集(及其他现有数据集)训练出Smaug-72B-v0.1。技术细节详见论文:https://arxiv.org/abs/2402.13228。
研究发现:在完成文本编辑距离较小的场景(如数学数据集)中,标准DPO损失函数可能导致模型对优选样本的绝对概率下降——尽管正负样本的相对概率差仍在扩大。基于此,我们设计了能规避该缺陷的DPOP损失函数及训练流程。令人惊讶的是,DPOP在各类数据集和下游任务中均优于DPO,包括高编辑距离场景。
我们相信这项新技术能广泛应用于各类模型训练,所有Smaug系列模型都受益于此。随着论文和数据集的公开,期待开源社区能持续优化Smaug,孵化更多"巨龙"主导LLM领域!
评估结果
平均分 |
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系统提示词,单模型模式下获得如下成绩:
文末展示了模型的部分应答样本,包含GPT-4评估给出的高分和低分案例。
数据污染检测
使用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 |
注:GSM8K在该检测体系中普遍呈现高值,Llama-2-70B的检测结果佐证了这一现象:
ARC |
TruthfulQA |
GSM8K |
0.22 |
0.51 |
0.89 |
MT Bench应答示例
示例1
问题
假设你要撰写比较两款热门智能手机的博客文章,请用不超过200字拟定包含关键点和子标题的提纲,有效对比两款机型的功能、性能和用户体验。
回答
提纲:
- 机型简介(注明品牌和型号)
- 设计与做工
- 尺寸、重量、材质及整体美感对比
- 防水防尘等级(如适用)
- 屏幕素质
- 显示技术对比(OLED/IPS LCD等)
- 分辨率、刷新率与亮度水平
- 性能配置
- 处理器、内存和存储组合
- 跑分对比(如安兔兔、Geekbench)
- 摄像系统
- 主摄/超广角/长焦/微距镜头对比
- 暗光表现与图像处理能力
- 续航充电
- 电池容量与预估使用时长
- 快充/无线充/反向充电技术
- 系统体验
- iOS与安卓系统特性对比
- UI设计、自定义功能与应用生态
- 特色功能
- 生物识别方案(指纹/面容)
- NFC/5G/音质等附加功能
- 价格策略
- 购买建议(根据用户需求推荐)
示例2
问题
某高中调查显示:58%学生喜欢蓝色,45%偏爱绿色,22%同时喜欢这两种颜色。随机抽取一名学生,求其既不喜欢蓝色也不喜欢绿色的概率。
解答
计算步骤如下:
已知:
- P(蓝)=58%
- P(绿)=45%
- P(蓝∩绿)=22%
根据容斥原理:
P(蓝∪绿) = P(蓝)+P(绿)-P(蓝∩绿) = 58%+45%-22% = 83%
因此不喜欢任何颜色的概率:
P(非蓝∩非绿) = 100% - P(蓝∪绿) = 17%
最终答案为17%。
示例3
问题
编写不借助额外数据结构找出两个数组共同元素的程序。
解答
def find_common_elements(arr1, arr2):
common = []
for num in arr1:
if num in arr2 and num not in common:
common.append(num)
return common
array1 = [1, 2, 3, 4, 5]
array2 = [4, 5, 6, 7, 8]
print(find_common_elements(array1, array2))
该算法遍历第一个数组,检查元素是否存在于第二个数组且未被记录,最后返回交集列表。
示例4
问题
从下列新闻提取人名、组织名和地名,按类型生成JSON字典:
(新闻内容略)
回答
{
"人名": ["亚当森·埃默森", "迪特·蔡澈", "赫伯特·迪斯"],
"组织": ["法拉第", "戴姆勒集团", "大众汽车"],
"地点": ["柏林", "欧洲"]
}
引用规范
使用本仓库资源时请引用:
@article{pal2024smaug,
title={Smaug: 基于DPO-Positive优化偏好学习},
author={帕尔, 阿尔卡 and 卡尔卡尼斯, 迪普 and 杜利, 塞缪尔 and 罗伯茨, 曼利 and 奈杜, 西达尔塔 and 怀特, 科林},
journal={arXiv预印本 arXiv:2402.13228},
year={2024}
}