函数计算+HuggingFace部署

本文涉及的产品
函数计算FC,每月15万CU 3个月
Serverless 应用引擎免费试用套餐包,4320000 CU,有效期3个月
简介: 函数计算一键部署huggingface模型

概述

函数计算上线huggingface应用模版,需求如下:

  • 用户只需要制定huggingface model_id、model_task等信息就能将模型一键拉起
  • 对外提供server服务,并以api形式输出,不提供UI页面

基于上述诉求,能让用户在函数计算一键拉起huggingface模型,便于用户基于函数计算使用模型,同时提供AI runtime的原子能力,让更多用户享受到大模型发展带来的红利

部署


创建应用进入到详情页

huggingface配置

image.png

其中主要涉及huggingface中的模型ID, 模型任务类型, 加载模型需要的库,已经huggingface access token, 下面以distilbert/distilbert-base-uncased-finetuned-sst-2-english为例,进入到模型详情页,https://huggingface.co/distilbert/distilbert-base-uncased-finetuned-sst-2-english

image.png

模型ID, 其中上图中标识1,即为模型ID

GPU配置

GPU相关配置按需调整即可 image.png

创建完成

创建完成直接通过域名调用即可,域名见下图位置

image.png

方案

分析huggingface中的模型,本身为了用户使用方便,huggingface提供了便捷性能优越的pipeline库便于用于直接基于pipeline使用模型,减小用户使用和学习成本。本方案就是基于huggingface封装的pipeline进行封装设计。而huggingface涉及到的pipeline主要分两类:

  • transformers
  • diffusers

在huggingface模型详情页有具体的模型划分,非常方便用户进行区分

概览

整个方案最终只需要用户指定huggingface的模型ID+模型task即可,依赖的云产品:

  • 函数计算, 用于提供算力
  • NAS

整个应用包括三个资源:

  • model_download, 初始化应用时进行模型下载
  • model_app, 部署模型提供api接口服务
  • NAS
  • 用于持久化模型(可选,不选择挂载的话模型每次服务启动都需要重新进行拉取)
  • 用于安装基础镜像中不支持的python库

image.png

详情

huggingface应用使用的huggingface提供的transformers和diffusers两个库进行模型加载,所以本身模型需要能支持这两个库进行加载才行。

transformers

如何确定模型能被transformers加载,可以进入到模型详情页,这里以distilbert/distilbert-base-uncased-finetuned-sst-2-english为例,如下图所示

image.png

如上如所示,圈出位置有Transformers代表能用transformers进行加载,就可以使用函数计算提供的huggingface应用模版

支持TASK列表

HuggingFace页面展示的TASK

部署函数计算huggingface时需要填写的model_task

Audio Classification

audio-classification

Automatic Speech Recognition

automatic-speech-recognition

Text-to-Audio

text-to-audio

Text-to-Speech

text-to-speech

Depth Estimation

depth-estimation

Image Classification

image-classification

Image Segmentation

image-segmentation

Image-to-Image

image-to-image

Object Detection

object-detection

Video Classification

video-classification

Zero-Shot Image Classification

zero-shot-image-classification

Zero-Shot Object Detection

zero-shot-object-detection

Fill-Mask

fill-mask

Question Answering

question-answering

Summarization

summarization

Table Question Answering

table-question-answering

Text Classification

text-classification

Text Generation

text-generation

Text2Text Generation

text2text-generation

Token Classification

token-classification

Translation

translation

Zero-Shot Classification

zero-shot-classification

Document Question Answering

document-question-answering

Feature Extraction

feature-extraction

Image Feature Extraction

image-feature-extraction

Image-to-Text

image-to-text

Mask Generation

mask-generation

Visual Question Answering

visual-question-answering

示例

下面是一个用户层面创建步骤

  • 进入到huggingface模型详情页,查看对应的模型ID/模型TASK/pipeline类型

以openai/whisper-large-v3为例,获取如下三个信息,如下三个信息在详情页不全的模型不支持部署

  • 1、model_id
  • 2、model_task
  • 3、pipeline类型(Transformers/Diffusers)

image.png

  • 在应用模版中填上如上三个信息, 其中模型任务见上文Task列表,进行创建应用即可,就会拉起一个加载该模型的server,对外提供API服务
  • api服务的入参可以简单使用{"data":{"input":"xxxxxx"}}

diffusers

如何确定哪些模型能使用diffusers进行加载,以runwayml/stable-diffusion-v1-5为例,查看模型详情页

image.png

如上图圈出有Diffusers标识的才可以使用

支持TASK列表

参考:https://huggingface.co/docs/diffusers/using-diffusers/pipeline_overview

image.png

