实战|如何低成本训练一个可以超越 70B Llama2 的模型 Zephyr-7B
每一周,我们的同事都会向社区的成员们发布一些关于 Hugging Face 相关的更新,包括我们的产品和平台更新、社区活动、学习资源和内容更新、开源库和模型更新等,我们将其称之为「Hugging News」。快来看看有哪些近期更新吧!
新的训练方法 Zephyr-7B 模型超越 70B Llama2

跟大家介绍一个比较简单的方法训练出的一个 7B 的模型,它在 MT Bench 测试中的表现甚至超过了 Llama2 70B 模型。
马上就试试看?https://huggingfaceh4-zephyr-chat.hf.space/
=== 方法揭秘 ===
首先,使用 UltraChat 数据集对 SFT Mistral 7B 模型进行训练。
然后,使用"直接偏好优化" (DPO) 方法,将 SFT 模型调整到 UltraFeedback 数据集上。
=== 细节揭秘 ===
对于 SFT 训练,我们使用了 UltraChat 数据集,它包含了约 1.6M个 由 GPT3.5 生成的对话。我们最初是在所有数据上进行训练的,但后来发现训练出来的模型性格有点让人讨厌。因此,我们筛选出了大约 200K 个更注重有益帮助的例子进行训练:https://hf.co.co/datasets/stingning/ultrachat
接下来,我们使用了来自 Stanford 研究者们的超棒 DPO 算法进行了另一轮微调。我们发现, DPO 比 PPO 稳定得多——强烈推荐去看他们的论文,了解更多信息!https://hf.co/papers/2305.18290
在使用 DPO 的过程中,我们选用了 UltraFeedback 数据集,它包含了 64K 个提示和完整的回答,涵盖了各种开放和封闭访问模型的范围。每个回答都由 GPT-4 根据有益性等标准进行了评分,以此来推导 AI 的偏好:https://hf.co/datasets/openbmb/UltraFeedback
在训练方面,我们在所有实验中都使用了 TRL 和 DeepSpeed ZeRO-3:
- SFTTrainer https://hf.co/docs/trl/sft_trainer
- DPOTrainer: https://hf.co/docs/trl/dpo_trainer
总计算成本:$500 或在16 x A100 上运行 8 小时
为了评估,我们使用了 LMSYS 提供的优秀工具 MT Bench。这个多轮的基准测试可以评估聊天机器人在创意写作、编码和数学等各个领域的能力。相比其他排行榜,它能提供更准确的关于聊天机器人性能的信息:https://hf.co/spaces/lmsys/mt-bench
这个教程其实是我们在 Hugging Face 工作的一部分,是 “Alignment Handbook” 手册的预告,我们在这本手册中分享了关于 SFT、DPO、PPO 等多种训练方法的稳健训练方法。我们计划不久后发布初版,你可以在这里跟踪项目的进度:https://github.com/huggingface/alignment-handbook
Hugging Face Hub 0.18.0 现已发布

0.17.0 发布的内容已经很多了,现在,0.18.0 也发布啦!0.18.0 加入了对网站上 Collection 的 API 支持,文档也有了社区支持的韩语和德语的翻译。更多详细内容,请查看此次 release note https://github.com/huggingface/huggingface_hub/releases/tag/v0.18.0
Hugging Face Hub|Follow 功能上线

