xAI开发的一款巨大型语言模型(HLM)--Grok 1

在xAI发布Grok的权重和架构之后,很明显大型语言模型(LLM)的时代已经过去,现在是巨大型语言模型(HLM)的时代。这个混合专家模型发布了3140亿个参数,并且在Apache 2.0许可下发布。这个模型没有针对任何特定应用进行微调。

The cover image was generated using Midjourney based on the following prompt proposed by Grok: A 3D illustration of a neural network, with transparent nodes and glowing connections, showcasing the varying weights as different thicknesses and colors of the connecting lines.

什么是Grok?

Grok-1拥有3140亿个参数,是目前为止市场上最大的开源模型。与OpenAI的GPT-3相比,Grok的参数大小是GPT-3的三倍多。
Grok 旨在以机智的方式回应,并在其回答中加入一些幽默元素。与其他大型语言模型(LLMs)不同,Grok 拥有来自 X 平台的实时世界知识。它还能回答大多数大型语言模型所拒绝的问题。
Grok仍处于测试阶段,因为仅训练了2个月。但它的性能将日益提高。

Grok的特性

  1. 混合专家(MoE)架构:MoE架构是一种设计神经网络的方法,它由多个专门的“专家”组成,这些专家结合起来进行预测。在这个案例中,Grok有8个专家,但同时只有2个是活跃的。这种方法允许模型有效地扩展到大量参数,通过在多个专家之间分配工作负载来实现。
  2. 旋转位置嵌入(RoPE):RoPE是一种技术,使模型能够有效地处理序列位置信息。传统的位置嵌入在计算上可能较为昂贵,但RoPE旨在更高效地实现位置信息的优点。
  3. 上下文大小:Grok的上下文大小为8192个标记。这指的是模型一次可以处理的标记(通常是词或子词)的最大数量。更大的上下文大小允许模型处理更长的序列,这对于翻译、摘要或其他任何需要远距离上下文的序列基础任务来说是有益的。
  4. 词汇量:Grok的词汇量为131072。这是模型可以表示或预测的独特标记(例如,词或子词)的数量。更大的词汇量允许模型处理更广泛的输入。
  5. 许可:Grok是开源的,并遵循Apache 2.0许可。这个许可允许自由使用、修改和分发软件,只要对任何派生作品也授予相同的自由。
  6. 量化权重:为了提高存储和计算效率,Grok使用了量化权重。量化是一个减少权重精度的过程,以减小模型大小和加快推理速度。在将深度学习模型部署到生产环境时,这是一种常见的做法,因为资源可能受限。
  7. 训练数据:模型在大量文本数据上进行训练,但没有针对任何特定任务进行微调。这意味着Grok可能是一个通用的NLP模型,能够执行广泛的NLP任务,而不需要进行特定任务的调整,尽管不进行特定任务的微调可能会导致在没有进一步训练的情况下模型在某些NLP任务上性能不佳。

Grok评测

Grok 的 MMLU 得分为 73%,超过了 Llama 2 70B 的 68.9% 和 Mixtral 8x7B 的 70.6%。

Grok安装

有关加载和运行 Grok-1 的说明在此 GitHub (GitHub - xai-org/grok-1: Grok open release)中进行了解释。将代码隆到本地即可,其中包含用于加载和运行 Grok-1 开放权重模型的 JAX 示例代码。

确保下载检查点并将 ckpt-0 目录放入checkpoints :

测试运行代码:
pip install -r requirements.txt
python run.py

该脚本在测试输入上加载模型中的检查点和样本。
由于模型规模较大(314B参数),需要有足够GPU内存的机器才能使用示例代码测试模型。该存储库中 MoE 层的实现效率不高。选择该实现是为了避免需要自定义内核来验证模型的正确性。

权重下载

1. 可以使用 torrent 客户端和此磁力链接下载权重:

