LLMs之Grok-1:run.py文件解读—运行语言模型实现推理—即基于用户的输入文本利用grok_1语言模型来生成文本

LLMs之Grok-1:run.py文件解读—运行语言模型实现推理—即基于用户的输入文本利用grok_1语言模型来生成文本

目录

run.py文件解读—运行语言模型实现推理—即基于用户的输入文本利用grok_1语言模型来生成文本

概述

1、加载预训练的语言模型 grok_1

1.1、定义模型的配置

2、定义并初始化推理运行器

2.1、创建一个 InferenceRunner 对象(用于运行模型推理)

2.2、调用 inference_runner.initialize() 方法初始化推理运行器。

2.3、调用 inference_runner.run() 方法运行模型推理并获取生成器。

3、模型生成

全部代码


run.py文件解读—运行语言模型实现推理—即基于用户的输入文本利用grok_1语言模型来生成文本

源码地址:grok-1/run.py at main · xai-org/grok-1 · GitHub

概述

这段代码使用了一个预训练的语言模型 grok_1_model 来生成文本。代码首先定义了模型的配置,然后创建了一个 InferenceRunner 对象来运行模型推理。最后,代码定义了一个输入字符串,并使用 sample_from_model 函数从模型中获取一个样本,将其打印出来。

1、加载预训练的语言模型 grok_1

1.1、定义模型的配置

定义一个名为 grok_1_model 的 LanguageModelConfig 对象,该对象包含有关模型配置的详细信息,例如词汇表大小、序列长度、嵌入层初始化比例、输出和嵌入层的乘数比例等。模型的架构是一个 TransformerConfig 对象,其中包括了嵌入大小、扩展因子、键大小、头数量、层数、注意力输出乘数等参数。

2、定义并初始化推理运行器

2.1、创建一个 InferenceRunner 对象(用于运行模型推理)

InferenceRunner 接受一个 ModelRunner 对象作为参数,该对象包含了模型配置、批处理大小、检查点路径等信息。InferenceRunner 还需要指定一些其他参数,如名称、加载路径、分词器路径、本地和跨主机配置等。

2.2、调用 inference_runner.initialize() 方法初始化推理运行器。

2.3、调用 inference_runner.run() 方法运行模型推理并获取生成器。

3、模型生成

定义一个输入字符串 inp,然后使用 sample_from_model 函数从生成器中获取一个样本,并将其打印出来。

全部代码

