跳到主要内容

部署文本模型(Transformers)

推理框架介绍

  • Hugging Face Transformers: 适用于快速原型设计、研究和微调,是最基础和灵活的方式。

前提条件

请注意,不同的推理框架需要使用相适配的镜像。

在接下来的部署教程中,我们将以 Qwen3 系列模型 为例。您只需将文档中的模型名称替换为您需要使用的模型在 Hugging Face 或 Gitee Models 上的 repository ID 即可。

如果您计划使用其他大模型,请确保切换为对应的模型名称。若遇到最新的模型,可能需要升级镜像以保证兼容性,届时请联系我们获取支持。

使用 Hugging Face Transformers 部署

transformers 库提供了最直接的方式来下载和运行模型,非常适合在本地进行交互式测试和开发。

步骤 1: 选择算力型号和镜像版本

以沐曦 曦云C500型号 为例,租用一张64GB,镜像选择 PyTorch / 2.4.0 / Python 3.10 / maca 3.0.0.4

提示

如果您使用的是燧原 Enflame S60型号,镜像选择Ubuntu / 22.04 / Python 3.13 / ef 1.5.0.604

镜像选择

步骤 2: 点击JupyterLab,进入到容器

进入容器

步骤 2: 新建.ipynb文件

点击"notebook",新建一个.ipynb文件

进入容器

步骤 3: 安装所需库,运行python代码

pip install accelerate

安装后重启内核

进入容器

输入以下脚本将加载模型和分词器,然后生成一段对话。

提示

如果您使用的是燧原 Enflame S60型号, 需要先执行以下代码来加载torch_gcu库,将cuda迁移至gcu。

import torch
import torch_gcu # 引入torch_gcu库
from torch_gcu import transfer_to_gcu # CUDA代码一键迁移
from transformers import AutoModelForCausalLM, AutoTokenizer

model_name = "Qwen/Qwen3-0.6B"

# load the tokenizer and the model
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForCausalLM.from_pretrained(
model_name,
torch_dtype="auto",
device_map="auto"
)

# prepare the model input
prompt = "Give me a short introduction to large language model."
messages = [
{"role": "user", "content": prompt}
]
text = tokenizer.apply_chat_template(
messages,
tokenize=False,
add_generation_prompt=True,
enable_thinking=True # Switches between thinking and non-thinking modes. Default is True.
)
model_inputs = tokenizer([text], return_tensors="pt").to(model.device)

# conduct text completion
generated_ids = model.generate(
**model_inputs,
max_new_tokens=32768
)
output_ids = generated_ids[0][len(model_inputs.input_ids[0]):].tolist()

# parsing thinking content
try:
# rindex finding 151668 (</think>)
index = len(output_ids) - output_ids[::-1].index(151668)
except ValueError:
index = 0

thinking_content = tokenizer.decode(output_ids[:index], skip_special_tokens=True).strip("\n")
content = tokenizer.decode(output_ids[index:], skip_special_tokens=True).strip("\n")

print("thinking content:", thinking_content)
print("content:", content)

进入容器

何时使用: 当你需要对模型进行深入研究、修改模型内部逻辑、进行微调或只是简单地在本地运行模型时,transformers 是最佳选择。

访问主机上的模型

由于安全问题暂不提供对外访问的公网端口,若想要在本地访问容器实例上的模型,可快速通过Fastapi等web服务框架,将transformers部署的模型封装成对外暴露的推理API,再通过隧道代理的方式连接容器实例进而在本地访问容器实例上的模型推理API,假设您的API暴露在容器实例的8188端口,请求的地址路径为v1,那么只需要让本地与容器实例的8188端口建立隧道代理即可。

  1. 进入到容器实例的工作台,设置密码 找到您刚刚租用的算力型号,点击设置密码, 如果后续忘记密码可再次设置密码,进行重置。

工作台

  1. 打开本地机器的终端

设置完密码后,返回到电脑桌面,打开文件资源管理器我的电脑,在顶部的地址栏中输入 cmd 并按回车键,即可打开终端命令行。

打开我的电脑

  1. 输入SSH隧道代理指令

复制您所用租用算力的地址、用户名以及端口,组合成SSH隧道代理指令,然后输入到刚刚打开的终端命令行

复制容器信息

输入SSH指令

SSH隧道代理格式:ssh -CNg -L 8188:127.0.0.1:8188 用户名@地址 -p 端口

SSH隧道代理示例:ssh -CNg -L 8188:127.0.0.1:8188 root@140.207.205.81 -p 50821

  1. 在本地机器上访问模型

隧道代理成功后你可以用该地址来访问模型 http://localhost:8188/v1

打开一个新的终端窗口,通过 curl 命令,请求 http://localhost:8188/v1,访问容器实例上的模型推理服务。

专属大模型,赋能您的定制化应用

若你封装的API服务遵循兼容Openai SDK的格式,那么你将拥有专属的大模型服务,除了使用模力方舟的Serverless api,还可基于算力容器构建的大模型服务连接诸如此类的第三方应用claude codedifycherryN8N等,更多细节请参考第三方应用集成,您将享受到独占资源带来的极致低延迟、无需排队的服务体验,并彻底摆脱对上下文Token消耗的顾虑。