magnet:?xt=urn:btih:5f96d43576e3d386c9ba65b883210a393b68210e&tr=https%3A%2F%2Facademictorrents.com%2Fannounce.php&tr=udp%3A%2F%2Ftracker.coppersurfer.tk%3A6969&tr=udp%3A%2F%2Ftracker.opentrackr.org%3A1337%2Fannounce

 2. 或者从HuggingFace 🤗 Hub下载:

git clone https://github.com/xai-org/grok-1.git && cd grok-1
pip install huggingface_hub[hf_transfer]
huggingface-cli download xai-org/grok-1 --repo-type model --include ckpt-0/* --local-dir checkpoints --local-dir-use-symlinks False

模型总结

Grok-1 目前设计有以下规格:
参数:314B
架构:8 名专家的组合 (MoE)
专家利用率:每个代币使用 2 名专家
层数:64
注意头:48 个用于查询,8 个用于键/值
嵌入大小:6,144
标记化:具有 131,072 个标记的 SentencePiece 标记生成器
附加功能:
旋转嵌入 (RoPE)
支持激活分片和8位量化
最大序列长度(上下文):8,192 个标记

参考

  • 论文: Open Release of Grok-1
  • 代码: GitHub - xai-org/grok-1: Grok open release
  • https://huggingface.co/xai-org/grok-1
  • https://huggingface.co/Xenova/grok-1-tokenizer

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/756648.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【项目管理后台】Vue3+Ts+Sass实战框架搭建一

项目管理后台 建立项目最好是卸载Vetur 新建.env.d.ts文件安装Eslint安装校验忽略文件添加运行脚本 安装prettier新建.prettierrc.json添加规则新建.prettierignore忽略文件 安装配置stylelint新建.stylelintrc.cjs 添加后的运行脚本配置husky配置commitlint配置husky 强制使用…

从服务器到云原生:企业IT基础设施的演进之路

随着数字经济的迅猛发展,企业IT数字化转型已成为推动业务创新和提升竞争力的关键。在这一转型过程中,基础设施的建设与升级显得尤为重要。企业需要不断优化和更新他们的基础设施,以适应不断变化的市场需求和技术发展。本文将探讨企业IT数字化…

信息系统项目管理师020:信息安全(2信息技术发展—2.1信息技术及其发展—2.1.4信息安全)

文章目录 2.1.4 信息安全1.信息安全基础2.加密解密3.安全行为分析技术4.网络安全态势感知 2.1.4 信息安全 常见的信息安全问题主要表现为:计算机病毒泛滥、恶意软件的入侵、黑客攻击、利用计算机犯罪、网络有害信息泛滥、个人隐私泄露等。随着物联网、云计算、人工智…

【JVM】如何判断堆上的对象没有被引用?

如何判断堆上的对象没有被引用? 常见的有两种判断方法:引用计数法和可达性分析法。 引用计数法会为每个对象维护一个引用计数器,当对象被引用时加1,取消引用时减1。 引用计数法的缺点-循环引用 引用计数法的优点是实现简单&…

大数据面试题 —— HBase

目录 什么是HBase简述HBase 的数据模型HBase 的读写流程HBase 在写的过程中的region的split的时机HBase 和 HDFS 各自的使用场景HBase 的存储结构HBase 中的热现象(数据倾斜)是怎么产生的,以及解决办法有哪些HBase rowkey的设计原则HBase 的列…

RAFT: Adapting Language Model to Domain Specific RAG

RAFT: Adapting Language Model to Domain Specific RAG 相关链接:arXiv GitHub 关键字:Retrieval-Augmented Fine Tuning (RAFT)、Large Language Models (LLMs)、Domain Specific RAG、Distractor Documents、Chain-of-Thought 摘要 预训练大型语言模…

云原生:重塑未来应用的基石

随着数字化时代的不断深入,云原生已经成为了IT领域的热门话题。它代表着一种全新的软件开发和部署范式,旨在充分利用云计算的优势,并为企业带来更大的灵活性、可靠性和效率。今天我们就来聊一聊这个热门的话题:云原生~ &#x1f4…

Android Studio实现内容丰富的安卓自行车租赁平台

获取源码请点击文章末尾QQ名片联系,源码不免费,尊重创作,尊重劳动 项目编号105 1.开发环境android stuido jdk1.8 eclipse mysql tomcat 2.功能介绍 安卓端: 1.注册登录 2.查看公告 3.查看自行车分类 4.预订自行车, 5.…

【高效开发工具系列】语雀Excel入门

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

前端项目,个人笔记(三)【Vue-cli - api封装-axios使用举例】

目录 前言 1、axios配置与测试 1.1、配置 1.2、测试 2、使用axios案例-渲染header 3、Pinia优化重复请求 3.1、为什么? 3.2、使用Pinia优化代码步骤 步骤一:在main.js中创建 Pinia 实例,并将其作为插件添加到 Vue 应用中 步骤二&am…

初识数据库|数据库的特点、分类以及作用

数据库系统(DateBase System,简称DBS)是指在计算机系统中引入数据库后的系统构成,由计算机硬件,操作系统,DBMS,DB,应用程序和用户以及数据库开发和管理人员等组成。 (一…

[BT]BUUCTF刷题第一天(3.19)

第一天(共4题) Web [极客大挑战 2019]EasySQL Payload: 用户名:admin or 11# (密码也可以改成这个) 密码:1(可任意) 网站漏洞代码: sql"select *…

Android和IOS Flutter应用开发使用 Provider.of 时,可以使用 listen: false 来避免不必要的重建

文章目录 listen: false解释示例 listen: false 使用 Provider.of 时,可以使用 listen: false 来避免不必要的重建 解释 当您使用 Provider.of 获取状态对象时,默认情况下,该对象每次发生变化时都会触发重建该对象所在的组件。这在大多数情…

云平台一键迁移(腾讯云windos服务器迁移到阿里云windos服务器)

参考文档 https://help.aliyun.com/zh/smc/use-cases/one-click-cloud-platform-migration 迁移文档 https://cloud.tencent.com/document/product/598/37140 #腾讯密钥创建 https://cloud.tencent.com/document/product/1340/51945 安装腾讯云自动化服务助手 一.导入迁移…

GitHub gpg体验

文档 实践 生成新 GPG 密钥 gpg --full-generate-key查看本地GPG列表 gpg --list-keys关联GPG公钥与Github账户 gpg --armor --export {key_id}GPG私钥对Git commit进行签名 git config --local user.signingkey {key_id} # git config --global user.signingkey {key_id} git…

JVM常用垃圾收集器

JVM 4.1 哪些对象可以作为GC ROOT? 虚拟机栈(栈帧中的局部变量表)中引用的对象本地方法栈中引用的对象方法区静态变量引用的对象方法区常量引用的对象被同步锁持有的对象JNI(Java Native Interface)引用的对象 4.2 常用垃圾收集…

计算机二级(Python)真题讲解每日一题:《方菱形》

描述‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬ 请写代码替换横线&#xff0…

SpringCloud入门(1) Eureka Ribbon Nacos

这里写目录标题 认识微服务SpringCloud 服务拆分和远程调用服务拆分案例实现远程调用 RestTemplate Eureka注册中心Eureka的结构和作用搭建eureka-server服务注册服务发现 Ribbon负载均衡 LoadBalancedLoadBalancerIntercepor源码解析负载均衡策略饥饿加载 Nacos注册中心安装与…

PySpark案例实战

一、前言介绍 二、基础准备 # 导包 from pyspark import SparkConf,SparkContext #创建SparkConf类对象 confSparkConf().setMaster("local[*]").setAppName("test_spark_app") #基于SparkXConf类对象创建SparkContext对象 scSparkContext(confconf) #打印…

深入理解栈和队列(一):栈

个人主页:17_Kevin-CSDN博客 专栏:《数据结构》 一、栈的概念 栈(Stack)是一种特殊的线性表,它遵循后进先出(Last-In-First-Out,LIFO)的原则。栈可以被看作是一个只能在一端进行操作…