开源标杆!最强中英双语大模型来了,340亿参数,超越 Llama2-70B等所有开源模型
作者:金磊
来源:量子位
开源界最强的中英双语大模型,悟道·天鹰 34B,来了!
有多强?一言蔽之:
中英综合能力、逻辑推理能力等,全面超越 Llama2-70B和此前所有开源模型!
推理能力方面对话模型IRD评测基准仅次于 GPT4。
不仅模型够大够能打,而且还一口气送上整套“全家桶”级豪华周边。
能有如此大手笔的,正是中国大模型开源派先锋——智源研究院。
而若是纵观智源在数年来的大模型开源之道,不难发现它正在引领着一种新风向:
早在2021年就把全球最大语料库公开,2022年最早前瞻布局FlagOpen大模型技术开源体系,连续推出了FlagEval评测体系、COIG数据集、BGE向量模型等全技术栈明星项目。
这一魄力正是来自智源非商业、非营利的中立研究机构定位,主打的就是一个“诚心诚意开源共创”。
据了解,Aquila2-34B 基座模型在22个评测基准的综合排名领先,包括语言、理解、推理、代码、考试等多个评测维度 。
一张图来感受一下这个feel:
△图:Base 模型评测结果(详细数据集评测结果见官方开源仓库介绍)
正如刚才提到的,北京智源人工智能研究院还非常良心地将开源贯彻到底,一口气带来开源全家桶:
全面升级Aquila2模型系列:Aquila2-34B/7B基础模型,AquilaChat2-34B/7B对话模型,AquilaSQL“文本-SQL语言”模型;
语义向量模型BGE新版本升级:4大检索诉求全覆盖。
FlagScale 高效并行训练框架:训练吞吐量、GPU 利用率业界领先;
FlagAttention 高性能Attention算子集:创新支撑长文本训练、Triton语言。
接下来,我们继续深入了解一下这次的“最强开源”。
“最强开源”能力一览
正如我们刚才提到的Aquila2-34B,它是此次以“最强开源”姿势打开的基座模型之一,还包括一个较小体量的Aquila2-7B。
而它俩的到来,也让下游的模型收益颇丰。
最强开源对话模型
在经指令微调得到了优秀的的AquilaChat2对话模型系列:
AquilaChat2-34B:是当前最强开源中英双语对话模型,在主观+客观综合评测中全面领先 ;
AquilaChat2-7B:也取得同量级中英对话模型中综合性能最佳成绩。
△ SFT 模型评测结果(详细数据集评测结果见官方开源仓库介绍)
评测说明:
对于生成式对话模型,智源团队认为需要严格按照“模型在问题输入下自由生成的答案”进行评判,这种方式贴近用户真实使用场景,因此参考斯坦福大学HELM[1]工作进行评测,该评测对于模型的上下文学习和指令跟随能力要求更为严格。实际评测过程中,部分对话模型回答不符合指令要求,可能会出现“0”分的情况。
例如:根据指令要求,正确答案为“A”,如果模型生成为“B”或“答案是 A ”,都会被判为“0”分。
同时,业内也有其他评测方式,比如让对话模型先拼接“问题+答案”,模型计算各个拼接文本的概率后,验证概率最高的答案与正确答案是否一致,评测过程中对话模型不会生成任何内容而是计算选项概率。这种评测方式与真实对话场景偏差较大,因此在生成式对话模型评测中没有采纳。
[1] https://crfm.stanford.edu/helm/latest/
不仅如此,在对于大语言模型来说非常关键的推理能力上,AquilaChat2-34B的表现也非常的惊艳——
在IRD评测基准中排名第一,超越 Llama2-70B、GPT3.5等模型,仅次于 GPT4。
△图:SFT模型在IRD数据集上的评测结果
从种种成绩上来看,无论是基座模型亦或是对话模型,Aquila2系列均称得上是开源界最强了。
上下文窗口长度至16K
对于大语言模型来说,能否应对长文本输入,并且在多轮对话过程中保持上下文的流畅度,是决定其体验好坏的关键。
为了解决这一“苦大模型久矣”的问题,北京智源人工智能研究院便在20万条优质长文本对话数据集上做了SFT,一举将模型的有效上下文窗口长度扩展至16K。
而且不仅仅是长度上的提升,效果上更是得到了优化。
例如在LongBench的四项中英文长文本问答、长文本总结任务的评测效果上,就非常的明显了——
AquilaChat2-34B-16K处于开源长文本模型的领先水平,接近GPT-3.5长文本模型。
△图:长文本理解任务评测
除此之外,智源团队对多个语言模型处理超长文本的注意力分布做了可视化分析,发现所有的语言模型均存在固定的相对位置瓶颈,显著小于上下文窗口长度。
为此,智源团队创新提出NLPE(Non-Linearized Position Embedding,非线性位置编码)方法,在 RoPE 方法的基础上,通过调整相对位置编码、约束最大相对长度来提升模型外延能力。
在代码、中英文Few-Shot Leaning、电子书等多个领域上的文本续写实验显示,NLPE可以将4K的Aquila2-34B模型外延到32K长度,且续写文本的连贯性远好于Dynamic-NTK、位置插值等方法。
△图:NLPE与主流Dynamic-NTK外延方法在Base模型上的能力对比(ppl值越低越好)
不仅如此,在长度为5K~15K的HotpotQA、2WikiMultihopQA等数据集上的指令跟随能力测试显示,经过 NLPE 外延的 AquilaChat2-7B(2K)准确率为 17.2%,而 Dynamic-NTK 外延的 AquilaChat2-7B 准确率仅为 0.4%。
△图:NLPE与主流Dynamic-NTK外延方法在SFT模型上的能力对比
各类真实应用场景均能hold住
“成绩”好,只是检验大模型的标准之一,更重要的是“好用才是硬道理”。
这也就是大模型的泛化能力了,即使遇到没有见过的问题,也能轻松应对。
为此,悟道·天鹰团队通过三个真实应用场景验证了Aquila2模型的泛化能力。
《我的世界》里打造强大智能体
《我的世界》这款游戏可以说是AI界检验技术的很好的试炼场。
它具有无限生成的复杂世界和大量开放的任务,为智能体提供了丰富的交互接口。
智源研究院与北京大学团队便基于此,提出了在无专家数据的情况下高效解决 Minecraft 多任务的方法—— Plan4MC。
Plan4MC可以使用内在奖励的强化学习训练智能体的基本技能,使得智能体可以利用大语言模型AquilaChat2的推理能力进行任务规划。
例如在下面的这段视频中,便展示了智能体利用AquilaChat2进行自动完成多轮对话交互的效果。
将游戏“当前环境状态”、“需要完成的任务”等信息输入AquilaChat2模型,AquilaChat2 反馈给角色“下一步使用什么技能”等决策信息,最终完成了在《我的世界》中设定的任务“伐木并制作工作台放在附近”的任务。
通过Aquila2+BGE2链接向量数据库
向量数据库近年来在大模型圈里成为了香饽饽,但在面对复杂、需要深度理解问题时,能力上还是略显捉襟见肘。
为此,智源研究院便将Aqiula2和自研的开源语义向量模型BGE2做了结合,彻底解锁了一些仅基于传统向量库的检索方法不能解决的复杂检索任务。
例如在下面的这个例子中,我们可以明显看到,在处理“检索某个作者关于某个主题的论文”、“针对一个主题的多篇论文的生成总结文本”这样的任务,会变得非常丝滑。
最优“文本-SQL语言”生成模型
很多用户在处理数据库查询等任务时,对于SQL语言可谓是头疼不已。
若是能用我们常用的大白话来进行操作,岂不美哉?
现在,这种便捷的方式已经可以实现了——AquilaSQL。
在实际应用场景中,用户还可以基于AquilaSQL进行二次开发,将其嫁接至本地知识库、生成本地查询 SQL,或进一步提升模型的数据分析性能,让模型不仅返回查询结果,更能进一步生成分析结论、图表等。
例如在处理下面这个复杂查询任务时,现在只需要说一句自然语言即可:
从包含汽车销量(car_sales)、汽车颜色(car_color)的两个数据表中筛选销量大于100并且颜色为红色的汽车。
而且AquilaSQL的“成绩”同样非常亮眼。
在经过SQL语料的继续预训练和SFT 两阶段训练,最终以67.3%准确率超过“文本-SQL语言生成模型”排行榜 Cspider 上的SOTA模型。
而未经过SQL语料微调的 GPT4模型准确率仅为 30.8%。
还有全家桶级的开源
正如我们前文提到的,智源研究院对开源这事向来主打的就是彻彻底底。
这一次在大模型升级之际,智源研究院同样是毫无保留地把一系列包括算法、数据、工具、评测方面的明星项目都开源了出来。
据了解,Aquila2系列模型不仅全面采用商用许可协议,允许公众广泛应用于学术研究和商业应用。
接下来,我们便来速览一下这些开源全家桶。
高效并行训练框架FlagScale
FlagScale 是 Aquila2-34B 使用的高效并行训练框架,可以提供一站式语言大模型的训练功能。
智源团队将 Aquila2 模型的训练配置、优化方案和超参数通过 FlagScale 项目分享给大模型开发者,在国内首次完整开源训练代码和超参数。
FlagScale 基于 Megatron-LM 扩展而来,提供了一系列功能增强,包括分布式优化器状态重切分、精确定位训练问题数据以及参数到Huggingface转换等。
经过实测,Aquila2 训练吞吐量和 GPU 利用率均达到业界领先水平。
△图:FlagScale 训练吞吐量与GPU利用率(数据来源和估算公式见文末)
据了解,FlagScale在未来还将继续保持与上游项目 Megatron-LM 最新代码同步,引入更多定制功能,融合最新的分布式训练与推理技术以及主流大模型、支持异构AI硬件,力图构建一个通用、便捷、高效的分布式大模型训练推理框架,满足不同规模和需求的模型训练任务。
FlagAttention高性能Attention开源算子集
FlagAttention 是首个支持长文本大模型训练、使用 Triton语言开发的高性能Attention开源算子集,针对大模型训练的需求,对 Flash Attention 系列的 Memory Efficient Attention 算子进行扩展。
目前已实现分段式 Attention 算子——PiecewiseAttention。
PiecewiseAttention主要解决了带旋转位置编码 Transformer 模型(Roformer)的外推问题,它所具备的特点可以总结为:
通用性:对使用分段式计算 Attention 的模型具有通用性,可以轻松迁移至 Aquila 之外的大语言模型。
易用性:FlagAttention 基于 Triton 语言实现并提供 PyTorch 接口,构建和安装过程相比 CUDA C 开发的 Flash Attention 更加便捷。
扩展性:同样得益于 Triton 语言,FlagAttention 算法本身的修改和扩展门槛较低,开发者可便捷地在此之上拓展更多新功能。
未来,FlagAttention项目将继续针对大模型研究需求,支持其他功能扩展的 Attention 算子,进一步优化算子性能,并适配更多异构AI硬件。
BGE2 新一代语义向量模型
新一代BGE语义向量模型,也将随 Aquila2 同步开源。
BGE2 中的 BGE – LLM Embedder 模型集成了“知识检索”、“记忆检索”、“示例检索”、“工具检索”四大能力。
它首次实现了单一语义向量模型对大语言模型主要检索诉求的全面覆盖。
结合具体的使用场景,BGE – LLM Embedder将显著提升大语言模型在处理知识密集型任务、长期记忆、指令跟随、工具使用等重要领域的表现。
……
那么对于如此彻底的“最强开源”,你心动了吗?
One More Thing
智源研究院会在10月28日至29日举办新一期大模型前沿技术讲习班,9位主力研究员会详细介绍 FlagOpen 的近期进展和落地实践。
感兴趣的小伙伴也可以码住了。
Aquila2 模型全系开源地址:
https://github.com/FlagAI-Open/Aquila2
https://model.baai.ac.cn/
https://huggingface.co/BAAI
AquilaSQL 开源仓库地址:
https://github.com/FlagAI-Open/FlagAI/tree/master/examples/Aquila/Aquila-sql
FlagAttention 开源代码仓库:
https://github.com/FlagOpen/FlagAttention
BGE2 开源地址
paper: https://arxiv.org/pdf/2310.07554.pdf
model: https://huggingface.co/BAAI/llm-embedder
repo: https://github.com/FlagOpen/FlagEmbedding/tree/master/FlagEmbedding/llm_embedder
LLAMA2吞吐量估算公式:total tokens / (total GPU hours * 3600) ,根据Llama 2: Open Foundation and Fine-Tuned Chat Models论文:1)7B的total tokens为2.0 T, total GPU hours 为184320,代入公式得3014 Tokens/sec/GPU;2)34B的total tokens为2.0 T, total GPU hours 为1038336,代入公式得535 Tokens/sec/GPU。
— 完 —