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

【AI大模型学习路线】第一阶段之大模型开发基础——第四章(提示工程技术-1)In-context learning。

【AI大模型学习路线】第一阶段之大模型开发基础——第四章(提示工程技术-1)In-context learning。

【AI大模型学习路线】第一阶段之大模型开发基础——第四章(提示工程技术-1)In-context learning。


文章目录

  • 【AI大模型学习路线】第一阶段之大模型开发基础——第四章(提示工程技术-1)In-context learning。
  • 前言
    • 1 定义与背景
      • 1.1 什么是 In-Context Learning
      • 1.2 ICL 与 Few-Shot/Zero-Shot 的关系
    • 2 机制与理论
      • 2.1 前向学习与隐式权重构造
      • 2.2 ICL 与 Prompt Tuning 的互补
    • 3 ICL 变体与示例
      • 3.1 Many-Shot vs Few-Shot vs Self-Generated ICL
      • 3.2 示例:Few-Shot ICL
      • 3.3 示例:Self-Generated ICL(SG-ICL)
    • 4 Python 实操
    • 5 最佳实践与未来趋势
      • 5.1 示例选择与管理
      • 5.2 上下文窗口与成本权衡
      • 5.3 未来方向


欢迎宝子们点赞、关注、收藏!欢迎宝子们批评指正!
祝所有的硕博生都能遇到好的导师!好的审稿人!好的同门!顺利毕业!

大多数高校硕博生毕业要求需要参加学术会议,发表EI或者SCI检索的学术论文会议论文。详细信息可关注VX “学术会议小灵通”或参考学术信息专栏:https://fighting.blog.csdn.net/article/details/146692330


前言

  • In-Context Learning(ICL)是通过将“任务示例”以自然语言的形式直接拼入 Prompt 中,让预训练大模型在不更新任何模型参数的情况下完成新任务的技术
  • ICL 最早随 GPT-3 正式提出,依托模型的海量自监督预训练知识,通过“示例+输入”的组合,在一次前向推理(forward pass)中隐式地实现对任务模式的“学习”。
  • ICL 包括 Few-Shot、Many-Shot 以及最近兴起的 Self-Generated ICL(SG-ICL)等变体;其核心优势是零微调成本、高度灵活,是大模型“模型即服务”(MaaS)时代下 Prompt 工程的基石

1 定义与背景

1.1 什么是 In-Context Learning

  • In-Context Learning(ICL)指在 Prompt 中嵌入若干“示例—输出”对,模型在前向计算时基于这些示例对新输入生成符合示例模式的输出,无需任何梯度更新或权重微调​。
  • 正式由 GPT-3 论文首次系统化提出,展示了在仅给 0–32 个示例的情况下,大模型即可在多项 NLP 任务上超越当时的微调基线​。

1.2 ICL 与 Few-Shot/Zero-Shot 的关系

  • Zero-Shot 是 ICL 的特殊简化:Prompt 中只包含指令,不含示例,完全依赖模型预训练知识完成任务​。
  • Few-Shot 则在指令后追加少量(通常 1–5 个)示例,引导模型“模仿”示例格式,显著提升结构化或专业化任务的稳定性与准确性​。

2 机制与理论

2.1 前向学习与隐式权重构造

  • ICL 的本质是:Transformer 在前向推理时,会基于示例—输入的拼接序列计算自注意力(self-attention),相当于在激活层面临时构造出对任务有利的“路由”,而非修改模型权重​。
  • 理论分析表明,ICL 可被表述为一类“前向算法”,能通过注意力权重组合学习简单子预测器,并将其串联形成对复杂函数的近似​。

2.2 ICL 与 Prompt Tuning 的互补

  • Prompt Tuning(PT)在输入嵌入前添加少量可训练嵌入,SG-ICL 则通过示例完成“非参数化”适应。研究发现,将 PT 与 ICL 结合(Instruction Prompt Tuning, IPT)可降低方差、提升跨任务迁移​

3 ICL 变体与示例

3.1 Many-Shot vs Few-Shot vs Self-Generated ICL

在这里插入图片描述

3.2 示例:Few-Shot ICL

Prompt(拼接三组示例后请求翻译)

Translate to French:
Example 1: Good morning → Bonjour  
Example 2: Thank you → Merci  
Now translate: How are you?
  • 模型在此基础上生成“Comment ça va ?”​

