AI架构设计7:TGI

这个专栏主要关注围绕着AI运用于实际的业务场景所需的系统架构设计。整体基于云原生技术,结合开源领域的LLMOps或者MLOps技术,充分运用低代码构建高性能、高效率和敏捷响应的AI中台。该专栏需要具备一定的计算机基础。

若在某个环节出现卡点,可以回到大模型必备腔调重新阅读。而最新科技(Mamba,xLSTM,KAN)则提供了大模型领域最新技术跟踪。若对于构建生产级别架构则可以关注AI架构设计专栏。技术宅麻烦死磕LLM背后的基础模型。

训练大型语言模型以及微调的教程比比皆是,但关于在生产环境中部署它们并监控其活动的资料相对稀缺。上个章节提到了未来云原生的AI是趋势,然而涉及到云原生会比较偏技术。而在此之前为了解决大模型部署量产的问题,社区也一直在探索,目前已经有不少的工具可用于这个领域。

今天挑选几个颇具特色的主流部署工具来谈谈,例如vLLM、LLAMA.cpp 和TGI等工具,它们各自都提供各自的部署模式,本文对于数据分析师乃至数据科学家,还是刚接触AI部署的新兵,相信可以为读者打开一扇窗户进行快速的了解。

TGI

Text Generation Inference (TGI) is a toolkit for deploying and serving Large Language Models (LLMs). TGI enables high-performance text generation for the most popular open-source LLMs, including Llama, Falcon, StarCoder, BLOOM, GPT-NeoX, and T5.  —HuggingFace

Huggingface TGI是一个用Rust和Python编写的框架,用于部署和提供大型语言模型。它根据HFOILv1.0许可证允许商业使用,前提是它作为所提供产品或服务中的辅助工具。

目前TGI是一个用于部署和服务大型语言模型 (LLM) 的工具包。TGI 为最流行的开源 LLM 提供高性能文本生成,包括 Llama、Falcon、StarCoder、BLOOM、GPT-NeoX 和 T5。

TGI的几项关键技术:

  • 支持张量并行推理

  • Safetensors格式的权重加载

该存储库实现了一种新的简单格式,用于安全地存储张量(而不是 pickle格式),并且在零复制的前提下保持高速。

上图对比了几种格式,从左到右分别为,“是否安全”、“零拷贝”、“延迟加载”、“文件大小限制”、“布局控制”、“灵活度”和“对于BF16和Fp8的支持”

  • 支持传入请求Continuous batching以提高总吞吐量

  • 在主流的模型架构上使用FlashAttention和PagedAttention用于推理的transformers代码优化。!!并非所有模型都支持这些优化

  • 使用bitsandbytes(LLM.int8())和GPT-Q进行量化

  • 支持Logits warper

一种对逻辑(logits)进行变换或调整的方法。模型在分类问题中输出的未归一化的概率分布,通常利用softmax将其转换为概率分布。Logits warper包括多种技术,如温度(temperature scaling)、top-p抽样、top-k抽样、重复惩罚等,可以用来调整模型输出。

  • 支持微调

目前TGI支持的大模型清单如下,当然也可以部署自定义的模型,只不过性能就未必那么好了。

Llama

Phi 3

Gemma

Cohere

Dbrx

Mamba

Mistral

Mixtral

Gpt Bigcode

Phi

Falcon

StarCoder 2

Baichuan

Qwen 2

Opt

T5

Galactica

SantaCoder

Bloom

Mpt

Gpt2

Gpt Neox

Idefics (Multimodal)

Idefics 2 (Multimodal)

Llava Next (Multimodal)

架构与启动

TGI的架构并不复杂,左侧为Web Server,右侧为GPU集群的调度。双方通过gRPC进行通讯,而GPU之间的通讯协议为NCLL。

TGI支持本地部署和Docker启动,实验环境可以直接用docker命令,而在产线环境建议直接采用云原生部署。

docker run --gpus all --shm-size 1g \    #可以事先下载好模型    -p 8080:80 -v $PWD/$MODEL_PATH:/$MODEL_PATH \    #用于存储下载模型转换Safetensors格式后的权重    -v $PWD/data:/data \     ghcr.io/huggingface/text-generation-inference \    --model-id /$MODEL_PATH

启动完毕之后,可以利用Python来访问,(前提是机器的显卡已经完成正确的安装和配置)

import jsonimport requestsurl = "http://localhost:8080/generate"params = {    "inputs": "Hello, lubanmocui! ",    "parameters": {        "best_of": 1,        "details": True,        "return_full_text": True,        "decoder_input_details": True,        "truncate": 10,         "max_new_tokens": 128,        "stop": ["\n", "."],        "do_sample": True,        "temperature": 0.8,        "top_k": 10,        "top_p": 0.95,    },}response = requests.post(url, json=params)result = json.loads(response .text)print(result)

