首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >全面取代Llama 2!Baichuan 2自曝史上最全训练细节

全面取代Llama 2!Baichuan 2自曝史上最全训练细节

作者头像
新智元
发布于 2023-09-19 01:19:18
发布于 2023-09-19 01:19:18
8560
举报
文章被收录于专栏:新智元新智元

新智元报道

编辑:编辑部

【新智元导读】就在最近,百川智能正式发布Baichuan 2系列开源大模型。作为开源领域性能最好的中文模型,在国内,Baichuan 2是要妥妥替代Llama 2了。

在国内,Llama的时代,已经过去了。

9月6日,百川智能宣布正式开源Baichuan 2系列大模型,包含7B、13B的Base和Chat版本,并提供了Chat版本的4bits量化,均为免费商用。

下载链接:https://github.com/baichuan-inc/Baichuan2

在所有主流中英文通用榜单上,Baichuan 2全面领先Llama 2,而Baichuan2-13B更是秒杀所有同尺寸开源模型。毫不夸张地说,Baichuan2-13B是目前同尺寸性能最好的中文开源模型。

而在过去一个月里,Baichuan系列的下载量在Hugging Face等开源社区已经超过了347万次,是当月下载量最高的开源大模型,总下载量已经突破500万次。

Llama 2,已经不需要了

相比之下,国外的当红炸子鸡Llama 2,就可以和我们说拜拜了。

千模大战过后,大模型已经进入了「安卓时刻」。现在看来,最有希望替代Llama 2的国产大模型,就是Baichuan 2。

原因其实很简单,一方面Baichuan 2系列大模型在性能上,不仅以绝对优势领先Llama 2,而且大幅度优于同尺寸的竞品。

另一方面,在Meta的商用协议中,实际上并不允许开放Llama模型在中文社区的商用;而Baichuan系列大模型目前是全面开源商用的。

Llama 2商业协议明确表示不允许英文以外的商业

中文开源第一

作为中文开源大模型的第一,百川大模型面对LLM经典难题的表现,也让人眼前一亮。

对于博大精深的汉语,具备精准语义理解能力的Baichuan 2,可以充分理解其中的精妙。

而并不擅长中文的Llama 2 13B,只是说了一堆无用的废话。

在考验推理能力的代码生成方面,Baichuan 2能做到足够的精细化,并且可用率已经达到了行业领先水平。

对于这道题,Llama 2也可以搞定,但默认只会用英文进行回复。

难度更大的多轮对话,让无数大模型折戟。

在这方面,百川大模型可以说是遥遥领先,能够轻松完成各种复杂的指令跟随。

就连难倒GPT-4的推理题,百川大模型都不在话下。

模型评测

除了刚刚这些真实场景的评测外,Baichuan 2在多个权威的中文、英文和多语言的通用以及专业领域的基准测试中,都取得了同等规模最佳的效果,而Llama 2则是全面落败。

对于通用领域,评测采用的基准为:中文基础模型评测数据集C-Eval、主流英文评测数据集MMLU、评估知识和推理能力的中文基准CMMLU、评估语言和逻辑推理能力的数据集Gaokao、评估认知和解决问题等通用能力的AGIEval,以及挑战性任务Big-Bench的子集BBH。

在法律领域,采用的是基于中国国家司法考试的JEC-QA数据集。在医疗领域,除了通用领域数据集中医学相关的问题外,还有MedQA和MedMCQA。

数学领域为GSM8K和MATH数据集;代码领域为HumanEval和MBPP数据集。

最后,在多语言能力方面,则采用了源于新闻、旅游指南和书籍等多个不同领域的数据集Flores-101,它包含英语在内的101种语言。

总结来说,Baichuan 2系列不仅继承了上一代良好的生成与创作能力,流畅的多轮对话能力以及部署门槛较低等众多特性,而且在数学、代码、安全、逻辑推理、语义理解等能力有显著提升。

