TensorRT-LLM七日谈 Day4

在Day2 中,我们梳理了trt-llm对于TinyLLama的调用,在Day3,我们也熟悉了一下Trt-llm常规的三步流程。

这里其实有个问题,在针对tiny-llama的部署中,其实没有显式的进行模型转换,那麽其推理接口中到底包含了什么?

#demo.pyfrom tensorrt_llm import LLM, SamplingParams
prompts = ["Hello, my name is","The president of the United States is","The capital of France is","The future of AI is",
]
sampling_params = SamplingParams(temperature=0.8, top_p=0.95)model_path = "/data/TinyLlama-1.1B-Chat-v1.0"#  add break point
# import pdb;pdb.set_trace()
llm = LLM(model= model_path)outputs = llm.generate(prompts, sampling_params)

经过PDB的断点,可以看到下列函数被调用。

     model_loader = CachedModelLoader(self.args,
298                                          mpi_session=self.mpi_session,
299                                          workspace=self.workspace,
300                                          llm_build_stats=self.llm_build_stats)
301         self._engine_dir = model_loader()

其中, 在model_loader()的调用中,实现了模型的加载和engine的构造。而在step_forward函数中,则实现了每次的step。

这里附上step_forward的代码

主要包含两步,在第二步中,主要包含

> /usr/local/lib/python3.10/dist-packages/tensorrt_llm/builder.py(1059)build()
-> builder = Builder()
(Pdb) 

在准备好参数后,进行模型和engine的构造。

其中,主要的时间都用于模型的构造了。

> /usr/local/lib/python3.10/dist-packages/tensorrt_llm/builder.py(1203)build()-><tensorrt_llm...x7f119bb08a60>                                                                                               
-> return Engine(engine_config, engine, managed_weights)           

在构造后,模型被存储在了一个临时目录,如下

ModelLoader.save(runtime_context, self.llm_args.model_dir, engine_dir)

 其中,打开engine_dir 可以看到路径为

/tmp/tmpeefho9klllm-workspace/tmp.engine

基于下列代码,我们实现了executor的构造。

