本节将以ModelScope(魔搭社区)中的Qwen3大模型为例介绍LLM的调用与使用。
2.2.1 ModelScope(魔搭社区)
ModelScope(类似于Hugging Face)是由阿里巴巴集团牵头,联合多家中国顶尖科研机构和高校共同推出的下一代“模型即服务”(Model-as-a-Service,MaaS)共享平台。它的核心目标是降低人工智能模型的应用门槛,促进开源模型的共享、协作与创新。
1. 核心定位与愿景
ModelScope的愿景是成为AI模型领域的GitHub。就像GitHub托管代码一样,ModelScope致力于托管、分享和运行AI模型。它不仅仅是一个模型仓库,更是一个提供从模型探索、体验、微调到部署的一站式服务的生态系统。
其核心用户包括:
- AI研究人员:发布和验证自己的模型。
- 应用开发者:快速找到并集成现成的模型到自己的应用中,无须从零开始训练。
- 学生和爱好者:学习最前沿的AI技术,动手实践。
- 企业用户:寻找商业化的解决方案,降低AI研发成本。
2. 主要功能与核心组成部分
ModelScope社区提供了从模型探索、体验、部署到再开发的全链路服务。
1)庞大的模型库
(1)ModelScope汇聚了来自阿里巴巴、清华大学、北京大学、浙江大学、商汤科技、澜舟科技等众多顶尖AI实验室和高校的开源模型。
(2)覆盖领域广泛:包括自然语言处理(NLP)、计算机视觉(CV)、语音识别与合成、多模态、科学计算等。
(3)模型类型多样:从基础的图像分类、文本Embedding,到大型语言模型(如Qwen、Baichuan)、文生图模型(如Taiyi、SD)、语音合成模型等。
2)在线体验与Demo
几乎每一个模型都提供了在线试玩(Playground)功能。用户无须安装任何环境,直接在网页上上传图片、输入文本或录音,即可立即看到模型的推理效果,极大地降低了模型体验的门槛。
3)Notebook开发环境
平台提供了集成好的、云端免费的Jupyter Notebook开发环境(基于PAI-DSW),预装了ModelScope SDK和常用依赖。用户可以直接在浏览器中打开Notebook,编写几行代码即可加载和运行模型,进行原型开发和实验。
4)ModelScope Library(Python SDK)
这是ModelScope的核心组件,一个开源Python库。通过它,开发者可以用极其简洁的代码(通常只需2~3行)在本地或云端环境中下载、加载和推理模型。
示例代码如下:
from modelscope.pipelines import pipeline
from modelscope.utils.constant import Tasks
# 创建文本摘要 pipeline
pipe = pipeline(task=Tasks.text_summarization, model='damo/nlp_bert_document-segmentation_chinese-base')
# 输入文本并获取结果
result = pipe('这里是需要摘要的长篇文章内容...')
print(result)
5)ModelScope Studio
类似于Hugging Face的Spaces,ModelScope Studio(创空间)是一个低代码/无代码的应用构建平台。用户可以利用Gradio、Streamlit等框架,快速为自己的模型构建一个功能丰富、界面友好的演示应用,并一键部署和分享给他人。
6)数据集与学习资源
(1)除了模型外,平台还提供了与模型配套使用的训练和评测数据集。
(2)包含丰富的教程、文档、技术博客和视频,帮助用户从入门到精通。
2.2.2 阿里云百炼Qwen3的在线调用
首先我们需要登录Qwen3官方网站“阿里云百炼”,页面菜单如图2.5所示。

图2.5 “阿里云百炼”菜单
注册并登录后,进入百炼控制台,在页面上单击“大模型服务平台百炼”,打开“阿里云百炼”主页面,再单击“模型服务”,页面左下角有个“密钥管理”,如图2.6所示。

图2.6 获取API Key
单击“密钥管理”后,进入“密钥管理”页面,在这里既可以创建新的API Key,也可以查询以前创建的API Key,如图2.7所示。
接下来,单击“模型广场”,在“模型广场”页面选择想要开通的模型,如图2.8所示。
对于不同的任务需求,Qwen3给我们准备了不同的API调用示例。例如,在“模型广场”上单击“通义千问3-Max”,进入模型页面,其中提供了“API代码示例”,如图2.9所示。

图2.7 已创建的API Key

图2.8 单击通义千问目录

