脚本之家,脚本语言编程技术及教程分享平台!
分类导航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|shell|

服务器之家 - 脚本之家 - Python - 3140参数Grok-1推理加速3.8倍,PyTorch+HuggingFace版来了

3140参数Grok-1推理加速3.8倍,PyTorch+HuggingFace版来了

2024-03-25 16:36量子位 Python

Grok-1使用Rust+JAX构建,对于习惯Python+PyTorch+HuggingFace等主流软件生态的用户上手门槛高。

马斯克说到做到开源Grok-1,开源社区一片狂喜。

但基于Grok-1做改动or商用,都还有点难题:

Grok-1使用Rust+JAX构建,对于习惯Python+PyTorch+HuggingFace等主流软件生态的用户上手门槛高。

3140参数Grok-1推理加速3.8倍,PyTorch+HuggingFace版来了

△图注:Grok登上GitHub热度榜世界第一

Colossal-AI团队最新成果,解大家燃眉之急,提供方便易用的Python+PyTorch+HuggingFace Grok-1,能将推理时延加速近4倍

现在,模型已在HuggingFace、ModelScope上发布。

HuggingFace下载链接:
https://huggingface.co/hpcai-tech/grok-1

ModelScope下载链接:
https://www.modelscope.cn/models/colossalai/grok-1-pytorch/summary

性能优化

结合Colossal-AI在AI大模型系统优化领域的丰富积累,已迅速支持对Grok-1的张量并行。

在单台8H800 80GB服务器上,推理性能相比JAX、HuggingFace的auto device map等方法,推理时延加速近4倍

3140参数Grok-1推理加速3.8倍,PyTorch+HuggingFace版来了

使用教程

下载安装Colossal-AI后,启动推理脚本即可。

./run_inference_fast.sh hpcaitech/grok-1

模型权重将会被自动下载和加载,推理结果也能保持对齐。如下图中Grok-1 greedy search的运行测试。

3140参数Grok-1推理加速3.8倍,PyTorch+HuggingFace版来了

更多详情可参考grok-1使用例:
https://github.com/hpcaitech/ColossalAI/tree/main/examples/language/grok-1

庞然大物Grok-1

此次开源,xAI发布了Grok-1的基本模型权重和网络架构。

具体来说是2023年10月预训练阶段的原始基础模型,没有针对任何特定应用(例如对话)进行微调。

结构上,Grok-1采用了混合专家(MoE)架构,包含8个专家,总参数量为314B(3140亿),处理Token时,其中的两个专家会被激活,激活参数量为86B。

单看这激活的参数量,就已经超过了密集模型Llama 2的70B,对于MoE架构来说,这样的参数量称之为庞然大物也毫不为过。

更多参数信息如下:

  • 窗口长度为8192tokens,精度为bf16
  • Tokenizer vocab大小为131072(2^17),与GPT-4接近;
  • embedding大小为6144(48×128);
  • Transformer层数为64,每层都有一个解码器层,包含多头注意力块和密集块;
  • key value大小为128;
  • 多头注意力块中,有48 个头用于查询,8 个用于KV,KV 大小为 128;
  • 密集块(密集前馈块)扩展因子为8,隐藏层大小为32768

3140参数Grok-1推理加速3.8倍,PyTorch+HuggingFace版来了

在GitHub页面中,官方提示,由于模型规模较大(314B参数),需要有足够GPU和内存的机器才能运行Grok。

这里MoE层的实现效率并不高,选择这种实现方式是为了避免验证模型的正确性时需要自定义内核。

模型的权重文件则是以磁力链接的形式提供,文件大小接近300GB。

3140参数Grok-1推理加速3.8倍,PyTorch+HuggingFace版来了

值得一提的是,Grok-1采用的是Apache 2.0 license,商用友好

目前Grok-1在GitHub上的标星已达到43.9k Stars。

量子位了解,Colossal-AI将在近期进一步推出对Grok-1在并行加速、量化降低显存成本等优化,欢迎持续关注。

Colossal-AI开源地址:https://github.com/hpcaitech/ColossalAI

原文地址:https://mp.weixin.qq.com/s/0ZZG50QVrTqH40CfsBTfqQ

延伸 · 阅读

精彩推荐
  • PythonPython中的 Set 与 dict

    Python中的 Set 与 dict

    这篇文章主要介绍了Python中的 Set 与 dict,Set 集合类型有无序 , 自动去重等特点,dict 字典类型 键值对存储的数据,可获取,可修改 表面上有序,实际存储时无...

    就在日落之前10052022-11-01
  • PythonPython 输出时去掉列表元组外面的方括号与圆括号的方法

    Python 输出时去掉列表元组外面的方括号与圆括号的方法

    今天小编就为大家分享一篇Python 输出时去掉列表元组外面的方括号与圆括号的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...

    wxy_csdn_world6882021-05-07
  • PythonPython变量基础知识

    Python变量基础知识

    这篇文章主要介绍Python变量的基础知识,围绕Python变量相关知识点展开,需要的朋友可以参考下面文章的具体内容...

    J.Feng3742022-01-28
  • Pythonpython glom模块的使用简介

    python glom模块的使用简介

    这篇文章主要介绍了python glom模块的使用简介,帮助大家更好的利用python处理数据,感兴趣的朋友可以了解下...

    派森酱7662021-10-08
  • PythonDjango-imagekit的使用详解

    Django-imagekit的使用详解

    ImageKit是一个用于处理图像的Django应用程序。这篇文章主要介绍了Django-imagekit的使用,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴...

    lunarian4092020-07-06
  • PythonPython中使用Opencv开发停车位计数器功能

    Python中使用Opencv开发停车位计数器功能

    这篇文章主要介绍了Python中使用Opencv开发停车位计数器,本教程最好的一点就是我们将使用基本的图像处理技术来解决这个问题,没有使用机器学习、深度学...

    @BangBang4862022-11-22
  • Python如何使用Python 打印各种三角形

    如何使用Python 打印各种三角形

    这篇文章主要介绍了如何使用Python 打印各种三角形,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以...

    努力学习小哥8892021-07-26
  • Python使用tkinter实现三子棋游戏

    使用tkinter实现三子棋游戏

    这篇文章主要为大家详细介绍了使用tkinter实现三子棋游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...

    格格巫污污8502021-09-09