华为云MaaS模型即服务完全对接指南:从开通部署到API调用的全链路实战
1. MaaS模型即服务概述
华为云ModelArts Studio大模型即服务平台(以下简称MaaS)是面向AI开发者的一站式大模型开发平台。MaaS提供端到端的大模型生产工具链和昇腾算力资源,预置了当前主流的第三方开源大模型,支持大模型数据生产、微调、提示词工程、应用编排等功能。开发者可以基于MaaS平台开箱即用,对预置大模型进行二次开发,用于生产商用。
MaaS的核心能力围绕模型的全生命周期管理展开,主要包括以下几个模块:模型广场提供了丰富的开源大模型供用户浏览和选择;预置服务允许用户直接开通商用推理API服务,按Token用量计费;在线推理支持将模型部署为专属服务,便于在其他业务环境中调用;模型管理支持用户结合自定义权重文件创建个人专属模型。MaaS提供统一的API接口方便业务系统调用,并提供监控和日志功能便于运维管理。
MaaS支持DeepSeek、通义千问、GLM、Llama等主流开源大模型系列。新用户通常可获得每个模型一定量的免费Token额度用于测试学习。当免费额度用完后,可以选择付费部署为"我的服务"使用,或在MaaS预置服务中开通商用服务。
需要先登录华为云控制台,点击:华为云控制台,还没有账号,点击:注册并关联,已有账号点击:登录后关联
2. 使用前的准备工作
2.1 账号注册与实名认证
使用MaaS服务前,需要先注册华为云账号并完成实名认证。具体操作包括访问华为云官网完成账号注册,然后按照指引进行个人或企业实名认证。在使用MaaS前还需检查账号状态,账号不能处于欠费或冻结状态。
2.2 委托授权配置
对于所有用户(包括个人用户),需要完成ModelArts委托授权才能使用MaaS服务,否则会造成操作出现不可预期的错误。委托授权配置在MaaS控制台的权限管理页面完成,授权后MaaS服务才能访问用户账号下的OBS存储、计算等资源。
2.3 API Key管理
在调用MaaS的模型服务时,需要填写API Key用于接口的鉴权认证。API Key的创建和管理在MaaS控制台的"API Key管理"页面进行。创建API Key时需要配置基础信息和权限设置。每个账号最多可创建30个API Key。API Key的标签在创建完成后不支持修改,每个密钥仅在创建时显示一次,请确保妥善保存。如果密钥丢失无法找回,需要重新创建API Key以获取新的访问密钥。
3. 开通预置服务
MaaS预置服务为企业用户提供高性能、高可用的推理API服务,支持按Token用量计费的模式。预置服务适用于需要商用级稳定性、更高调用频次和专业支持的场景。典型应用场景包括企业智能客服、内容创作辅助、智能数据分析等。
3.1 开通操作步骤
开通预置服务的操作流程如下:登录MaaS控制台,在顶部导航栏中选择目标区域。在左侧导航栏选择进入预置服务页面。在"预置服务"页签中,找到目标服务,在右侧"操作"列单击"开通服务"。在开通预置模型服务对话框中按需勾选预置服务,勾选"我已阅读并同意上述说明,及《MaaS 模型即服务声明》",单击"确认开通"或"一键开通"。当模型服务的"状态"显示为"开通"时,表示模型服务已成功开通。
勾选目标预置服务后,会自动开通该服务下的所有模型版本。预置服务列表按照模型系列排序,相同模型按照创建时间降序排列。开通预置服务后,可以查看服务版本和model参数——在服务名称左侧单击图标展开,"model参数"列显示的名称可用于模型调用。
3.2 约束与计费说明
预置服务的开通和使用存在区域限制,不同区域支持的模型可能不同。部分功能仅支持特定区域,如"西南-贵阳一"区域或"中国-香港"区域。开通预置服务时将自动开通该服务下所有版本,不支持单独开通某版本,且暂不支持关闭预置服务。
在调用MaaS预置服务时,将根据实际使用的Tokens数量进行计费。输入内容首先会被分词转换为模型可识别的Token。未使用时不会产生费用。当有优惠折扣时,预置服务页面会出现相关提示,开通时会默认领取可用的优惠券,扣费时优先抵扣优惠券。
4. 部署"我的服务"
除了直接使用预置服务,用户还可以将模型广场的预置模型部署为"我的服务",便于在其他业务环境中调用。部署为专属服务后,用户可以获得独立的API调用地址,并可以配置QPS流量限制等参数。
4.1 部署操作步骤
部署模型服务的操作流程如下:登录MaaS控制台,在顶部导航栏中选择目标区域。在左侧导航栏选择进入在线推理服务列表。在"在线推理"页面单击"我的服务"页签,在右上角单击"部署模型服务"进入部署页面。在部署页面完成创建配置。
部署配置的主要参数包括:服务设置中的服务名称(支持1~64位,以中文或大小写字母开头,只包含中文、大小写字母、数字、中划线、下划线)和描述(支持256字符)。模型设置中需要选择部署模型,可以从"模型广场"或"我的模型"中选择。资源设置中资源池类型仅支持专属资源池,需单独创建不与其他租户共享。实例规格选择模型支持的规格,实例数设置服务器个数。流量限制QPS设置待部署模型的每秒请求数上限。更多选项中可以选择是否开启事件通知。
4.2 部署后的服务管理
模型部署成功后,服务状态会显示为"运行中"、"更新中"或"升级中"。在"在线推理"页面的"我的服务"页签中,可以查看所有已部署的服务列表。对于运行中的服务,可以通过操作列的"更多 > 调用说明"获取调用信息。服务升级操作也在同一位置通过"更多 > 服务升级"进行。当需要停止服务时,可以在服务列表中进行启停操作。
部署"我的服务"时会产生计算资源和存储资源的累计值计费。计算资源为运行模型服务的费用,存储资源包括数据存储到OBS的费用。使用消息通知服务也会产生相关服务费用。
5. 获取调用信息
无论是使用预置服务还是部署的"我的服务",都需要获取调用地址和相关参数才能进行API调用。
5.1 获取调用地址
对于预置服务,在服务开通后,可以在预置服务列表中找到目标服务,单击操作列的"调用说明"查看API地址和模型名称。对于部署的"我的服务",在"在线推理"页面单击"我的服务"页签,在目标服务右侧单击操作列的"更多 > 调用说明"。在调用说明页面可以查看调用该服务需要的API地址和模型名称信息。
5.2 API Key与鉴权
调用MaaS模型服务时需要在请求头中携带API Key进行鉴权认证。鉴权方式为Bearer Token认证,在HTTP请求的Authorization头中设置值为"Bearer {api_key}"。API Key在API Key管理页面创建和管理。
调用说明页面还提供了内容审核的开关选项,在获取调用信息时可以按需选择是否启用内容审核(默认启用)。
6. 多语言API调用实战
MaaS支持通过多种方式调用大模型API,涵盖Python、cURL、OpenAI兼容接口等接入方式。以下以文本对话模型为例,展示不同语言的调用方法。
6.1 Python调用示例
使用Python调用MaaS模型服务需要安装requests库。Python版本需要在3.8或以上。
import requests
import json
if __name__ == '__main__':
# API地址,从MaaS控制台的调用说明页面获取
url = "https://api.modelarts-maas.com/v2/chat/completions"
# API Key,从API Key管理页面获取
api_key = "MAAS_API_KEY"
headers = {
'Content-Type': 'application/json',
'Authorization': f'Bearer {api_key}'
}
data = {
"model": "glm-5.2", # model参数,从调用说明页面获取
"messages": [
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": "介绍下你自己"}
],
"max_tokens": 1024, # 最大输出token数
"stream": False, # 是否开启流式推理
"temperature": 0.6 # 采样随机性,0表示贪婪取样
}
response = requests.post(url, headers=headers, json=data)
print(response.json())上述代码中,url和model参数需要替换为从MaaS控制台调用说明页面获取的实际值。api_key替换为已创建的API Key。max_tokens控制最大输出长度。stream参数控制是否开启流式推理,默认为False。temperature参数控制采样随机性,值较低时模型更具确定性,值较高时模型更具创造性,默认为0.6。
6.2 cURL命令行调用
使用cURL命令行工具可以直接通过HTTP请求调用MaaS模型服务:
curl -X POST "https://api.modelarts-maas.com/v2/chat/completions" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer MAAS_API_KEY" \
-d '{
"model": "glm-5.2",
"messages": [
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": "介绍下你自己"}
],
"max_tokens": 1024,
"stream": false
}'6.3 OpenAI兼容接口调用
MaaS提供了OpenAI兼容的API接口,可以使用OpenAI Python SDK进行调用。这使得开发者可以无缝迁移现有的OpenAI集成代码:
from openai import OpenAI
client = OpenAI(
base_url="https://api.modelarts-maas.com/v2",
api_key="MAAS_API_KEY"
)
response = client.chat.completions.create(
model="glm-5.2",
messages=[
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": "介绍下你自己"}
],
max_tokens=1024,
stream=False
)
print(response.choices[0].message.content)6.4 Java调用示例
使用Java语言调用MaaS模型服务可以通过OkHttp等HTTP客户端实现:
import okhttp3.*;
import org.json.JSONObject;
public class MaaSClient {
public static void main(String[] args) throws Exception {
OkHttpClient client = new OkHttpClient();
String url = "https://api.modelarts-maas.com/v2/chat/completions";
String apiKey = "MAAS_API_KEY";
JSONObject data = new JSONObject();
data.put("model", "glm-5.2");
data.put("max_tokens", 1024);
data.put("stream", false);
JSONArray messages = new JSONArray();
JSONObject systemMsg = new JSONObject();
systemMsg.put("role", "system");
systemMsg.put("content", "You are a helpful assistant.");
messages.put(systemMsg);
JSONObject userMsg = new JSONObject();
userMsg.put("role", "user");
userMsg.put("content", "介绍下你自己");
messages.put(userMsg);
data.put("messages", messages);
RequestBody body = RequestBody.create(
MediaType.parse("application/json"),
data.toString()
);
Request request = new Request.Builder()
.url(url)
.post(body)
.addHeader("Content-Type", "application/json")
.addHeader("Authorization", "Bearer " + apiKey)
.build();
Response response = client.newCall(request).execute();
System.out.println(response.body().string());
}
}7. 自定义模型创建
当MaaS模型广场的预置模型无法满足个性化需求时,用户可以基于模型广场的预置模型结合自定义权重文件创建个人专属模型。
7.1 自定义模型的优势
自定义模型能够满足个性化需求,预置模型是通用的,难以契合所有用户的特定需求。通过定制化权重文件,企业可以将大模型应用于特定业务场景。在某些复杂场景中,预置模型的表现可能不尽人意,通过创建个人模型并修改权重配置能优化模型运行效果。MaaS还提供模型版本管理功能,一个模型最多可支持创建10个版本,便于版本管理和持续优化。
7.2 创建流程
创建自定义模型需要准备符合Hugging Face标准格式的模型权重文件。权重文件夹下需要包含权重类文件、词表类文件和配置类文件。可以使用transformers的from_pretrained方法对模型权重文件夹进行加载。
操作流程如下:参考Hugging Face官网准备好模型权重文件。将权重配置文件上传至OBS桶。单次上传本地文件到OBS的总大小不能超过5GB,超过5GB的大对象可以使用OBS Browser+、obsutil工具或OBS SDK上传。在MaaS控制台的模型管理页面,选择基于预置模型创建,然后指定OBS中的权重文件路径。平台自动完成与芯片的算力适配,无需编写额外适配代码。内置DeepSeek、通义千问等主流模型的配置模板,用户无需手动调整复杂参数。
创建模型本身不收费,但使用过程中涉及的OBS存储、计算等资源会产生费用。
8. 高级特性与运维管理
8.1 QPS流量控制
在部署模型服务时,可以设置流量限制QPS(每秒请求数)来控制服务的负载。当请求量超过QPS限制时,会返回错误码"ModelArts.81101",错误信息为"Too many requests, the rate limit is %s times per second."。建议根据业务实际需求合理设置QPS值,并在超过限制时等待限流结束后再重试。
8.2 流式推理
MaaS API支持流式推理模式,通过设置stream参数为True开启。流式输出时还可以通过stream_options中的include_usage参数控制是否展示使用的Token数目。流式推理适用于需要实时反馈的场景,如对话式交互。
8.3 内容审核
MaaS提供内容审核功能,默认启用。在获取调用说明时可以关闭内容审核。内容审核可以帮助过滤不当内容,保障业务合规性。
8.4 监控与日志
MaaS提供监控和日志功能便于运维管理。用户可以在MaaS控制台查看模型服务的调用数据、性能指标和运行状态。通过监控数据可以及时发现问题并进行优化调整。
8.5 计费与欠费处理
MaaS的计费方式根据服务类型有所不同。预置服务按实际使用的Tokens数量计费。部署的"我的服务"按计算资源和存储资源的累计值计费。文本生成模型支持按Token计费。计费时将优先使用套餐包的额度,超出部分自动按正常价格收费。当账号欠费后,会触发欠费冻结进入宽限期,资源状态变为"已冻结",欠费冻结的资源不可使用。如需终止计费,及时停止服务调用即可,不使用服务不会产生费用。
9. 应用场景与最佳实践
MaaS适用于多种AI应用场景。企业智能客服方面,企业可以利用推理API优化客服系统,实现智能问答和意图识别。内容创作辅助方面,媒体和广告公司可以借助推理API进行文案创作和创意生成。智能数据分析方面,金融和电商企业可以通过推理API对海量数据深度分析。
MaaS还可以与多种第三方工具集成。与Dify集成可以快速构建AI对话机器人并嵌入网页。与Cursor集成可以构建智能代码编辑器。与Chatbox AI集成可以构建本地智能助手。与OpenCode集成可以轻松实现AI能力的集成。
新用户通常可以获得每个模型200万Token的免费调用额度,无需部署即可一键体验DeepSeek、通义千问、Llama、ChatGLM等预置模型服务。建议新用户先利用免费额度进行测试和验证,确认模型效果后再考虑付费部署。
在使用MaaS时,建议遵循以下最佳实践:根据业务场景选择合适的模型类型和规格。合理设置QPS限制避免资源浪费。关注Token消耗,优化prompt设计以控制成本。定期查看监控数据,及时调整服务配置。对于生产环境,建议部署为"我的服务"以获得独立的资源保障。
常见问题解答
问:MaaS预置服务和"我的服务"有什么区别?
答:预置服务是MaaS平台直接提供的商用推理API服务,按Token用量计费,开箱即用。"我的服务"是将模型广场的预置模型部署为用户专属的服务,按计算资源和存储资源计费,用户可以获得独立的调用地址和QPS控制能力。
问:API Key丢失了怎么办?
答:API Key仅在创建时显示一次,如果丢失无法找回。需要重新创建新的API Key来获取访问密钥。建议在创建时妥善保存密钥。
问:调用MaaS API时返回限流错误怎么办?
答:当返回错误码"ModelArts.81101"且提示"Too many requests"时,表示请求量超过了QPS限制。建议等待限流结束后再重启服务,或根据业务需求调整QPS配置。
问:MaaS支持哪些编程语言的API调用?
答:MaaS支持Python、cURL、OpenAI兼容接口、Java等多种方式调用。开发者可以根据自身技术栈选择合适的接入方式。
问:如何查看MaaS服务的调用详情和计费信息?
答:在MaaS控制台的预置服务列表中,可以复制服务ID到费用中心查看账单详情。在"在线推理"页面的"我的服务"中也可以查看服务的调用数据和运行状态。
问:自定义模型需要准备什么格式的权重文件?
答:自定义模型需要准备Hugging Face标准格式的权重文件,文件夹下包括权重类文件、词表类文件和配置类文件。可以使用transformers的from_pretrained方法对权重文件夹进行加载验证。