HuggingFace页面展示的TASK

部署函数计算huggingface时需要填写的model_task

参考文档

Text-to-Image

text-to-image

https://huggingface.co/docs/diffusers/using-diffusers/conditional_image_generation

Image-to-Image

image-to-image

https://huggingface.co/docs/diffusers/using-diffusers/img2img

Inpainting

inpainting

https://huggingface.co/docs/diffusers/using-diffusers/inpaint

Depth-to-image

depth-to-image

https://huggingface.co/docs/diffusers/using-diffusers/depth2img

示例

下面是一个用户层面创建步骤

  • 进入到huggingface模型详情页,查看对应的模型ID/模型TASK/pipeline类型

以runwayml/stable-diffusion-v1-5为例,获取如下三个信息,如下三个信息在详情页不全的模型不支持部署

  • 1、model_id
  • 2、model_task
  • 3、pipeline类型(Transformers/Diffusers)

image.png

  • 在应用模版中填上如上三个信息, 其中模型任务见上文Task列表,进行创建应用即可,就会拉起一个加载该模型的server,对外提供API服务

API

由于不同的模型入参出参都是不同,具体API参数需要参考,由于huggingface模型加载主要使用两个库Transformers和Diffusers两个,所以API也进行区分

推理请求

POST /

具体body参数如下

Transformers

  • api服务的入参可以简单使用{"data":{"input":"xxxxxx"}}
  • 当然也支持传递更具体的参数,确定模型服务对外提供API参数,以transformers的pipeline为例,进入到https://huggingface.co/docs/transformers/main_classes/pipelines,根据模型对应的model_task找到对应pipelines,以text-classification(Text Classification)为例,在截图位置找到对应的pipeline, TextClassificationPipeline image.png

入参

进入到具体pipeline(TextClassificationPipeline)的详情,查看对应的__call__方法,函数参数就是对应的API的入

https://huggingface.co/docs/transformers/v4.39.3/en/main_classes/pipelines#transformers.TextClassificationPipeline.__call__

image.png

出参

__call__返回值即为出参数据,如pipeline(TextClassificationPipeline)出参

image.png

示例

// 请求:POST /
    // 简单调用
    {
      "data": {
        "input": "你好"
      }
    }
    
    // 或者基于__call__参数
    
    {
      "data": {
        "inputs": "你好",
        "top_k": 1,
        "fucntion_to_apply": "default"
      }
    }
// 结果
  {
    "data": [
        {
            "label": "NEGATIVE",
            "score": 0.7005688548088074
        }
      ]
  }

Diffusers

如何确定API入参,以runwayml/stable-diffusion-v1-5为例,

  • 进入模型详情页,找到下图中具体的pipeline信息(以Pipeline为后缀)

image.png

image.png

入参

pipeline详情中的__call__函数的入参就是API参数, https://huggingface.co/docs/diffusers/v0.27.2/en/api/pipelines/stable_diffusion/text2img#diffusers.StableDiffusionPipeline.__call__

image.png

示例

POST /
{
  "data":{
    "prompt": "a dog",
    "width": 512,
    "height": 512
  }
}

安装模型依赖

  • 在应用页面,找到模型推理函数,点击函数进入函数详情页

image.png

  • 执行一次推理,登录实例,以安装requests为例, 执行pip install requests --target=/mnt/${functionName}/python , 这里functionName=huggingface-s7xy-model-app也即推理函数名

image.png

示例

image.png

image.png

注意📢

  • 并不是所有的huggingface都支持pipeline部署,本次方案优先支持pipeline进行部署的模型,其他模型后续看方案进行支持
  • api的输出,默认np.ndarray->list, Image->base64
