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…...
wordpress后台更新后 前端没变化的解决方法
使用siteground主机的wordpress网站,会出现更新了网站内容和修改了php模板文件、js文件、css文件、图片文件后,网站没有变化的情况。 不熟悉siteground主机的新手,遇到这个问题,就很抓狂,明明是哪都没操作错误&#x…...
UE5 学习系列(二)用户操作界面及介绍
这篇博客是 UE5 学习系列博客的第二篇,在第一篇的基础上展开这篇内容。博客参考的 B 站视频资料和第一篇的链接如下: 【Note】:如果你已经完成安装等操作,可以只执行第一篇博客中 2. 新建一个空白游戏项目 章节操作,重…...
调用支付宝接口响应40004 SYSTEM_ERROR问题排查
在对接支付宝API的时候,遇到了一些问题,记录一下排查过程。 Body:{"datadigital_fincloud_generalsaas_face_certify_initialize_response":{"msg":"Business Failed","code":"40004","sub_msg…...
如何在看板中体现优先级变化
在看板中有效体现优先级变化的关键措施包括:采用颜色或标签标识优先级、设置任务排序规则、使用独立的优先级列或泳道、结合自动化规则同步优先级变化、建立定期的优先级审查流程。其中,设置任务排序规则尤其重要,因为它让看板视觉上直观地体…...
【磁盘】每天掌握一个Linux命令 - iostat
目录 【磁盘】每天掌握一个Linux命令 - iostat工具概述安装方式核心功能基础用法进阶操作实战案例面试题场景生产场景 注意事项 【磁盘】每天掌握一个Linux命令 - iostat 工具概述 iostat(I/O Statistics)是Linux系统下用于监视系统输入输出设备和CPU使…...
PL0语法,分析器实现!
简介 PL/0 是一种简单的编程语言,通常用于教学编译原理。它的语法结构清晰,功能包括常量定义、变量声明、过程(子程序)定义以及基本的控制结构(如条件语句和循环语句)。 PL/0 语法规范 PL/0 是一种教学用的小型编程语言,由 Niklaus Wirth 设计,用于展示编译原理的核…...
【OSG学习笔记】Day 16: 骨骼动画与蒙皮(osgAnimation)
骨骼动画基础 骨骼动画是 3D 计算机图形中常用的技术,它通过以下两个主要组件实现角色动画。 骨骼系统 (Skeleton):由层级结构的骨头组成,类似于人体骨骼蒙皮 (Mesh Skinning):将模型网格顶点绑定到骨骼上,使骨骼移动…...
【学习笔记】深入理解Java虚拟机学习笔记——第4章 虚拟机性能监控,故障处理工具
第2章 虚拟机性能监控,故障处理工具 4.1 概述 略 4.2 基础故障处理工具 4.2.1 jps:虚拟机进程状况工具 命令:jps [options] [hostid] 功能:本地虚拟机进程显示进程ID(与ps相同),可同时显示主类&#x…...
学校时钟系统,标准考场时钟系统,AI亮相2025高考,赛思时钟系统为教育公平筑起“精准防线”
2025年#高考 将在近日拉开帷幕,#AI 监考一度冲上热搜。当AI深度融入高考,#时间同步 不再是辅助功能,而是决定AI监考系统成败的“生命线”。 AI亮相2025高考,40种异常行为0.5秒精准识别 2025年高考即将拉开帷幕,江西、…...
基于 TAPD 进行项目管理
起因 自己写了个小工具,仓库用的Github。之前在用markdown进行需求管理,现在随着功能的增加,感觉有点难以管理了,所以用TAPD这个工具进行需求、Bug管理。 操作流程 注册 TAPD,需要提供一个企业名新建一个项目&#…...