若是显卡的配置不给力的话,还可以通过--quantize的参数设置来解决,TGI会自动对模型进行量化操作。

  • bitsandbytes 8-Bit 量化,速度偏慢,但是被支持得最广泛的

  • bitsandbytes-nf4 4-Bit 量化,大部分的模型都可以直接使用,采用了BNB-NF4的量化方案

  • bitsandbytes-fp4 4-Bit 量化,和BNB-NF4类似,但是使用标准的4-Bit浮点数类型

  • gptq 4-Bit 量化,只能在做过GPTQ Post Training的模型

  • awq 4-Bit 量化,类似GPTQ

  • eetq 8-Bit 量化

当然还有一些其他的参数配置:

docker run --gpus all --shm-size 1g \    -p 8080:80 -v $PWD/data:/data \    ghcr.io/huggingface/text-generation-inference:latest \    --model-id model-ids \    --quantize bitsandbytes-nf4 \    --max-best-of 1 \    --max-concurrent-requests 128 \    --max-input-length 3000 \    --max-total-tokens 4000 \    --max-batch-prefill-tokens 12000

vLLM适用于需要高效内存管理和并行计算的大规模语言模型推理,特别是在资源受限的环境中表现优秀。其主要优势在于高效的内存使用和灵活的并行处理能力,但需要细致的配置和优化。而TGI则专注于提升文本生成任务的推理速度,适用于需要高效文本生成的应用场景。其主要优势在于推理速度优化和模型压缩,但主要针对特定任务进行优化,量化可能会影响模型精度。选择哪一个系统取决于具体的应用需求。

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

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

相关文章

员工管理和激励怎么做?试试场景化激励解决方案!

截止到2020年底,中国企业主体数量达3858.3万,同比增速达11.1%。如何留住人才、激励人才以强化人才与企业“黏性”,最大化提升员工的忠诚度与敬业度,成为企业未来人才发展战略的主要方向之一。 一、传统激励方式存在哪些不足 传统的…

香橙派 AIpro初体验

香橙派(Orange Pi)AI Pro开发板是一款高性能的AI开发板,由香橙派联合华为精心打造。香橙派(Orange Pi),作为深圳市迅龙软件有限公司倾力打造的开源产品品牌,致力于向全球个人及企业用户提供卓越…

设计软件有哪些?建模和造型工具篇(3),渲染100邀请码1a12

这次我们接着介绍建模工具。 1、FloorGenerator FloorGenerator是由CG-Source开发的3ds Max插件,用于快速创建各种类型的地板和瓷砖。该插件提供了丰富的地板样式和布局选项,用户可以根据需要轻松创建木质地板、石板地板、砖瓦地板等不同风格的地面。F…

人生二选一:央企就业?美国做博士后?—请看她的抉择

一位30岁的女博士,收到国内央企和德国、美国的博士后邀请函,她该如何选择?知识人网小编推荐这篇文章,为大家解开谜题的同时,也给有同样纠结的学者提供一些启迪。 去年12月底的一个晚上,我收到美国一所高校发…

100个 Unity小游戏系列六 -Unity 抽奖游戏专题四 翻卡游戏

