On this page
https://microsoft.github.io/generative-ai-for-beginners/#/
如何学习本课程
- Jupyter
- 便于创建和共享程序文档,支持实时代码,数学方程,可视化和 markdown。 用途包括:数据清理和转换,数值模拟,统计建模,机器学习
- github codespaces
- 云开发环境
- 配置即代码
- wsl
- Azure OpenAI Service
一 简介

文本输入和输出的架构
prompt completion
llms 如何工作
- 分词器,文本到数字
- 预测输出标记
- 选择过程,概率分布
二 不同的 LLM
内容创建 解码器
审查内容 编码器
提升 LLM 的输出结果准确度
https://www.fiddler.ai/blog/four-ways-that-enterprises-deploy-llms
- Prompt Engineering with Context
- RAG
- 微调模型
- 训练模型
三 责任
负责任的人工智能的原则:公平、包容、可靠性/安全、安全和隐私、透明度和问责制
幻觉
四 提示工程基础
设计和优化文本输入(提示)的过程
- 为给定模型和目标设计初始提示
- 迭代优化提示,提高响应质量 是一个反复试验的过程
- Tokenization 模型如何“看到”提示
- Base LLMs 基础模型如何“处理”提示
- Instruction-Tuned LLMs 模型现在如何查看“任务”
为什么我们需要提示工程
模型响应是随机的
相同的提示可能会在不同的模型或模型版本中产生不同的响应。甚至在不同时间使用相同的模型,也可能产生不同的结果。提示工程技术可以帮助我们通过提供更好的引导条款,来最小化这些变化。
模型可能会捏造响应
模型是用大而有限的数据集进行预训练的,这意味着他们对训练范围之外的概念缺乏了解。因此,他们可能会产生不准确的、想象出来的,或者直接与已知事实相矛盾的完成。提示工程技术帮助用户识别并缓解这样的捏造,例如,通过向 AI 索要引证或推理。
模型能力会有所不同
新的模型或模型版本将具有更丰富的能力,但也会带来独特的怪癖和在成本与复杂性上的权衡。提示工程可以帮助我们开发最佳做法和工作流程,以抽象化差异并适应模型特定的需求,实现可扩展,无缝的方式
最佳实践
- 单独的说明和背景
- 检查您的模型/提供商是否定义了分隔符,以更清楚地区分说明、主要内容和次要内容。这可以帮助模型更准确地为标记分配权重。
- 具体明确
- 更详细地说明所需的背景、结果、篇幅、格式、风格等。这将提高回复的质量和一致性。在可重复使用的模板中记录配方。
- 要有描述性,举例说明
- 模型可能对 ” 展示和讲述 ” 的方法反应更好。首先,你可以采用
zero-shot的方法,给模型一个指令(但不举例说明),然后尝试few-shot的改进方法,提供一些所需的输出示例。使用类比。
- 模型可能对 ” 展示和讲述 ” 的方法反应更好。首先,你可以采用
- 使用提示来启动完成
- 给它一些引导词或短语,让它以这些词或短语为出发点来做出回应,从而引导它取得预期结果
五 创建高级 Prompt
Prompting 技术
-
零样本提示
-
少样本提示
-
思维链
-
从少到多
-
自我提炼,批判结果
-
Maieutic 提示
-
指定上下文
-
限制输出
-
指定内容和方式
-
使用模板