3.3 示例:Self-Generated ICL(SG-ICL)

  • 首先用简短指令让模型生成若干“示例—输出”对,再将这些对作为示例拼回 Prompt 进行主任务,形成闭环。

4 Python 实操

import os
import openai
from string import Templateopenai.api_key = os.getenv("OPENAI_API_KEY")# 定义 Few-Shot 模板
template = Template("""
You are a translation assistant.
Translate to French:
Example 1: Good morning → Bonjour
Example 2: Thank you → Merci
Now translate: $text → 
""")def few_shot_translate(text):prompt = template.substitute(text=text)resp = openai.ChatCompletion.create(model="gpt-4",messages=[{"role":"user","content":prompt}],temperature=0.0,max_tokens=20)return resp.choices[0].message.contentprint(few_shot_translate("How are you?"))
  • 上例展示了 Few-Shot ICL 的模板化实操;可将 Example 数量、格式化方式当作变量灵活管理​。
# Self-Generated ICL 示例
# 第一步:让模型生成示例对
gen = openai.ChatCompletion.create(model="gpt-4",messages=[{"role":"user","content":"Generate two examples of English→French translation"}],temperature=0.7
)
examples = gen.choices[0].message.content# 第二步:拼入主任务
prompt = f"You are a translator.\n{examples}\nTranslate: See you later →"
resp2 = openai.ChatCompletion.create(model="gpt-4",messages=[{"role":"user","content":prompt}],temperature=0.0
)
print(resp2.choices[0].message.content)
  • SG-ICL 让示例自动化生成,减少人工设计成本​。

5 最佳实践与未来趋势

5.1 示例选择与管理

  • 利用语义检索(RAG)动态从示例库中挑选与用户输入最相关的示例,进一步提升 Few-Shot 效果​
  • 对示例做多样性与代表性平衡,避免模型过度拟合某一典型场景​。

5.2 上下文窗口与成本权衡

  • Prompt 长度受限于模型上下文窗口,必须对早期示例做摘要或裁剪​。
  • Few-Shot 提示成本按 Token 计费,应监控 usage 字段并优化示例长度​。

5.3 未来方向

  • AutoPrompt:自动化搜索最优示例与指令组合;
  • Prompt Ensembles:多模板投票回答;
  • 跨模态 ICL:将图像、表格示例与文本混合进 Context;
  • 边缘 ICL:在资源受限设备上量化模型并本地化 ICL。

通过系统化的 ICL 技术与模板化、自动化工具链,Prompt Engineering 将从经验驱动迈向工程化与自动化,为大模型在各行业的落地提供可复制、可维护的关键方法。

相关文章:

  • android-ndk开发(5): 编译运行 hello-world
  • 机器人强化学习入门学习笔记
  • EPSG:3857 和 EPSG:4326 的区别
  • 雷电模拟器-超好用的Windows安卓模拟器
  • 百度golang开发一面
  • Red Hat6.4环境下搭建DHCP服务器
  • llama_factory0.9.3微调Qwen3
  • DGI数据治理框架的最佳实践
  • 《电子技术基础(数字部分)》第 5 章 锁存器和触发器
  • 分析rand()和srand()函数的功能
  • 开元类双端互动组件部署实战全流程教程(第4部分:后台配置系统与参数动态控制)
  • 普联的AC100+AP+易展路由组网方案的一些问题
  • 2025年第十六届蓝桥杯省赛JavaB组真题
  • 功率放大器设计
  • Javascript大致框架
  • 前端面试每日三题 - Day 25
  • 【RK3588嵌入式图形编程】-Cairo-Cairo图形库支持后端
  • 【纪念我的365天】我的创作纪念日
  • 【Java ee初阶】多线程(6)
  • Redis常用命令表格汇总(超精炼)
  • 南京明孝陵石兽遭涂鸦“到此一游”,景区:已恢复原貌,警方在排查
  • 100%关税!特朗普要让美国电影100%美国制造
  • 视觉周刊|劳动开创未来
  • 竞彩湃|新科冠军利物浦留力?纽卡斯尔全力冲击欧冠
  • 张求会谈陈寅恪的生前身后事
  • 印巴局势紧张或爆发军事冲突,印度空军能“一雪前耻”吗?