一、演示效果 二、知识点讲解 2.1 布局 void CreateItems(){reward_data_list reward_data_list ?? new List<RewardData>();reward_data_list.Clear();for (int i 0; i < ItemCount; i){GameObject item;if (i 1 < itemParent.childCount){item itemParent…

Python解析网页-requests_html

目录 1、什么是requests_html 2、安装与配置 3、快速入门 4、图片下载 1.什么是requests_html requests_html是一个Python库&#xff0c;用于从Web页面中提取数据。 它提供了对HTML内容的解析和处理功能&#xff0c;使您可以轻松地从网页中提取文本、链接、图像和其他元素。…

嵌入式UI开发-lvgl+wsl2+vscode系列:4、动画(Animations)

文章目录 一、前言二、动画示例1、示例1&#xff08;基础按钮label的组合动画&#xff09;2、示例2&#xff08;回放效果动画&#xff09;3、示例3&#xff08;贝塞尔曲线3动画&#xff09;4、示例4&#xff08;动画时间轴&#xff09; 三、最后 一、前言 接下来我们进行动画的…

Golang | Leetcode Golang题解之第101题对称二叉树

题目&#xff1a; 题解&#xff1a; func isSymmetric(root *TreeNode) bool {u, v : root, rootq : []*TreeNode{}q append(q, u)q append(q, v)for len(q) > 0 {u, v q[0], q[1]q q[2:]if u nil && v nil {continue}if u nil || v nil {return false}if …

JWT使用方法

目录 基础概念 依赖 生成令牌 工具类 控制层 解析令牌 工具类 网关过滤器 效果 基础概念 Json web token (JWT), 是为了在网络应用环境间传递声明而执行的一种基于JSON的开放标准&#xff08;(RFC 7519).该token被设计为紧凑且安全的&#xff0c;特别适用于分布式站点…

深入解读力扣154题:寻找旋转排序数组中的最小值 II(多种方法及详细ASCII图解)

❤️❤️❤️ 欢迎来到我的博客。希望您能在这里找到既有价值又有趣的内容&#xff0c;和我一起探索、学习和成长。欢迎评论区畅所欲言、享受知识的乐趣&#xff01; 推荐&#xff1a;数据分析螺丝钉的首页 格物致知 终身学习 期待您的关注 导航&#xff1a; LeetCode解锁100…

弘君资本:沪指跌0.46%,电力板块逆市爆发,半导体板块强势

28日&#xff0c;沪指早盘窄幅震动&#xff0c;午后回落走低&#xff1b;深证成指、创业板指大幅下探&#xff1b;两市成交额小幅萎缩。 截至收盘&#xff0c;沪指跌0.46%报3109.57点&#xff0c;深证成指跌1.23%报9391.05点&#xff0c;创业板指跌1.35%报1806.25点&#xff0c…

Windows 11 HBuilder X的安装和环境搭建教程

文章目录 目录 文章目录 安装流程 小结 概要安装流程技术细节小结 概要 HBuilder X是一个由DCloud推出的集成开发环境&#xff08;IDE&#xff09;&#xff0c;主要用于构建基于HTML、CSS和JavaScript的跨平台应用程序&#xff0c;如微信小程序、App、H5等。它提供了丰富的功能…

【Unity】颜色混合计算

在图形渲染中&#xff0c;颜色混合&#xff08;Color Blending&#xff09;是指将多个颜色值组合在一起以生成最终显示的颜色。颜色混合技术广泛用于处理半透明效果、光照效果和后期处理效果。以下是一些常见的颜色混合模式&#xff1a; 1. 正常混合&#xff08;Normal Blendi…

简单四步完成基于云服务器ARL资产侦察灯塔系统搭建

简单四步完成基于云服务器ARL资产侦察灯塔系统搭建及使用 前言 官网介绍&#xff1a;ARL全称-Asset Reconnaissance Lighthouse&#xff0c;中文含义&#xff1a;资产侦察灯塔系统。 旨在快速侦察与目标关联的互联网资产&#xff0c;构建基础资产信息库。 协助甲方安全团队或…

DragonKnight CTF复现(一)

这次的 re 题也是挺难的&#xff0c;按 wp 来学习一波 elec_go 下次遇到这种给了很多东西&#xff0c;又不知道怎么分析的&#xff0c;先百度一下。 Electron程序逆向&#xff08;asar归档解包&#xff09;_asar解包-CSDN博客 [原创] electron开发、打包与逆向分析-软件逆向-…

AutoDL搭建 ChatGLM3

租用新实例 这里选择的西北 B 区、RTX 409024GB 创建虚拟环境并激活 # 安装虚拟环境至数据盘 conda create --prefix /root/autodl-tmp/envs/chatglm3-demo python3.10# 激活虚拟环境 conda activate /root/autodl-tmp/envs/chatglm3-demo拉取ChatGLM3仓库代码 # 开启学术…

代码随想录算法训练营第七天| 454.四数相加II 、383. 赎金信、 15. 三数之和、18. 四数之和

454.四数相加II 题目链接&#xff1a; 454.四数相加II 文档讲解&#xff1a;代码随想录 状态&#xff1a;没做出来&#xff0c;没想到考虑重复的情况&#xff01; 题解&#xff1a; public int fourSumCount(int[] nums1, int[] nums2, int[] nums3, int[] nums4) {// 结果计数…

Python调用科大讯飞在线语音合成API --内附完整项目

一&#xff0c;注册讯飞账号&#xff0c;并实名制。 讯飞开放平台-以语音交互为核心的人工智能开放平台 (xfyun.cn) 二、找到音频合成&#xff0c;按页面提示申请免费试用。 在线语音合成_免费试用-讯飞开放平台 (xfyun.cn) 三、申请免费使用后&#xff0c;找到API信息如下…

vscode远程登录阿里云服务器【使用密钥方式--后期无需再进行密码登录】【外包需要密码】

1&#xff1a;windows主机上生成【私钥】【公钥】 1.1生成公钥时不设置额外密码 1.2生成公钥时设置额外密码【给外包人员使用的方法】 2&#xff1a;在linux服务器中添加【公钥】 3&#xff1a;本地vscode连接linux服务器的配置 操作流程如下 1.1本地终端中【生成免密登录…

从0到100,渠道码如何成为SaaS企业增长的加速器

在当今数字化时代&#xff0c;企业的增长策略已不再是单一和线性的。渠道码的出现&#xff0c;为SaaS&#xff08;软件即服务&#xff09;企业提供了一种全新的、多维度的增长途径&#xff0c;真正实现了从0到100的快速增长。 一、渠道码的高可定制性和灵活性&#xff0c;为Sa…