LLM大模型学习:LLM大模型推理加速llm推理框架 Text Generation Inference(TGI) 教程

Text Generation Inference(TGI)

TGI是hugging face 发布的。

文本生成推理 (TGI) 是一个用于部署和服务大型语言模型 (LLM) 的工具包。 TGI 实现了以下功能:

  • Prometheus 指标进行分布式跟踪)
  • 张量并行可在多个 GPU 上实现更快的推理
  • 使用服务器发送事件 (SSE) 的令牌流
  • 连续批处理
  • 在最流行的架构上使用[Flash Attention]和[Paged Attention]进行推理的优化转换器代码
  • 量化:
    • bitsandbytes
    • GPT-Q
    • EETQ
    • AWQ
  • [Safetensors]重量加载
  • Logits 扭曲器(温度缩放、top-p、top-k、重复惩罚,更多详细信息请参见[Transformers.LogitsProcessor]
  • 停止序列
  • 对数概率
  • 自定义提示生成:通过提供自定义提示来指导模型的输出,轻松生成文本
  • 微调支持:利用针对特定任务的微调模型来实现更高的准确性和性能

支持的硬件:

  • nvidia
  • amd
  • intel gpu
  • inferentia
  • gaudi

TGI有两大功能,分别是:运行、基准测试

TGI在本地运行大模型(也可以使用docker)
  1. 安装rust
sudo apt-get install libssl-dev gcc -y

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

  1. 安装Protoc
PROTOC_ZIP=protoc-21.12-linux-x86_64.zip
curl -OL https://github.com/protocolbuffers/protobuf/releases/download/v21.12/$PROTOC_ZIP
sudo unzip -o $PROTOC_ZIP -d /usr/local bin/protoc
sudo unzip -o $PROTOC_ZIP -d /usr/local 'include/*'
rm -f $PROTOC_ZIP

  1. 编译tgi
git clone https://github.com/huggingface/text-generation-inference.git

conda activate llm-plus
BUILD_EXTENSIONS=True make install -j

  1. 运行自己的大模型
text-generation-launcher --model-id /home/chuan/models/qwen/Qwen1___5-7B-Chat-GPTQ-Int4 --trust-remote-code --port 4000

截图 2024-02-17 12-18-39.png

可以设置exllama=false

vi /home/chuan/models/qwen/Qwen1___5-7B-Chat-GPTQ-Int4/config.json

"use_exllama": false

text-generation-launcher 可以设置很多参数

运行以下命令

text-generation-launcher -h

主要参数如下:

–model-id <MODEL_ID> --validation-workers <VALIDATION_WORKERS> --sharded --num-shard <NUM_SHARD> --quantize [possible values: awq, eetq, gptq, bitsandbytes, bitsandbytes-nf4, bitsandbytes-fp4] --speculate --dtype [possible values: float16, bfloat16] --trust-remote-code --max-concurrent-requests <MAX_CONCURRENT_REQUESTS> --max-best-of <MAX_BEST_OF> --max-stop-sequences <MAX_STOP_SEQUENCES> --max-top-n-tokens <MAX_TOP_N_TOKENS> --max-input-length <MAX_INPUT_LENGTH> --max-total-tokens <MAX_TOTAL_TOKENS> --waiting-served-ratio <WAITING_SERVED_RATIO> --max-batch-prefill-tokens <MAX_BATCH_PREFILL_TOKENS> --max-batch-total-tokens <MAX_BATCH_TOTAL_TOKENS> --max-waiting-tokens <MAX_WAITING_TOKENS> --max-batch-size <MAX_BATCH_SIZE> --enable-cuda-graphs --hostname -p, --port --shard-uds-path <SHARD_UDS_PATH> --master-addr <MASTER_ADDR> --master-port <MASTER_PORT> --huggingface-hub-cache <HUGGINGFACE_HUB_CACHE> --weights-cache-override <WEIGHTS_CACHE_OVERRIDE> --disable-custom-kernels --cuda-memory-fraction <CUDA_MEMORY_FRACTION> --rope-scaling <ROPE_SCALING> --rope-factor <ROPE_FACTOR> --json-output --otlp-endpoint <OTLP_ENDPOINT> --cors-allow-origin <CORS_ALLOW_ORIGIN> --watermark-gamma <WATERMARK_GAMMA> --watermark-delta <WATERMARK_DELTA> --ngrok --ngrok-authtoken <NGROK_AUTHTOKEN> --ngrok-edge <NGROK_EDGE> --tokenizer-config-path <TOKENIZER_CONFIG_PATH> --disable-grammar-support -e, --env -h, --help -V, --version

  1. 访问

    curl 127.0.0.1:4000/generate \
        -X POST \
        -d '{"inputs":"What is Deep Learning?","parameters":{"max_new_tokens":20}}' \
        -H 'Content-Type: application/json'
    
    

截图 2024-02-17 12-33-44.png

TGI的api文档

<https://huggingface.github.io/text-generation-inference/#/>

开发的时候看文档即可,这里不再赘述

注意

TGI需要依赖vllm、flash attenntion、gptq。建议按照以下顺序,以源码编译安装:

vllm >> gptq >> flash attenntion。

TGI benchmark

TGI benchmark是一个很重要的工具,其运行步骤如下:

make install-benchmark

text-generation-launcher --model-id /home/chuan/models/qwen/Qwen1___5-7B-Chat-GPTQ-Int4 --trust-remote-code --port 4000

text-generation-benchmark --tokenizer-name /home/chuan/models/qwen/Qwen1___5-7B-Chat-GPTQ-Int4 --batch-size 1 --batch-size 2 --batch-size 4 --batch-size 8 --batch-size 16 --batch-size 32 --batch-size 64


完整的可选参数,可用如下命令展示:

text-generation-benchmark -h


2024-02-17_13-24.png

text-generation-benchmark是TGI最重要的功能:

我们可以点击Tab键切换batch_size,以选出最适合的批大小

在右边,可以看到p50、p90、p99表示大多数情况的延迟

在右下角,可以看到token树数量和延迟情况,如果你的应用需要处理大量token,随着token的增大,延迟会不断增加,可以找到图中的拐点,以确定最佳的token数量,如果token数量不够,那么可以考虑添加显卡,增多硬件。如果token数量太多,可以考虑减少显卡,降低硬件配置。

在这里插入图片描述

大模型&AI产品经理如何学习

求大家的点赞和收藏,我花2万买的大模型学习资料免费共享给你们,来看看有哪些东西。

1.学习路线图

在这里插入图片描述

第一阶段: 从大模型系统设计入手,讲解大模型的主要方法;

第二阶段: 在通过大模型提示词工程从Prompts角度入手更好发挥模型的作用;

第三阶段: 大模型平台应用开发借助阿里云PAI平台构建电商领域虚拟试衣系统;

第四阶段: 大模型知识库应用开发以LangChain框架为例,构建物流行业咨询智能问答系统;

第五阶段: 大模型微调开发借助以大健康、新零售、新媒体领域构建适合当前领域大模型;

第六阶段: 以SD多模态大模型为主,搭建了文生图小程序案例;

第七阶段: 以大模型平台应用与开发为主,通过星火大模型,文心大模型等成熟大模型构建大模型行业应用。

2.视频教程

网上虽然也有很多的学习资源,但基本上都残缺不全的,这是我自己整理的大模型视频教程,上面路线图的每一个知识点,我都有配套的视频讲解。

在这里插入图片描述

在这里插入图片描述

(都打包成一块的了,不能一一展开,总共300多集)

因篇幅有限,仅展示部分资料,需要点击下方图片前往获取

3.技术文档和电子书

这里主要整理了大模型相关PDF书籍、行业报告、文档,有几百本,都是目前行业最新的。
在这里插入图片描述

4.LLM面试题和面经合集

这里主要整理了行业目前最新的大模型面试题和各种大厂offer面经合集。
在这里插入图片描述

👉学会后的收获:👈
• 基于大模型全栈工程实现(前端、后端、产品经理、设计、数据分析等),通过这门课可获得不同能力;

• 能够利用大模型解决相关实际项目需求: 大数据时代,越来越多的企业和机构需要处理海量数据,利用大模型技术可以更好地处理这些数据,提高数据分析和决策的准确性。因此,掌握大模型应用开发技能,可以让程序员更好地应对实际项目需求;

• 基于大模型和企业数据AI应用开发,实现大模型理论、掌握GPU算力、硬件、LangChain开发框架和项目实战技能, 学会Fine-tuning垂直训练大模型(数据准备、数据蒸馏、大模型部署)一站式掌握;

• 能够完成时下热门大模型垂直领域模型训练能力,提高程序员的编码能力: 大模型应用开发需要掌握机器学习算法、深度学习框架等技术,这些技术的掌握可以提高程序员的编码能力和分析能力,让程序员更加熟练地编写高质量的代码。
在这里插入图片描述

1.AI大模型学习路线图
2.100套AI大模型商业化落地方案
3.100集大模型视频教程
4.200本大模型PDF书籍
5.LLM面试题合集
6.AI产品经理资源合集

👉获取方式:
😝有需要的小伙伴,可以保存图片到wx扫描二v码免费领取【保证100%免费】🆓

在这里插入图片描述

  • 6
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值