其中,Baichuan2-13B-Base相比上一代13B模型,数学能力提升49%,代码能力提升46%,安全能力提升37%,逻辑推理能力提升25%,语义理解能力提升15%。

数据

Baichuan 2系列大模型之所以能实现如此傲人的成绩,其中一个原因便是,训练语料规模大、覆盖全,且质量优。

在数据获取上,百川团队主要从网页、书籍、研究论文、代码库等丰富的数据源采集信息,覆盖了科技、商业、娱乐等各个领域。

总计有2.6TB token规模的数据集。

与此同时,数据集中也加入了多语言的支持,包括中文、英文、西班牙语、法语等数十种语言。

Baichuan 2训练数据不同种类分布

那么,优秀的数据质量获取是如何实现?

作为一家有搜索基因的公司,百川智能借鉴了之前在搜索领域的经验,将重点放在了数据频率和质量上。

一方面,通过建立一个大规模「重复数据删除和聚类系统」,能够在数小时内,实现对千亿级数据的快速清洗和去重。

另一方面,数据清洗时还采用了多粒度内容质量打分,不仅参考了篇章级、段落级、句子级的评价,还参考了搜索中对内容评价的精选。

通过细粒度采样,大幅提升了模型生成质量,尤其是在中文领域。

不同数据处理阶段的训练数据大小

训练

数据准备完成后,接下来就进入大模型最重要的阶段——训练。

百川团队使用AdamW优化器,BFloat16混合精度对模型进行了训练。

为了稳定训练过程,提高模型性能,研究还采用了NormHead,对输出embedding进行归一化处理。

另外,在训练期间,百川团队还发现LLM的对数值可能会变得非常大,由此引入Max-z loss来稳定训练,让模型推理对超参数更加稳健。

如下图,可以看到,Baichuan2-7B/13B的损失曲线在持续降低。

以往研究表明,模型的性能随着参数规模的扩大呈现出一定的可预测性,也就是人们常说的scaling law。

在训练数十亿参数的大型语言模型之前,百川智能预训练了从10M到30B参数的模型,总计token规模达1万亿。

通过将幂律项拟合到给定训练浮点运算次数的损失中,可以预测在2.6万亿token上训练Baichuan2-7B和Baichuan2-13B的损失曲线。

如下图所示,30M、50M、100M等不同参数规模的模型曲线都在下降,并且最后能够线性回归到一个值。

这使得,在预测更大规模模型的性能时,能够有一个较为准确的估计。

值得一提的是,这与OpenAI在发布GPT-4时的情况类似,只需要万分之一的训练,可以预测后面模型的性能。

由此可见,整个拟合过程,能够较为精确地预测模型的损失。

同时,百川基础设施的团队进行了大量工作,优化了集群性能,使得目前千卡A800集群达到180TFLOPS训练速度,机器利用率超过50%,达到行业领先水平。

如上,在训练过程中,百川智能模型呈现出了高效、稳定、可预测的能力。

安全

那么,训练后得到的模型,如何确保是安全的呢?百川智能在此也做了很多安全对齐的工作。

在模型训练前,团队已经对整个数据集进行了严格的过滤,还策划了一个中英文双语数据集,纳入了各种正能量的数据。

另一方面,百川智能还对模型做了微调增强,安全强化学习,设置了6种攻击类型,并进行了大量红蓝对抗训练,能够提升模型的鲁棒性。

在强化学习优化阶段,通过DPO方法可以有效利用少量标注数据,来提升模型对特定漏洞问题的性能。

另外,还采用了结合有益和无害目标的奖励模型,进行了PPO安全强化训练,在不降低模型有用性的前提下,显著增强了系统的安全性。

可以看到,百川智能在模型安全对齐方面也做出很多努力,包括预训练数据加强、安全微调、安全强化学习、引入红蓝对抗。

Baichuan 2的开源,是真正的开源

对于学术界来说,是什么阻碍了对大模型训练的深入研究?

从0到1完整训练一个模型,成本是极其高昂的,每个环节都需要大量人力、算力的投入。