Hub 刚刚更新了 Follow - 互相关注功能,可以随时关注你喜欢的 / 仰慕的 / 想一起合作的 / 社群小伙伴啦 ️(社群小伙伴 = 业界大牛)
来试试 然后告诉我们你的使用感受和建议吧
以上就是本周的 Hugging News,周末愉快!
实战|如何低成本训练一个可以超越 70B Llama2 的模型 Zephyr-7B的更多相关文章
- A TensorBoard plugin for visualizing arbitrary tensors in a video as your network trains.Beholder是一个TensorBoard插件,用于在模型训练时查看视频帧。
Beholder is a TensorBoard plugin for viewing frames of a video while your model trains. It comes wit ...
- 【PyTorch深度学习60分钟快速入门 】Part4:训练一个分类器
太棒啦!到目前为止,你已经了解了如何定义神经网络.计算损失,以及更新网络权重.不过,现在你可能会思考以下几个方面: 0x01 数据集 通常,当你需要处理图像.文本.音频或视频数据时,你可以使用标准 ...
- Fine-tuning Convolutional Neural Networks for Biomedical Image Analysis: Actively and Incrementally如何使用尽可能少的标注数据来训练一个效果有潜力的分类器
作者:AI研习社链接:https://www.zhihu.com/question/57523080/answer/236301363来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载 ...
- 深度学习笔记 (二) 在TensorFlow上训练一个多层卷积神经网络
上一篇笔记主要介绍了卷积神经网络相关的基础知识.在本篇笔记中,将参考TensorFlow官方文档使用mnist数据集,在TensorFlow上训练一个多层卷积神经网络. 下载并导入mnist数据集 首 ...
- 【Android开发VR实战】三.开发一个寻宝类VR游戏TreasureHunt
转载请注明出处:http://blog.csdn.net/linglongxin24/article/details/53939303 本文出自[DylanAndroid的博客] [Android开发 ...
- Keras 训练一个单层全连接网络的线性回归模型
1.准备环境,探索数据 import numpy as np from keras.models import Sequential from keras.layers import Dense im ...
- 案例实战之如何写一个webpack plugin
案例实战之如何写一个webpack plugin 1.写一个生成打包文件目录的file.md文件 // 生成一个目录项目目录的文件夹 class FileListPlugin { constructo ...
- PyTorch Tutorials 4 训练一个分类器
%matplotlib inline 训练一个分类器 上一讲中已经看到如何去定义一个神经网络,计算损失值和更新网络的权重. 你现在可能在想下一步. 关于数据? 一般情况下处理图像.文本.音频和视频数据 ...
- 如何正确训练一个 SVM + HOG 行人检测器
这几个月一直在忙着做大论文,一个基于 SVM 的新的目标检测算法.为了做性能对比,我必须训练一个经典的 Dalal05 提出的行人检测器,我原以为这个任务很简单,但是我错了. 为了训练出一个性能达标的 ...
- 我把阿里、腾讯、字节跳动、美团等Android性能优化实战整合成了一个PDF文档
安卓开发大军浩浩荡荡,经过近十年的发展,Android技术优化日异月新,如今Android 11.0 已经发布,Android系统性能也已经非常流畅,可以在体验上完全媲美iOS. 但是,到了各大厂商手 ...
随机推荐
- 二、GCC编译器工作过程
从更直观的角度来说,编译器是一种工具,将高级语言转化为机器语言.举个例子,我们可以使用编译器将用C++语言编写的程序转换为机器可执行的指令和数据.之前提到过,用机器指令或汇编语言编写程序非常繁琐和乏味 ...
- String s=new String(“hello”)的执行过程
一. 介绍 String 是Java.long包下的String类,是一个特殊的引用类型,用于表示字符串.它提供了许多方法来操作和处理字符串,比如连接.截取.查找.替换等.String类内部使用字符数 ...
- KVM (Centos7)使用macvtap网卡的后续 -- 宿主机创建macvtap网卡,并配置ip
因为使用虚拟机上的 macvtap 网卡与宿主机器上的网卡无法直接通信,所以需要在宿主机上也创建 macvtap 网卡,将 ip 迁移过去. 因为未能找到配置文件的设置方法,所以使用脚本来配置,并将脚 ...
- linux 字符集与编码格式相关
字符集:多个字符的集合. # 书写系统字母与符号的集合. 字符编码:把 字符集 中的字符 编码为(映射)指定集合中的某一对象. # 以便文本在计算机中存储和通过通信网络的传递 查看文件的的编码格式 ...
- TCP超时分析
参考链接: Linux 建立 TCP 连接的超时时间分析 Linux 建立 TCP 连接的超时时间分析 Linux 系统默认的建立 TCP 连接的超时时间为 127 秒. 2 分 7 秒即 127 秒 ...
- OceanBase 分布式存储管理
分布式存储管理 分区表管理 定义 把普通的表的数据按照一定的规则划分到不同的区块内,同一区块的数据物理上存储在一起. 每个分区还能按照一定的规则再拆分成多个分区,这种分区表叫做二级分区表. 分区分类 ...
- pandas 格式化日期
output_data["ShipDate"] = output_data["ShipDate"].dt.strftime("%Y/%m/%d&quo ...
- PyQt5调用主窗口
import sysfrom ui.MainWindow import Ui_Form from PyQt5.QtWidgets import QApplication, QMainWindowcla ...
- quarkus数据库篇之四:本地缓存
欢迎访问我的GitHub 这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos 本篇概览 本文是<quarkus数据库篇> ...
- 4、Mybatis核心配置文件详解
4.1.environments <!-- environments标签:配置多个连接数据库的环境 default属性:设置默认使用的环境的id --> <environments ...