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

news2025/2/22 17:11:20

 本篇文章主要介绍如何使用新的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部署的端点与应用集成,满足实际的业务需求。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1160182.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

AI:45-基于深度学习的声纹识别

🚀 本文选自专栏:AI领域专栏 从基础到实践,深入了解算法、案例和最新趋势。无论你是初学者还是经验丰富的数据科学家,通过案例和项目实践,掌握核心概念和实用技能。每篇案例都包含代码实例,详细讲解供大家学习。 📌📌📌本专栏包含以下学习方向: 机器学习、深度学…

腾讯云双十一云服务器大促活动:云服务器特惠信息汇总!

优惠概述 在腾讯云双十一活动中,轻量应用服务器推出了三款享受特惠优惠的选项,分别是2核2G、2核4G和4核8G。这三款服务器的价格分别为88元/年、166.6元/年和529元/15个月。此外,腾讯云还推出了一次性购买3年服务器的特别优惠活动&#xff0c…

乐器玩具微信商城小程序制作:简单几步的秘诀

在当今的数字化时代,网络购物已成为人们生活中不可或缺的一部分。而微信商城小程序作为一种便捷的购物方式,正逐渐受到越来越多人的青睐。如果你是一位乐器玩具商家,那么制作一个乐器玩具微信商城小程序将是一个非常不错的选择。本文将指导你…

《 博弈论教程(罗云峰版) 》——习题一答案

前言 博弈论这门课程,我们主要参考的教材是《博弈论教程(罗云峰版)》,但是罗老师的课后习题并没有给出完整的答案,秉着学习的态度,本人结合教材和 PPT 在这里给出课后习题的答案。 由于我们只学了完全信息静…

全开源抖音快手微信取图小程序源码

全开源抖音快手微信很火爆的取图小程序源码,可以给人别人搭建,也可以自己做;对接流量主,收益很可观。 下载地址:https://bbs.csdn.net/topics/617502419

TCP 协议

文章目录 协议格式1面向连接:1.1三次握手(建立连接)1.2包序管理1.2四次挥手(断开连接) 2可靠传输:一。保证数据可靠有序的到达对端:确认应答机制超时重传机制 二。提高传输效率:1.提升自身发送数据量滑动窗口机制 rwnd滑动窗口丢包…

Android应用集成RabbitMQ消息处理指南

Android应用集成RabbitMQ消息处理指南 RabbitMQ1、前言2、RabbitMQ简介2.1、什么是RabbitMQ2.2、RabbitMQ的特点2.3、RabbitMQ的工作原理2.4、RabbitMQ中几个重要的概念 3、在Android Studio中集成RabbitMQ3.1、在Manifest中添加权限:3.2、在build.gradle(:app)下添…

抽奖软件,是随机公平的,还是可暗箱操作的

绝大多数软件都可作弊,或有作弊版本 根据经验,年会抽奖时,大约有15%-20%的单位要求可作弊,出现暗箱操作的几率还是很大的。 有的是公司老板的意思,有的是年会负责人或软件操作员的想法。有的内定某人中大奖&#xff…

机器学习快速入门教程 Scikit-Learn实现

机器学习是什么? 机器学习是一帮计算机科学家想让计算机像人一样思考所研发出来的计算机理论。他们曾经说过,人和计算机其实本没有差别,同样都是一大批互相连接的信息传递和存储元素所组成的系统。所以有了这样的想法,加上他们得天独厚的数学功底,机器学习的前身也就孕育而生…

【Verilog 教程】7.3 Verilog 串行 FIR 滤波器设计

串行 FIR 滤波器设计 设计说明 设计参数不变,与并行 FIR 滤波器参数一致。即,输入频率为 7.5 MHz 和 250 KHz 的正弦波混合信号,经过 FIR 滤波器后,高频信号 7.5MHz 被滤除,只保留 250KMHz 的信号。 输入频率&#x…

【MySQL索引与优化篇】数据库的设计规范

数据库的设计规范 文章目录 数据库的设计规范1. 范式2. 键和相关属性的概念3. 第一范式4. 第二范式5. 第三范式6. 小结7. 反范式化7.1 概述7.2 反范式的新问题7.3 反范式适用场景 8. 巴斯范式9. 第四范式、第五范式和域键范式 1. 范式 在关系型数据库中,关于数据表…

Fedora 32安装Kaldi

网上很多LInux 安装Kaldi的链接,讲的都比较明确,例如: kaldi的编译安装与报错解决方法_extras/check_dependencies.sh extras/check_dependen-CSDN博客保姆级kaldi语音识别(2)Linux系统Ubuntu20.04下开源语音识别工具…

Python---字符串在计算机底层的存储形式---涉及索引下标

一个字符串,在计算机中,是先占用一个空间。 在计算机中,Python中的字符串属于序列结构。所以其底层存储占用一段连续的内存空间。 str1 abcdefg 结构原理图: 注意:索引下标从0开始。 索引下标 索引下标&#xff…

python脚本-读取shadow关键信息并爆破密码

python脚本-读取shadow关键信息并爆破密码 代码 import crypt from colorama import Fore,Styledef crack():# 密码爆破函数定义with open(/root/top1000.txt) as f:# 此处更改密码字典for passwd in f:passwd2crypt.crypt(passwd.strip(),salt)if passwd2 passwd_hash:prin…

自动化测试篇:操作自动化测如何实现用例设计实例详解

前言 在编写用例之间,笔者再次强调几点编写自动化测试用例的原则: 1、一个脚本是一个完整的场景,从用户登陆操作到用户退出系统关闭浏览器。 2、一个脚本脚本只验证一个功能点,不要试图用户登陆系统后把所有的功能都进行验证再退…

【Java 进阶篇】Java Response 输出字符数据案例

在Java Web开发中,使用HTTP响应对象(Response)来向客户端发送数据是一项非常重要的任务。本篇博客将详细介绍如何使用Java中的Response对象来输出字符数据,并提供示例代码以帮助读者更好地理解和应用这一概念。不仅将讨论基础知识…

师从IEEE Fellow|民办高校计算机专业教师自费赴美访学

D老师科研背景较弱,拟自费访学并带孩子出国就读,故要求申请到美国生活成本低且有较好公立中学教育资源的地区,并希望对方不收管理费。最终我们落实了德克萨斯大学达拉斯分校的邀请函,对方是IEEE Fellow、IET Fellow和EAI Fellow三…

ANGR初识

首页: https://angr.io 项目存储库: GitHub - angr/angr: A powerful and user-friendly binary analysis platform! 文档: https://docs.angr.io API 文档: angr documentation 练习项目: https://github.com/angr/an…

c语言从入门到实战——函数

函数 前言1. 函数的概念2. 库函数2.1 标准库和头⽂件2.2 库函数的使用方法2.2.1 功能2.2.2 头文件包含2.2.3 实践2.2.4 库函数文档的一般格式 3. 自定义函数3.1 函数的语法形式3.2 函数的举例 4. 形参和实参4.1 实参4.2 形参4.3 实参和形参的关系 5. return 语句6. 数组做函数参…

为什么需要Code Review?

1. Code Review 是什么? 代码审查(Code Review)是软件开发过程中对代码进行系统性检查和评审的一项活动。它是指团队成员之间相互检查彼此编写的代码,以确保代码质量、可读性和符合编码标准等。 2. Code Review 的必要性 ● 提…