图2.9 Qwen3在线API调用示例
【示例2.1】在线API调用Qwen3(qwen3-online-call.py)。
import os
from openai import OpenAI
client = OpenAI(
# 注意,云百炼API Key配置到系统的环境变量DASHSCOPE_API_KEY中
api_key=os.getenv("DASHSCOPE_API_KEY"),
base_url="https://dashscope.aliyuncs.com/compatible-mode/v1",
)
completion = client.chat.completions.create(
# 模型列表:https://help.aliyun.com/zh/model-studio/getting-started/models
model="qwen-plus",
messages=[
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": "你是谁?"},
],
# Qwen3模型通过enable_thinking参数控制思考过程(开源版默认为True,商业版默认为False)
# 使用Qwen3开源版模型时,若未启用流式输出,请将下一行取消注释,否则会报错
# extra_body={"enable_thinking": False},
)
print(completion.model_dump_json())
运行代码,输出如下:
{"id":"chatcmpl-960cac6e-fd83-97f9-9eec-98e68b15a88b","choices":[{"finish_reason":"stop","index":0,"logprobs":null,"message":{"content":"你好!我是通义千问(Qwen),阿里巴巴集团旗下的超大规模语言模型。我能够回答问题、创作文字,比如写故事、写公文、写邮件、写剧本、逻辑推理、编程等等,还能表达观点,玩游戏等。如果你有任何问题或需要帮助,欢迎随时告诉我!
","refusal":null,"role":"assistant","annotations":null,"audio":null,"function_call":null,"tool_calls":null}}],"created":1774768706,"model":"qwen-plus","object":"chat.completion","service_tier":null,"system_fingerprint":null,"usage":{"completion_tokens":66,"prompt_tokens":22,"total_tokens":88,"completion_tokens_details":null,"prompt_tokens_details":{"audio_tokens":null,"cached_tokens":0}}}
读者可以将上面代码中的API Key替换成自己的。由于Qwen3模型包含思考过程,读者同时还可以自定义思考过程的输出方式。下面是作者重写的参数说明。
(1)model:字符串,必选,指定模型名称。支持通义千问大语言模型(商业版、开源版、Qwen-Long)、通义千问VL、通义千问Omni、数学模型、代码模型。需要注意的是,通义千问Audio暂不支持OpenAI兼容模式,仅支持DashScope方式。具体模型名称及计费规则详见模型列表文档。
(2)messages:数组,必选,对话组成的消息列表。其包含以下消息类型。
- SystemMessage:对象,可选,定义模型目标或角色。若设置,则需置于messages列表首位。但QwQ模型不建议设置,QVQ模型设置后不生效。
- UserMessage:对象,必选,表示用户发送给模型的消息内容。
- AssistantMessage:对象,可选,记录模型对用户消息的回复。
- ToolMessage:对象,可选,承载工具的输出信息。
(3)stream:布尔值,可选,默认为false,控制是否流式输出回复。
- false:模型生成完整内容后一次性返回。
- true:逐片段输出(chunk),需实时读取以获取完整结果。仅Qwen3商业版(思考模式)、Qwen3开源版、QwQ、QVQ支持流式输出。
(4)stream_options:当stream=true时,可通过设置{"include_usage": true}在输出末行显示token使用量,设为false则隐藏该信息。
(5)modalities:仅Qwen-Omni模型支持指定输出模态。
- ["text","audio"]:同时输出文本与音频。
- ["text"]:仅输出文本。
(6)temperature:浮点数,可选,控制生成文本的多样性。值越高,结果越随机(范围为[0,2))。建议与top_p二选一设置,QVQ模型默认值不建议修改。
(7)top_p:浮点数,可选,采样阈值。值越高,结果越随机(范围为(0,1.0])。建议与temperature二选一设置,QVQ模型默认值不建议修改。
(8)top_k:整数,可选,采样候选集大小(≥0)。值越大,随机性越高。设为None或大于100时仅top_p生效。QVQ模型默认值不建议修改,Python SDK需通过extra_body配置。
(9)presence_penalty:控制内容重复度(范围为[−2.0,2.0])。
- 正值减少重复(适合创意场景)。
- 负值增加重复(适合专业文档)。
示例:qwen-vl-plus系列模型文字提取建议设置为1.5,QVQ模型默认值不建议修改。
(10)response_format:指定返回格式。
{"type":"text"}:纯文本。
{"type":"json_object"}:结构化JSON(需在消息中提示模型输出JSON格式)。
(11)max_tokens:限制返回最大Token数,超限内容将被截断。默认值及上限参考模型列表,qwen-vl-ocr系列默认为2048,最大为8192。QwQ/QVQ模型仅限制回复长度,不限制思考内容。
(12)n:integer(可选)默认值为1,生成响应的数量,取值范围是1~4,适用于多结果场景(如创意写作)。仅qwen-plus及非思考模式Qwen3支持,且传入tools时固定为1。
(13)enable_thinking:控制Qwen3模型思考模式,需通过extra_body配置。商业版默认为false,开源版默认为true。
(14)thinking_budget:设置思考过程最大长度。仅enable_thinking=true时生效,适用于Qwen3商业版及开源版。
(15)seed:设置随机种子(0~2³¹−1)以获得确定性结果,相同seed和其他参数将生成相同内容。
(16)stop:指定终止生成字符串或token_id,可用于敏感词过滤。数组类型不支持混合token_id与字符串。
(17)tools:定义可调用工具列表,当前不支持通义千问VL/Audio及数学/代码模型。每个工具对象包含:
- tool_choice:字符串/对象,可选,默认为"auto"。控制工具调用策略,可选"auto" "none"或指定工具名称。
- parallel_tool_calls:boolean(可选),默认值为false,表示是否开启并行工具调用。相关文档:并行工具调用。可选值:true表示开启,false表示不开启。
(18)translation_options:翻译模型专用配置参数,需通过extra_body传递。
(19)enable_search:控制是否启用互联网搜索。
- true:允许模型参考搜索结果(可能增加Token消耗)。
- false:禁用搜索,支持强制搜索配置。
(20)search_options:对象,可选,联网搜索策略配置,仅enable_search=true时生效。
不同参数定义了用户在使用Qwen3在线API时能够进行的操作。除了基本的文本输入输出外,对于更多的使用示例和样式,读者可以自行验证。


3261

被折叠的 条评论
为什么被折叠?



