通用大模型研究重点之五:model services

news2024/11/18 18:23:40
  • Trtion
    https://github.com/openai/triton
    https://www.nvidia.cn/gpu-cloud/ngc-nvidia-triton/
    https://github.com/openai/openai-cookbook
    https://github.com/openai/openai-python

Triton 是一个由 NVIDIA 开发的开源推理服务平台,旨在简化和优化生产环境中的 AI 模型部署。Triton 支持多种深度学习框架,并提供了一个优化的推理接口,可以提高模型的执行效率和扩展性。以下是 Triton 框架的代码结构和功能的概述:

代码结构
Triton 的代码结构大致如下:

core - 包含 Triton 的核心逻辑,如推理请求和响应的处理。
agent - 负责与客户端通信,接收推理请求并将其转发到核心系统。
backend - 包含 Triton 支持的各种深度学习框架的后端接口,如 TensorFlow, PyTorch 等。
config - 包含 Triton 配置相关的代码,用于定义模型配置和系统配置。
common - 包含 Triton 通用的代码,如日志记录、状态码等。
docs - Triton 的官方文档。
examples - 提供了一些 Triton 使用的示例。
grpc - 包含 Triton gRPC 服务的代码,用于支持远程推理。
http - 包含 Triton HTTP 服务的代码,用于提供 RESTful API。
health - 包含健康检查相关的代码,用于监测 Triton 服务的状态。
功能介绍
模型管理 - Triton 允许用户上传和管理 AI 模型,提供了模型版本控制和A/B测试功能。

多种框架支持 - Triton 支持多种深度学习框架,如 TensorFlow, PyTorch, ONNX 等。

优化的推理 - Triton 对模型进行了优化,以减少延迟并提高吞吐量。

扩展性 - Triton 可以水平扩展以处理大量的推理请求。

API 接口 - Triton 提供了 gRPC 和 HTTP 两种 API 接口,方便客户端进行远程推理。

安全性 - Triton 支持 SSL/TLS,可以加密客户端和 Triton 之间的通信。

灵活的部署 - Triton 支持在多种环境中部署,包括本地服务器、云环境和Kubernetes。

监控和日志 - Triton 提供了监控和日志记录功能,帮助用户跟踪推理请求的状态和性能。

模型分析 - Triton 可以分析模型的性能,如推理时间和利用率。

健康检查 - Triton 提供了健康检查和就绪检查,确保服务的可用性。在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • TensorRT-LLM
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

  • VLLM
    https://vllm.ai
    https://docs.vllm.ai/en/latest/在这里插入图片描述
    在这里插入图片描述
    VLLM的优点:
    高吞吐量:vLLM提供了最先进的服务吞吐量,适合高负载的推理需求。
    内存管理:通过使用PagedAttention技术,高效管理注意力机制中的键(key)和值(value)内存。
    连续批处理:对传入的请求进行连续批处理,提高处理效率。
    快速模型执行:利用CUDA/HIP图快速执行模型,加速推理过程。
    量化技术:支持GPTQ、AWQ、SqueezeLLM、FP8 KV Cache等量化技术,减少模型大小,加快推理速度。
    优化的CUDA内核:使用优化的CUDA内核进一步提升性能。
    vLLM的功能模块:
    与HuggingFace模型集成:无缝集成流行的HuggingFace模型,方便用户使用。
    多种解码算法:支持包括并行采样、束搜索(beam search)在内的多种高吞吐量服务解码算法。
    张量并行性:支持张量并行性,适用于分布式推理。
    流式输出:支持流式输出,可以处理长序列生成任务。
    OpenAI兼容API服务器:提供与OpenAI兼容的API服务器,方便开发者集成和使用。
    支持NVIDIA和AMD GPU:支持主流的NVIDIA和AMD GPU,提供广泛的硬件支持。
    实验性功能:
    前缀缓存支持:提供实验性的前缀缓存支持,可能提高特定任务的性能。
    多LoRA支持:实验性支持多LoRA适配器,增强模型的灵活性。
    文档和资源:
    宣布博客文章:介绍了PagedAttention的入门知识。
    vLLM论文:在SOSP 2023上发表的论文。
    连续批处理:Cade Daniel等人的研究,展示了连续批处理如何在减少延迟的同时提高LLM推理的吞吐量。

  • FlashInfer
    https://github.com/tqchen/flashinfer
    FlashInfer是一个语言语言模型库,提供了诸如FlashAttention、PageAttention和LoRA等LLM GPU内核的高性能实现。FlashInfer专注于LLM服务和推理,并在各种场景中提供最先进的性能。FlashInfer的独特功能包括:
    全面的注意力内核:注意力内核涵盖了LLM服务的所有常见用例,包括不同格式的KV Cache(Padded Tensor、Ragged Tensor和Page Table)上的Prefill、Decode和Append内核的单请求和批处理版本。
    优化的共享前缀批量解码:FlashInfer通过级联增强了共享前缀批量译码性能,与基线vLLM PageAttention实现相比,速度提高了31倍(用于32768个令牌的长提示和256个大批量)。加速对压缩/量化KV缓存的关注:现代LLM通常与量化/压缩KV缓存一起部署,以减少内存流量。FlashInfer通过优化分组查询注意力、融合RoPE注意力和量化注意力的性能来加速这些场景。FlashInfer支持PyTorch、TVM和C++(仅限标头)API,可以轻松集成到现有项目中。

  • DeepSpeed-MII
    1.1 目前主流的大模型分布式训练主要包括两种:
    数据并行训练
    模型并行训练
    2.1DeepSpeed是由Microsoft提供的分布式训练工具,旨在支持更大规模的模型和提供更多的优化策略和工具。对于更大模型的训练来说,DeepSpeed提供了更多策略,例如:Zero、Offload等。
    .1 基础组件
    分布式训练需要掌握分布式环境中的基础配置,包括节点变化、全局进程编号、局部进程编号、全局总进程数、主节点等。这些组件都跟分布式训练紧密相关,同时组件之间也有非常大的联系,例如通信联系等。
    2.2 通信策略
    既然是分布式训练,那机器之间必须要保持通信,这样才可以传输模型参数,梯度参数等信息。DeepSpeed提供了mpi、gioo、nccl等通信策略.
    2.3 存储效率:DeepSpeed提供了一种Zero的新型解决方案来减少训练显存的占用,它与传统的数据并行不同,它将模型状态和梯度进行分区来节省大量的显存;可扩展性:DeepSpeed支持高效的数据并行、模型并行、pipeline并行以及它们的组合,这里也称3D并行;易用性: 在训练阶段,只需要修改几行代码就可以使pytorch模型使用DeepSpeed和Zero。

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

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

