AI大模型学习 第九天:大模型幻觉、提示词工程与云端调用

发布时间:2026/6/9 7:46:52

AI大模型学习 第九天:大模型幻觉、提示词工程与云端调用 今日学习目标了解大模型发展的关键时间节点。深刻理解大模型“幻觉”的本质、分类、产生原因及四种主流解决方法。掌握提示词工程的五项原则能区分system、user、assistant、tool角色。理解 RAG、微调、AI Agent 的核心思想与区别。掌握安全调用云端大模型的方法能看懂并修改调用代码。理解大模型调用外部工具的基本思想。一、大模型发展史关键时间节点1. 大模型发展的三个核心驱动力数据模型学习的“教材”互联网海量文本是基础。算法模型学习的方法如 Transformer 架构中的“注意力机制”。算力GPU、TPU 等硬件让大规模训练成为可能。2. 大模型发展的关键时间节点时间代表模型/技术为什么重要2012AlexNet深度学习在图像识别中取得突破CNN 被重视2017Transformer“注意力机制”成为后续大语言模型的核心2018GPT-1、BERT生成式GPT和理解式BERT预训练分道扬镳2019GPT-2生成能力明显增强开始引起警惕2020GPT-31750亿参数少样本学习能力凸显提示词价值被重视2021CLIP、DALL·E图文多模态开始结合2022ChatGPT、Stable Diffusion大模型进入大众视野文生图普及2023GPT-4、Claude、LLaMA、通义千问闭源与开源并行国内模型落地2024GPT-4o、Claude 3、Gemini 1.5、Llama 3多模态、长上下文、开源能力大提升2025DeepSeek-R1、Qwen3推理模型会“多想一想”、高性价比、国产影响力增强4. 一句话记住发展史AlexNet深度学习起点→ Transformer注意力机制→ GPT/BERT预训练→ GPT-3提示词价值→ ChatGPT引爆应用→ GPT-4/开源模型多模态/长上下文→ 推理模型DeepSeek等二、大模型幻觉为什么它会一本正经地胡说八道1. 幻觉的定义大模型的“幻觉”是指模型生成了错误、无依据、与事实不一致或者不符合用户要求的内容。 形象理解模型像一个记性不好但很自信的“学渣”考试时不会做就编答案还编得头头是道。2. 一个让你警惕的例子假设你问模型“请介绍一下《AI与未来工作》这本书的核心观点。”模型自信地回答“这本书由王建国教授和李晓琳博士合著2023年由科技出版社出版。书中主张AI将在2030年前取代40%的岗位并建议每个人都要学习编程。”事实是这本书根本不存在。模型把“AI”“教授合著”“科技出版社”“取代岗位”这些常见元素拼凑在了一起。3. 幻觉的两大分类大类细分通俗解释例子事实性幻觉事实不一致模型说出的内容和现实世界矛盾你问“今天上海天气”它答“晴28°C”实际下雨捏造事实模型编造了无法验证的内容虚构一本不存在的书、一个不存在的人物忠实性幻觉不遵循指令模型没有按你的要求做你要求只输出JSON它却加了段解释文字不遵循上下文模型忽略了给定的参考资料你提供了一篇文章让模型总结它却加入了文章没有的观点逻辑不一致推理过程中前后矛盾模型先说明天下雨又说建议你洗车4. 幻觉产生的三个根本原因原因一模型的本质是“概率接龙”不是“知识数据库”大模型的核心任务给定上文预测下一个最可能出现的词。它追求的是“语言流畅”而不是“事实正确”。比如你说“中国的首都是……”模型大概率接“北京”因为训练数据里最常见。但如果训练数据里有错误信息比如某个帖子说“中国的首都是上海”模型也可能学到错误。原因二训练数据有局限导致“事实性幻觉”知识过时模型的训练数据截止于某个时间点。2023年训练的模型不知道2025年的新闻。数据本身不准确互联网上有大量谣言、错误信息、偏见。知识盲区公司内部资料、你的私人笔记模型根本没学过。数据代表性偏差训练数据中某些事实占主导导致模型对少数派但正确的事实认知不足。原因三模型被训练成“讨好型人格”导致“忠实性幻觉”指令理解偏差当用户指令模糊或复杂时模型可能只执行它“认为”的核心任务忽略其他细节。上下文处理局限即使上下文窗口很大模型仍可能出现“中间遗忘”现象对中间部分信息关注度下降。推理能力不足在复杂推理任务中模型可能在某个步骤犯微小错误导致后续所有步骤都出错。缺乏“我不知道”的概念模型被奖励“回答了用户”而不是“回答正确”所以遇到不会的问题宁可编也不说不知道。三、解决幻觉的四大放法法宝一提示词工程 —— 把话说清楚定义通过设计清晰、结构化的指令引导模型按规则回答。成本最低、见效最快。五项原则原则说明示例非原文清晰的指令明确任务、背景、限制、格式“输出JSON格式字段为name, age, city”提供文本参考给模型一段资料要求回答必须基于资料“请根据以下三引号中的文档回答问题”复杂任务拆解把大任务拆成多个小步骤“第一步判断情感第二步提取问题第三步给建议”给模型示例提供输入-输出样例few-shot“例如输入‘今天很冷’输出‘建议穿羽绒服’。”调用外部工具让模型判断需要什么工具程序执行“如果需要查询天气请调用天气API”进阶技巧思维链与自我验证要求模型展示推理步骤并检查是否存在矛盾。提示词示例“请分步推理并在给出最终答案前检查是否存在与中间步骤矛盾的事实。”提供参考与要求引用给予参考文本要求回答必须引用原文。提示词示例“你的回答必须严格来自上述文档如果文档中没有相关信息请明确回答‘无法得知’。”设定置信度要求模型评估自己答案的确定性。提示词示例“请回答以下问题并以‘我对答案的置信度为高/中/低’结尾。”局限提示词不能给模型灌输新知识。如果模型完全不知道某个领域提示词也救不了。法宝二RAG检索增强生成—— 开卷考试定义在回答前先从外部知识库检索相关材料然后让模型基于材料回答。工作流程三步检索用户提问 → 系统去知识库向量数据库搜索相关文档片段。增强把这些片段与用户问题拼接形成新的提示词。生成模型基于这个“证据充足”的提示词生成答案。通俗类比闭卷考试模型只靠自己的记忆容易编错开卷考试模型可以翻书基于资料回答为什么RAG强大知识实时更新更新知识库即可不用重新训练模型。可溯源模型可以告诉用户“答案来自文档第X页”。解决私有知识公司内部文档、产品手册都可以作为知识库。减少事实性幻觉模型有依据不容易瞎编。例子假设你是一个航空公司客服机器人。用户问“我订的CA1234航班原定今天下午3点起飞现在状态是什么”无RAG模型可能编“航班已取消”或给出错误信息。有RAG系统先检索实时航班数据库查到“CA1234延误至下午5点”然后模型回答“根据最新航班信息CA1234延误至下午5点。”局限需要搭建检索系统如向量数据库且如果知识库里没有相关信息模型仍可能瞎编。法宝三模型微调 —— 回炉深造定义用特定领域的高质量数据继续训练模型让模型在该领域变得更专业。通俗类比提示词是“临时交代任务”。微调是“送模型去专业学校进修”。两种微调方式对比方式说明成本风险适用全参数微调调整模型的所有参数极高需要大量GPU可能导致“灾难性遗忘”忘记原来学会的知识大公司LoRA微调只训练额外的一小层“适配器”低普通笔记本可跑基本不会遗忘原有知识目前主流例子一家汽车维修公司要做一个故障诊断助手。他们收集了2万条维修记录故障现象 → 可能原因 → 建议操作用LoRA微调一个开源模型。微调前模型可能给出通用建议“请去维修店检查”。微调后模型能说出“根据您描述的‘发动机抖动、故障灯亮’可能是火花塞问题建议先检查火花塞”。微调 vs 提示词 vs RAG方法解决什么问题是否需要额外数据成本见效速度提示词临时约束行为不需要零立即RAG提供外部知识依据需要建知识库中较快微调改变模型长期专业性需要标注训练数据较高慢需要训练实际项目中三者常组合使用微调让模型懂领域RAG提供最新资料提示词约束输出格式。法宝四AI Agent —— 让模型学会“动脑子”和“用工具”定义Agent是一个智能体模型作为“大脑”能够拆解任务、选择工具、调用工具、验证结果。为什么Agent能对抗幻觉工具使用当模型不确定一个事实时可以主动调用搜索引擎去查询最新信息而不是依赖内部记忆。代码解释器对于数学或逻辑问题模型可以编写并运行代码来获得精确结果避免计算错误。多步验证Agent可以设计一个验证循环先生成一个答案再换一种方式如搜索去验证该答案的一致性。Agent工作流程图用户目标 ↓ 模型拆解子任务规划 ↓ 选择工具如搜索/计算器/数据库 ↓ 程序执行工具 ← 真正执行动作的是程序不是模型 ↓ 工具结果返回 ↓ 模型整合答案可能还需要再次调用工具例子用户问“帮我查一下明天杭州的天气如果是晴天就推荐西湖如果是雨天就推荐室内博物馆。”普通模型可能会瞎编“明天杭州晴天推荐西湖。”实际上可能下雨Agent的做法规划需要先查天气。执行调用天气API获取“明天杭州中雨18-22℃”。判断天气是雨天所以应该推荐室内博物馆。执行调用搜索API搜索“杭州室内博物馆推荐”。生成基于真实天气和搜索结果回答“明天杭州中雨推荐您去浙江省博物馆室内。”Agent的局限目前还不够稳定可能出现规划错误或工具调用死循环需要好的框架如LangChain和足够的测试。四大法宝对比总结表技术解决什么大白话成本见效速度提示词工程模型怎么答把话说清楚零立即RAG回答依据从哪来开卷考试中较快微调模型长期擅长什么回炉深造较高慢AI Agent模型如何调用工具完成任务智能任务管家高慢需搭建未来趋势构建“微调过的专业模型 RAG知识心脏 Agent协作四肢”的超级个体。四、提示词中的角色划分当你通过API调用大模型时你需要传递一个messages列表里面包含多个消息对象。每个消息对象有role角色和content内容。四种核心角色角色英文谁发出的作用示例内容系统system开发者设定模型的“人设”、规则、输出格式“你是一个旅游规划助手只输出中文。”用户user用户/你的程序提出具体问题或提供待处理数据“推荐三个杭州的景点”助手assistant模型或你提前写好的示例模型给出的回答也可以作为few-shot示例“西湖、灵隐寺、西溪湿地”工具tool外部程序工具调用的返回结果Agent场景天气API返回的“{weather: 晴}”为什么需要区分这些角色system的优先级通常最高模型会优先遵守system里的规则。user和assistant交替出现形成对话历史。tool角色在Agent场景中使用把外部工具执行结果传回模型。简单解释system定规则user给任务assistant给回答tool给工具结果。assistant 的双重身份难点在普通API调用中assistant是模型实时生成的回复。在few-shot示例中你可以提前写好assistant的内容作为标准答案示例让模型模仿。对比表格使用场景assistant消息是谁写的目的是什么例子普通调用机器人自己实时生成回答用户问题用户问“几点了”机器人答“下午3点”few-shot 示例你开发者提前写好教机器人模仿某种格式或风格你写一个示例问答让机器人照着它的格式回答新问题五、调用云端大模型 —— 代码实战1. API Key你的身份凭证安全第一API Key就像你家钥匙绝对不能写死在代码里并上传到GitHub。截图发到任何地方。明文写在文档里。正确做法存到环境变量如OPENAI_API_KEYxxx。代码中用os.getenv(OPENAI_API_KEY)读取。修改环境变量后重启你的编辑器PyCharm/VSCode。2. messages 结构示例[ {role: system, content: 你是一个旅游规划助手只输出中文。}, {role: user, content: 推荐三个杭州的景点}, {role: assistant, content: 西湖、灵隐寺、西溪湿地}, {role: user, content: 第二个景点怎么去} ]3. 代码示例一OpenAI 兼容方式以阿里百炼为例import os from openai import OpenAI # 从环境变量读取 API Key必须提前配置好 api_key os.getenv(OPENAI_API_KEY) if not api_key: raise ValueError(请先配置 OPENAI_API_KEY 环境变量并重启 PyCharm) # 创建客户端注意 base_url 指向兼容接口 client OpenAI( api_keyapi_key, base_urlhttps://dashscope.aliyuncs.com/compatible-mode/v1, ) # 准备消息 messages [ {role: system, content: 你是一个简洁的助手回答尽量控制在两句话以内。}, {role: user, content: 什么是大模型幻觉} ] # 调用模型 completion client.chat.completions.create( modelqwen-plus, # 模型名称 messagesmessages, ) # 取出模型回复的文本内容 reply completion.choices[0].message.content print(reply) # 查看 token 消耗可选用于成本统计 print(f本次调用消耗 tokens: {completion.usage.total_tokens})4. 代码示例二DashScope 原生方式import os import dashscope # 设置 API Key dashscope.api_key os.getenv(DASHSCOPE_API_KEY) if not dashscope.api_key: raise ValueError(请先配置 DASHSCOPE_API_KEY 环境变量) # 调用模型 response dashscope.Generation.call( modelqwen-plus, messages[ {role: system, content: 你是一个中文助手回答要友好。}, {role: user, content: 解释一下 RAG 是什么} ] ) # DashScope 返回结果中文本内容在 output[text] print(response.output[text])5. 返回值的结构非常重要很多新手print(response)发现打印出一大堆看不懂的对象。正确做法是OpenAI 风格返回结构response └── choices (列表) └── [0] (第一个候选) └── message └── content (这才是模型的文字回答) └── finish_reason (结束原因如 stop) └── usage └── total_tokens (总 token 消耗用于计费) └── prompt_tokens (输入消耗) └── completion_tokens (输出消耗)取值路径OpenAI 风格response.choices[0].message.contentDashScope 风格response.output[text]6. 选择模型不是越强越好简单任务分类、提取关键词用小模型便宜、快复杂推理、长文总结用大模型贵、慢但聪明中文为主优先选择国产模型通义千问、文心一言、DeepSeek等性价比高六、调用外部工具 —— 让模型不止会说话1. 定义调用外部工具是指模型判断当前任务需要什么工具如搜索、计算、查数据库程序负责真正执行工具然后把结果返回给模型继续生成答案。2. 模型 vs 工具的分工任务谁来做为什么理解用户说什么模型自然语言理解是模型的强项决定用什么工具模型模型可以分析意图真正执行工具如访问网页、计算程序/工具模型没有执行能力程序才有整合工具结果生成最终答案模型模型擅长语言组织3. 简单流程用户帮我查一下明天北京的天气 ↓ 模型判断需要“天气查询工具”输出一个特殊标记如调用函数 ↓ 程序识别出这个标记实际调用天气 API拿到“明天北京晴18-28℃” ↓ 模型根据这个结果生成回答“明天北京天气晴朗气温18到28度。”4. 为什么需要外部工具大模型本身不能联网搜索除非特殊配置查数据库精确计算可能算错调用业务系统接口外部工具补上了这些短板。模型负责“想”程序负责“做”。七、今日重点与难点重点总结知识点一句话记住大模型发展三阶段深度学习奠基 → Transformer打基础 → GPT引爆应用事实性幻觉模型说的和现实世界不符忠实性幻觉模型没按你的要求做幻觉三大原因概率生成本质、训练数据局限、讨好型人格提示词五项原则清晰指令、文本参考、任务拆解、给示例、调用工具提示词进阶技巧思维链、自我验证、要求引用、设定置信度RAG开卷考试先查资料再回答微调回炉深造用专门数据训练模型LoRA是主流Agent智能管家拆任务、调工具、验证结果角色划分system定规则user提问题assistant给答案tool给工具结果API Key安全永远不放代码里用环境变量返回值choices[0].message.content难点区分事实性幻觉和忠实性幻觉前者是“说错事实”后者是“没按要求做”。区分RAG和微调RAG是临时查资料微调是长期改变模型。理解assistant的双重身份既可以是模型实时回答也可以是提前写好的示例。理解为什么要取choices[0].message.content因为返回是结构化对象不是纯文本。理解“模型负责想程序负责做”模型不会真的执行动作一切工具调用都需程序实现。八、易错点总结易错点错误理解正确理解提示词提示词就是随便问一句是一整套任务说明包含角色、步骤、格式、边界幻觉模型自信就是真的模型可能一本正经地编造RAGRAG是重新训练模型RAG是检索资料后增强回答微调微调就是改提示词微调是继续训练模型参数AgentAgent只是聊天机器人Agent能拆解任务、调用工具、验证结果API Key可以写进代码里必须放环境变量不能提交到Git返回值response就是文本response是对象要取.choices[0].message.content工具调用模型自己能执行工具模型只决定用什么工具真正执行的是程序九、今日小结今天我们覆盖了发展史关键时间节点幻觉定义、分类事实性/忠实性、三大原因、四大解决方法提示词工程五项原则 思维链/自我验证/设定置信度等进阶技巧RAG检索→增强→生成三步流程微调全参数 vs LoRA以及“灾难性遗忘”概念Agent拆解任务、调用工具、多步验证角色划分system/user/assistant/tool代码调用API Key安全、messages结构、返回值解析外部工具模型与程序的分工一句话总结今天大模型不是万能的也不是完全不可用。通过提示词、RAG、微调、Agent这套组合拳我们可以把“不靠谱的天才”驯化成“可信赖的助手”。今天的所有知识都是为了让你在真实项目中安全、稳定、高效地使用大模型。

相关新闻