其中,在大模型的训练上,更是包括了海量的高质量数据获取、大规模训练集群稳定训练、模型算法调优等等,失之毫厘,差之千里。

然而,目前大部分的开源模型,只是对外公开了模型权重,对于训练细节却很少提及。并且,这些模型都是最终版本,甚至还带着Chat,对学术界并不友好。

也是因此,企业、研究机构、开发者们,都只能在模型基础上做有限的微调,很难深入研究。

针对这一点,百川智能直接公开了Baichuan 2的技术报告,并详细介绍了Baichuan 2训练的全过程,包括数据处理、模型结构优化、Scaling law、过程指标等。

更重要的是,百川智能还开源了模型训练从220B到2640B全过程的Check Ponit。

这在国内开源生态尚属首次!

对于模型训练过程、模型继续训练和模型的价值观对齐等方面的研究来说,Check Ponit极具价值。

Baichuan 2的11个中间checkpoints在C-Eval、MMLU、CMMLU三个benchmark上的效果变化

对此,复旦大学计算科学技术学院教授张奇表示:

Baichuan系列发布的模型分片,对于研究大模型的本质来说有非常大的好处。我们既可以知道它每次的迭代过程,也可以在中间的分片里面做非常多的事情。 而且,相比于那些直接开源最终版,甚至还是Chat版的模型,百川开源得非常干净,从底座开始就是很干净的语言模型。 此外,很多的评测都是从单点维度进行的,甚至在某些榜单,GPT-4都排到第10了,这其实没有任何意义。而百川的评测结果就非常好。

而从商业角度看,Baichuan 2模型也是企业非常好的选择。

之前免费可商用的Llama 2发布后,许多人认为这会对众多创业公司造成打击,因为它可以满足低成本、个性化的需求。

但经过仔细思考就能明白,Llama 2并未改变市场格局。

企业若是要用模型,即使是微调,也需要花费一些成本、精力和时间。

而如果选一个性能较弱的模型(尤其是主要基于英文语料的模型),重新训练也是有难度的,成本几乎跟自己重新去做一个大模型差不多了。

既然Llama 2不擅长中文,协议也禁止非英文场景商用化,因此显而易见,在商用领域,综合能力更强的开源模型Baichuan 2,几乎可以说是不二之选。

基于Baichuan 2系列大模型,国内研究人员可以进行二次开发,快速将技术融进现实的场景之中。

一言蔽之,Baichuan 2就像是源源不断地活水,不仅通过尽可能全面的开源来极大地推动国内大模型的科研进展,而且还通过降低国内商业部署门槛让应用创新能够不断涌现。

参考资料:

