作者:郑昊 | 张镎
近期,我们在 SageMaker JumpStart 上线了由零一万物提供的基础模型 Yi-1.5 6B/9B/34B,为中国企业提供丰富模型选择的同时满足了企业对安全合规、快速扩展、免运维的需求。作为首批登陆中国区域 SageMaker JumpStart 的中文基础模型,Yi-1.5 与亚马逊云科技托管服务深度集成,助力中国企业应用一流的生成式 AI 技术实现本土创新与业务转型。
在本篇文章中,我们将介绍如何基于 SageMaker JumpStart 来发现和部署 Yi-1.5 模型和运行推理。
什么是 SageMaker JumpStart ?
什么是 SageMaker JumpStart ?
SageMaker JumpStart 是一个机器学习中心 (ML Hub),可以帮助企业加速 ML 构建之旅。借助 SageMaker JumpStart,企业可以快速发现、评估和部署包括来自 Meta,HuggingFace 和零一万物等基础模型,来执行多种 ML 任务,比如文章摘要和图像生成。JumpStart 中预训练模型还可以根据客户的用例和数据完全定制,客户可以轻松使用图形化界面或 SDK 将定制后的模型部署到生产环境中。此外,客户可以访问预制的解决方案来满足常见用例的需求,比如图像或文本分类, 并在组织内共享模型和笔记本,以加速 ML 模型的构建和部署。
SageMaker JumpStart 的主要优势包括:
- 内置超过 400 种各类基础模型、算法和机器学习解决方案
- 可使用图形化或 SDK 访问,轻松点击几下即可部署,无需专业的机器学习知识
- 可基于自定义数据集定制基础模型,满足垂直领域场景需求
- 可在组织内灵活共享机器学习模型和笔记本,以加速 机器学习模型的构建和部署
什么是 Yi-1.5 模型?
什么是 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. 发现模型
1. 发现模型
您可以通过 SageMaker Studio UI 和 SageMaker Python SDK 访问基础模型。这里,我们将介绍如何在 SageMaker Studio 中发现这些模型。
SageMaker Studio 是一个集成开发环境(IDE),提供了一个基于 Web 的可视化界面,您可以在其中访问专门构建的工具,执行所有 ML 开发步骤,从准备数据到构建、训练和部署您的 ML 模型。有关如何开始使用和设置 SageMaker Studio 的更多详细信息,请参阅 Amazon SageMaker Studio。
从 SageMaker Studio 中的 JumpStart 入口进入之后,以零一万物的 Yi 模型为例, 您可以在 provider 的 search box 中搜索 yi 来找到所有的 Yi 系列模型。
单击模型卡片会打开如下的模型详情页面,从该页面点击右上方的 Deploy 可以快速进入模型的部署流程。
2. 部署模型
2. 部署模型
进入模型部署界面之后,可以直接使用默认配置进行部署。或者,您可以自定义地对部署进行配置,如 SageMaker Endpoint 命名、实例类型、初始及可扩容的最大实例数量等。此处以 Yi-1.5 9B Chat 为例,默认使用单个 A10g GPU 的 ml.g5.2xlarge 实例。
除了上述基于图形界面的部署形式,您也可以点击 Notebooks Tab,基于 JumpStart Notebook 进行部署,或直接在 SageMaker Studio 中启动 Jupyter Notebook 环境,使用 JumpStart API 部署,这种方式提供了更高的灵活性和更多的配置选项。
触发部署后,可以在左侧 Endpoints 选项中,找到当前部署的 SageMaker Endpoint,并跟踪其部署状态。
当 Statue 转为 In Service 之后,表示模型部署成功。
3. 运行推理
3. 运行推理
完成部署后,可以通过 Endpoint 界面提供的 Test Inference Tab 来进行测试调用。
对于一般生产场景,可以通过 SDK 的形式来进行模型调用。比如,在您部署应用的服务器上,通过 SageMaker SDK, Amazon SDK for Python (boto3) 或 Amazon SDK for JAVA 等,来对以上部署的模型进行调用。以 SageMaker Python SDK 的调用为例,指定部署完成的 SageMaker Endpoint 名称(如 jumpstart-dft-hf-llm-yi-1-5-9b-chat-20240607-033836),即可快速进行调用并获取推理结果。
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
}
}
response = predictor.predict(payload)
print(response)
同时,通过调整推理参数可以进行生成结果的控制,如通过 temperature 来控制随机性,通过 return_full_text 来控制是否输出 input prompt 等。
对于需要使用流式 (Stream) 输出的场景,需要在以上 payload 中增加 "stream": True 参数,并使用 Stream API 接口进行调用,如 boto3 中的 invoke_endpoint_with_response_stream() API。
Yi-1.5 模型推理示例
Yi-1.5 模型推理示例
Yi chat 版本的模型可以通过使用其专有的 prompt 模板,来获得更好的生成效果。以下展示了使用 Yi-1.5-9B-Chat 来进行中文问答的一个示例。
丝绸之路起源于哪个朝代?<|im_end|>
<|im_start|>assistant
总结
总结
在本篇文章中,我们向您展示了如何在 SageMaker JumpStart 中发现和部署基础模型,以及以零一万物的 Yi-1.5-9B-Chat 为例运行推理。
您现在可以借助 SageMaker JumpStart 访问 Yi-1.5 6B,9B 和 34B 的 Base 和 Chat 优化的 6 个基础模型,未来我们还会上线包括百川智能在内的多款领先的中文基础模型。除此之外,您还可以访问来自 Meta、AI21Labs 和 HuggingFace 等公司的先进模型,进行微调定制和部署,有效地降低训练和基础设施成本,加速生成式 AI 应用的构建。现在就在 SageMaker JumpStart 中开启您的生成式 AI 构建之旅吧。
免责声明:前述特定亚马逊云科技生成式人工智能相关的服务仅在亚马逊云科技海外区域可用,亚马逊云科技中国仅为帮助您了解行业前沿技术和发展海外业务选择推介该服务。