当前位置: 首页 > java >正文

大模型学习笔记 day01 提示工程入门1.One-shot Few-shot提示学习法

如何应⽤和激发⼤语⾔模型的各⽅⾯能⼒

提示⼯程 Prompt engineering

  • 通过输⼊更加合理的提示,引导模型进⾏更有效的结果输出,本质上是⼀种引导和激发模型能⼒的⽅法
  • 更加轻量级的引导⽅法,尝试和实施的⻔槛更低;问题是受限于模型最⼤对话上下⽂限制,提示量有限

微调 Fine tuning

  • 通过输⼊额外的样本,对模型部分参数进⾏修改,从⽽强化模型某部分能⼒;本质上也是⼀种引导和激发模型能⼒的⽅法
  • 需要重新训练模型部分参数,训练成本较⼤,且需要精⼼准备数据,技术实施难度也更⼤;优势是可以让模型永久的强化某⽅⾯能⼒;

提示⼯程和微调的技术关系 

  • 能⽤提示⼯程解决的问题,往往不会⽤微调;⽽也有很多微调才能够解决的问题;
  • 更多的时候是作为上下游技术关系,例如要进⾏本地知识库的定制化问答,最好的⽅法就是借助提示⼯程进⾏数据标注,然后再利⽤标注好的数据进⾏微调

提示⼯程三⽅⾯核⼼技术

  • 提示词模板设计:相当于是魔法语句,在输⼊了某些语句之后,模型能够更好的完成任务,例如“请⼀步步进⾏思考”;
  • 提示示例设计:⽬前较为流⾏的提示示例设计是不仅包括问答内容,同时包括推理和解决问题的步骤,从⽽能够给予模型更好的引导;
  • 提示流程设计:很多时候模型⽆法⼀步到位解决问题,此时就需要设计更加复杂的提示流程,来引导模型通过多步的提示来解决问题

One-shot & Few-shot提示学习法

输入一些类似问题和问题答案,让模型参考学习,并在同一个prompt的末尾提出新的问题,依次提升模型的推理能力。

示例:

prompt_Few_shot1 = 'Q:“罗杰有五个网球,他又买了两盒网球,每盒有3个网球,请问他现在总共有多少个网球?” \A:“现在罗杰总共有11个网球。” \Q:“食堂总共有23个苹果,如果他们用掉20个苹果,然后又买了6个苹果,请问现在食堂总共有多少个苹果?” \A:'
prompt_Few_shot1

通过思维链提示法提升模型推理能力

Zero-shot-CoT提示方法

最为简单的思维链的实现方法是在提示词尾部追加一句“Let’s think step by step”(请一步步进行推理并得出结论),即可大幅提高模型推理能力

Few-shot-CoT提示方法

Few-shot,Few-shot-CoT的不同之处只是在于需要在提示样本中不仅给出问题的答案、还同时需要给出问题推导的过程(即思维链),从而让模型学到思维链的推导过程,并将其应用到新的问题中

示例

'Q:“罗杰有五个网球,他又买了两盒网球,每盒有3个网球,请问他现在总共有多少个网球?” \
A:“罗杰一开始有五个网球,又购买了两盒网球,每盒3个,共购买了6个网球,因此现在总共由5+6=11个网球。因此答案是11。” '

CoT改良方法:LEAST-TO-MOST PROMPTING(LtM提示法)

解决CoT提示方法泛化能力不足的问题——即通过人工编写的思维链提示样本可能并不能够很好的迁移到别的问题当中去,换而言之,就是解决问题的流程迁移能力不足,即泛化能力不够。而这种泛化能力不足则会导致“新的问题”无法使用“老的模板”进行解决。 

 该方法先通过提示过程让模型找到解决该问题必须要分步解决哪几个问题,然后再通过依次解决这些问题来解决最原始的问题。

整个提示过程会分为两个阶段进行,第一个阶段是自上而下的分解问题(Decompose Question into subquestion),第二个阶段是自下而上的依次解决问题(Sequentially Solve Subquestion),而整个依次回答问题的过程,其实就可以看成是CoT的过程,只不过LtM会要求模型根据每个不同的问题,单独生成解决问题的链路,以此做到解决问题流程的“千人千面”,从而能够更加精准的解决复杂推理问题。而整个过程问题的由少变多,则是LEAST-TO-MOST一词的来源。

prompt_Zero_shot_MtL1 = 'Q:“罗杰有五个网球,他又买了两盒网球,每盒有3个网球,请问他现在总共有多少个网球?”\A:为了解决“罗杰总共又多少个网球?”这个问题,我们首先要解决的问题是'
prompt_Zero_shot_MtL1

http://www.xdnf.cn/news/941.html

相关文章:

  • 【mongodb】--下载
  • Flink介绍——实时计算核心论文之MillWheel论文总结
  • 探索大语言模型(LLM):ReAct、Function Calling与MCP——执行流程、优劣对比及应用场景
  • `useLayoutEffect` 和 `useEffect`区别与联系
  • Spring Boot 整合 JavaFX 核心知识点详解
  • C++ explicit
  • vscode使用remote ssh插件连接服务器的问题
  • 阿狸电视桌面固件包分享-阿狸桌面功能详细使用教程
  • map和set封装
  • Python进程与线程的深度对比
  • C++学习:六个月从基础到就业——内存管理:自定义内存管理(上篇)
  • Java 并发包核心机制深度解析:锁的公平性、异步调度、AQS 原理全解
  • 【上位机——MFC】菜单类与工具栏
  • 单例模式 (Singleton Pattern)
  • DeepSeek R1模型微调怎么做?从入门到实战
  • 关于敏感文件或备份 安全配置错误 禁止通过 URL 访问 Vue 项目打包后的 .gz 压缩文件
  • RS232转Profibus DP网关:技术革新!
  • 【Pandas】pandas DataFrame sub
  • Discuz!与DeepSeek的深度融合:打造智能网址导航新标杆
  • 在Ubuntu 18.04下编译OpenJDK 11
  • BEVDet4D: Exploit Temporal Cues in Multi-camera 3D Object Detection
  • 树模型与集成学习(决策树核心算法:ID3/C4.5/CART、随机森林、GBDT/XGBoost)
  • CentOS7系统安装Docker教程
  • 【NLP 67、知识图谱】
  • 开源脚本分享:用matlab处理ltspice生成的.raw双脉冲数据
  • JDBC:数据库访问的原始接口
  • 【数据结构和算法】3. 排序算法
  • ubuntu20.04安装安装x11vnc服务基于gdm3或lightdm这两种主流的显示管理器。
  • LlamaIndex 生成的本地索引文件和文件夹详解
  • PaginationInnerInterceptor使用(Mybatis-plus分页)