尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

大模型prompt工程Zero-Shot与Few-Shot以及json格式

大模型prompt工程Zero-Shot与Few-Shot以及json格式 笔记跟着黑马程序员大模型RAG与Agent智能体项目实战教程基于主流的LangChain技术从大模型提示词到实战项目学习记录的一、前言提示词工程Prompt Engineering是大模型应用落地最基础、成本最低的优化手段无需微调模型权重仅通过优化输入指令就能大幅提升大模型输出准确率与规范性。其中Zero-Shot零样本和Few-Shot少样本是提示词设计的两大核心思想本文结合原理、案例、实战业务完整拆解。二、Few-Shot 少样本学习核心概念2.1 基础定义Few-shot Learning 即少样本学习模型在海量通用数据预训练完成后面对全新未知任务仅需要提供少量参考样本就能快速学会任务规则并完成推理。One-shot Learning单样本学习属于 Few-shot 的特殊形式只给 1 条示例Few-shot一般提供 2~5 条示例提示词场景最常用。2.2 两个层面理解 Few-Shot1模型底层训练层面图像识别举例以企鹅分类任务为例先给模型少量企鹅、鹈鹕、海雀的参考图片Support Set模型通过相似度函数计算待识别图片Query Image与各类别的匹配分值分值最高的类别即为最终预测结果。简单说靠少量样本学习特征靠相似度匹配未知数据。2提示词工程应用层面核心逻辑用少量示例定义输出格式、规则、风格强制模型对齐结果减少幻觉与格式错乱。实操示例产品信息抽取JSON 固定格式任务抽取产品名称、核心卖点严格输出 JSON 格式参考下面 2 个示例执行示例 1MacBookPro 高效节能性能强大适合牛马工作使用输出{产品名称:MacBookPro,产品卖点:高效节能性能强大}示例 2联想笔记本拥有 RTX4060 独立显卡畅玩游戏丝滑流畅输出{产品名称:联想笔记本,产品卖点:畅玩游戏丝滑流畅}待处理文本华为 MatepadPro高清大屏长效续航你的好帮手最终输出{产品名称:华为 MatepadPro,产品卖点:高清大屏长效续航}三、Zero-Shot 零样本学习核心概念3.1 基础定义Zero-Shot Learning 零样本学习不给任何参考示例只通过自然语言文字描述任务要求依靠大模型预训练阶段学到的海量知识、语义关联直接完成全新陌生任务。3.2 两个层面理解 Zero-Shot1模型训练层面模型依靠预训练时学习到的类别关联、语义特征直接对从未见过的新类别做迁移推理全程不需要提供该类别的任何样本。2提示词工程应用层面只口头描述任务规则无任何示范案例完全依赖大模型自身知识库完成输出。极简示例任务判断下面用户评价的情感只输出「正向」或「负向」评价这家银行办理业务速度太慢等待时间过长输出负向四、Zero-Shot vs Few-Shot 对比4.1 模型底层训练维度Zero-Shot 零样本不提供任何新类别样本利用模型预训练沉淀的语义、特征关联直接迁移识别未知类别。Few-Shot 少样本提供少量标注样本让模型快速学习新任务特征泛化能力更强识别精度更高。4.2 提示词编写落地维度Zero-Shot仅用自然语言描述任务规则无示例完全依赖大模型自身预训练知识作答优点是提示词简短缺点是复杂任务容易格式跑偏、产生幻觉。Few-Shot给模型多条标准输出示例引导模型严格对齐示例的结构、格式、措辞优点是输出稳定、格式统一适合 RAG 信息抽取、分类、结构化输出场景。五、业务实战场景5.1 实战业务目标基于 Zero-Shot、Few-Shot 两种提示词思想完成金融行业三大经典 NLP 任务文本分类如客户投诉分类、业务咨询类别划分信息抽取如合同关键字段、金额、日期、业务主体提取文本匹配如问句与知识库标准问题相似度匹配5.2 落地选型简单分类、简短问答优先使用Zero-Shot提示词简洁高效需要固定 JSON / 表格格式、高准确率抽取、多规则约束优先使用Few-Shot少样本提示词规避模型输出混乱问题工程化方案实际开发中采用Zero-Shot Few-Shot混合模式封装成通用提示词模板调用大模型接口。六、总结本质区别Zero-Shot 靠模型自有知识干活Few-Shot 靠少量示例教模型怎么干活提示词使用口诀简单任务零样本格式严格少样本行业落地在金融、政务、企业知识库 RAG 项目中Few-Shot 是保证结构化输出最常用的提示词方案。一、什么是 JSON1. 核心定义JSONJavaScript Object Notation是带固定规则的格式化字符串专门用来存储、传递带层级结构的数据最大优势是跨编程语言通用Python、Java、前端 JS、Go 都能无障碍解析是接口数据传输的标准格式。2. 三种数据格式对比纯文本小明11岁是个男孩 小李12岁是个女孩 小王16岁是一个男孩子缺点没有字段划分代码提取姓名、年龄极其麻烦无法自动化解析。CSV 逗号分隔格式小明,11,男 小李,12,女 小王,16,男优点结构简单、占用体积小缺点依赖固定顺序少一列、顺序错乱直接解析失败不支持嵌套复杂数据。JSON 格式{name: 小明, age: 11, gender: 男}优点自带 key 字段标识、支持无限嵌套、全语言兼容缺点符号冗余存储空间略大于 CSV。二、JSON 和 Python 数据结构JSON 本质是字符串解析后会自动映射成 Python 内置类型JSON 对象{}→ Python 字典dictJSON 嵌套结构示例{ age: 11, name: 小明, hobby: [唱, 跳, rap], other: { 身高: 172, 体重: 68 } }解析后就是 Python 嵌套字典取值方式dict[other][身高]JSON 数组[]→ Python 列表listJSON 数组多条数据集合[ {name: 小明, age: 11}, {name: 小李, age: 12}, {name: 小王, age: 16} ]解析后为 Python 列表套字典取值list[0][name]格式硬性规则JSON 的键必须用双引号不支持单引号只支持对象、数组、字符串、数字、true/false/null不能存放 Python 对象、函数。三、Python 内置json模块方法无需 pip 安装Python 自带库直接导入import json1.json.dumps()Python 对象 → JSON 字符串作用把字典 / 列表打包成标准 JSON 字符串用于网络接口传输、写入文件。语法json.dumps(数据, ensure_asciiFalse, indent2)ensure_asciiFalse必加参数避免中文转义为\uXXXX乱码indent2可选自动换行缩进美化打印格式。示例代码import json # Python嵌套字典 person { age: 11, name: 小明, hobby: [唱, 跳, rap], other: { 身高: 172, 体重: 68 } } # 转为JSON字符串 json_str json.dumps(person, ensure_asciiFalse, indent2) print(type(json_str)) # 输出 class str print(json_str)2.json.loads()JSON 字符串 → Python 对象作用接收接口返回 / 文件读取的 JSON 字符串还原成字典 / 列表方便代码取值计算。语法json.loads(json格式字符串)承接上面的示例python# 把JSON字符串还原为Python字典 python_data json.loads(json_str) print(type(python_data)) # class dict # 嵌套取值 print(python_data[other][身高]) # 输出 172dumps打包Python 字典 / 列表 → JSON 字符串对外发送loads拆包JSON 字符串 → Python 字典 / 列表接收解析中文不乱码永远带上参数ensure_asciiFalseJSON 大括号对应 Python 字典JSON 中括号对应 Python 列表
返回列表