相关文章

windows11 iis10中.net4.5不能用解决方法

问题iis设置4.0后运行程序提示web.config配置错误 解决方法: 管理员身份运行命令提示符分别运行如下命令: dism /online /enable-feature /featurename:IIS-ISAPIFilter dism /online /enable-feature /featurename:IIS-ISAPIExtensions dism /onli…

模拟量和开关量傻傻分不清?戳这文

在电子工程中,模拟量和开关量是最基本的信号类型,但它们在表示和处理方式上有着显著的不同。对于初入行的电子工程师来说,很容易混淆这两者。本文将用简洁明了的方式解释这两种信号类型,让你轻松掌握它们的区别。 1、模拟量 模拟…

js作业微博发言

微博 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><meta http-equiv"X-UA-Compatible" content&q…

三款热门婴儿洗衣机深度测评,希亦、觉飞、RUUFFY谁更好用?

近几年科技高速发展&#xff0c;我们的生活也因此变得更加便捷、健康高效。尤其是在家庭生活中&#xff0c;各种新兴家电的出现让我们的生活变得更加健康卫生。婴儿洗衣机也为现代家庭提供了极大的便捷。由于婴儿刚出生免疫力比较弱&#xff0c;所以建议婴儿的衣物尽量和大人的…

在C#中,PDFsharp库使用(三):PDF提取

PDF提取 一、PDF提取功能&#xff0c;看图 二、PDF提取界面 三、PDF提取代码 //pdf提取---选择文件Button private void button9_Click(object sender, EventArgs e) {string oneFilePath GetOneFilepath();if (!string.IsNullOrEmpty(oneFilePath)){textBox3.Text oneFilePa…

Java多线程交替打印

多线程交互 在Java中&#xff0c;可以使用synchronized关键字或者java.util.concurrent包中的工具来实现多线程交替打印。以下是一个使用synchronized关键字的示例&#xff1a; public class AlternatePrinting {private static final Object lock new Object();private sta…

设计模式之创建型模式---工厂模式

文章目录 工厂模式概述简单工厂简单工厂的代码实现简单工厂的使用简单工厂应用场景 工厂方法工厂方法模式的代码实现工厂方法的使用工厂方法应用场景 抽象工厂抽象工厂模式代码实现抽象工厂的使用方法抽象工厂模式的应用场景 总结 工厂模式概述 工厂模式从名字就能看出&#x…

【Java笔记】如何创建自己的注解+注解怎么用于反射+SpringBoot常见注解

文章目录 0. 为什么SpringBoot要整这么多注解&#xff1f;1. 一些基础知识1.1 什么是注解1.2 Java内置注解1.2.1 作用在代码上的注解1.2.2 作用在注解的注解&#xff08;元注解&#xff09;1.2.3 Java 7之后的新注解 1.3 注解的作用1.4 如何实现一个自己的注解&#xff1f;1.4.…