-> self._executor = self._executor_cls.create((Pdb) p self._executor 
<tensorrt_llm.executor.ExecutorBindingsWorker object at 0x7f0ee555fdc0>

 

最后完成了模型的推理。

 

今天算是仔细过了一遍模型的生成,可以看到,其中包含了

1. 原始权重文件的的读取,加载,转换,优化

2,. engine文件的落盘

3. 基于engine文件实现推理

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

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

相关文章

VS Code打不开?是不是“%USERPROFILE%\.vscode\extension链接到VS Code Install目录了

前言&#xff1a; Windows系统下通病C盘存储一般会随着使用空间不足&#xff0c;无外乎大力出奇迹为C盘扩容&#xff0c;愚见此乃饮鸠止渴。众多Window系统用户的C盘使用空间逐渐不足&#xff0c;主要原因在于%APPDATA%和%USERPROFILE%两个系统参数对应的路径占用空间随用户使用…

LeetCode题练习与总结:区域和检索 - 数组可修改--307

一、题目描述 给你一个数组 nums &#xff0c;请你完成两类查询。 其中一类查询要求 更新 数组 nums 下标对应的值另一类查询要求返回数组 nums 中索引 left 和索引 right 之间&#xff08; 包含 &#xff09;的nums元素的 和 &#xff0c;其中 left < right 实现 NumArr…

46 C 语言文件的打开与关闭、写入与读取函数:fopen、fclose、fputc、fputs、fprintf、fgetc、fgets、fscanf

目录 1 文件的存储形式 2 打开文件——fopen() 函数 2.1 功能描述 2.2 函数原型 2.3 文件打开方式&#xff08;模式&#xff09; 3 关闭文件——fclose() 函数 3.1 功能描述 3.2 函数原型 4 常见的文件写入方式 4.1 fputc() 函数 4.1.1 功能描述 4.1.2 函数原型 4…

windows自动化(一)---windows关闭熄屏和屏保

电脑设置关闭屏幕和休眠时间不起作用解决方案 一共三个方面注意&#xff1a; 一、关闭屏保设置&#xff1a; 二、电源管理设置 三、关闭盖子不做操作&#xff1a; 第一点很重要&#xff0c;就算二三都做了&#xff0c;一没做&#xff0c;照样不行。

基于STM32的电解加工机床数据采集可视化Qt系统设计流程

一、项目概述 1.1 项目目标与用途 在现代制造业中&#xff0c;电解加工机床因其高精度和高效率而广泛应用于复杂零件的加工。为了提高加工质量并降低故障率&#xff0c;实时监测加工过程中各项参数&#xff08;如电流、电压、温度等&#xff09;变得尤为重要。本项目旨在研发…

一篇python的pandas数据分析,分组与聚合使用!

在数据分析中,数据分组与聚合是常用的操作,能够帮助我们从大量数据中提取出有用的信息.我们讨论了描述性统计,了解了如何通过均值、方差等统计量概述数据的特征.而在本篇中,我们将学习如何对数据进行分组和聚合,以便进行更深入的分析.最后,我们将在后续的章节中使用这些分析结果…

PHP政务招商系统——高效连接共筑发展蓝图

政务招商系统——高效连接&#xff0c;共筑发展蓝图 &#x1f3db;️ 一、政务招商系统&#xff1a;开启智慧招商新篇章 在当今经济全球化的背景下&#xff0c;政务招商成为了推动地方经济发展的重要引擎。而政务招商系统的出现&#xff0c;更是为这一进程注入了新的活力。它…

ES(Elasticsearch)SSL集群部署

8.x后ES不在需要自行准备JDK环境&#xff0c;部署的服务包含ES、Kibana、Logstash&#xff0c;使用二进制方式部署&#xff0c;为了提高安全性&#xff0c;加密logstash、kibana及其他客户端到ES间的通信。 1、准备工作 1.1、 es无法使用root用户启动 useradd -m -s /bin/bas…

WebGl 使用uniform变量动态修改点的颜色

在WebGL中&#xff0c;uniform变量用于在顶点着色器和片元着色器之间传递全局状态信息&#xff0c;这些信息在渲染过程中不会随着顶点的变化而变化。uniform变量可以用来设置变换矩阵、光照参数、材料属性等。由于它们在整个渲染过程中共享&#xff0c;因此可以被所有使用该着色…

一文解读PMP认证,到底值不值得考?

随着项目管理在各行各业的普及&#xff0c;PMP证书作为项目管理领域的“金字招牌”备受关注&#xff0c;但PMP证书真的值得你去考取吗&#xff1f; 一、PMP是什么&#xff1f; PMP证书由美国项目管理协会&#xff08;PMI&#xff09;颁发&#xff0c;旨在评估项目管理者的专业…

【C#网络编程】基础概念2

文章目录 网络、数据包和协议网络数据包协议TCP、UDP 地址客户端和服务器套接字 网络、数据包和协议 计算机网络通过通信通道互连的机器组成&#xff0c;通常把这些机器称为主机和路由器&#xff0c;主机是是运行应用程序&#xff08;如 Web 浏览器&#xff09;的计算机。路由器…

决战Linux操作系统

前言&#xff1a; 你是否也曾经为Linux所困扰过&#xff0c;在网上找的资料零零散散&#xff0c;是否学完Linux后还是懵懵懂懂&#xff0c;别怕&#xff0c;这篇博客是博主精心为你准备的&#xff0c;现在&#xff0c;就让我们一起来走进Linux的世界&#xff0c;决战Linux&…

一文详解数据库范式

背景 在开发中&#xff0c;我们经常需要考虑如何设计合适的表结构&#xff0c;而则往往需要考虑数据库的范式。数据库的三范式&#xff08;3NF&#xff09;是数据库设计过程中用来减少数据冗余和提高数据一致性的重要规则。它们分别是第一范式&#xff08;1NF&#xff09;、第二…

SpringSecurity框架核心组件详解

Spring Security 是一个功能强大且灵活的身份验证和访问控制框架&#xff0c;在很多项目中都会采用该框架来实现权限控制功能。 Authentication&#xff08;身份验证&#xff09;&#xff1a;用于验证用户的身份&#xff0c;通常通过用户名和密码进行身份验证。Authorization&…

oracle数据坏块处理(一)-通过rman备份修复

表有坏块时&#xff0c;全表查询会报错&#xff1a; 这时候如果有前面正常的rman备份&#xff0c;那么我们就可以通过rman备份直接对数据文件块做恢复 先对数据文件做个逻辑检查&#xff1a; RMAN> backup check logical VALIDATE DATAFILE EXB_DATA/exb/datafile/cuteinf…

C#中Assembly3个获取路径的方法

在C#中&#xff0c;经常要获取路径 &#xff0c;可以通过Assembly的三个重载方法来获取&#xff0c;如下所示这三个分别是GetCallingAssembly、GetEntryAssembly和GetExecutingAssembly。 string tmpEntryPath Assembly.GetEntryAssembly().Location;string tmpExeasmPath As…

【VUE】会员管理(增删改查)

前端 router/index.js import { createRouter, createWebHistory } from vue-router import {userInfoStore} from "/stores/user.js";const router createRouter({history: createWebHistory(import.meta.env.BASE_URL),routes: [{path: /login,name: login,comp…

SpringBoot智能推荐:健康生活新趋势

摘要 随着信息技术在管理上越来越深入而广泛的应用&#xff0c;管理信息系统的实施在技术上已逐步成熟。本文介绍了基于智能推荐的卫生健康系统的开发全过程。通过分析基于智能推荐的卫生健康系统管理的不足&#xff0c;创建了一个计算机管理基于智能推荐的卫生健康系统的方案。…

STM32CubeIDE使用ADC采用DMA重大BUG

问题描述 STM32CubeIDE 1.8.0问题 大牛攻城狮最近调试STM32L151CBT6。由于项目上使用该款芯片做控制电源使用&#xff0c;其中涉及到多路ADC的数据采样。使用STM32CubeIDE 1.8.0版本详细如下图所示 这里大概率是STM32CubeMX版本太低了&#xff0c;从图上看才是6.4.0 注意这里…

五、UI弹窗提示

一、制作弹窗UI 二、创建脚本 1、继承WindowRoot&#xff08;UI基类&#xff09; 获取UI上面的组件 2、初始化 将这个文本失活 3、写一个提示出现的方法 这个派生类中&#xff0c;继承了基类的两个方法&#xff0c;设置显示和设置文本 对应基类的这两个方法 将动画赋值给动…