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部署的端点与应用集成,满足实际的业务需求。


区块链游戏还有哪些发展的可能
关于GD32 MCU创新技术与智能解决方案的介绍和分享
get与post的请求一些区别
音频变压器工作原理_音频变压器作用
人机融合进一步深化 生化机器人何时降临
Hugging Face LLM部署大语言模型到亚马逊云科技Amazon SageMaker推理示例
Yann LeCun力挺观点: AI 系统的输入改进对 AI 性能改善的作用不大
中国联通与Qualcomm将进一步推动5G物联网领域的合作
Arm发布集成式SIM身份认证
平板市场不景气 苹果、华为却逆势增长
西门子200PLC控制小车往复运动案例电路解析
单片机程序时间轮片法框架
三步教你切板仿真(SIwave)
Dialog携手Bosch Sensortec合作研发用于物联网的智能传感器无线平台
ARM在中国推出物联网教学套件,并在北大智能硬件创新联合实验室
格力在锂电池研究方面获得的专利近50项
解析start_kernel函数
磁场线圈概述
自锁电子开关电路图讲解
如何准确完成矢量信号的解调分析