GenStudio M×N 推理服务使用教程
本文将指导您如何通过常用工具适配 M×N 推理 API 端点。
注意
M×N 多模型芯片推理服务仅支持部分预置大语言模型。
什么是 M×N ?
我们致力于国产化 AI 算力适配和性能极致优化,已适配多种国产 AI 芯片,实现开源模型的无缝迁移。大模型服务平台(GenStudio)的部分预置模型支持多芯片推理,可同时体验不同芯片的模型性能和效果。
大模型服务平台(GenStudio)为 LLM 提供了专用的多模型芯片(M×N)推理 API 端点。
OpenAI API 兼容性
M×N 多模型芯片 API 服务与 OpenAI Chat Completions 接口兼容。
注意
M×N API 接口路径不同于 OpenAI 的 /v1/chat/completions
:
- 没有
/v1
部分 - 模型/芯片组合决定具体路径:
/maas/{model}/{chiptype}/chat/completions
在线体验 M×N
大模型服务平台(GenStudio)体验中心已在 Web UI 上提供 M×N 体验。
开启多模型多芯片体验
开启 M×N 体验后可尝试不同模型和芯片组合,并在右侧的交互体验区对比效果。
开启步骤如下:
进入体验中心后,打开 M*N 体验开关,推荐切换为按芯片选择,随后选择 2 ~ 4 个需要对比体验的模型芯片组合。
注意
当前仅大语言模型支持 M×N 体验。请确保顶部已切换为大语言模型。
在 M×N 体验模式下,您可直观体验不同模型和不同芯片对于同样的指令的返回差异。您可以在左侧调整各个模型的参数,不同模型支持的参数数量及范围均可能有差异。
警告
选中的模型不共享参数配置,例如 System Prompt、Temperature 等。如有需要,请逐个模型调整。
当模型完成或被停止生成后,可根据模型的回答情况,点击重新生成按钮,对之前所生成的最新一轮反馈进行重新生成。对模型已经完成输出生成的内容,平台会统计本轮对话所产生的输入与输出 Token 总和。
提示
当对比中的模型仍正在输出时,您无法进行新对话的发起或者输入下一轮的指令,当所有模型都完成内容返回时,则可以开启下一轮的对话对比。
大语言模型交互参数配置
体验大语言模型时,各个模型拥有独立的配置区域。因模型系列的不同,可能会支持不同的可配置参数。大语言模型主要的参数包括:
- Stream:指模型是否以流式返回回答的内容,默认开启,关闭时,将一次性返回此次生成的所有内容。
- System Prompt:指模型在回答问题时的系统提示,默认为空,您可以根据需要自行调整。
- Max_tokens:指模型输出的最大 Token 数量。模型输入与输出的 Token 数量将共享模型可处理的文本长度。
- Temperature:采样温度,控制输出的随机性。值越高,会使输出更加随机,更具创造性;值越低,会使输出更加集中和确定性。我们推荐您根据应用场景调整 top_p 或 temperature 参数,但不建议同时调整两个参数。
- Top_p:用于控制输出文本的随机性和多样性,取值越大,生成文本越丰富。我们推荐您根据应用场景调整 top_p 或 temperature 参数,但不建议同时调整两个参数。
- Top_k:用于控制输出文本的随机性和多样性(并非所有模型均支持),控制语言模型在生成文本时,从前 k 个 tokens 随机选择。1 适用于返回有明确答案的问题,例如 "5 乘以 7 等于多少?"
获取 M×N API 端点
在模型广场点击模型卡片后,切换到调用说明标签页面,可一键复制当前模型的 M×N API 调用示例。
GenStudio API 服务的 API Server 地址(模型名称、芯片类型)已经在调用示例中拼接好,可直接使用。
使用 Curl
您可以通过调用示例中的 curl 命令直接发送 API 请求。以下请求示例发起一个单轮对话。示例默认从环境变量加载 API 密钥和 Base URL。请注意提前设置环境变量。
API_KEY
:GenStudio API key。请将 CURL 命令中的$API_KEY
修改为您获取的 API 密钥。GenStudio_API_BASE
:GenStudio API 服务域名,请使用https://cloud.infini-ai.com/maas
MODEL
:模型名称,例如megrez-3b-instruct
CHIP
:芯片,例如nvidia
curl "${GenStudio_API_BASE}/${MODEL}/${CHIP}/chat/completions" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer ${API_KEY}" \
-d '{
"model": "'"${MODEL}"'",
"messages": [
{ "role": "system", "content": "请以嘲讽语气回答" },
{ "role": "user", "content": "你是谁?" },
{ "role": "assistant", "content": "我是大模型回答助手" },
{ "role": "user", "content": "你能做什么?" }
]
}'
注意
以上示例未指定 stream
参数为 true
,因此 API 服务默认使用非流式响应方式。
使用 OpenAI 客户端
GenStudio 大模型 API 服务支持通过 OpenAI 官方客户端进行调用。
初始化 OpenAI Python 客户端
示例默认从环境变量加载 API 密钥和 Base URL。请注意设置环境变量。
GENSTUDIO_API_KEY
:GenStudio API Key。GenStudio_API_BASE
:GenStudio MxN API 服务域名,为https://cloud.infini-ai.com/maas
MODEL
:模型名称,例如megrez-3b-instruct
CHIP
:芯片,例如nvidia
import os
from openai import OpenAI
try:
# load environment variables from .env file (requires `python-dotenv`)
from dotenv import load_dotenv
load_dotenv()
except ImportError:
pass
API_KEY = os.getenv("GENSTUDIO_API_KEY")
GenStudio_API_BASE = os.getenv("GenStudio_API_BASE")
MODEL = os.getenv("MODEL", "megrez-3b-instruct")
CHIP = os.getenv("CHIP", "nvidia")
BASE_URL = f"{GenStudio_API_BASE}/{MODEL}/{CHIP}"
client = OpenAI(api_key=API_KEY, base_url=BASE_URL)
发起对话请求
以下示例使用流式响应。请注意解析 reasoning_content
字段。
stream = client.chat.completions.create(
model="qwen3-8b",
messages=[{"role": "user", "content": "根据中国古代圣人孔子的思想,人生的意义是什么?"}],
stream=True,
)
for chunk in stream:
if not (chunk.choices and chunk.choices[0].delta):
continue
delta = chunk.choices[0].delta
# Handle reasoning content
if getattr(delta, 'reasoning_content', None):
print(delta.reasoning_content, end="")
# Handle regular content
if getattr(delta, 'content', None):
print(delta.content, end="")
使用 Langchain 接入
GenStudio 大模型 API 服务支持通过 Langchain 的 OpenAI 插件进行调用。
配置 Langchain 模型
以下示例从环境变量中加载了 API 路径和 API 密钥。
GENSTUDIO_API_KEY
:GenStudio API KeyGenStudio_API_BASE
:GenStudio MxN API 服务域名,为https://cloud.infini-ai.com/maas
MODEL
:模型名称,例如megrez-3b-instruct
CHIP
:芯片,例如nvidia
import os
API_KEY = os.getenv("GENSTUDIO_API_KEY")
GenStudio_API_BASE = os.getenv("GenStudio_API_BASE")
MODEL = os.getenv("MODEL", "megrez-3b-instruct")
CHIP = os.getenv("CHIP", "nvidia")
BASE_URL = f"{GenStudio_API_BASE}/{MODEL}/{CHIP}"
os.environ["OPENAI_API_KEY"] = API_KEY
os.environ["OPENAI_BASE_URL"] = BASE_URL
from langchain.chat_models import init_chat_model
model = init_chat_model("qwen3-8b", model_provider="openai")
发起对话请求
以下示例使用非流式响应,未解析 reasoning_content
字段。
from langchain_core.messages import HumanMessage, SystemMessage
messages = [
SystemMessage("Translate the following from English into Italian"),
HumanMessage("hi!"),
]
model.invoke(messages)