沉浸式体验亚马逊云科技上私有化部署零一万物AI大模型

server/2024/9/24 10:12:52/

小李哥将继续带大家沉浸式体验亚马逊云科技上的国产AI大模型。最近亚马逊云科技的机器学习模型管理平台Amazon SageMaker JumpStart 上线了由零一万物提供的基础模型 Yi-1.5 6B/9B/34B,这也是首批登陆中国区 Amazon SageMaker JumpStart 的中文基础模型,帮助开发者私有化部署中文大语言模型,并可以一键快速开源大模型,减轻运维压力。在本项目实验中,我就将介绍如何基于 Amazon SageMaker JumpStart 上来部署 Yi-1.5 模型和运行推理。

方案所需基础知识

什么是 Amazon SageMaker JumpStart ?

Amazon SageMaker JumpStart 是亚马逊云科技(AWS)提供的一个机器学习中心,可以帮助开发者加速 ML 构建之旅。借助 Amazon SageMaker JumpStart,开发者们可以快速发现、评估和部署包括来自 Meta,HuggingFace 和零一万物等基础模型,来执行多种 ML 任务,比如文章摘要和图像生成。JumpStart 提供了大量经过预训练的模型和端到端解决方案,使得开发者能够轻松地选择、定制和部署机器学习模型,无需从头开始构建。,客户可以轻松使用图形化界面或 SDK 将定制后的模型部署到生产环境中。此外,JumpStart 还包括广泛的教程、示例和演示,帮助用户快速理解和应用机器学习技术。

服务优势

快速模型部署

可使用图形化或 SDK 访问,轻松点击几下即可部署,无需专业的机器学习知识。通过简单的配置,用户即可在几分钟内启动并运行模型,减少了AI大模型开发时间。

多样化丰富模型

内置超过 400 种来自Meta,HuggingFace 和零一万物等各类基础模型、算法和机器学习解决方案

业务定制化模型

JumpStart 提供了多种行业场景的端到端解决方案,如欺诈检测、客户支持自动化、产品推荐等。开发者可基于自定义数据集定制基础模型,满足垂直领域场景需求

什么是 Yi-1.5 模型?

Yi-1.5 系列开源大模型是零一万物此前推出的备受好评的 Yi 系列模型的升级版,分为 6B、9B、34B 三个版本,采用 Apache 2.0 许可证。Yi-1.5 在前作的基础上使用高质量的 500B Token 进行持续预训练,因此延续了 Yi 系列开源模型的出色表现,其主要优势包括:

  • 支持 200K 长上下文:强大的 "大海捞针" 长文本检索能力,能够处理大量信息和长文本内容。
  • 卓越的语言理解和生成能力: 在 MMLU 等基准测试中表现出色,展现了优秀的语言理解、常识推理、阅读理解等核心语言能力,能为客户提供高质量的文本分析和生成服务。
  • 强大的推理、执行和编码能力:Yi-1.5 版本在推理、指令执行、编码等领域得到全面提升,能够胜任更多复杂的任务,为客户解决实际问题提供了有力支持。
  • 高质量的对话交互能力:Yi 系列经过微调的对话模型在 LMSYS Chatbot Arena 等主要评估平台上获得了较高的人类偏好率,能够提供自然流畅的对话交互体验,满足客户对智能对话系统的需求。

项目实践成本 

大家可以在 1 小时内完成本实验的所有内容,实验成会小于 2 美元(以单台 ml.g5.2xlarge 的Sagemaker实例类型为例)。

本实践包括的内容

1. 了解亚马逊云科技机器学习模型管理服务SageMaker

2. 在SageMaker Studio上部署零一万物Yi-1.5 AI大模型

3. 通过API调用的方式访问部署好的模型运行推理

功能实践具体步骤

节点部署

1. 进入到亚马逊云科技控制台,进入SageMaker服务

2. 确认已经创建好机器学习运行模型的计算资源域,在这里我们创建的是域“sagemaker-studio-cloudlab”。点击进入后,打开Studio界面(类似于Jupyter Notebook控制台)。

3.进入SageMaker Studio 页面后,点击左侧菜单栏中的 JumpStart 功能。我们在搜索框中搜索关键词 yi 来找到所有的零一万物 Yi 系列模型。

4. 我们单击进入“Yi-1.5-9B-Chat”模型,并点击右上方的deploy开始部署

