一、前言
随着ChatGPT热度的攀升,越来越多的公司也相继推出了自己的AI大模型,如文心一言、通义千问等。各大应用也开始内置AI玩法,如抖音的AI特效;
关联资源:代码 GitHub、相关论文、项目Demo、产品文档、Grok Ai、grokstream、添加链接描述
二、开源版「ChatGPT Plus」
来自香港大学、XLang实验室、Sea AI实验室和Salesforce的研究者联合打造了一款用于真实世界生产力工具的开源智能体框架——OpenAgents,并开源了全栈代码(完整前后端);OpenAgents还 提供线上的网页 demo (以及配套的开源代码),非程序员背景的普通用户也可轻松与智能体进行交互;OpenAgents 支持真实世界环境和可控环境,支持超过 200 + 的日常工具调用,支持网页自动浏览。OpenAgents 的动机是作为一个开源平台,旨在成为一个真实而全面的人类可交互的智能体评估平台:根据真实需求,真实用户与智能体互动以完成其任务,并记录整个用户 - 智能体互动过程和用户反馈以供进一步评估。为使用和部署智能体提供,目前包括三个关键智能体:
- 用于 Python 和 SQL 的数据智能体;
- 200 多个工具使用的插件智能体;
- 自动网络浏览的 Web 智能体。
OpenAgents 用基于「大语言模型」(LLMs)的技术和全栈工程代码尝试近似复刻了 ChatGPT Plus 的功能。智能体可执行 Python/SQL 代码,熟练调用工具,也能上网找地图发帖子,OpenAgents完全开源了代码,包含从科研到逻辑代码到前端代码的一切。代码完善、易于拓展,本地直接可以一键部署,配套提供了含有丰富的使用案例的文档,帮助研究者和开发者在模型上搭建自己的智能体和应用。一路从代码实现到后端前端全部开源,让其变成了人人都能用的落地级别应用,基于代码开源,开发者和研究者可以定制适配业务需要,修改若干行代码适配自己想要的模型,改进、创造自己想要的功能,甚至创造新的 Agent。 下面是OpenAgents 总览图,面向用户的网页界面,面向开发者的本地部署。
1)数据分析对比
OpenAgents 和 ChatGPT 都能不错地完成用户对股价和交易的分析要求。不过 OpenAgents 可以自动搜索 Kaggle 数据集并下载,ChatGPT 需要用户从本地上传。
2)插件和画图
两者都能成功调用了 Wolfram 插件画出多种八面体的图片。
3)网页调用
模拟测试用户想要查询 10 月 20 日从中国香港到纽约的机票,OpenAgents 识别用户意图后直接跳转到 Skycanner,像 “真人” 一样一边思考一边在网站中填入信息,最后回到聊天页面总结信息;而 ChatGPT 出于安全考虑保证可控性,和调用插件类似,在云端做网页浏览,将最后搜寻到的信息返回。
三、马斯克的Grok
Grok-1(Open Release of Grok-1[1])是一款由 xAI 开发的大型语言模型,拥有 3140 亿个参数,属于混合专家模型(MoE:Mixture-of-Experts model),包含8个专家,总参数量为314B(3140亿),处理Token时,其中的两个专家会被激活,激活参数量为86B。该模型的基础模型权重(一堆训练/投喂的数据,也称模型参数)和网络架构现已在 GitHub:xai-org/grok-1上公开发布,并未经过针对任何特定任务的微调,即它是是2023年10月预训练阶段的原始模型,避免引入任何自定义内核。开源协议遵循 Apache 2.0 许可证,商用友好。引起参数庞大,部署时注意需要一台拥有充足 GPU 内存的机器。Grok-1没有采用常见的Python、PyTorch或Tensorflow,而是选用了Rust编程语言以及深度学习框架新秀JAX,在底层技术上,Grok-1选择使用了基于JAX(一个由Google开发的用于高性能机器学习研究的库)和Rust(一种注重安全性和并发的系统编程语言)的自定义训练堆栈。xAI称:计划未来将Grok打造成多模态的大模型。
关联资源:grok-博客、问题讨论、JAX、JAX GitHub、精度说明
Grok-1 相关特性:
- 3140 亿参数(314B parameters)
- 8 个专家的混合体(Mixture of 8 Experts)
- 每个 token 使用 2 个专家(2 experts used per token)
- 64 层(64 layers)
- 查询的 48 个注意力头(48 attention heads for queries)
- 键/值的 8 个注意力头(8 attention heads for keys/values)
- 嵌入大小:6144(embeddings size: 6,144)
- 旋转嵌入(rotary embeddings, RoPE)
- SentencePiece 分词器;131,072 个令牌(SentencePiece tokenizer; 131,072 tokens)
- 支持激活分片和 8 位量化(Supports activation sharding and 8-bit quantization)
- 最大序列长度(上下文):8192 个 token(Max seq length (context): 8,192 tokens)
Grok-1存储库提供了使用 JAX 框架(是一个专为加速器优化的数组计算和程序转换设计的 Python 库,主要目标是高性能数值计算和大规模机器学习。)加载和运行 Grok-1 模型的示例代码。相对比Grok采用的框架和技术,大多数知名的大模型比如OpenAI的GPT系列或Google的大模型通常是基于TensorFlow或PyTorch这样的主流深度学习框架开发的,且有丰富的API和社区支持,能让模型开发和训练变得更高效。而Grok-1将JAX和Rust的结合,优势在于能够在模型性能、效率和可伸缩性方面有所优化。但这也意味着,xAI可能需要投入更多的资源来维护和支持这种非主流的技术栈。
要运行这些示例,用户需要先下载模型的检查点文件,将其放置在指定的目录中(将下载的 ckpt-0 目录放置在 checkpoint 目录中),然后执行以下命令来安装依赖并运行示例(基础模型大约有七百多个文件,近 300G,注意存储):
git clone https://github.com/xai-org/grok-1.git
cd grok-1
# install
pip install -r requirements.txt
python run.py
根据网络相关经验显示, Grok 的最低配置要求(仅作为参考):
#3[3]:8bit量化的话,可能需要8块H100;在 FP16 精度下,Grok-1 模型大约需要 630GB 至 700GB 的显存。即便配置了 8 个 NVIDIA H100 GPU,能否成功运行该模型仍不确定。在进行某些优化(如通过 GGUF[4] 工具)之前,这个模型可能无法在 CPU 上运行。
#24[5]:你需要拥有 TPU 或 NVIDIA/AMD 品牌的 GPU,且系统中必须装有 8 个此类设备。当前不支持 Apple silicon 设备(如 M1、M2、M3 等)。尽管 Jax 提供了一个 Metal 插件,让你可以在苹果芯片上运行 Jax(Accelerated JAX training on Mac[6]),但在使用 dm_haiku[7] 依赖时仍会遇到问题。即便克服了这些技术障碍,苹果芯片设备可能也没有足够的内存来运行如此庞大的 Grok-1 模型。
#25[8]:需要 8 个 GPU,每个 GPU 拥有 80GB 的显存,典型的选择是 A100 型号。即使是使用 4 个 NVIDIA 4090 显卡,也只能在 4 位量化的情况下勉强容纳模型的权重,而无法实际运行模型。此外,所需的硬件成本极高,单个 A100 的价格约为 12,000 美元,而一台配备 4 个 A100 GPU 的 NVIDIA DGX Station 的起价在 120,000 美元左右。因此,尽管技术上可行,但这样的配置对于大多数人来说是不切实际的。
下图是一组网络测试数据,从整体测试效果来看,这次开源的Grok-1可以说“比上不足,比下有余”——在各个测试集中呈现的效果要比GPT-3.5、70b的LLAMA2和Inflection-1要好,但距离Claude2和GPT-4仍然差了一大截。因Grok-1是xAI从零开始训练,在2023年10月就已经结束了预训练,且没有针对任何特定应用(如对话)进行微调,所以目前无法直接体验到对话的应用。
四、Sora
五、Meta:Llama 2
六、谷歌Gemini:Gemma
它采用Gemini同款技术架构,主打开源和轻量级,免费可用、模型权重开源、允许商用,同时笔记本可跑。
共有2B和7B两个版本,7B版本使用多头注意力机制,2B版本使用多查询注意力机制,Gemma 2B/7B分别使用了2T和6T token进行训练,主要来自网络文档、数学和代码,不过这些数据不是多模态的。据相关测试数据表明:性能全面超越开源标杆Llama 2;目前模型也同步上线Hugging Chat,可在线体验试玩。
关联资源:gemma、博客、博客2、Gemma代码
七、法国Mistral AI
八、国内的开源项目
关联资源:讯飞AI应用、Open-Sora社区