https://github.com/baichuan-inc/Baichuan2

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2023-09-15 13:11,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 新智元 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
基于 Egg.js 框架的 Node.js 服务构建之用户管理设计
近来公司需要构建一套 EMM(Enterprise Mobility Management)的管理平台,就这种面向企业的应用管理本身需要考虑的需求是十分复杂的,技术层面管理端和服务端构建是架构核心,客户端本身初期倒不需要那么复杂,作为~~移动端的负责人~~(其实也就是一个打杂的小组长),这个平台架构我自然是免不了去参与的,作为一个前端 jser 来公司这边总是接到这种不太像前端的工作,要是以前我可能会有些抵触这种业务层面需要考虑的很多,技术实现本身又不太容易积累技术成长的活。这一年我成长了太多,总是尝试着去做一些可能自己谈不上喜欢但还是有意义的事情,所以这次接手这个任务还是想好好把这个事情做好,所以想考虑参与到 EMM 服务端构建。其实话又说回来,任何事只要想去把它做好,怎么会存在有意义还是没意义的区别呢?
前端教程
2018/07/27
9.6K0
基于 Egg.js 框架的 Node.js 服务构建之用户管理设计
koa+react+sequelize搭建博客后台(附源码)
使用koa+react+sequelize搭建博客系统,这篇文章讲述koa+sequelize的开发过程。支持增删改查等功能。
coder_koala
2020/02/20
1.6K0
koa+react+sequelize搭建博客后台(附源码)
koa 实现一个翻页查询
今天的分享是基于我封装的框架开发的。 我的框架地址:https://gitee.com/yang-yiming1234/koa
用户4793865
2023/01/12
9210
前端构建 DevOps - 搭建 DevOps 基础平台(上)
在上一个博客中,已经通过 Egg 对 Gitlab Api 进行了基础的封装,本文将会围绕 DevOps 流程介绍项目设计(偏后台),需要读者具备一定的后端知识储备。
Cookieboty
2020/10/23
1.7K0
前端构建 DevOps - 搭建 DevOps 基础平台(上)
node-koa 框架 项目搭建 🏗
---- 这是我参与11月更文挑战的第21天,活动详情查看:2021最后一次更文挑战」 代码[链接🔗]:(https://gitee.com/yang-yiming1234/koa/tree/master) 持续更新~ 简介 Koa 是一个新的 web 框架,由 Express 幕后的原班人马打造, 致力于成为 web 应用和 API 开发领域中的一个更小、更富有表现力、更健壮的基石。 通过利用 async 函数,Koa 帮你丢弃回调函数,并有力地增强错误处理。 Koa 并没有捆绑任何中间件, 而是提供了
用户4793865
2023/01/12
3.7K0
治电EggJS开发规范
函数/方法注释放置于函数/方法的上方,主要描述函数/方法功能以及参数类型,参数和返回值说明
治电小白菜
2020/08/25
4.9K0
治电EggJS开发规范
前端小白玩转koa(三)
文章地址:https://cloud.tencent.com/developer/article/2471047
一起重学前端
2024/11/27
1570
【架构师(第三十九篇)】 服务端开发之连接 MySQL 数据库
右键新建的数据库,点击 Set as Default Schema 设置为此次连接的默认数据库。
一尾流莺
2022/12/10
7010
【架构师(第三十九篇)】 服务端开发之连接 MySQL  数据库
分享 koa + mysql 的开发流程,构建 node server端,一次搭建个人博客
由于一直在用 vue 写业务,为了熟悉下 react 开发模式,所以选择了 react。数据库一开始用的是 mongodb,后来换成 mysql 了,一套下来感觉 mysql 也挺好上手的。react-router、koa、mysql 都是从0开始接触开发的,期间遇到过很多问题,印象最深的是 react-router 参考官方文档配置的,楞是跑不起来,花费了好几个小时,最后才发现看的文档是v1.0, 而项目中是v4.3, 好在可参考的资料比较多,问题都迎刃而解了。
大当家
2019/04/09
3.2K0
分享 koa + mysql 的开发流程,构建 node server端,一次搭建个人博客
Sequelize 系列教程之一对一模型关系
Sequelize 是一个基于 Promise 的 Node.js ORM,目前支持 Postgres、MySQL、SQLite 和 Microsoft SQL Server。它具有强大的事务支持,关联关系、读取和复制等功能。在阅读本文前,如果你对 Sequelize 还不了解,建议先阅读 Sequelize 快速入门 这篇文章。
阿宝哥
2019/11/06
8.8K0
koa实战_2023-02-28
sequelize这个包专门用于项目中处理关系型数据库的操作,它是基于 promise 的
用户10377376
2023/02/28
1.4K0
Sequelize 快速入门
Sequelize 是一个基于 Promise 的 Node.js ORM,目前支持 Postgres、MySQL、SQLite 和 Microsoft SQL Server。它具有强大的事务支持,关联关系、读取和复制等功能。
阿宝哥
2019/11/06
8.3K0
sequelize常用api
目前有许许多多的ORM,但是目前最为流行的依然是sequelize,所以这里总结写之前自己写自己的博客所涉及到的点,分享给大家,让大家也可以少踩坑,更快入门。
Snine
2022/02/11
8.4K0
koa实战
sequelize这个包专门用于项目中处理关系型数据库的操作,它是基于 promise 的
coder2028
2022/10/21
1.3K0
【知识学习】Vue3 + Vite + Koa + TS 项目
回想起来以前的工程里面有一个 shims-vue.d.ts 是用来解决这个的,但是现在的工程里面没有这个文件了, 取而代之的是一个 vite-env.d.ts 的文件,但是这个文件里并没有 shims-vue.d.ts 的内容。所以我需要手动添加一下。
一尾流莺
2023/10/16
9300
【知识学习】Vue3 + Vite + Koa + TS 项目
Serverless + Egg.js 后台管理系统实战
作为一名前端开发者,在选择 Nodejs 后端服务框架时,第一时间会想到 Egg.js,不得不说 Egg.js 是一个非常优秀的企业级框架,它的高扩展性和丰富的插件,极大的提高了开发效率。开发者只需要关注业务就好,比如要使用 redis,引入 egg-redis 插件,然后简单配置就可以了。正因为如此,第一次接触它,我便喜欢上了它,之后也用它开发过不少应用。
网站运维工程师
2020/03/11
5.1K0
Serverless + Egg.js 后台管理系统实战
作为一名前端开发者,在选择 Nodejs 后端服务框架时,第一时间会想到 Egg.js,不得不说 Egg.js 是一个非常优秀的企业级框架,它的高扩展性和丰富的插件,极大的提高了开发效率。开发者只需要关注业务就好,比如要使用 redis,引入 egg-redis 插件,然后简单配置就可以了。正因为如此,第一次接触它,我便喜欢上了它,之后也用它开发过不少应用。 有了如此优秀的框架,那么如何将一个 Egg.js 的服务迁移到 Serverless 架构上呢? 背景 我在文章《基于 Serverless Com
腾讯云serverless团队
2020/03/20
4.6K0
Nodejs相关ORM框架分析_2023-02-27
写这篇blog的原因,想找个node的ORM框架用用,确很难找到一篇对比分析这些ORM框架的文章,唯一找到了一篇,居然是通过star数来论英雄,我觉着很难服众,于是就找几个看看。后来又不想分析,因为我发现node这种野蛮生长,滋生这些ORM轮子比比皆是,远比我想象的多;后来又觉着可以写,作为一个java出身业余研究node的就想通过java的ORM框架来洞悉node这群ORM框架的是非曲直,于是挑了几个框架小扯一篇。
用户10377376
2023/02/27
2.3K0
Nodejs相关ORM框架分析
写这篇blog的原因,想找个node的ORM框架用用,确很难找到一篇对比分析这些ORM框架的文章,唯一找到了一篇,居然是通过star数来论英雄,我觉着很难服众,于是就找几个看看。后来又不想分析,因为我发现node这种野蛮生长,滋生这些ORM轮子比比皆是,远比我想象的多;后来又觉着可以写,作为一个java出身业余研究node的就想通过java的ORM框架来洞悉node这群ORM框架的是非曲直,于是挑了几个框架小扯一篇。
coder2028
2022/10/17
1.5K0
【愚公系列】2022年10月 微信小程序-电商项目-微信支付后端功能实现(node版)
微信支付是腾讯集团旗下的第三方支付平台,致力于为用户和企业提供安全、便捷、专业的在线支付服务。以“微信支付,不止支付”为核心理念,为个人用户创造了多种便民服务和应用场景。微信支付为各类企业以及小微商户提供专业的收款能力,运营能力,资金结算解决方案,以及安全保障。用户可以使用微信支付来购物、吃饭、旅游、就医、交水电费等。企业、商品、门店、用户已经通过微信连在了一起,让智慧生活,变成了现实。
愚公搬代码
2022/10/31
9840
【愚公系列】2022年10月 微信小程序-电商项目-微信支付后端功能实现(node版)
相关推荐
基于 Egg.js 框架的 Node.js 服务构建之用户管理设计
更多 >
LV.0
这个人很懒,什么都没有留下~
交个朋友
加入腾讯云官网粉丝站
蹲全网底价单品 享第一手活动信息
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档