向量的求导

参考&#xff1a; 向量的求导 向量内积求导

如何提交已暂存的更改到本地仓库?

文章目录 如何提交已暂存的更改到本地Git仓库&#xff1f;步骤1&#xff1a;确认并暂存更改步骤2&#xff1a;提交暂存的更改到本地仓库 如何提交已暂存的更改到本地Git仓库&#xff1f; 在Git版本控制系统中&#xff0c;当你对项目文件进行修改后&#xff0c;首先需要将这些更…

Diffusion Model原理剖析

目录 前言1. DDPM演算法初览2. 图像生成模型共同目标3. VAE: Lower bound of l o g P ( x ) logP(x) logP(x)4. Diffusion Model背后的数学原理5. 为什么需要Sample?6. Diffusion Model的应用7. Diffusion Model成功的关键总结参考 前言 接着上篇文章 图像生成模型浅析&#…

四川古力未来科技抖音小店:科技新宠,购物新选择

在数字化浪潮席卷全球的今天&#xff0c;电商行业日新月异&#xff0c;新兴平台层出不穷。四川古力未来科技抖音小店&#xff0c;作为其中的佼佼者&#xff0c;凭借其独特的魅力和创新的服务模式&#xff0c;正逐渐成为消费者眼中的购物新宠。 一、四川古力未来科技抖音小店的独…

深度卷积神经网络的整体运行流程(以alexnet为例)

0.基础概念&#xff08;复习一下&#xff09; 1.小批量随机梯度下降 目的&#xff1a; 希望找到最佳的参数&#xff0c;使损失函数最小。 使损失函数对w求导&#xff08;b就是x等于1的w&#xff09;&#xff0c;一个小批次的/eta&#xff08;学习率&#xff09;*小批次的平均…

2024团体设计天梯赛之L1-101 别再来这么多猫娘了

c语言中的小小白-CSDN博客c语言中的小小白关注算法,c,c语言,贪心算法,链表,mysql,动态规划,后端,线性回归,数据结构,排序算法领域.https://blog.csdn.net/bhbcdxb123?spm1001.2014.3001.5343 给大家分享一句我很喜欢我话&#xff1a; 知不足而奋进&#xff0c;望远山而前行&am…

上市公司数字化转型速度测-含代码及原始数据(2000-2022年)

数据来源&#xff1a;Wind数据库、企业年报时间跨度&#xff1a;2000-2022年 其中吴非、赵宸宇版本的数据是从2000到2022年&#xff1b;袁淳版本和李瑛玫版本的数据均是从2001-2022年。数据范围&#xff1a;上市公司数据指标&#xff1a;计算了三份测算数字化转型速度的数据。其…

Java中的构造器

即使在类中什么都不写也会自动的生成一个构造器 注意 使用new关键字是在调用构造器 如果定义了有参构造 那么就不会默认的走Person person new Person();如果没有自己手动的定义无参构造就不能使用 在idea中 用按键Altinsert可以快速生成有参、无参构造&#xff08;某些品牌的…

yolov8-obb旋转目标检测详细流程

一、数据标注 由于旋转目标标注与传统的目标检测标注有一定的区别&#xff0c;故使用roLabelImg或者labelimg2进行标注&#xff0c;以下标注软件选用的是roLabelImg。 roLabelImg下载地址&#xff1a;https://github.com/cgvict/roLabelImg 直接在原有的labelimg环境中使用roL…

宝塔面板国际版aaPanel 精简版安装

宝塔面板国际版aaPanel 精简版安装 很多人都知道宝塔面板&#xff0c;但不知道宝塔面板还有英文版&#xff0c;宝塔面板英文版不是单纯的宝塔面板的翻译&#xff0c;而是根据老外的使用习惯及国外的网络环境做了一定的优化&#xff0c; 比如&#xff1a;去掉了手机号验证、去…

关于淘宝API接口请求数据的靠谱方式,主要包括以下几个方面:

关于淘宝API接口请求数据的靠谱方式&#xff0c;主要包括以下几个方面&#xff1a; 了解API接口和请求方式&#xff1a; API接口采用通用的HTTP协议&#xff0c;支持GET、POST等多种请求方式。GET方法主要用于向指定资源发出请求并返回实体主体内容&#xff0c;如查询、菜单列…

PBR相关基础知识

文章目录 **核心理念****关键组件与参数****工作流程****优势****挑战与注意事项**实例展示 基于物理的渲染&#xff08;Physically Based Rendering, PBR&#xff09;是一种现代计算机图形学技术&#xff0c;它致力于通过模拟真实世界中光与物质相互作用的物理规律来生成高度逼…