Hugging Face LLM部署大语言模型到亚马逊云科技Amazon SageMaker推理示例

本篇文章主要介绍如何使用新的Hugging Face LLM推理容器将开源LLMs,比如BLOOM大型语言模型部署到亚马逊云科技Amazon SageMaker进行推理的示例。我们将部署12B Open Assistant Model,这是一款由开放助手计划训练的开源Chat LLM。

这个示例包括:

  • 设置开发环境

  • 获取全新Hugging Face LLM DLC

  • 将开放助手12B部署到亚马逊云科技Amazon SageMaker

  • 进行推理并与我们的模型聊天

  • 清理环境

什么是Hugging Face LLM Inference DLC?

Hugging Face LLM DLC是一款全新的专用推理容器,可在安全的托管环境中轻松部署LLM。DLC由文本生成推理(TGI)提供支持,这是一种用于部署和服务大型语言模型(LLM)的开源、专门构建的解决方案。TGI使用张量并行和动态批处理为最受欢迎的开源LLM(包括StarCoder、BLOOM、GPT-Neox、Llama和T5)实现高性能文本生成。文本生成推理已被IBM、Grammarly等客户使用,Open-Assistant计划对所有支持的模型架构进行了优化,包括:

  • 张量并行性和自定义cuda内核

  • 在最受欢迎的架构上使用flash-attention优化了用于推理的变形器代码

  • 使用bitsandbytes进行量化

  • 连续批处理传入的请求以增加总吞吐量

  • 使用safetensors加速重量加载(启动时间)

  • Logits扭曲器(温度缩放、topk、重复惩罚...)

  • 用大型语言模型的水印添加水印

  • 停止序列,记录概率

  • 使用服务器发送事件(SSE)进行Token流式传输

官方支持的模型架构目前为:

  • BLOOM/BLOOMZ

  • MT0-XXL

  • Galactica

  • SantaCoder

  • gpt-Neox 20B(joi、pythia、lotus、rosey、chip、redPajama、open Assistant)

  • FLAN-T5-XXL(T5-11B)

  • Llama(vicuna、alpaca、koala)

  • Starcoder/santaCoder

  • Falcon 7B/Falcon 40B

借助亚马逊云科技Amazon SageMaker上推出的全新Hugging Face LLM Inference DLC,亚马逊云科技客户可以从支持高度并发、低延迟LLM体验的相同技术中受益,例如HuggingChat、OpenAssistant和Hugging Face Hub上的LLM模型推理API。

1.设置开发环境

使用SageMaker python SDK将OpenAssistant/pythia-12b-sft-v8-7k-steps部署到亚马逊云科技Amazon SageMaker。需要确保配置一个亚马逊云科技账户并安装SageMaker python SDK。

如果打算在本地环境中使用SageMaker。需要访问具有亚马逊云科技Amazon SageMaker所需权限的IAM角色。可以在这里找到更多关于它的信息。

2.获取全新Hugging Face LLM DLC

与部署常规的HuggingFace模型相比,首先需要检索容器URI并将其提供给HuggingFaceModel模型类,并使用image_uri指向该镜像。要在亚马逊云科技Amazon SageMaker中检索新的HuggingFace LLM DLC,可以使用SageMaker SDK 提供的get_huggingface_llm_image_uri方法。此方法允许根据指定的 "后端"、"会话"、"区域" 和 "版本"检索所需的Hugging Face LLM DLC 的 URI。

要将[Open Assistant Model](openAssistant/Pythia-12b-sft-v8-7K-steps)部署到亚马逊云科技Amazon SageMaker,创建一个HuggingFaceModel模型类并定义终端节点配置,包括hf_model_id、instance_type等。使用g5.4xlarge实例类型,它有1个NVIDIA A10G GPU和64GB的GPU内存。

亚马逊云科技Amazon SageMaker现在创建端点并将模型部署到该端点。这可能需要10-15分钟。

4.进行推理并与模型聊天

