在马斯克以OpenAI不Open的理由发起诉讼之后
终于没有食言
在周末重磅开源自家的AI大模型
Grok-1
到目前为止
Grok-1项目在Github上已经获得了20.5k
(最新数据位29k)的Star
成为了众人关注的焦点所在
这次开源的Grok大模型
是马斯克集结了Deepmind、微软、特斯拉、学术界多位大佬
于2023年7月成立的AI公司xAI所带来的成果
Grok的设计初衷
灵感来源于英国作家道格拉斯·亚当斯
所写的科幻小说==《银河系漫游指南》==,
它和ChatGPT一样
可以以对话方式回答问题,也能联网
而有所不同的是
Grok目前已集成到了自家的X平台
中
可以“实时访问”该平台上的所有信息
还可以回答大多数其他AI系统拒绝回答的尖锐问题
甚至就如何提问给出建议
不过目前Grok仅向部分X平台高级订阅用户开放
根据xAI在官方博客发布的公告
这次开源的Grok-1的研发经历了大概四个月
有如下几个显著的特点
1、它是一个基于大量文本数据训练的模型
预训练阶段的checkpoint
停止在2023年10月
没有针对任何特定的任务进行微调
2、模型具有惊人的3140亿参数
是一个8个专家的混合专家MoE模型
在处理每个token时,只有2个专家
也就是25%的参数处于激活状态
从而大幅提升了计算效率
目前公认最大的开源大模型是去年5月发布的OPT-175B
3、它是xAI
在JAX
和Rust
上使用自定义训练堆栈
从头开始训练的
JAX是一个由Google开发的用于高性能机器学习研究的库
而Rust是一种注重安全性和并发的系统编程语言
4、Grok-1是在Apache 2.0许可证下发布的权重
和架构
允许用户自由地使用、修改和分发
无论是个人还是商业用途
除此之外,在X平台上
来自LangChain的工程师还对Grok的架构做了进一步的深入分析
详细来看,除了我们已知的
Grok-1
是一个314B混合专家模型
其中有8个专家,2个是活跃
的以外
它还有860亿的激活参数
这比Llama-2的70B参数
还要多
此外
Grok-1还使用了旋转位置嵌入(RoPE)
而非固定位置嵌入
这种方式可以支持对更长序列的位置编码
有助于捕捉文本长距离依赖关系
再者
Grok-1 tokenizer的词汇大小为131072
,与GPT-4类似,相当于2的17次方
嵌入大小为48乘以128
,等于6144
拥有64个Transformer层
每层都有一个解码器层
包括多头注意力块
和密集块
键值大小为128
其中
多头注意模块有48个查询头和18个键/值(KV),
KV大小为128
密集前馈块的宽度因子为8
隐藏层大小为32768
旋转位置嵌入大小也采用了6144
因为它与模型的输入嵌入大小相同
上下文长度为8,192个token
精度是bf16
除此之外
Grok-1还引入了诸如GeGLU
、sandwich norm
等一系列创新的归一化手段
那Grok-1的性能究竟如何呢
根据官方公告显示
Grok-1是在数万个GPU集群
上
花了几个月时间开发的
训练数据来自截至2023年第三季度的互联网数据和人类助手的反馈
xAI将其称之为“AI导师”。
在Grok-1之前
xAI也训练了一个具有330亿参数的原型大语言模型
名为Grok-0
这个早期模型在标准LM基准测试
上
接近于LLaMA 2 70B
的性能
但是只使用了一半的训练资源
之后
xAI团队在推理和编码能力方面
取得了重大改进
最终推出了Grok-1,性能更加强大
在HumanEval编码任务
中实现了63.2%
,
在MMLU
上实现了73%
。
为了验证Grok-1的能力
xAI团队使用了一些衡量数学和推理能力的标准基准
对Grok-1进行了一系列评估
根据测试结果显示
Grok-1目前在大模型队列中处于中等水平
超过了GPT-3.5
、LLaMA 2 70B
但是距离Claude 3
、GPT-4
等大模型还有一定的距离
在基础设施方面,xAI团队表示
在深度学习研究的前沿
必须像数据集
和学习算法
一样
谨慎地构建可靠的基础设施
为了创建Grok
他们构建了一个基于Kubernetes、Rust和JAX的自定义训练和推理堆栈
在xAI团队看来
大语言模型训练就像一列货运列车在前方轰鸣
如果一节车厢脱轨
整列火车就会被拖离轨道
很难再次直线行驶
GPU失败的方式有很多种
包括制造上的缺陷、连接松动、配置不正确、内存芯片退化、偶尔的随机位翻转
等等
因此在训练时,xAI团队会连续数月
在数以万计的GPU之间同步计算
并且由于规模的原因
所有这些故障都变得频繁
为了克服这些挑战
xAI团队采用了一套定制的分布式系统
确保立即识别并自动处理每种类型的故障
最大限度地提高每瓦的有效计算能力
根据官方透露,在过去的几个月里
xAI的基础设施已经能够最大限度地减少停机时间
即使在硬件不可靠
的情况下
也能保持较高的模型浮点运算利用率
还有一点值得关注的是
在大模型的基础设施开发上
Rust已被证明是构建可扩展、可靠和可维护的基础设施的理想选择
它提供了高性能、丰富的生态系统
并且减少了人们通常会在分布式系统中犯的大多数错误
目前xAI团队采用Rust的根本原因也在于团队规模较小
基础设施的可靠性至关重要
而Rust使得他们相信
任何对代码的修改或者重构
都可以产生稳定的程序
可以在最少的监督下运行数个月
在大模型赛道上
初出茅庐的Grok仍然还是一个非常早期的测试版产品
也会生成一些错误或者矛盾的观点
在这一点上,xAI团队也坦然承认
作为下一步
xAI团队表示将实现可靠的推理
克服当前系统局限性
,为此
他们将加大以下几个方向的研究
1、通过工具辅助实现可扩展的监督
人类的反馈是必不可少的
但是
提供一致且准确的反馈可能具有挑战性
尤其是在处理冗长的代码
或者复杂的推理步骤
的时候
人工智能可以通过查找来自不同来源的参考资料、使用外部工具来验证中间步骤
以及在必要时寻求人工反馈
协助进行可扩展的监督
xAI的目标是在模型的帮助下
最有效地利用AI导师的时间
2、集成形式验证
确保安全性、可靠性和可实施性
为了创建能够对现实世界进行深入推理
的人工智能系统
xAI计划在不那么模糊和更可验证
的情况下
发展推理技能
这样能够在没有人类反馈或者与现实世界交互
的情况下
评估系统
这种方法的一个主要直接目标
是为代码的正确性提供正式的保证
特别是在AI安全的可验证方面
3、长期上下文理解和检索
在特定环境中有效发现有用知识的训练模型
是产生真正智能系统的核心
xAI正在研究可以在需要时发现和检索信息的方法
4、对抗鲁棒性
对抗性示例表明
优化器
可以在训练和服务期间
轻松利用人工智能系统中的漏洞
导致他们犯下严重错误
这些漏洞是深度学习模型长期存在的弱点
因此团队对提高大语言模型
、奖励模型
和监控系统的稳健性
特别感兴趣
5、多模态功能
目前,Grok没有其他感官
例如视觉和听觉
为了更好地帮助用户
xAI将为Grok配备这些不同的感官
从而实现更广泛的应用
包括实时交互和辅助
当前,Grok-1已经面向所有人开放
而要开始使用该模型
需要先确保下载checkpoint
并将ckpt-0目录
放入checkpoint
然后
运行pip install -r requirements
txt,以及python run
py
,就可以开始测试代码了
不过
由于Grok-1的参数量高达3140亿
模型体积过于庞大
需要有配备足够GPU内存的机器
才能使用示例代码来测试模型
xAI团队在GitHub的项目仓库
里面也直接说道
目前该资源库中MoE层的实现并不高效
选择这种实现方式是为了避免需要定制内核
来验证模型的正确性
那么3140亿参数的Grok-1到底需要怎样的配置才能运行呢
对此有人给出答案
可能需要一台拥有628GB GPU内存的机器
这么算下来就需要8个H100
整体效率确实不高
根据昆仑万维AI Infra
负责人成诚
的评价
Grok-1用了8倍于Mixtral-8x7B
的模型大小
但是实际效果可能仅和Mixtral-8x7B持平
同时
Grok-1的推理成本是Mixtral-8x7B
的10倍
以上
只能通过8块A100
或者8块H100机器推理
而且一个模型就独占了一个机器
单台机器显存一共640G
由于参数量已经有314B了
bf16推理参数量就占了628G
几乎无法推理完成
所以只能是int8量化推理
而且TP8引入了大量的通信
而同等量化下
Mixtral-8x7B单卡就能推理
无需跨卡通信
吞吐效率远高于Grok-1 10倍以上
此外,Grok-1只做了预训练
没做微调,而且是用Jax训练的
开源的代码也是Jax
而不是开源社区主流的PyTorch代码
权重也没有发布在HuggingFace上
直接只放出了一条磁力链接
目前,xAI公司仅为美国的一部分用户
提供了尝试使用Grok的机会
并接受有价值的反馈
同时,马斯克也在X上表示
一旦结束早期测试
Grok AI助手将作为X Premium+
的一部分提供
或者
X用户可以每月花费16美元
进行订阅
虽然这次马斯克开放了Grok-1
但是并没有发布有关训练、评估、可重复性
甚至架构的任何详细信息
有不少用户也担心马斯克只是做了初步开源Grok-1的计划
就没有后续了
毕竟他之前对X的推荐算法也做了开源
我们也介绍过
只是开源之后就似乎没有更新过了
不管怎么样,这次Grok-1的开源
还是让马斯克站到了开源大模型的队伍里来
压力开始给到OpenAI和其他大模型公司了
不过
由于Grok-1已经是去年的模型了
所以也希望xAI能够尽快放出最新的一些研究进展
加快AI的发展速度