函数计算+HuggingFace部署

简介: 函数计算一键部署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
相关实践学习
【玩转ComfyUI】基于函数计算一键部署AI生图平台ComfyUI
本次实验将带大家通过使用阿里云产品函数计算FC,快速使用ComfyUI实现更高质量的图像生成。
从 0 入门函数计算
在函数计算的架构中,开发者只需要编写业务代码,并监控业务运行情况就可以了。这将开发者从繁重的运维工作中解放出来,将精力投入到更有意义的开发任务上。
相关文章
|
9月前
|
人工智能 运维 Kubernetes
Serverless 应用引擎 SAE:为传统应用托底,为 AI 创新加速
在容器技术持续演进与 AI 全面爆发的当下,企业既要稳健托管传统业务,又要高效落地 AI 创新,如何在复杂的基础设施与频繁的版本变化中保持敏捷、稳定与低成本,成了所有技术团队的共同挑战。阿里云 Serverless 应用引擎(SAE)正是为应对这一时代挑战而生的破局者,SAE 以“免运维、强稳定、极致降本”为核心,通过一站式的应用级托管能力,同时支撑传统应用与 AI 应用,让企业把更多精力投入到业务创新。
878 30
|
10月前
|
人工智能 运维 安全
聚焦 AI 应用基础设施,云栖大会 Serverless AI 全回顾
2025 年 9 月 26 日,为期三天的云栖大会在杭州云栖小镇圆满闭幕。随着大模型技术的飞速发展,我们正从云原生时代迈向一个全新的 AI 原生应用时代。为了解决企业在 AI 应用落地中面临的高成本、高复杂度和高风险等核心挑战,阿里云基于函数计算 FC 发布一系列重磅服务。本文将对云栖大会期间 Serverless+AI 基础设施相关内容进行全面总结。
|
10月前
|
存储 人工智能 Serverless
函数计算进化之路:AI 应用运行时的状态剖析
AI应用正从“请求-响应”迈向“对话式智能体”,推动Serverless架构向“会话原生”演进。阿里云函数计算引领云上 AI 应用 Serverless 运行时技术创新,实现性能、隔离与成本平衡,开启Serverless AI新范式。
936 12
|
10月前
|
人工智能 Kubernetes 安全
重塑云上 AI 应用“运行时”,函数计算进化之路
回顾历史,电网的修建,深刻地改变了世界的经济地理和创新格局。今天,一个 AI 原生的云端运行时的进化,其意义也远不止于技术本身。这是一次设计哲学的升华:从“让应用适应平台”到“让平台主动理解和适应智能应用”的转变。当一个强大、易用、经济且安全的 AI 运行时成为像水电一样的基础设施时,它将极大地降低创新的门槛。一个独立的开发者、一个小型创业团队,将有能力去创造和部署世界级的 AI 应用。这才是技术平权的真谛,是激发全社会创新潜能的关键。
|
存储 编解码 Serverless
Serverless架构下的OSS应用:函数计算FC自动处理图片/视频转码(演示水印添加+缩略图生成流水线)
本文介绍基于阿里云函数计算(FC)和对象存储(OSS)构建Serverless媒体处理流水线,解决传统方案资源利用率低、运维复杂、成本高等问题。通过事件驱动机制实现图片水印添加、多规格缩略图生成及视频转码优化,支持毫秒级弹性伸缩与精确计费,提升处理效率并降低成本,适用于高并发媒体处理场景。
1691 0
|
SQL 分布式计算 Serverless
鹰角网络:EMR Serverless Spark 在《明日方舟》游戏业务的应用
鹰角网络为应对游戏业务高频活动带来的数据潮汐、资源弹性及稳定性需求,采用阿里云 EMR Serverless Spark 替代原有架构。迁移后实现研发效率提升,支持业务快速发展、计算效率提升,增强SLA保障,稳定性提升,降低运维成本,并支撑全球化数据架构部署。
1498 56
鹰角网络:EMR Serverless Spark 在《明日方舟》游戏业务的应用
|
人工智能 开发框架 安全
Serverless MCP 运行时业界首发,函数计算让 AI 应用最后一公里提速
作为云上托管 MCP 服务的最佳运行时,函数计算 FC 为阿里云百炼 MCP 提供弹性调用能力,用户只需提交 npx 命令即可“零改造”将开源 MCP Server 部署到云上,函数计算 FC 会准备好计算资源,并以弹性、可靠的方式运行 MCP 服务,按实际调用时长和次数计费,欢迎你在阿里云百炼和函数计算 FC 上体验 MCP 服务。
1131 31
|
人工智能 开发框架 运维
Serverless MCP 运行时业界首发,函数计算让 AI 应用最后一公里提速
Serverless MCP 运行时业界首发,函数计算支持阿里云百炼 MCP 服务!阿里云百炼发布业界首个全生命周期 MCP 服务,无需用户管理资源、开发部署、工程运维等工作,5 分钟即可快速搭建一个连接 MCP 服务的 Agent(智能体)。作为云上托管 MCP 服务的最佳运行时,函数计算 FC 为阿里云百炼 MCP 提供弹性调用能力。
 Serverless MCP 运行时业界首发,函数计算让 AI 应用最后一公里提速
|
Cloud Native Serverless 流计算
云原生时代的应用架构演进:从微服务到 Serverless 的阿里云实践
云原生技术正重塑企业数字化转型路径。阿里云作为亚太领先云服务商,提供完整云原生产品矩阵:容器服务ACK优化启动速度与镜像分发效率;MSE微服务引擎保障高可用性;ASM服务网格降低资源消耗;函数计算FC突破冷启动瓶颈;SAE重新定义PaaS边界;PolarDB数据库实现存储计算分离;DataWorks简化数据湖构建;Flink实时计算助力风控系统。这些技术已在多行业落地,推动效率提升与商业模式创新,助力企业在数字化浪潮中占据先机。
810 12
|
人工智能 运维 架构师
Serverless + AI 让应用开发更简单,加速应用智能化
Serverless + AI 让应用开发更简单,加速应用智能化
371 5

热门文章

最新文章

相关产品

  • 函数计算