新闻
- ❗️❗️ 2023年9月26日:发布大规模、细粒度、多样化的偏好数据集 UltraFeedback,新的语言模型 UltraLM-13B-v2.0,奖励模型 UltraRM 和评论模型 UltraCM。
- ❗️❗️ 使用 UltraRM,简单的16次采样中最佳结果可对 text-davinci-003 在 AlpacaEval 基准测试 中达到 92.30%(UltraLM2,🥇 在 13B 结果中)和 91.54%(UltraLM,🥇 在 LLaMA-1 结果中)的胜率。
- 2023年8月7日:发布首个 UltraLM-65B 版本。
- 2023年6月28日:UltraLM-13B 在 AlpacaEval 排行榜 上位列开源模型第一位!
- 2023年6月27日:发布首个 UltraLM-13B 版本,这是一个基于 UltraChat 训练的强大聊天语言模型!
- 2023年4月20日:发布所有数据,预计会有更多处理和附加数据。
- 2023年4月17日:发布写作和创作部分的其余数据(45.7万条)。
- 2023年4月12日:发布写作和创作部分的第一部分数据。
- 2023年4月9日:由 gpt4all 提供支持,我们现在也有一个 Atlas 浏览器
- 2023年4月8日:发布GPT-J训练脚本。
- 2023年4月7日:发布世界问题部分的第二部分数据,包含290k生成的多轮对话。
- 2023年3月31日:发布世界问题部分的第一部分数据,包含280k生成的多轮对话。
UltraLM
UltraLM 是在 UltraChat 上训练的一系列聊天语言模型。目前,我们已经发布了13B版本,在 AlpacaEval 排行榜 (2023年6月28日)上的开源模型中排名 第一,在所有模型中排名 第四。 UltraLM-13B 基于 LLaMA-13B,并在训练过程中得到了 BMTrain 的支持。
下载
模型 | 链接 | 版本 |
---|---|---|
UltraLM-13B | Huggingface 仓库 | v1.0 |
UltraLM-65B | Huggingface 仓库 | v1.0 |
UltraLM-13B | Huggingface 仓库 | v2.0 |
UltraRM-13B | Huggingface 仓库 | v1.0 |
UltraCM-13B | Huggingface 仓库 | v1.0 |
使用 UltraLM
- 要重构 UltraLM,请下载 LLaMA-13B 和我们的 Delta 权重。如果您想测试 UltraLM,请使用此 链接,我们尚未评估由第三方提供的其他权重。
- 运行
/UltraLM/recover.sh
中的脚本以获得重构模型的最终权重。 - 在获得重构模型后,替换
/UltraLM/chat_cli.sh
中的模型路径为您的路径并运行以开始聊天!
注意:不同的超参数或系统提示会影响输出结果。您可以参照 /UltraLM/inference_cli.py
中的默认设置。
性能
我们在本节中报告三个评估:斯坦福的 Alpaca-Eval,微软 WizardLM 的 Evol-instruct,以及我们精心设计的评估集。 现代 LLM 的评估可能会有偏见并受到许多因素的影响,我们也在积极研究更全面的评估方法。
Alpaca-Eval
AlpacaEval 是专为评估 LLM 而设计的排行榜。该排行榜基于对 Text-Davinci-003 的胜率,由 GPT-4 自动评估。
Evol-instruct
该数据集通过多轮重写指令以获得不同复杂程度的指令,采用进化策略构建。该基准测试由 WizardLM 项目 开发,是另一个优秀的聊天语言模型!
我们的评估集
我们制定了一个评估集,涵盖 Vicuna 基准 以及由 GPT-4 生成的额外300个问题和指令。问题/指令涵盖了广泛的主题,包括常识、世界知识、专业知识(特别是物理和生物学)、数学以及不同难度级别的写作任务。我们使用 GPT-4 进行评估。此处是数据集 链接。
UltraLM 示例
-
示例 A: 常识问题
用户: 哪种动物被称为人类的好朋友?
UltraLM: 有许多动物被人类视为伴侣动物,但要回答“哪种动物被称为人类的好朋友”这一问题,绝对出色的答案是家养的狗。家养的狗已经伴随人类数万年,为人类提供忠实的陪伴和帮助;保护人和财产;并在从漫长孤独的日子到军队部署的各种事情中提供情感支持。狗有各种各样的品种,体型不同,能量水平、性格和性情也各不相同,这意味着几乎肯定有一只小狗可以完美匹配最需要它的人。
-
示例 B: 常识推理
用户: 一磅羽毛和一磅砖头哪个重?
UltraLM: 一磅羽毛和一磅砖头重量相同。这是因为一磅是一个重量单位,就像一英尺是一个长度单位或一秒是一时间单位一样。我们使用磅(或其他重量单位)来描述不同物体的重量,无论它是由什么材料制成的。因此,回答您的问题是,一磅羽毛和一磅砖头的重量是一样的。
-
示例 C: 推理
用户: 如果农民有17只羊,除了9只之外都死了,还剩几只?
UltraLM: 还剩9只羊。
-
示例 D: 推理
用户: 如果红房子是由红砖建成的,蓝房子是由蓝砖建成的,那么温室是由什么建成的?
UltraLM: 温室不是由绿色砖建成的,而是由玻璃或塑料等材料制成的,这些材料允许光线通过并为植物生长创造受控环境。温室可以有各种颜色,包括绿色,但建筑物本身的颜色不影响内部植物的生长。
-
示例 E: 创作
用户: 写一首关于电磁的诗。
UltraLM: 电子磁力不能忽视, 它是许多爱物的原因所在。磁场中,电线会发光, 电子会对齐,无论新旧。 电与磁手拉手, 一个产生场,另一个有品牌。 磁场能推能拉, 对带电电线反应全。 吸引与排斥它带来, 是许多事物的原因所在。 从电机到发电机,以及更多之间, 电磁是何意的根源。 它是无处不在的力量, 从罗盘到开关。 它的力量能做很多事, 从简单的针到火箭的推力。 这是我们不能否认的力量, 因为它是我们生活的一部分。 电磁是值得敬仰的存在, 因为它的力量与威力,无可比拟,这毋庸置疑。
-
示例 F: 创作
用户: 写一个关于宇宙起始一秒的短篇故事。
UltraLM: 宇宙的第一个秒,黑暗主宰一切。没有光,没有声音,没有形状,没有实质。一切都还不存在,但有一种强烈的力量,一种等待释放的原始能量。无限之中,第一个秒握住了创造的潜能。然后,伴随着一声巨响,一点亮光出现了。在那之中,最基本的粒子诞生了,它们的形态尚未知,在混乱的造物舞蹈中疯狂碰撞。在这原始之光中,自然的每一股力量和生命的每一个成分都从纯能量转变为物理现实。第一个原子迅速组合而成,星星和银河开始形成。它们的聚变创造了一个热环境,推动了虚无,塑造了通过扩展和冷却波的宇宙。在这次宇宙初始,没有经验的结构,甚至时间或空间,也无法确立其规则。瞬间,整个宇宙都存在于一个胚胎状的节点中,一个所有未来存在起源的宇宙奇点。这是一个微观宇宙的形成过程,它最终成为宏观宇宙的一部分,其诞生时刻是遍布多元宇宙的每个角落的创造循环的隐喻。从那一点亮光中,无限的宇宙展开了。未来数世纪、数亿年,并且永远,它始终是其无尽旅程中进入遥远深渊的最基本的一瞥。第一个秒是一切的开始。
UltraChat 概述
该项目旨在构建由 Turbo API 驱动的开源、大规模和多轮对话数据,以促进构建具有通用会话能力的强大语言模型。 考虑到隐私保护等因素,我们不会直接使用任何互联网可用的数据作为提示。
UltraChat 由三个部分组成
- 🌏 世界问题: 该部分的对话数据来源于关于现实世界中的概念、实体和对象的各种广泛查询。涵盖的主题非常广泛,包括技术、艺术和企业家精神等领域。
- ✍🏻 写作与创作: 该部分的对话数据是由从零开始的写作/创作需求驱动的,包括任何AI助手可能在创作过程中提供帮助的任务,从邮件撰写到故事和剧本的创作等。
- 📋 现有材料上的帮助: 该部分的对话数据基于现有材料生成,包括但不限于重写、续写、总结和推理,涵盖各种主题。
免责声明:虽然 UltraChat 的构建过程不涉及任何公开可用的基准数据,但扩展到一定程度仍可能导致某些评估基准中的某些重叠现象。我们再次强调,所有数据是自动生成的(包括指令和响应),并且我们不插入任何开放基准数据。 例如,UltraChat 的发布(2023年4月)要 早于 Alpaca Eval的发布(2023年5月)。 我们鼓励用户密切关注这种现象,同时我们也在积极考虑如何更妥善地评估 LLM。
UltraChat 示例
数据
该数据集仅供研究和教育用途,不应被视为数据集创建者、所有者或贡献者的意见或观点,并且其分发遵循 MIT 许可证。
数据发布
直接下载链接:
数据格式
下载的数据文件中的每行都是一个包含数据ID和以列表格式存储的对话数据的json字典。下面是一个示例行。
{
"id": "0",
"data": [
"交叉训练如何惠及跑步者、游泳者或举重运动员等群体?",
"交叉训练可以通过以下方式惠及跑步者、游泳者或举重运动员:...",
"那很有意义。我一直想提高我的跑步时间,但从未考虑过结合力量训练。您有推荐的具体练习吗?",
"当然,这里有一些对跑步者有益的力量训练练习:...",
"嗯,我并不是很喜欢举重训练。那么我可以将其他形式的运动加入我的日常训练中来提高跑步时间吗?",
"是的,绝对可以! ...",
"..."
]
}
训练
我们提供训练代码可以微调LLaMa(不过我们不分发LLaMa的权重)在UltraChat上的表现,代码在.src/
,训练由BMTrain加速。
-
下载发布的数据并将其放在
./data
目录下 -
运行
train_bm.py
,例如:WANDB_MODE="offline" torchrun --nnodes=1 --nproc_per_node=8 --rdzv_id=1 --rdzv_backend=c10d --rdzv_endpoint=localhost:50003 train_bm.py --tensorboard ./ultrachat_llama_tb_2 --save_step 5000 --logging_step 100
我们还提供了一个训练脚本,可以使用OpenPrompt在UltraChat上微调GPT-J,代码在.src/train_legacy/
。
- 下载发布的数据并将其放在
./data
目录下 - 运行
accelerate launch train.py
开始训练
UltraChat的构建
UltraChat的总体理念是使用不同的LLM生成开场白、模拟用户并回应查询。UltraChat的每个部分都有自己的挑战,并需要特定的策略设计。一旦某个部分的UltraChat发布,我们将详细说明构建过程。
有关世界的问题
元主题和子主题
- 数据来自30个具有代表性和多样性的元主题(图标来自flaticon)
- 基于上述元主题,我们生成了超过1100个子主题用于数据构建
- 对于每个子主题,我们生成最多10个具体问题。
- 然后我们使用Turbo API生成每10个问题的新相关问题。我们使用手工制作的提示来指导模型生成涵盖广泛常见概念和对象的多样化问题集。
- 对于每个问题,我们使用上述两个模型迭代生成一个3~7轮的对话。
常见的现实世界实体
- 我们从Wikidata收集了最常见的10000个命名实体。
- 我们使用ChatGPT API为每个实体生成5个元问题。
- 对于每个元问题,我们生成10个更具体的问题和20个相关但一般性的问题。
- 我们采样了20万个具体问题、25万个普通问题以及5万个元问题,并为每个问题生成一个3~7轮的对话。
写作与创作
- 我们首先收集了20种写作类型,如下所示(图标来自flaticon)。
- 对于每种写作类型,生成200条不同的指令,要求AI助手生成文本材料,其中80%的指令被进一步扩展和详细描述。
- 使用生成的指令作为初始输入,并生成一个2~4轮的对话。
现有材料的帮助
- 我们从C4数据集中提取了约10w的多样材料。
- 对每一条材料生成最多5个相关问题/指令。
- 我们将材料与每个问题/指令结合使用一组手工设计的模板作为用户与AI助手开始对话的初始输入。
- 对于每个输入,我们生成了一个2~4轮的对话。
待办事项
- 发布有关世界问题的其余数据。
- 继续发布写作与创作的数据。
- 未来继续发布现有材料的帮助数据。
- 在UltraChat上训练一个模型并进行详细分析。欢迎使用它来训练您的聊天模型!
- 将有一个UltraChat的中文版。
限制
- 尽管UltraChat在几个基准测试上表现良好,但它仍有局限性,如产生幻觉(hallucinations)。根据我们的经验,UltraLM可以处理与世界知识和创作相关的问题。推理、数学和编码能力仍需明确加强。
引用
如果你认为UltraChat有用,欢迎引用该仓库。
@article{ding2023enhancing,
title={Enhancing Chat Language Models by Scaling High-quality Instructional Conversations},
author={Ding, Ning and Chen, Yulin and Xu, Bokai and Qin, Yujia and Zheng, Zhi and Hu, Shengding and Liu, Zhiyuan and Sun, Maosong and Zhou, Bowen},
journal={arXiv preprint arXiv:2305.14233},
year={2023}
}