提示工程(下): chain of thought是一种提示工程技术,通过给大语言模型提供推理步骤来提升解决问题的能力,主要有两种:
- fewer shot CoT (包含推理示例)
- zero shot CoT (没有示例,仅提示)
接下来的花店实战案例:
示例:
爱情象征--红玫瑰;
独特,奇特--兰花
使用给的示例来提示。
Tree of Thoughts (ToT)这种提示工程方法:
- 基于CoT发展,但更系统化
- 将问题分解为多个思维步骤
- 每个步骤生成多个候选方案
- 通过搜索算法找到最优解决方案
ToT的优势:
- 更系统的思考过程
- 多路径探索
- 更全面的方案评估
- 更可靠的决策结果
下面是fewer shot和zero shot的输出比较:
这是fewer shot
这是zero shot
调用模型open AI or 微调开源模型
Transformer架构是所有与训练模型的核心底层架构,基于Transformer训练的大语言模型为基础模型Foundation Model
训练成本高遂采用预训练+微调的模式
预训练(Pre-training):
- 在大规模无标注数据上训练
- 学习基础语言知识
- 获取通用语言表达能力
- 资源需求大,主要由大厂完成
微调(Fine-tuning):
- 基于预训练模型调整
- 针对特定任务或领域
- 数据需求小,训练快
- 适合普通团队使用
优势:开发成本低,部署方便
第八章:输出解析
langchain的输出解析基于几个主要方法:
get_format_instructions()返回格式化知道说明
parse()将模型输出解析为特定数据结构
parse_with_prompt() 结合原始提示来解析输出
同时langchain也提供了多种专用解析器:
列表解析器
日期时间解析器
枚举解析器
结构化输出解析器
Pydantic解析器-基于Pydantic处理JSON格式数据
自动修复解析器
重试解析器
课程重点介绍了Pydantic解析器的实现流程:
-
先创建模型实例
-
用Pydantic定义输出数据格式
-
创建输出解析器并获取格式指导
-
创建包含格式要求的提示模板
-
使用解析器处理模型输出
文中涵盖两种处理解析错误的解析器:
- 自动修复解析器(OutputFixingParser):
-
主要用于修复简单的格式错误,如JSON格式不规范
-
工作流程:
- 先尝试用原解析器解析
- 如果失败,将错误输出和格式要求传给大模型
- 让大模型进行修复
-
示例:成功修复了JSON中使用单引号而不是双引号的格式问题
- 重试解析器(RetryWithErrorOutputParser):
-
用于处理更复杂的问题,如输出内容不完整
-
特点:
- 可以利用原始提示(prompt)的上下文
- 能够通过大模型的推理能力补全缺失信息
-
示例:不仅修复了格式,还根据原始提示补全了缺失的字段内容