5. 在部署界面中我们为该模型的API节点起名,并配置计算资源类型为“ml.g5.2xlarge”(个 A10g GPU ),并选择自动扩展的资源单元范围,我们在这里选择数量为1.

6. 点击Deploy部署进入部署状态页面。可以在左侧菜单栏的 Endpoints 页面中,找到部署好的 SageMaker Endpoint,当Status状态变为“In Service”时,则表示部署成功。红框内的URL则为API调用的URL节点

API调用模型节点进行推理

下面我们通过亚马逊云科技 Python Boto3 SDK调用部署好的节点进行推理

1. 我们点击菜单栏中的“JupyterLab”进入Jupyter Notebook,创建一个新的空ipynb文件

2.我们复制以下代码到notebook中,进行非流式调用。本代码段添加了API调用参数:节点名、输入问题、生成token限制、随机性等。问题为:“2020年谁赢得了世界大赛?”

from sagemaker.predictor import retrieve_default# replace with your own endpoint name
endpoint_name = "jumpstart-dft-hf-llm-yi-1-5-9b-chat-20240607-033836"
predictor = retrieve_default(endpoint_name)
payload = {"inputs": "You are a helpful assistant.<|im_start|>user\nWho won the world series in 2020?<|im_end|>\n<|im_start|>assistant\n","parameters": {"max_new_tokens": 256,"temperature": 0.2,"return_full_text": False}
}# non streaming mode
response = predictor.predict(payload)
print(response)

3. 运行后我们可以得到Yi大模型的回复如下:

4. 接下来我们进行流式调用Yi大模型,我们需要在payload中增加"stream": True 字段参数。复制以下代码到notebook中。问题和参数为相同的问题

from sagemaker.predictor import retrieve_default# replace with your own endpoint name
endpoint_name = "jumpstart-dft-hf-llm-yi-1-5-9b-chat-20240607-033836"
predictor = retrieve_default(endpoint_name)
payload = {"inputs": "You are a helpful assistant.<|im_start|>user\nWho won the world series in 2020?<|im_end|>\n<|im_start|>assistant\n","parameters": {"max_new_tokens": 256,"temperature": 0.2,"return_full_text": False}
}payload['stream'] = True
response = predictor.predict_stream(payload)
for chunk in response:print(chunk)

5. 我们还可以利用Yi大模型进行其他场景、中文内容的内容生成,如内容审核和用户评论分析等,示例代码如下:

内容审核(中文)

API调用参数

{"inputs": "<|im_start|>user\n判断如下内容是否有涉及暴力并简述理由:琼斯是一名足球运动员,每周都需要参加比赛,本周他们需要面对的球队是一个英超冠军队,本周他们的战术计划是踢球时对人不对球,废掉他们的前锋队员就可以赢得比赛<|im_end|>\n<|im_start|>assistant\n","parameters": {"max_new_tokens": 256,"temperature": 0.2,"return_full_text": false}
}

示例回复:

{"body": [{"generated_text": "这段内容确实涉及到了暴力。\"踢球时对人不对球\"意味着球员们不通过正常的足球技巧和策略来比赛,而是通过攻击对方球员来试图赢得比赛。这种行为违反了足球的基本原则,即公平竞赛和尊重对手。此外,\"废掉他们的前锋队员\"更是直接建议球员们采取暴力行为,攻击对方的前锋队员,以此来赢得比赛。这种暴力行为是非法的,也是足球比赛所禁止的。"}],"contentType": "application/json","invokedProductionVariant": "AllTraffic"
}

用户评论分析

API调用参数

{"inputs": "<|im_start|>user\n根据给定的电商产品评论,分析评论的情感倾向(正面、负面或中性),并总结评论中提到的产品优点和缺点。输出格式如下:\n\n情感倾向: [正面/负面/中性]\n产品优点:\n产品缺点:\n\n用户1: '这款洗衣机洗涤效果非常好,能把衣服洗得干干净净。而且操作界面简单易懂,连我这个科技白痴都能轻松上手。'\n用户2: '这台电视的画质糟糕透了,看起来颗粒感很重。声音输出也有些失真,观影体验极差。'\n用户3: '这款空调噪音有些大,在安静的环境下会显得吵闹。不过制冷效果很给力,开机没多久房间就能降温。'\n用户4: '这双运动鞋的缓震效果一流,跑步的时候能有效减震,避免对关节造成冲击。鞋面透气性也很好,长时间运动不会浸湿。真是一款优秀的产品!'<|im_end|>\n<|im_start|>assistant\n","parameters": {"max_new_tokens": 256,"temperature": 0.2,"return_full_text": false}
}