相关实践学习
【文生图】一键部署Stable Diffusion基于函数计算
本实验教你如何在函数计算FC上从零开始部署Stable Diffusion来进行AI绘画创作,开启AIGC盲盒。函数计算提供一定的免费额度供用户使用。本实验答疑钉钉群:29290019867
建立 Serverless 思维
本课程包括: Serverless 应用引擎的概念, 为开发者带来的实际价值, 以及让您了解常见的 Serverless 架构模式
相关文章
|
13天前
|
自然语言处理 Serverless 测试技术
DeepSeek 模型快速体验,魔搭+函数计算一键部署模型上云
DeepSeek模型近期备受关注,其开源版本DeepSeek-V3和DeepSeek-R1在多个基准测试中表现出色,性能比肩OpenAI顶尖模型。为降低本地部署门槛,Modelscope社区推出DeepSeek-R1-Distill-Qwen模型的一键部署服务,支持函数计算FC平台的闲置GPU实例,大幅降低成本。用户可选择不同参数量的小模型进行快速部署和推理,体验DeepSeek的强大性能。
DeepSeek 模型快速体验,魔搭+函数计算一键部署模型上云
|
13天前
|
机器学习/深度学习 自然语言处理 Serverless
DeepSeek 快速体验,魔搭+函数计算一键部署模型上云
对于期待第一时间在本地进行使用的用户来说,尽管 DeepSeek 提供了从 1.5B 到 70B 参数的多尺寸蒸馏模型,但本地部署仍需要一定的技术门槛。对于资源有限的用户进一步使用仍有难点。为了让更多开发者第一时间体验 DeepSeek 模型的魅力,Modelscope 社区 DeepSeek-R1-Distill-Qwen 模型现已支持一键部署(SwingDeploy)上函数计算 FC 服务,欢迎开发者立即体验。
248 12
|
1月前
|
人工智能 JSON 自然语言处理
一键生成毛茸萌宠形象,基于函数计算极速部署 ComfyUI 生图系统
本次方案将帮助大家实现使用阿里云产品函数计算FC,只需简单操作,就可以快速配置ComfyUI大模型,创建出你的专属毛茸茸萌宠形象。内置基础大模型+常用插件+部分 Lora,以风格化图像生成只需用户让体验键配置简单方便,后续您可以根据自己的需要更换需要的模型、Lora、增加插件。
|
1月前
|
存储 人工智能 Serverless
7分钟玩转 AI 应用,函数计算一键部署 AI 生图大模型
人工智能生成图像(AI 生图)的领域中,Stable Diffusion WebUI 以其强大的算法和稳定的输出质量而闻名。它能够快速地从文本描述中生成高质量的图像,为用户提供了一个直观且高效的创作平台。而 ComfyUI 则以其用户友好的界面和高度定制化的选项所受到欢迎。ComfyUI 的灵活性和直观性使得即使是没有技术背景的用户也能轻松上手。本次技术解决方案通过函数计算一键部署热门 AI 生图大模型,凭借其按量付费、卓越弹性、快速交付能力的特点,完美实现低成本,免运维。
|
1月前
|
存储 人工智能 安全
函数计算助您 7 分钟极速部署开源对话大模型
本方案利用函数计算的无服务器架构,您可以在函数计算控制台选择魔搭(ModelScope)开源大模型应用模板;同时,我们将利用文件存储 NAS ,为应用服务所需的大模型和相关文件提供一个安全的存储环境;最终通过访问提供的域名进行模型的调用与验证。仅需三步,即可玩转目前热门 AI 大模型。
|
2月前
|
JSON 人工智能 Serverless
一键生成毛茸萌宠形象,基于函数计算极速部署ComfyUI生图系统
通过阿里云函数计算FC 和文件存储NAS,用户体验 ComfyUI 和预置工作流文件,用户可以快速生成毛茸茸萌宠等高质量图像。
一键生成毛茸萌宠形象,基于函数计算极速部署ComfyUI生图系统
|
2月前
|
Serverless 开发工具 开发者
活动实践 | 西游再现,函数计算一键部署 Flux 超写实文生图模型部署
这些图片展示了阿里巴巴云开发者生态的多个方面,包括开发工具、技术文档、社区交流、培训认证等内容,旨在为开发者提供全方位的支持和服务。
|
2月前
|
人工智能 Java Serverless
阿里云函数计算助力AI大模型快速部署
随着人工智能技术的快速发展,AI大模型已经成为企业数字化转型的重要工具。然而,对于许多业务人员、开发者以及企业来说,探索和利用AI大模型仍然面临诸多挑战。业务人员可能缺乏编程技能,难以快速上手AI模型;开发者可能受限于GPU资源,无法高效构建和部署AI应用;企业则希望简化技术门槛,以更低的成本和更高的效率利用AI大模型。
230 12
|
3月前
|
自然语言处理 搜索推荐 Serverless
基于函数计算部署GPT-Sovits模型实现语音生成
阿里云开发者社区邀请您参加“基于函数计算部署GPT-Sovits模型实现语音生成”活动。完成指定任务即可获得收纳箱一个。活动时间从即日起至2024年12月13日24:00:00。快来报名吧!
|
3月前
|
弹性计算 自然语言处理 搜索推荐
活动实践 | 基于函数计算部署GPT-Sovits模型实现语音生成
通过阿里云函数计算部署GPT-Sovits模型,可快速实现个性化声音的文本转语音服务。仅需少量声音样本,即可生成高度仿真的语音。用户无需关注服务器维护与环境配置,享受按量付费及弹性伸缩的优势,轻松部署并体验高质量的语音合成服务。

相关产品

  • 函数计算