本文主要学习目标
- 理解大模型的概念
- 学会大模型 API 的使用
- 不同模型使用不同的分词器,可以通过 https://tiktokenizer.vercel.app/ 查看不同模型如何切分你输入的文本的
大模型中的 Temperature、Top P 的作用
它们都是用来控制LLM生成文本的多样性,但原理不同
Temperature(温度)
- 原理: 在模型计算出下一个Token所有可能的概率分布后,Temperature会调整这个分布的“平滑度”。
- 高Temperature (如 1.0+): 会让低概率的Token更容易被选中,使生成结果更具创造性,可能出现不连贯的词语。
- 低Temperature (如 0.2): 会让高概率的Token权重更大,使生成结果更稳定、更符合训练数据,但会更保守。
Top P(核采样)
- 原理: 它设定一个概率阈值(P),然后从高到低累加所有Token的概率,直到总和超过P为止。模型只会在这个累
加出来的“核心”词汇表中选择下一个Token。 - 高Top P (如 0.9): 候选词汇表非常小,结果更具确定性。
- 低Top P (如 0.1): 候选词汇表较大,结果更多样。
假设模型要完成句子:“今天天气真…”
模型预测的下一个词可能是:好(60%)、不错(30%)、糟(9%)、可乐(0.01%)。
高Temperature:会提升所有词的概率,使得“可乐”这个不相关的词也有机会被选中。
Top P (设为0.9):会选择概率总和达到90%的词。这里 好(60%) + 不错(30%) = 90%,所以模型只会从“好”和“不错”中选择,直接排除了“可乐”这种离谱的选项。
相比Temperature,Top P能更动态地调整候选词的数量,避免选到概率极低的离谱词汇 => 产生更高质量的文本。
DashScope API
DashScope 是阿里云提供的模型即服务(Model-as-a-Service)平台 API。集合了多种AI大模型(比如这里使用的 deepseek-v3)
如何使用这个 API?
首先,需要通过 pip install dashscope 安装函数库。
然后,设置API 密钥。再按照规定的格式准备输入消息(messages),
最后调用 dashscope.Generation.call() 函数,即可向指定的模型发送请求并获得回复。
importjsonimportosimportdashscope from dashscope.api_entities.dashscope_responseimportRole dashscope.api_key="sk-XX"# 封装模型响应函数def get_response(messages): response=dashscope.Generation.call(model='qwen-turbo',messages=messages,result_format='message'# 将输出设置为message形式)returnresponse review='这款音效特别好 给你意想不到的音质。'messages=[{"role":"system","content":"你是一名舆情分析师,帮我判断产品口碑的正负向,回复请用一个词语:正向 或者 负向"},{"role":"user","content":review}]response=get_response(messages)response.output.choices[0].message.content使用方法
常用参数
response=dashscope.Generation.call(model='模型名称',messages=messages,result_format='message',# 输出格式temperature=0.7,# 温度参数,控制随机性top_p=0.8,# 控制输出的多样性max_tokens=1500,# 最大输出长度stream=False# 是否使用流式输出)获取响应结果
# 从模型众多可能的响应(choices)中,取出第一个([0]),并读取其消息(message)中的实际文本内容# 获取生成的文本result=response.output.choices[0].message.content# 如果是流式输出forchunkinresponse: print(chunk.output.choices[0].message.content,end='')系统提示词 与 用户提示词
系统提示词 (System Prompt)
• 用于设定AI的角色、行为准则和输出格式,是贯穿对话的全局指令,为其提供了扮演的“人设”。
• 应在对话开始时设定,内容要清晰明确。
• 它会像普通问题一样消耗Token,不应在其中包含用户的具体问题。频繁更改可能导致AI行为不稳定。
LLM的输入与输出Token限制
输入Token限制
• 模型单次API调用能处理的最大信息量,包含系统提示词、历史对话和当前用户输入的所有内容。
• 所有输入内容的总长度不能超过此限制,否则API会报错。
• 我们需自行管理历史对话长度,比如通过截断或总结旧消息来确保请求不超过上限。
输出Token限制
• 指模型在一次回复中能生成的最大内容长度。
• 我们通常可以在API请求中手动设置此参数(如 max_output_tokens)。
• 设置过低会导致回答不完整,内容被突然截断;
• 设置过高则可能增加API调用时间和费用。需要根据具体任务需求权衡。