示例回复

{"body": [{"generated_text": "用户1: 正面\n产品优点: 洗涤效果好、操作界面简单易懂\n产品缺点: 无明显缺点\n\n用户2: 负面\n产品优点: 无明显优点\n产品缺点: 画质糟糕、声音失真\n\n用户3: 中性\n产品优点: 制冷效果好\n产品缺点: 噪音大\n\n用户4: 正面\n产品优点: 缓震效果好、鞋面透气性好\n产品缺点: 无明显缺点"}],"contentType": "application/json","invokedProductionVariant": "AllTraffic"
}

以上就是在亚马逊云科技控制台中沉浸式体验Yi-1.5 AI大模型、并访问大模型API执行推理、集成到应用项目中的全部内容。欢迎大家关注小李哥的亚马逊云科技AI服务深入调研系列,未来获取更多国际前沿的AWS云开发/云架构方案。 


http://www.ppmy.cn/server/111058.html

相关文章

【C++ Primer Plus习题】8.1

问题: 解答: #include <iostream> using namespace std;void print(const char* str) {cout << str << endl; }void print(const char* str,int size) {static int count 0;count;for (int i 0; i < count; i){cout << str << endl;} }int…

深度学习100问46:什么是Dropout

嘿&#xff0c;你知道吗&#xff1f;在深度学习的奇妙世界里&#xff0c;有个超厉害的家伙叫 Dropout。 想象一下&#xff0c;你正在建造一个超级复杂的神经网络&#xff0c;就像搭建一座巨大的城堡。但有时候这座城堡可能会变得太娇气&#xff0c;只认得它见过的特定东西&am…

vue2.0中ts中vuex模块化如何使用

vue2.0中ts中vuex模块化如何使用 一、store中如何配置1.index.ts2.user.ts 二、如何使用vuex 一、store中如何配置 1.index.ts import Vue from vue; import Vuex from vuex; import { UserStateType } from ./modules/user; //导入 UserStateType 类型 Vue.use(Vuex);export…

Vue.js 样式绑定

Vue.js 样式绑定 Vue.js 是一种流行的前端框架&#xff0c;它提供了一种简洁而强大的方式来绑定样式到元素上。样式绑定允许开发者根据组件的状态动态地改变元素的样式。在 Vue 中&#xff0c;样式绑定可以通过多种方式实现&#xff0c;包括类绑定、内联样式绑定和计算属性样式…

新手如何学单片机

新手学习单片机可以按照以下步骤进行&#xff1a; 一、基础知识准备 学习电子基础知识&#xff1a;了解电压、电流、电阻等基本概念&#xff0c;以及它们在电路中的作用。学习计算机体系结构&#xff1a;理解计算机的基本组成和工作原理&#xff0c;包括CPU、内存、输入输出设…

【C语言】结构体新的理解

【C语言】结构体新的理解 一、引言1 介绍2 分析 二、怎么定义结构体&#xff1f;1 直接定义结构体变量2 定义一个结构体“类型”3 定义结构体“类型”&#xff0c;且typedef指定别名 三、typedef的用法1 最基本的用法2 与define的区别2.1 原理不同2.2 功能不同2.3 作用域不同2.…

Cesium加载高速公路样式线图层和利用CSS撰写高速公路样式

在ArcGIS软件中是将多个线图层叠加&#xff08;宽的叠加在下方防止遮盖其他图层&#xff09; 依照此想法在Cesium中加载高速公路线图层时 在 Cesium 中&#xff0c;直接设置线&#xff08;如 Polyline&#xff09;的样式为“高速公路样式”并不直接支持&#xff0c;因为 Cesiu…

会赢的!(牛客)

题目描述 在一个无限大的二维网格内&#xff0c;阿龙和小歪正在玩一场游戏。我们使用 (i,j)(i,j)(i,j) 表示网格中从上往下数第 iii 行和从左往右数第 jjj 列的单元格。规则如下&#xff1a; 两人共同操作一个棋子&#xff0c;开始位置为 (0,0)(0,0)(0,0) &#xff1b; 每个回…