部署终端节点后,可以对其进行推理。使用predictor中的predict方法在端点上进行推理。可以用不同的参数进行推断来影响生成。参数可以设置在parameter中设置。

  • 温度:控制模型中的随机性。较低的值将使模型更具确定性,而较高的值将使模型更随机。默认值为0。

  • max_new_tokens:要生成的最大token数量。默认值为20,最大值为512。

  • repeption_penalty:控制重复的可能性,默认为null。

  • seed:用于随机生成的种子,默认为null。

  • stop:用于停止生成的代币列表。生成其中一个令牌后,生成将停止。

  • top_k:用于top-k筛选时保留的最高概率词汇标记的数量。默认值为null,它禁用top-k过滤。

  • top_p:用于核采样时保留的参数最高概率词汇标记的累积概率,默认为null。

  • do_sample:是否使用采样;否则使用贪婪的解码。默认值为false。

  • best_of:生成best_of序列如果是最高标记logpros则返回序列,默认为null。

  • details:是否返回有关世代的详细信息。默认值为false。

  • return_full_text:是返回全文还是只返回生成的部分。默认值为false。

  • truncate:是否将输入截断到模型的最大长度。默认值为true。

  • typical_p:代币的典型概率。默认值null。

  • 水印:生成时使用的水印。默认值为false。

可以在swagger文档中找到TGI的开放api规范。

openAssistant/Pythia-12b-sft-v8-7K-steps是一种对话式聊天模型,这意味着我们可以使用以下提示与它聊天:

先试一试,问一下夏天可以做的一些很酷的想法:

现在,使用不同的参数进行推理,以影响生成。参数可以通过输入的parameters属性定义。这可以用来让模型在"机器人"回合后停止生成。

现在构建一个快速gradio应用程序来和它聊天。

程序运行成功后,显示如下聊天窗口:

现在已经成功地将Open Assistant模型部署到亚马逊云科技Amazon SageMaker并对其进行了推理。此外,还构建了一个快速的gradio应用程序,可以与模型聊天。

现在,可以使用亚马逊云科技Amazon SageMaker上全新Hugging Face LLM DLC构建世代人工智能应用程序的时候了。

5.清理环境

删除模型和端点。

6.总结

从上面的部署过程,可以看到整个部署大语言模型的过程非常简单,这个主要得益于SageMaker Hugging Face LLM DLC的支持,还可以通过将Amazon SageMaker部署的端点与应用集成,满足实际的业务需求。

相关推荐
网络研究院1 分钟前
大型语言模型 (LLM) 劫持攻击不断升级,导致每天损失超过 100,000 美元
网络·人工智能·安全·语言模型·攻击·劫持
jia V iuww5208 分钟前
数据分析
人工智能·数据挖掘·数据分析
AI第一基地1 小时前
推荐系统-电商直播 多目标排序算法探秘
人工智能·深度学习·排序算法·transformer·知识图谱·word2vec
我是瓦力1 小时前
球形包围框-Bounding Sphere-原理-代码实现
人工智能·python·深度学习·计算机视觉·3d
开MINI的工科男1 小时前
【笔记】自动驾驶预测与决策规划_Part1_自动驾驶决策规划简介
人工智能·笔记·自动驾驶
网络研究院1 小时前
企业急于采用人工智能,忽视了安全强化
网络·人工智能·安全·工具·风险·企业
jndingxin1 小时前
OpenCV特征检测(3)计算图像中每个像素处的特征值和特征向量函数cornerEigenValsAndVecs()的使用
人工智能·opencv·计算机视觉
byxdaz1 小时前
基于OpenCV的YOLOv5图片检测
人工智能·opencv·yolo
jndingxin1 小时前
OpenCV特征检测(4)检测图像中的角点函数cornerHarris()的使用
人工智能·opencv·计算机视觉
厚国兄1 小时前
ESP32-S3百度文心一言大模型AI语音聊天助手(支持自定义唤醒词训练)【手把手非常详细】【万字教程】
人工智能·文心一言