# Copyright 2024 X.AI Corp.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.import loggingfrom model import LanguageModelConfig, TransformerConfig, QuantizedWeight8bit as QW8Bit
from runners import InferenceRunner, ModelRunner, sample_from_modelCKPT_PATH = "./checkpoints/"def main():grok_1_model = LanguageModelConfig(vocab_size=128 * 1024,pad_token=0,eos_token=2,sequence_len=8192,embedding_init_scale=1.0,output_multiplier_scale=0.5773502691896257,embedding_multiplier_scale=78.38367176906169,model=TransformerConfig(emb_size=48 * 128,widening_factor=8,key_size=128,num_q_heads=48,num_kv_heads=8,num_layers=64,attn_output_multiplier=0.08838834764831845,shard_activations=True,# MoE.num_experts=8,num_selected_experts=2,# Activation sharding.data_axis="data",model_axis="model",),)inference_runner = InferenceRunner(pad_sizes=(1024,),runner=ModelRunner(model=grok_1_model,bs_per_device=0.125,checkpoint_path=CKPT_PATH,),name="local",load=CKPT_PATH,tokenizer_path="./tokenizer.model",local_mesh_config=(1, 8),between_hosts_config=(1, 1),)inference_runner.initialize()gen = inference_runner.run()inp = "The answer to life the universe and everything is of course"print(f"Output for prompt: {inp}", sample_from_model(gen, inp, max_len=100, temperature=0.01))if __name__ == "__main__":logging.basicConfig(level=logging.INFO)main()

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

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

相关文章

Python之数据分析二

一、Python之数据类型 当讲解Python中的数据类型时,可以通过代码来示范每种数据类型的特点和用法。以下是Python中常见的几种数据类型: 1.数字(Numbers)类型 包括整数(int)、浮点数(float&am…

Net8 ABP VNext完美集成FreeSql、SqlSugar,实现聚合根增删改查,完全去掉EFCore

没有基础的,请参考上一篇 彩蛋到最后一张图里找 参考链接 结果直接上图,没有任何业务代码 启动后,已经有了基本的CRUD功能,还扩展了批量删除,与动态查询 动态查询截图,支持分页,排序 实现原理…

强化学习及其在机器人任务规划中的进展与分析

源自:模式识别与人工智能 作者:张晓明 高士杰 姚昌瑀 褚誉 彭硕 “人工智能技术与咨询” 发布 摘要 强化学习可以让机器人通过与环境的交互,学习最优的行动策略,是目前机器人领域关注的重要前沿方向之一.文中简述机器人任务规划问题的形式化建模…

《青少年成长管理2024》 003 “你将面临一个怎样的世界”

《青少年成长管理2024》 003 “你将面临一个怎样的世界” 一、审视你将面临的世界二、机器替代人类劳动三、人工智能将给这个世界带来怎样的影响本节摘要 一个生命降临世间,首要的任务是充分理解所面临的现实世界,这是做出明智选择的基础。机器替代人类的…

Unity编辑器功能将AB资源文件生成MD5码

将路径Application.dataPath/ArtRes/AB/PC文件夹下所有的Ab包文件生成MD5吗,通过文件名 文件长度MD5‘|’的格式拼接成字符串写入到资源对比文件abCompareInfo.txt中。 将路径pathFile扥文件生成MD5码

STM32之HAL开发——DMA转运串口数据

DMA功能框图(F1系列) 如果外设要想通过 DMA 来传输数据,必须先给 DMA 控制器发送 DMA 请求, DMA 收到请求信号之后,控制器会给外设一个应答信号,当外设应答后且 DMA 控制器收到应答信号之后,就会…

实现ls -l 功能,index,rindex函数的使用

index();----------------------------------------------------------------- index第一次遇到字符c&#xff0c;rindex最后一次遇到字符c&#xff0c;返回值都是从那个位置开始往后的字符串地址 #include <stdio.h> #include <sys/types.h> #include <pwd.h&g…

[HackMyVM]靶场Crossbow

kali:192.168.56.104 靶机:192.168.56.136 端口扫描 # nmap 192.168.56.136 Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-03-26 22:17 CST Nmap scan report for crossbow.hmv (192.168.56.136) Host is up (0.0057s latency). Not shown: 997 closed tcp…

反射率光纤光谱仪检测汽车后视镜反射率

反射率光纤光谱仪是一种用于测量材料表面反射率的精密仪器&#xff0c;它通过光纤传输光信号&#xff0c;并利用光谱仪进行分析&#xff0c;以确定材料的光学特性。反射率光纤光谱仪的工作原理基于相对反射率的计算&#xff0c;它涉及到光源、光纤、光谱仪等关键组件。 后视镜能…

牛客小白月赛89(A~C)

小白赛怎么这么难打&#xff0c;是什么小白&#xff0c;我的世界小白吗。 A. 伊甸之花 给你一个数组 a&#xff0c;问你是否找出一个 不等于 a 的数组 b&#xff0c;满足 其中数值都要在 [1,m] 的范围内 直接在 a 数组上修改&#xff0c;可以发现如果改了 a[1],a[2]&#xff…

HTML(一)---【基础】

零.前言&#xff1a; 本文章对于HTML的基础知识处理的十分细节&#xff0c;适合从头学习的初学者&#xff0c;亦或是想要提升基础的前端工程师。 1.什么是HTML&#xff1f; HTML是&#xff1a;“超文本标签语言”&#xff08;Hyper Text Markup Language&#xff09; HTML不…

《Django项目》day4 -- 部署nginx与对接acapp

文章目录 1.增加容器的映射端口&#xff1a;80&#xff08;http&#xff09;与443&#xff08;https&#xff09;2.创建AcApp&#xff0c;获取域名、nginx配置文件及https证书3.修改django项目的配置4.配置uwsgi 1.增加容器的映射端口&#xff1a;80&#xff08;http&#xff0…

SQL109 纠错4(组合查询,order by..)

SELECT cust_name, cust_contact, cust_email FROM Customers WHERE cust_state MI UNION SELECT cust_name, cust_contact, cust_email FROM Customers WHERE cust_state IL ORDER BY cust_name;order by子句&#xff0c;必须位于最后一条select语句之后

【AI模型-机器学习工具部署】远程服务器配置Jupyter notebook或jupyter lab服务

随着AI人工智能的崛起&#xff0c;机器学习、深度学习、模型训练等技术也慢慢泛化&#xff0c;java开发有idea&#xff0c;web开发有vscode&#xff0c;那么AI开发神器肯定离不开jupyter lab&#xff08;基础版jupyter notebook&#xff09; Jupyter notebook部署 1. 安装jupy…

FastAPI+React全栈开发06 使用MongoDB设置文档存储

Chapter02 Setting Up the Document Store with MongoDB 01 Summary FastAPIReact全栈开发06 使用MongoDB设置文档存储 In this chapter, we are going to address some of the main features of MongoDB, building upon what was mentioned in the introductory chapter, a…

类模板与继承及成员、全局函数的实现

一、类模板与继承 当类模板碰到继承时&#xff0c;需要注意一下几点&#xff1a; 1.当子类继承的父类是一个类模板时&#xff0c;子类在声明的时候&#xff0c;要指定出父类中T的类型 2.如果不指定&#xff0c;编译器无法给子类分配内存 3.如果想灵活指定出父类中T的类型&a…

在Jetson Nano上使用TensorRT来加速模型

NVIDIA Jetson Nano是一款小型的AI计算设备&#xff0c;专为边缘计算设计&#xff0c;适合运行机器学习和深度学习模型。TensorRT是NVIDIA的一个高性能深度学习推理&#xff08;Inference&#xff09;优化器和运行时库&#xff0c;可以用于加速深度学习模型的推理速度。 在Jet…

QT_day5:使用定时器实现闹钟

1、 程序代码&#xff1a; widget.h&#xff1a; #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include <QTime>//时间类 #include <QTimer>//时间事件类 #include <QTextToSpeech>//文本转语音类 QT_BEGIN_NAMESPACE namespace Ui { cla…

速盾:vue可以用cdn吗

Vue可以使用CDN&#xff08;Content Delivery Network&#xff09;来引入&#xff0c;这是一种分发网络&#xff0c;可以加速网站或应用的静态资源加载&#xff0c;从而提供更快的用户体验。在使用CDN之前&#xff0c;我们需要了解一些基本概念和步骤。 CDN是一个分布式系统&a…

2014年认证杯SPSSPRO杯数学建模C题(第一阶段)土地储备方案的风险评估全过程文档及程序

2014年认证杯SPSSPRO杯数学建模 C题 土地储备方案的风险评估 原题再现&#xff1a; 土地储备&#xff0c;是指市、县人民政府国土资源管理部门为实现调控土地市场、促进土地资源合理利用目标&#xff0c;依法取得土地&#xff0c;进行前期开发、储存以备供应土地的行为。土地…