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部署的端点与应用集成,满足实际的业务需求。
相关文章:
Hugging Face LLM部署大语言模型到亚马逊云科技Amazon SageMaker推理示例
本篇文章主要介绍如何使用新的Hugging Face LLM推理容器将开源LLMs,比如BLOOM大型语言模型部署到亚马逊云科技Amazon SageMaker进行推理的示例。我们将部署12B Open Assistant Model,这是一款由开放助手计划训练的开源Chat LLM。 这个示例包括࿱…...
内向基环树
例题1 例题2...
k8s replicaSet,deployment 学习笔记
文章目录 replicaSet 和 deployment 两者的关系。创建滚动更新回滚 replicaSet 和 deployment 两者的关系。 在 Kubernetes 中,ReplicaSet 和 Deployment 都是用来确保某种 Pod 的副本数目。但是,ReplicaSet 和 Deployment 是有差别的,二者的…...
Zabbix监控原理 安装
一、监控介绍 1、监控目的 监控是需要站在公司的业务角度去考虑,而不是针对某个监控技术的使用 对系统不间断时实监控 实际上是对系统不间断的时实监控 实时反馈系统当前状态 我们监控某个硬件、或者系统,都是需要能时实看到当前系统的状态&#x…...
我和“云栖大会”的双向奔赴
目录 引言初次参加云栖大会云栖大会带来的技术风向标本届大会最强技术有哪些?云栖大会对我职业生涯的影响个人对未来云栖大会的期待和建议结语 引言 想必大家对“云栖大会”并不陌生,“云栖大会”作为国内最具规模和影响力的云计算盛会,每年…...
HarmonyOS UI 开发
引言 HarmonyOS 提供了强大的 UI 开发工具和组件,使开发者能够创建吸引人的用户界面。本章将详细介绍在 HarmonyOS 中应用 JS、CSS、HTML,HarmonyOS 的 UI 组件以及如何自定义 UI 组件。 目录 JS、CSS、HTML 在 HarmonyOS 中的应用HarmonyOS 的 UI 组…...
中国移动发布《新型智慧城市白皮书》(2023版)
加gzh“大数据食铁兽”,回“20231101”,获取材料完整版 导读 通过本系列白皮书,我们系统的阐述了中国移动对中国智慧城市发展趋势,并对中国移动服务智慧城市建设六大核心能力进行了介绍,详细说明了中国移动智慧城市…...
windows和docker环境下springboot整合gdal3.x
链接: gdal官网地址 gdal gdal的一个用c语言编写的库,用于处理地理信息相关的数据包括转换,识别数据,格式化数据以及解析 同时提供第三方语言的SDK包括python,java上述需要编译后使用 java是需要使用jni接口调用实现方法在wind…...
大数据与健康:技术助力医疗卫生事业腾飞
大数据与健康:技术助力医疗卫生事业腾飞 随着科技的飞速发展,大数据技术已经渗透到我们生活的方方面面,包括医疗卫生领域。本文将对大数据在健康医疗领域的应用进行分析,并通过数据图表展示其发展趋势和前景。 一、背景介绍 近…...
《巴渝小将》少儿电视综艺走进江小白金色黄庄拍摄圆满成功!
巴渝小将,乘风破浪! 张扬巴渝魅力,展示少年风采,本期拍摄我们来到了位于江津的江小白金色黄庄。 江小白金色黄庄位于永兴镇黄庄村,是一座充满诗意又不乏童趣的农文旅综合体,基于当地良好的酿酒高粱产业基础…...
【uniapp】顶部和底部导航栏无法正常显示
关于顶部导航栏不显示的问题: 顶部导航栏在配置了 navigationBarTitleText 还是无法显示,如果是使用他人的项目结构,需要检查是否已经被配置了自定义导航栏: "navigationStyle": "custom" "globalStyle&…...
【ArcGIS模型构建器】06:ArcGIS中DOM批量分幅教程
ArcGIS中利用模型构建器实现DOM批量分幅裁剪。 文章目录 1. 加载数据2. 批量分幅1. 加载数据 批量分幅通常是基于数字正射影像来实现。 数字正射影像(DOM.tif)CASS标准图幅(shp) 2. 批量分幅 单个图幅可以通过裁剪或者按掩膜提取工具来进行,批量分幅采用模型构建器进行。…...
uniapp 设置 editor 默认值
dom 元素长这样 <editor id"editor" value12323 class"ql-container container" placeholder"开始输入..." ready"onEditorReady" blur"submit"></editor> 注意赋值必须要用 data 里面变量数据 不要let 定义…...
动态规划:计数类DP
整数划分: 二维做法: #include <iostream>using namespace std;const int N 1e3 7, mod 1e9 7;int f[N][N];int main() {int n;scanf("%d",&n);//总数为0时,前i个数字全不选也是一种方案,但某个数字不…...
Arcmap制图绘制显著性区域
类似于下图这种,为分析结果添加显著性区域,该如何实现呢? 实现方式多种多样,比如: 1、代码。Python、R、Matlab都有实现方式,但是绘制一幅优美的地图,用代码绘制,需要添加很多控制语…...
你一般会什么时候使用CHATGPT?
在当今数字时代,人们对于人工智能(AI)的依赖程度日益增加,而ChatGPT作为一种强大的自然语言处理工具,吸引了人们的广泛关注和应用。那么,人一般在什么时候会想要使用ChatGPT呢?这个问题涵盖了多…...
单例模式下双重校验锁 DCL 的灵魂三问
文章目录 前言如何实现一个双重校验锁 DCL定义一个单例变量定义一个获取单例的方法性能优化性能优化带来的一点点问题什么是指令重排? 总结如何理解文章开篇理解的三个问题1、为什么需要使用两个 if 语句?2、为什么使用了 synchronized 关键字还需要使用…...
oracle中关于connect by的语法及实现(前序遍历树)
语法 connect by是是结构化查询中用到的,其基本语法是: 1 select … from tablename 2 start with 条件1 3 connect by 条件2 4 where 条件3; 使用示例 例: create table tree(id int,parentid int); insert into tree values(120,184); …...
学习笔记二十七:K8S控制器Statefulset入门到企业实战应用
这里写目录标题 Statefulset控制器:概念、原理解读Statefulset资源清单文件编写技巧查看定义Statefulset资源需要的字段查看statefulset.spec字段如何定义?查看statefulset的spec.template字段如何定义 Statefulset使用案例:部署web站点State…...
JavaScript 的 闭包
在 JavaScript 中,闭包是一种强大的特性,它允许函数在结束执行后,仍能访问并控制其外部的局部变量。这种特性在许多高级 JavaScript 编程场景中都发挥着关键作用,如创建函数工厂、实现数据隐藏和封装等。 1、闭包的原理 JavaScri…...
【大模型RAG】Docker 一键部署 Milvus 完整攻略
本文概要 Milvus 2.5 Stand-alone 版可通过 Docker 在几分钟内完成安装;只需暴露 19530(gRPC)与 9091(HTTP/WebUI)两个端口,即可让本地电脑通过 PyMilvus 或浏览器访问远程 Linux 服务器上的 Milvus。下面…...
剑指offer20_链表中环的入口节点
链表中环的入口节点 给定一个链表,若其中包含环,则输出环的入口节点。 若其中不包含环,则输出null。 数据范围 节点 val 值取值范围 [ 1 , 1000 ] [1,1000] [1,1000]。 节点 val 值各不相同。 链表长度 [ 0 , 500 ] [0,500] [0,500]。 …...
视频字幕质量评估的大规模细粒度基准
大家读完觉得有帮助记得关注和点赞!!! 摘要 视频字幕在文本到视频生成任务中起着至关重要的作用,因为它们的质量直接影响所生成视频的语义连贯性和视觉保真度。尽管大型视觉-语言模型(VLMs)在字幕生成方面…...
【决胜公务员考试】求职OMG——见面课测验1
2025最新版!!!6.8截至答题,大家注意呀! 博主码字不易点个关注吧,祝期末顺利~~ 1.单选题(2分) 下列说法错误的是:( B ) A.选调生属于公务员系统 B.公务员属于事业编 C.选调生有基层锻炼的要求 D…...
【前端异常】JavaScript错误处理:分析 Uncaught (in promise) error
在前端开发中,JavaScript 异常是不可避免的。随着现代前端应用越来越多地使用异步操作(如 Promise、async/await 等),开发者常常会遇到 Uncaught (in promise) error 错误。这个错误是由于未正确处理 Promise 的拒绝(r…...
微服务通信安全:深入解析mTLS的原理与实践
🔥「炎码工坊」技术弹药已装填! 点击关注 → 解锁工业级干货【工具实测|项目避坑|源码燃烧指南】 一、引言:微服务时代的通信安全挑战 随着云原生和微服务架构的普及,服务间的通信安全成为系统设计的核心议题。传统的单体架构中&…...
STM32标准库-ADC数模转换器
文章目录 一、ADC1.1简介1. 2逐次逼近型ADC1.3ADC框图1.4ADC基本结构1.4.1 信号 “上车点”:输入模块(GPIO、温度、V_REFINT)1.4.2 信号 “调度站”:多路开关1.4.3 信号 “加工厂”:ADC 转换器(规则组 注入…...
[拓扑优化] 1.概述
常见的拓扑优化方法有:均匀化法、变密度法、渐进结构优化法、水平集法、移动可变形组件法等。 常见的数值计算方法有:有限元法、有限差分法、边界元法、离散元法、无网格法、扩展有限元法、等几何分析等。 将上述数值计算方法与拓扑优化方法结合&#…...
Linux-进程间的通信
1、IPC: Inter Process Communication(进程间通信): 由于每个进程在操作系统中有独立的地址空间,它们不能像线程那样直接访问彼此的内存,所以必须通过某种方式进行通信。 常见的 IPC 方式包括&#…...
MeshGPT 笔记
[2311.15475] MeshGPT: Generating Triangle Meshes with Decoder-Only Transformers https://library.scholarcy.com/try 真正意义上的AI生成三维模型MESHGPT来袭!_哔哩哔哩_bilibili GitHub - lucidrains/meshgpt-pytorch: Implementation of MeshGPT, SOTA Me…...
