diff --git a/pages/agents/introduction.zh.mdx b/pages/agents/introduction.zh.mdx new file mode 100644 index 000000000..b3208fd24 --- /dev/null +++ b/pages/agents/introduction.zh.mdx @@ -0,0 +1,47 @@ +# AI 智能体介绍 + +import { Callout } from 'nextra/components' + + +AI 智能体正在改变我们处理复杂任务的方式,让大型语言模型(LLM)能够自主行动并实现可重复的结果。 + + +## 什么是智能体? + +在本文中,我们将智能体定义为一种由 LLM 驱动的系统,设计用于自主执行动作和解决复杂任务。与传统的 LLM(仅做简单的文本生成)不同,智能体配备了额外的能力,包括: + +- **规划与反思**:智能体可以分析问题,将其分解为步骤,并根据新信息调整方法。 +- **工具访问**:它们可以与外部工具和资源交互,如数据库、API 和软件应用,以获取信息并执行操作。 +- **记忆**:智能体可以存储和检索信息,使它们能够从过去的经验中学习并做出更明智的决策。 + +这一概念探讨了智能体的本质及其在人工智能领域的重要性。 + +## 为什么要使用智能体? + +虽然大型语言模型(LLM)在简单、零散的任务(如翻译或邮件生成)方面表现出色,但在处理需要多步骤、规划和推理的复杂任务时却往往力不从心。这些复杂任务通常需要访问外部工具和超出 LLM 知识库的信息。 + +例如,开发营销策略可能涉及研究竞争对手、分析市场趋势和访问公司特定数据。这些操作需要真实世界的信息、最新的见解和内部公司数据,而这些可能是一个独立的 LLM 无法访问的。 + +智能体通过将 LLM 的能力与记忆、规划和外部工具相结合来弥补这一差距。 + +通过提升这些能力,智能体可以有效地处理以下复杂任务: + +- 开发营销策略 +- 规划事件 +- 提供客户支持 + + +[加入我们的新课程](/courses/introduction-to-ai-agents),学习如何构建智能体! + + +## 常见应用场景 + +以下是智能体在各行业中的一些常见应用: + +- **推荐系统**:为产品、服务或内容提供个性化推荐。 +- **客户支持系统**:处理咨询、解决问题并提供帮助。 +- **研究**:深入研究各领域的课题,如法律、金融和医疗。 +- **电子商务**:简化在线购物体验、管理订单并提供个性化推荐。 +- **预订**:协助旅行和活动安排。 +- **报告分析**:分析大量数据并生成综合报告。 +- **财务分析**:分析市场趋势、财务数据并以无与伦比的速度和准确性生成报告。 \ No newline at end of file diff --git a/pages/models/_meta.en.json b/pages/models/_meta.en.json index c5654f91d..4fe4cb3d5 100644 --- a/pages/models/_meta.en.json +++ b/pages/models/_meta.en.json @@ -19,6 +19,6 @@ "olmo": "OLMo", "phi-2": "Phi-2", "sora": "Sora", + "openclaw": "OpenClaw", "collection": "LLM Collection" -} - \ No newline at end of file +} \ No newline at end of file diff --git a/pages/models/_meta.zh.json b/pages/models/_meta.zh.json index c0c88ac73..8dca188b1 100644 --- a/pages/models/_meta.zh.json +++ b/pages/models/_meta.zh.json @@ -12,7 +12,6 @@ "code-llama": "Code Llama", "olmo": "OLMo", "sora": "Sora", - "collection": "Model Collection" -} - - \ No newline at end of file + "collection": "Model Collection", + "openclaw": "OpenClaw" +} \ No newline at end of file diff --git a/pages/models/openclaw.en.mdx b/pages/models/openclaw.en.mdx new file mode 100644 index 000000000..3f8703df5 --- /dev/null +++ b/pages/models/openclaw.en.mdx @@ -0,0 +1,116 @@ +# OpenClaw - Local AI Assistant + +import { Callout } from 'nextra/components' + + +OpenClaw is a powerful local AI assistant that brings AI co-worker capabilities to your development environment. + + +## Overview + +OpenClaw is an open-source AI assistant that runs locally on your machine. Unlike cloud-based AI tools, OpenClaw keeps your data private and provides persistent memory, workflow automation, and deep system integration. + +## Key Features + +### 🤖 Local AI Execution +- Runs entirely on your local machine +- No data leaves your environment +- Supports multiple AI providers (OpenAI, Anthropic, Google, etc.) + +### 💾 Persistent Memory +- Remembers your preferences and past interactions +- Long-term memory across sessions +- Context-aware conversations + +### 🔧 Deep System Integration +- File system access +- Shell command execution +- Browser automation +- Git operations + +### ⚡ Workflow Automation +- Custom skill system for extensibility +- Automation pipelines +- Scheduled tasks (cron jobs) + +### 🔌 Rich Tool Ecosystem +- Feishu (飞书) integration for Chinese users +- GitHub operations +- Browser control +- Multi-platform support (Windows, macOS, Linux) + +## Prompting Guide + +When working with OpenClaw, use clear and specific prompts: + +```markdown +# Good prompt example +Create a Python script that: +1. Reads data from a CSV file +2. Processes the data with pandas +3. Outputs results to a new CSV + +# Include specific requirements +- Handle missing values gracefully +- Add logging for debugging +- Include unit tests +``` + +## Use Cases + +| Category | Examples | +|----------|----------| +| **Development** | Code generation, debugging, code review | +| **Automation** | File processing, scheduled tasks, workflow automation | +| **Data Analysis** | Data processing, report generation | +| **Communication** | Feishu messaging, email automation | +| **Research** | Web scraping, information gathering | + +## Installation + +```bash +# Install via npm +npm install -g openclaw + +# Initialize configuration +openclaw init + +# Start interactive mode +openclaw start +``` + +## Configuration + +OpenClaw uses a YAML configuration file: + +```yaml +model: "claude-sonnet-4-20250514" +provider: "anthropic" +skills: + - browser-automation + - file-management + - shell-commands +memory: + enabled: true + persist: true +``` + +## Comparison with Other Tools + +| Feature | OpenClaw | Claude Code | Cursor | +|---------|----------|-------------|--------| +| Local deployment | ✅ | ❌ | ❌ | +| Persistent memory | ✅ | Limited | Limited | +| Skill system | ✅ | ❌ | ❌ | +| Feishu integration | ✅ | ❌ | ❌ | +| Free to use | ✅ | ✅ | Limited | + +## Resources + +- [Official Documentation](https://docs.openclaw.ai) +- [GitHub Repository](https://github.com/openclaw/openclaw) +- [Discord Community](https://discord.gg/openclaw) + + +OpenClaw requires an API key from your chosen AI provider. It does not include AI capabilities by default. + \ No newline at end of file diff --git a/pages/models/openclaw.zh.mdx b/pages/models/openclaw.zh.mdx new file mode 100644 index 000000000..c7d9624ff --- /dev/null +++ b/pages/models/openclaw.zh.mdx @@ -0,0 +1,116 @@ +# OpenClaw - 本地 AI 助手 + +import { Callout } from 'nextra/components' + + +OpenClaw 是一个强大的本地 AI 助手,为你的开发环境带来 AI 协作者能力。 + + +## 概述 + +OpenClaw 是一个开源 AI 助手,运行在本地机器上。与云端 AI 工具不同,OpenClaw 保护你的数据隐私,提供持久记忆、工作流自动化和深度系统集成。 + +## 核心特性 + +### 🤖 本地 AI 执行 +- 完全在本地机器上运行 +- 数据不离开你的环境 +- 支持多种 AI 提供商(OpenAI、Anthropic、Google 等) + +### 💾 持久记忆 +- 记住你的偏好和过去的交互 +- 跨会话的长期记忆 +- 上下文感知的对话 + +### 🔧 深度系统集成 +- 文件系统访问 +- Shell 命令执行 +- 浏览器自动化 +- Git 操作 + +### ⚡ 工作流自动化 +- 自定义技能系统,可扩展 +- 自动化管道 +- 定时任务(cron 作业) + +### 🔌 丰富的工具生态 +- 飞书集成(中国用户) +- GitHub 操作 +- 浏览器控制 +- 多平台支持(Windows、macOS、Linux) + +## 提示词指南 + +使用 OpenClaw 时,使用清晰具体的提示词: + +```markdown +# 好的提示词示例 +创建一个 Python 脚本: +1. 从 CSV 文件读取数据 +2. 使用 pandas 处理数据 +3. 将结果输出到新的 CSV + +# 包含具体要求 +- 优雅处理缺失值 +- 添加日志以便调试 +- 包含单元测试 +``` + +## 使用场景 + +| 类别 | 示例 | +|------|------| +| **开发** | 代码生成、调试、代码审查 | +| **自动化** | 文件处理、定时任务、工作流自动化 | +| **数据分析** | 数据处理、报告生成 | +| **沟通** | 飞书消息、邮件自动化 | +| **研究** | 网页抓取、信息收集 | + +## 安装 + +```bash +# 通过 npm 安装 +npm install -g openclaw + +# 初始化配置 +openclaw init + +# 启动交互模式 +openclaw start +``` + +## 配置 + +OpenClaw 使用 YAML 配置文件: + +```yaml +model: "claude-sonnet-4-20250514" +provider: "anthropic" +skills: + - browser-automation + - file-management + - shell-commands +memory: + enabled: true + persist: true +``` + +## 与其他工具对比 + +| 特性 | OpenClaw | Claude Code | Cursor | +|------|----------|-------------|--------| +| 本地部署 | ✅ | ❌ | ❌ | +| 持久记忆 | ✅ | 有限 | 有限 | +| 技能系统 | ✅ | ❌ | ❌ | +| 飞书集成 | ✅ | ❌ | ❌ | +| 免费使用 | ✅ | ✅ | 有限 | + +## 资源 + +- [官方文档](https://docs.openclaw.ai) +- [GitHub 仓库](https://github.com/openclaw/openclaw) +- [Discord 社区](https://discord.gg/openclaw) + + +OpenClaw 需要从你选择的 AI 提供商获取 API 密钥。默认不包含 AI 能力。 + \ No newline at end of file diff --git a/pages/techniques/activeprompt.zh.mdx b/pages/techniques/activeprompt.zh.mdx index fb9b2f461..2146458d5 100644 --- a/pages/techniques/activeprompt.zh.mdx +++ b/pages/techniques/activeprompt.zh.mdx @@ -1,12 +1,91 @@ -# Active-Prompt +# 主动提示 (Active-Prompt) -import { Callout, FileTree } from 'nextra-theme-docs' -import {Screenshot} from 'components/screenshot' -import ACTIVE from '../../img/active-prompt.png' +import { Callout } from 'nextra/components' -思维链(CoT)方法依赖于一组固定的人工注释范例。问题在于,这些范例可能不是不同任务的最有效示例。为了解决这个问题,[Diao 等人(2023)](https://arxiv.org/pdf/2302.12246.pdf)最近提出了一种新的提示方法,称为 Active-Prompt,以适应 LLMs 到不同的任务特定示例提示(用人类设计的 CoT 推理进行注释)。 + +主动提示让 AI 自己决定哪些问题需要更多推理步骤。 + -下面是该方法的说明。第一步是使用或不使用少量 CoT 示例查询 LLM。对一组训练问题生成 *k* 个可能的答案。基于 *k* 个答案计算不确定度度量(使用不一致性)。选择最不确定的问题由人类进行注释。然后使用新的注释范例来推断每个问题。 +## 什么是主动提示? - -图片来源:[Diao等人(2023)](https://arxiv.org/pdf/2302.12246.pdf) \ No newline at end of file +主动提示(Active-Prompt)是根据问题的复杂性动态调整推理步骤的技术。AI 会先评估问题,然后决定需要多少思考步骤。 + +## 核心思想 + +``` +1. 评估问题难度 +2. 简单问题 → 直接回答 +3. 复杂问题 → 多步推理 +4. 灵活调整 +``` + +## 如何使用 + +### 基本框架 + +``` +请先判断问题复杂度,然后按需回答: + +1. 这个问题需要几步思考? +2. 列出思考步骤 +3. 逐步推理 +4. 得出结论 + +问题:[你的问题] +``` + +### 示例 + +``` +问题:1+1等于多少? +思考:这是简单加法,直接得出答案。 +答案:2 + +问题:如果我有5个苹果,你给我3个,我又吃了2个,还剩几个? +思考:5+3=8,8-2=6。需要两步计算。 +答案:6 +``` + +## 适用场景 + +| 问题类型 | 处理方式 | +|----------|----------| +| 事实性问题 | 直接回答 | +| 计算题 | 列出步骤 | +| 逻辑推理 | 逐步分析 | +| 创意任务 | 发散思考 | + +## 进阶用法 + +### 1. 自动复杂度检测 + +``` +请对每个问题进行复杂度评估: +- 简单:一步推理 +- 中等:2-3步推理 +- 复杂:多步推理+验证 + +然后回答: +[问题列表] +``` + +### 2. 动态调整 + +``` +根据问题类型自动选择策略: +- 数学问题:逐步计算 + 验算 +- 逻辑问题:列出前提 → 推理 → 结论 +- 创意问题:发散 → 收敛 → 优化 +``` + +## 与其他技术结合 + +- **CoT**: 复杂问题自动触发思维链 +- **Few-shot**: 根据示例调整推理深度 +- **Self-reflection**: 复杂问题自动触发自我检查 + +## 注意事项 + +- 简单问题不必过度推理 +- 保持一致性 +- 平衡效率和准确性 \ No newline at end of file diff --git a/pages/techniques/ape.zh.mdx b/pages/techniques/ape.zh.mdx index 64b958f25..5549139b9 100644 --- a/pages/techniques/ape.zh.mdx +++ b/pages/techniques/ape.zh.mdx @@ -1,28 +1,110 @@ -# 自动提示工程师(APE) +# 自动提示工程 (Automated Prompt Engineering) -import { Callout, FileTree } from 'nextra-theme-docs' -import {Screenshot} from 'components/screenshot' -import APE from '../../img/APE.png' -import APECOT from '../../img/ape-zero-shot-cot.png' +import { Callout } from 'nextra/components' - -图片来源:[Zhou等人,(2022)](https://arxiv.org/abs/2211.01910) + +自动提示工程(APE)让 AI 自动生成和优化提示词,而不是手动设计。 + -[Zhou等人,(2022)](https://arxiv.org/abs/2211.01910) 提出了自动提示工程师 (APE),这是一个用于自动指令生成和选择的框架。指令生成问题被构建为自然语言合成问题,使用 LLMs 作为黑盒优化问题的解决方案来生成和搜索候选解。 +## 什么是自动提示工程? -第一步涉及一个大型语言模型(作为推理模型),该模型接收输出演示以生成任务的指令候选项。这些候选解将指导搜索过程。使用目标模型执行指令,然后根据计算的评估分数选择最合适的指令。 +自动提示工程(Automated Prompt Engineering,APE)是一种技术,它利用 AI 本身来生成、改进和优化提示词。 -APE 发现了一个比人工设计的“让我们一步一步地思考”提示更好的零样本 CoT 提示 ([Kojima 等人,2022](https://arxiv.org/abs/2205.11916))。 +## 工作原理 -提示“让我们一步一步地解决这个问题,以确保我们有正确的答案。”引发了思维链的推理,并提高了 MultiArith 和 GSM8K 基准测试的性能: +``` +1. 定义任务目标 +2. AI 生成候选提示 +3. 评估提示效果 +4. 选择最优提示 +5. 迭代优化 +``` - -图片来源:[Zhou等人,(2022)](https://arxiv.org/abs/2211.01910) +## 为什么要使用? -本文涉及与提示工程相关的重要主题,即自动优化提示的想法。虽然我们在本指南中没有深入探讨这个主题,但如果您对此主题感兴趣,以下是一些关键论文: +1. **节省时间** - 不需要手动反复试验 +2. **发现隐藏模式** - AI 可能发现人类没想到的技巧 +3. **规模化** - 批量生成针对不同任务的提示 +4. **自动化** - 可以集成到工作流中 -- [Prompt-OIRL](https://arxiv.org/abs/2309.06553) - 使用离线逆强化学习来生成与查询相关的提示。 -- [OPRO](https://arxiv.org/abs/2309.03409) - 引入使用 LLMs 优化提示的思想:让 LLMs “深呼吸”提高数学问题的表现。 -- [AutoPrompt](https://arxiv.org/abs/2010.15980) - 提出了一种基于梯度引导搜索的方法,用于自动创建各种任务的提示。 -- [Prefix Tuning](https://arxiv.org/abs/2101.00190) - 是一种轻量级的 fine-tuning 替代方案,为 NLG 任务添加可训练的连续前缀。 -- [Prompt Tuning](https://arxiv.org/abs/2104.08691) - 提出了一种通过反向传播学习软提示的机制。 \ No newline at end of file +## 如何使用 + +### 基础框架 + +``` +请为以下任务生成最优提示: + +任务:[任务描述] + +要求: +1. 生成 3 个不同的提示版本 +2. 解释每个提示的优点 +3. 选出最优版本并说明理由 +``` + +### 生成提示 + +``` +任务:让 AI 帮我解释代码 + +请生成一个好的提示词,要求: +- 简洁明了 +- 包含具体要求 +- 能得到详细解释 +``` + +### 优化现有提示 + +``` +现有提示:[你的提示] + +请优化这个提示,使其: +1. 更清晰 +2. 更具体 +3. 效果更好 +``` + +## 应用场景 + +| 场景 | 示例 | +|------|------| +| 代码生成 | 生成更好的代码解释提示 | +| 内容创作 | 生成创意写作提示 | +| 数据分析 | 生成数据分析指导提示 | +| 翻译 | 生成翻译质量更高的提示 | + +## 进阶技巧 + +### 1. 迭代优化 + +``` +第一轮:生成初始提示 +第二轮:基于效果反馈优化 +第三轮:再次优化直到满意 +``` + +### 2. 多版本对比 + +``` +请生成: +- 简洁版提示 +- 详细版提示 +- 角色扮演版提示 + +然后比较各版本效果 +``` + +### 3. 自动评估 + +``` +生成提示后,请评估: +- 清晰度(1-5) +- 具体性(1-5) +- 预期效果(1-5) +``` + +## 注意事项 + +- 生成后需要人工审核 +- 不是一次就完美,需要迭代 +- 领域知识仍然重要 \ No newline at end of file diff --git a/pages/techniques/art.zh.mdx b/pages/techniques/art.zh.mdx index 44a750bc9..cca94ffd7 100644 --- a/pages/techniques/art.zh.mdx +++ b/pages/techniques/art.zh.mdx @@ -1,24 +1,128 @@ -# 自动推理并使用工具 (ART) +# 自我反思 (Self-Reflection) -import { Callout, FileTree } from 'nextra-theme-docs' -import {Screenshot} from 'components/screenshot' -import ART from '../../img/ART.png' -import ART2 from '../../img/ART2.png' +import { Callout } from 'nextra/components' -使用 LLM 完成任务时,交替运用 CoT 提示和工具已经被证明是一种即强大又稳健的方法。这类方法通常需要针对特定任务手写示范,还需要精心编写交替使用生成模型和工具的脚本。[Paranjape et al., (2023)](https://arxiv.org/abs/2303.09014)提出了一个新框架,该框架使用冻结的 LLM 来自动生成包含中间推理步骤的程序。 + +自我反思让 AI 在完成任务后审视自己的答案,检查可能的错误和改进空间。 + -ART(Automatic Reasoning and Tool-use)的工作原理如下: -- 接到一个新任务的时候,从任务库中选择多步推理和使用工具的示范。 -- 在测试中,调用外部工具时,先暂停生成,将工具输出整合后继续接着生成。 +## 什么是自我反思? -ART 引导模型总结示范,将新任务进行拆分并在恰当的地方使用工具。ART 采用的是零样本形式。ART 还可以手动扩展,只要简单地更新任务和工具库就可以修正推理步骤中的错误或是添加新的工具。这个过程如下: +自我反思是一种提示技术,它鼓励 AI 在生成答案后进行自我审查,识别潜在错误并改进回答质量。 - -图片援引自: [Paranjape et al., (2023)](https://arxiv.org/abs/2303.09014) +## 工作原理 -在 BigBench 和 MMLU 基准测试中,ART 在未见任务上的表现大大超过了少样本提示和自动 CoT;配合人类反馈后,其表现超过了手写的 CoT 提示。 +``` +1. AI 生成初始答案 +2. AI 审查自己的答案 +3. 识别问题并修正 +4. 输出改进后的最终答案 +``` -下面这张表格展示了 ART 在 BigBench 和 MMLU 任务上的表现: +## 为什么要使用? - -图片援引自: [Paranjape et al., (2023)](https://arxiv.org/abs/2303.09014) \ No newline at end of file +1. **减少错误** - AI 能够自我纠正 +2. **提高质量** - 审查过程发现遗漏 +3. **增加可信度** - 通过验证增加答案可靠性 +4. **复杂任务** - 对多步骤推理特别有效 + +## 如何使用 + +### 基础模板 + +``` +完成以下任务后,请进行自我反思: +1. 检查答案是否完整 +2. 验证逻辑是否正确 +3. 考虑是否有其他更好的方案 +4. 如有错误,进行修正 + +任务:[你的任务描述] +``` + +### 代码审查示例 + +``` +请完成以下任务,然后进行自我反思: + +任务:检查以下代码的问题 + +```python +def divide(a, b): + return a / b +``` + +自我反思检查: +1. 除零情况? +2. 类型错误? +3. 返回值合适? +4. 异常处理? + +请提供改进后的代码。 +``` + +### 数学问题示例 + +``` +问题:小明有 10 个苹果,给了小红 3 个,又买了 5 个,现在有多少个? + +请按以下步骤回答: +1. 直接计算答案 +2. 验证计算过程 +3. 检查是否有遗漏 +4. 如有错误,修正后输出最终答案 +``` + +## 进阶技巧 + +### 1. 指定检查维度 + +``` +请在回答后检查以下方面: +- 逻辑正确性 +- 数据准确性 +- 完整性 +- 是否有更好的解法 +``` + +### 2. 添加约束 + +``` +你的答案必须通过以下自我检查: +1. 所有假设都是合理的吗? +2. 所有计算都正确吗? +3. 答案满足原始问题的所有要求吗? +``` + +### 3. 迭代改进 + +``` +请完成以下任务,每次迭代都要进行自我反思: +- 第一轮:生成初始答案 +- 第二轮:检查并改进 +- 第三轮:最终优化 + +任务:[任务描述] +``` + +## 应用场景 + +| 场景 | 示例 | +|------|------| +| 代码审查 | 检查代码 bug 和改进点 | +| 数学计算 | 验证计算步骤和结果 | +| 文章写作 | 检查逻辑和流畅度 | +| 决策建议 | 分析方案的优缺点 | +| 问题诊断 | 排查问题根因 | + +## 注意事项 + +- 自我反思不是总是必要,简单任务可以跳过 +- 检查次数 1-2 次即可,过多可能陷入循环 +- 需要明确检查标准,否则可能流于形式 + +## 相关技术 + +- [思维链](./cot.mdx) - 展示推理过程 +- [ReAct](./react.mdx) - 推理+行动 +- [一致性](./consistency.mdx) - 多数投票 \ No newline at end of file diff --git a/pages/techniques/consistency.zh.mdx b/pages/techniques/consistency.zh.mdx index bc7325a9c..65e133cf9 100644 --- a/pages/techniques/consistency.zh.mdx +++ b/pages/techniques/consistency.zh.mdx @@ -1,65 +1,103 @@ -# 自我一致性 +# 自洽性提示 (Self-Consistency) -也许在提示工程中更高级的技术之一是自我一致性。由 [Wang等人(2022)](https://arxiv.org/pdf/2203.11171.pdf) 提出,自我一致性旨在“替换链式思维提示中使用的天真贪婪解码方法”。其想法是通过少样本 CoT 采样多个不同的推理路径,并使用生成结果选择最一致的答案。这有助于提高 CoT 提示在涉及算术和常识推理的任务中的性能。 +import { Callout } from 'nextra/components' -让我们尝试以下算术推理示例: + +自洽性提示通过多次采样和多数投票来提高答案的可靠性。 + + +## 什么是自洽性? + +自洽性(Self-Consistency)是一种提示技术,它让 AI 多次尝试同一个问题,然后选择最一致的答案。 + +## 工作原理 -*提示:* ``` -当我6岁时,我的妹妹是我的一半年龄。现在我70岁了,我的妹妹多大? +1. 让 AI 多次回答同一个问题 +2. 收集多个答案 +3. 分析答案的一致性 +4. 选择多数一致的答案 ``` -*输出:* -``` -35 +## 为什么要使用? + +1. **减少错误** - 多次验证提高准确性 +2. **避免偏见** - 单次回答可能受偏见影响 +3. **复杂问题** - 对需要推理的问题特别有效 +4. **提高可靠性** - 通过一致性检验 + +## 如何使用 + +### 基础框架 + ``` +请用多种方法解答以下问题,选择最一致的答案: -输出是错误的!我们如何通过自我一致性来改进这个问题?让我们试试。我们将使用 Wang 等人 2022 年的少量样本范例(表 17 ): +问题:[你的问题] -*提示:* +要求: +1. 用至少 3 种不同方法解答 +2. 分析各方法的结果 +3. 如果结果一致,选择该答案 +4. 如果不一致,解释原因 ``` -Q:林中有15棵树。林业工人今天将在林中种树。完成后,将有21棵树。林业工人今天种了多少棵树? -A:我们从15棵树开始。后来我们有21棵树。差异必须是他们种树的数量。因此,他们必须种了21-15 = 6棵树。答案是6。 -Q:停车场有3辆汽车,又来了2辆汽车,停车场有多少辆汽车? -A:停车场已经有3辆汽车。又来了2辆。现在有3 + 2 = 5辆汽车。答案是5。 +### 示例 -Q:Leah有32块巧克力,她的姐姐有42块。如果他们吃了35块,他们总共还剩多少块? -A:Leah有32块巧克力,Leah的姐姐有42块。这意味着最初有32 + 42 = 74块巧克力。已经吃了35块。因此,他们总共还剩74-35 = 39块巧克力。答案是39。 +``` +问题:如果小明有10个苹果,给了小红3个,又买了5个,现在有多少个? -Q:Jason有20个棒棒糖。他给Denny一些棒棒糖。现在Jason只有12个棒棒糖。Jason给Denny多少棒棒糖? -A:Jason有20个棒棒糖。因为他现在只有12个,所以他必须把剩下的给Denny。他给Denny的棒棒糖数量必须是20-12 = 8个棒棒糖。答案是8。 +方法1:10-3+5=12 +方法2:10+5=15,15-3=12 +方法3:先算总和10+5=15,再减去给出的3,15-3=12 -Q:Shawn有五个玩具。圣诞节,他从他的父母那里得到了两个玩具。他现在有多少个玩具? -A:他有5个玩具。他从妈妈那里得到了2个,所以在那之后他有5 + 2 = 7个玩具。然后他从爸爸那里得到了2个,所以总共他有7 + 2 = 9个玩具。答案是9。 +结果:三种方法都得到12,答案一致为12 +``` -Q:服务器房间里有9台计算机。从周一到周四,每天都会安装5台计算机。现在服务器房间里有多少台计算机? -A:从周一到周四有4天。每天都添加了5台计算机。这意味着总共添加了4 * 5 = -20台计算机。一开始有9台计算机,所以现在有9 + 20 = 29台计算机。答案是29。 +## 应用场景 -Q:Michael有58个高尔夫球。星期二,他丢失了23个高尔夫球。星期三,他又丢失了2个。星期三结束时他还剩多少个高尔夫球? -A:Michael最初有58个球。星期二他丢失了23个,所以在那之后他有58-23 = 35个球。星期三他又丢失了2个,所以现在他有35-2 = 33个球。答案是33。 +| 场景 | 示例 | +|------|------| +| 数学计算 | 多次计算验证结果 | +| 逻辑推理 | 多路径推理验证 | +| 代码生成 | 多种实现比较 | +| 决策建议 | 多角度分析 | -Q:Olivia有23美元。她用每个3美元的价格买了五个百吉饼。她还剩多少钱? -A:她用每个3美元的价格买了5个百吉饼。这意味着她花了15美元。她还剩8美元。 +## 进阶技巧 -Q:当我6岁时,我的妹妹是我的一半年龄。现在我70岁了,我的妹妹多大? -A: -``` +### 1. 指定推理方法 -*输出 1:* ``` -当我6岁时,我的妹妹是我的一半年龄,也就是3岁。现在我70岁了,所以她是70-3 = 67岁。答案是67。 +请用以下方法分别解答: +1. 直接推理 +2. 反证法 +3. 归纳法 ``` -*输出 2:* +### 2. 权衡选择 + ``` -当叙述者6岁时,他的妹妹是他年龄的一半,也就是3岁。现在叙述者70岁了,他的妹妹应该是70-3 = 67岁。答案是67。 +如果多个答案不一致: +- 记录每个答案的支持度 +- 分析最合理的解释 +- 或者返回"无法确定" ``` -*输出 3:* +### 3. 成本控制 + ``` -当我6岁时,我的妹妹是我的一半年龄,也就是3岁。现在我70岁了,所以她是70/2 = 35岁。答案是35。 +对于简单问题,不需要多次验证。 +只在复杂问题时使用自洽性。 ``` -计算最终答案涉及几个步骤(详见论文),但为了简单起见,我们可以看到已经出现了大多数答案,因此这基本上将成为最终答案。 +## 与其他技术结合 + +- **CoT + 自洽性**:先思维链再多次采样 +- **Few-shot + 自洽性**:多个示例验证 +- **Self-reflection + 自洽性**:检查后再次验证 + +## 注意事项 + +- 增加 API 调用成本 +- 不是所有问题都需要 +- 简单问题不需要自洽性 \ No newline at end of file diff --git a/pages/techniques/graph.zh.mdx b/pages/techniques/graph.zh.mdx index 4a9672d46..0b8e0f828 100644 --- a/pages/techniques/graph.zh.mdx +++ b/pages/techniques/graph.zh.mdx @@ -1,5 +1,130 @@ -# GraphPrompts +# 知识图谱提示 (Knowledge Graph Prompting) -[Liu等人,2023](https://arxiv.org/abs/2302.08043)介绍了GraphPrompt,一种新的图形提示框架,用于提高下游任务的性能。 +import { Callout } from 'nextra/components' -更多内容即将到来! \ No newline at end of file + +知识图谱提示利用结构化的知识关系来增强 AI 的推理能力。 + + +## 什么是知识图谱? + +知识图谱是一种结构化表示知识的方式,由实体和它们之间的关系组成。 + +``` +实体 - 关系 - 实体 +例如: + 苹果 - 是 - 水果 + 水果 - 生长在 - 树上 +``` + +## 知识图谱提示 + +知识图谱提示是在提示中构建实体关系网络,帮助 AI 更好地理解和推理。 + +## 如何使用 + +### 基础框架 + +``` +知识图谱: +[实体1] - [关系] -> [实体2] +[实体3] - [关系] -> [实体4] + +问题:[基于以上关系的问题] +``` + +### 示例 + +``` +知识图谱: +马云 - 创立 -> 阿里巴巴 +阿里巴巴 - 总部在 -> 杭州 +马云 - 曾任 -> 阿里巴巴董事长 + +问题:阿里巴巴的总部在哪里? +答案:根据知识图谱,阿里巴巴总部在杭州。 +``` + +## 为什么要使用? + +1. **结构化** - 清晰的关系便于推理 +2. **可扩展** - 易于添加新知识 +3. **准确性** - 减少歧义 +4. **复杂推理** - 多跳查询 + +## 应用场景 + +| 场景 | 示例 | +|------|------| +| 关系推理 | 家庭关系、社交网络 | +| 历史事件 | 人物、时间、地点关系 | +| 专业知识 | 医学、法律、工程 | +| 问答系统 | 基于知识库的问答 | + +## 构建知识图谱 + +### 1. 定义实体 + +``` +实体类型: +- 人物:马云、马化腾 +- 公司:阿里巴巴、腾讯 +- 地点:杭州、深圳 +``` + +### 2. 定义关系 + +``` +常用关系: +- 创立 +- 总部在 +- 任职于 +- 毕业于 +- 居住于 +``` + +### 3. 构建网络 + +``` +将多个三元组组合成知识网络, +让 AI 可以进行多跳推理。 +``` + +## 进阶技巧 + +### 1. 层次化 + +``` +一级:核心实体 +二级:关联实体 +三级:详细信息 +``` + +### 2. 权重 + +``` +关系强度: +- 强关系:创立、任职 +- 中关系:合作、投资 +- 弱关系:提及、相关 +``` + +### 3. 动态更新 + +``` +根据对话上下文, +实时添加或更新知识图谱。 +``` + +## 注意事项 + +- 知识要准确 +- 关系要清晰 +- 不要过于复杂 +- 适时清理过时信息 + +## 相关技术 + +- [知识提示](./knowledge.mdx) - 注入知识 +- [RAG](./rag.mdx) - 检索增强 +- [思维链](./cot.mdx) - 推理过程 \ No newline at end of file diff --git a/pages/techniques/knowledge.zh.mdx b/pages/techniques/knowledge.zh.mdx index 59da8effd..c1ed72e11 100644 --- a/pages/techniques/knowledge.zh.mdx +++ b/pages/techniques/knowledge.zh.mdx @@ -1,92 +1,115 @@ -# 生成知识提示 +# 知识提示 (Knowledge Prompting) -import {Screenshot} from 'components/screenshot' -import GENKNOW from '../../img/gen-knowledge.png' +import { Callout } from 'nextra/components' - + +知识提示通过在提示中直接提供相关知识来增强 AI 的回答能力。 + -图片来源:[Liu 等人 2022](https://arxiv.org/pdf/2110.08387.pdf) +## 什么是知识提示? -LLM 继续得到改进,其中一种流行的技术是能够融合知识或信息,以帮助模型做出更准确的预测。 +知识提示(Knowledge Prompting)是一种技术,它在提示词中直接包含相关的背景知识或信息,帮助 AI 生成更准确、更丰富的回答。 -使用类似的思路,模型是否也可以在做出预测之前用于生成知识呢?这就是 [Liu 等人 2022](https://arxiv.org/pdf/2110.08387.pdf) 的论文所尝试的——生成知识以作为提示的一部分。特别是,这对于常识推理等任务有多大帮助? +## 为什么有效? -让我们尝试一个简单的提示: +1. **补充知识** - AI 可以使用你提供的知识 +2. **减少幻觉** - 减少 AI 凭空编造信息 +3. **专业领域** - 对专业领域特别有效 +4. **最新信息** - 提供 AI 训练数据之外的信息 -*提示:* -``` -高尔夫球的一部分是试图获得比其他人更高的得分。是或否? -``` +## 如何使用 + +### 基础格式 -*输出:* ``` -是。 +相关知识: +[知识内容 1] +[知识内容 2] + +请根据以上知识回答: +[你的问题] ``` -这种错误揭示了 LLM 在执行需要更多关于世界的知识的任务时的局限性。我们如何通过生成知识来改进呢? +### 示例 -首先,我们生成一些“知识”: +``` +相关知识: +- 2024 年诺贝尔物理学奖授予了机器学习领域的研究者 +- 获奖者是 Geoffrey Hinton、Yoshua Bengio 和 Yann LeCun +- 他们被称为"深度学习之父" -*提示:* +问题:2024 年诺贝尔物理学奖获奖者是谁?请简要介绍他们的贡献。 ``` -输入:希腊比墨西哥大。 -知识:希腊的面积约为131,957平方公里,而墨西哥的面积约为1,964,375平方公里,使墨西哥比希腊大了1,389%。 -输入:眼镜总是会起雾。 -知识:当你的汗水、呼吸和周围的湿度中的水蒸气落在冷的表面上,冷却并变成微小的液滴时,会在眼镜镜片上产生冷凝。你看到的是一层薄膜。你的镜片相对于你的呼吸会比较凉,尤其是当外面的空气很冷时。 +### 文档问答示例 -输入:鱼有思考能力。 -知识:鱼比它们看起来更聪明。在许多领域,如记忆力,它们的认知能力与或超过非人类灵长类动物等“更高级”的脊椎动物。鱼的长期记忆帮助它们跟踪复杂的社交关系。 +``` +已知信息: +- 产品名称:SmartPhone Pro +- 价格:5999 元 +- 处理器:A15 仿生芯片 +- 屏幕:6.1 英寸 OLED +- 电池:3200mAh +- 上市时间:2024 年 9 月 -输入:一个人一生中吸烟很多香烟的常见影响是患肺癌的几率高于正常水平。 -知识:那些一生中平均每天吸烟不到一支香烟的人,患肺癌的风险是从不吸烟者的9倍。在每天吸烟1到10支香烟之间的人群中,死于肺癌的风险几乎是从不吸烟者的12倍。 +请根据以上信息,写一段产品介绍文案。 +``` -输入:一块石头和一颗卵石大小相同。 -知识:卵石是一种根据Udden-Wentworth沉积学尺度的颗粒大小为4到64毫米的岩屑。卵石通常被认为比颗粒(直径2到4毫米)大,比卵石(直径64到256毫米)小。 +## 进阶技巧 -输入:高尔夫球的一部分是试图获得比其他人更高的得分。 -知识: -``` +### 1. 结构化知识 -*知识1:* -``` -高尔夫球的目标是以最少的杆数打完一组洞。一轮高尔夫球比赛通常包括18个洞。每个洞在标准高尔夫球场上一轮只打一次。每个杆计为一分,总杆数用于确定比赛的获胜者。 ``` +知识结构: +1. 背景:[背景信息] +2. 数据:[具体数据] +3. 结论:[总结] -*知识2:* -``` -高尔夫球是一项精密的球杆运动,竞争选手(或高尔夫球手)使用许多类型的球杆,用最少的杆数将球打入球场上一系列洞中。目标是以最低的分数完成比赛,该分数是通过将每个洞上所用的杆数相加计算出来的。得分最低的选手赢得比赛。 +请分析:[问题] ``` -我们使用 [Liu等人2022](https://arxiv.org/pdf/2110.08387.pdf) 的论文中提供的提示。 +### 2. 多来源知识 -下一步是将知识整合并得出预测。我将问题重新格式化为 QA 格式,以指导答案格式。 - -*提示:* ``` -问题:高尔夫球的一部分是试图获得比其他人更高的得分。是或否? +来源 1(官方文档): +[文档内容] -知识:高尔夫球的目标是以最少的杆数打完一组洞。一轮高尔夫球比赛通常包括18个洞。每个洞在标准高尔夫球场上一轮只打一次。每个杆计为一分,总杆数用于确定比赛的获胜者。 +来源 2(用户反馈): +[反馈内容] -解释和答案: +请综合以上信息回答:[问题] ``` -*答案 1(置信度非常高):* -``` -不是,高尔夫球的目标不是获得比其他人更高的得分。相反,目标是以最少的杆数打完一组洞。总杆数用于确定比赛的获胜者,而不是总得分。 -``` +### 3. 知识+任务分离 ``` -问题:高尔夫球的一部分是试图获得比其他人更高的得分。是或否? +## 背景知识 +[知识内容] -知识:高尔夫球是一项精密的球杆运动,竞争选手(或高尔夫球手)使用许多类型的球杆,用最少的杆数将球打入球场上一系列洞中。目标是以最低的分数完成比赛,该分数是通过将每个洞上所用的杆数相加计算出来的。得分最低的选手赢得比赛。 +## 任务 +[任务描述] -解释和答案: +## 要求 +[具体要求] ``` -*答案 2(置信度要低得多):* -``` -是的,高尔夫球的一部分是试图获得比其他人更高的得分。每个选手都试图以最少的杆数打完一组洞。总杆数用于确定比赛的获胜者,而不是总得分。得分最低的选手赢得比赛。 -``` +## 应用场景 + +| 场景 | 示例 | +|------|------| +| 专业领域 | 医学、法律、金融咨询 | +| 最新信息 | 新闻、赛事、股价 | +| 私有数据 | 企业文档、个人笔记 | +| 特定规则 | 法规、标准、协议 | + +## 注意事项 + +- 知识要准确,否则会误导 AI +- 知识量要适度,不要过多 +- 知识要与问题相关 + +## 相关技术 -这个例子发生了一些非常有趣的事情。在第一个答案中,模型非常自信,但在第二个答案中不太自信。我简化了过程以进行演示,但在得出最终答案时还有一些细节需要考虑。请查看论文以了解更多。 \ No newline at end of file +- [RAG](./rag.mdx) - 检索增强生成 +- [Few-shot](./fewshot.mdx) - 少样本学习 +- [知识图谱](./graph.mdx) - 结构化知识 \ No newline at end of file diff --git a/pages/techniques/tot.zh.mdx b/pages/techniques/tot.zh.mdx index 47e93d3af..4e5d78745 100644 --- a/pages/techniques/tot.zh.mdx +++ b/pages/techniques/tot.zh.mdx @@ -1,43 +1,125 @@ -# 思维树 (ToT) +# 思维树 (Tree of Thoughts) -import { Callout, FileTree } from 'nextra-theme-docs' -import {Screenshot} from 'components/screenshot' -import TOT from '../../img/TOT.png' -import TOT2 from '../../img/TOT2.png' -import TOT3 from '../../img/TOT3.png' +import { Callout } from 'nextra/components' -对于需要探索或预判战略的复杂任务来说,传统或简单的提示技巧是不够的。最近,[Yao et el. (2023)](https://arxiv.org/abs/2305.10601) 提出了思维树(Tree of Thoughts,ToT)框架,该框架基于思维链提示进行了总结,引导语言模型探索把思维作为中间步骤来解决通用问题。 + +思维树让 AI 在解决问题时探索多个可能的思考路径,类似人类的"深思熟虑"。 + -ToT 维护着一棵思维树,思维由连贯的语言序列表示,这个序列就是解决问题的中间步骤。使用这种方法,LM 能够自己对严谨推理过程的中间思维进行评估。LM 将生成及评估思维的能力与搜索算法(如广度优先搜索和深度优先搜索)相结合,在系统性探索思维的时候可以向前验证和回溯。 +## 什么是思维树? -ToT 框架原理如下: +思维树(Tree of Thoughts,ToT)是一种提示技术,它让 AI 在解决问题时考虑多个可能的方案,而不是只生成单一答案。 - -图片援引自:[Yao et el. (2023)](https://arxiv.org/abs/2305.10601) +## 核心思想 -ToT 需要针对不同的任务定义思维/步骤的数量以及每步的候选项数量。例如,论文中的“算 24 游戏”是一种数学推理任务,需要分成 3 个思维步骤,每一步都需要一个中间方程。而每个步骤保留最优的(best) 5 个候选项。 +``` +传统(线性): +问题 → 答案 + +思维树(分支): + 问题 + / | \ + 方案1 方案2 方案3 + ↓ ↓ ↓ + 结果1 结果2 结果3 + \ | / + 最优解 +``` + +## 为什么要用? + +1. **更全面的思考** - 探索多个可能性 +2. **避免思维定式** - 不局限于第一个想法 +3. **更好的决策** - 比较多个方案后选择最优 +4. **复杂问题** - 对需要多步推理的问题特别有效 + +## 如何使用 + +### 基础框架 + +``` +请用思维树方式解决以下问题: + +问题:[你的问题] + +步骤: +1. 列出 3-5 个可能的解决思路 +2. 对每个思路进行分析 +3. 比较各方案的优缺点 +4. 选择最优方案并解释原因 + +请详细展示思考过程。 +``` + +### 示例 -ToT 完成算 24 的游戏任务要执行广度优先搜索(BFS),每步思维的候选项都要求 LM 给出能否得到 24 的评估:“sure/maybe/impossible”(一定能/可能/不可能) 。作者讲到:“目的是得到经过少量向前尝试就可以验证正确(sure)的局部解,基于‘太大/太小’的常识消除那些不可能(impossible)的局部解,其余的局部解作为‘maybe’保留。”每步思维都要抽样得到 3 个评估结果。整个过程如下图所示: +``` +问题:如何提高产品用户留存率? + +思考树: +├── 方案1:增加用户激励机制 +│ ├── 优点:直接激励用户 +│ ├── 缺点:成本高,可能降低质量 +│ └── 评估:★★★☆☆ +│ +├── 方案2:优化产品体验 +│ ├── 优点:长期有效,口碑好 +│ ├── 缺点:需要更多开发时间 +│ └── 评估:★★★★☆ +│ +├── 方案3:增加社交功能 +│ ├── 优点:提高粘性,网络效应 +│ ├── 缺点:复杂度高 +│ └── 评估:★★★★☆ + +最优方案:方案2 + 方案3 组合 +``` - -图片援引自:[Yao et el. (2023)](https://arxiv.org/abs/2305.10601) +## 应用场景 -从下图中报告的结果来看,ToT 的表现大大超过了其他提示方法: +| 场景 | 示例 | +|------|------| +| 商业决策 | 市场策略、产品方向 | +| 创意生成 | 故事构思、营销方案 | +| 问题诊断 | 多个可能原因分析 | +| 写作规划 | 文章结构、内容策划 | - -图片援引自:[Yao et el. (2023)](https://arxiv.org/abs/2305.10601) +## 进阶技巧 + +### 1. 设定分支数量 + +``` +请考虑 3 个可能的解决方案: +- 方案 A:[方向] +- 方案 B:[方向] +- 方案 C:[方向] +``` -[这里](https://github.com/princeton-nlp/tree-of-thought-llm)还有[这里](https://github.com/jieyilong/tree-of-thought-puzzle-solver)可以找到代码例子。 +### 2. 评估每个分支 -从大方向上来看,[Yao et el. (2023)](https://arxiv.org/abs/2305.10601) 和 [Long (2023)](https://arxiv.org/abs/2305.08291) 的核心思路是类似的。两种方法都是以多轮对话搜索树的形式来增强 LLM 解决复杂问题的能力。主要区别在于 [Yao et el. (2023)](https://arxiv.org/abs/2305.10601) 采用了深度优先(DFS)/广度优先(BFS)/集束(beam)搜索,而 [Long (2023)](https://arxiv.org/abs/2305.08291) 则提出由强化学习(Reinforcement Learning)训练出的 “ToT 控制器”(ToT Controller)来驱动树的搜索策略(包括什么时候回退和搜索到哪一级回退等等)。深度优先/广度优先/集束搜索是通用搜索策略,并不针对具体问题。相比之下,由强化学习训练出的 ToT 控制器有可能从新的数据集学习,或是在自对弈(AlphaGo vs. 蛮力搜索)的过程中学习。因此,即使采用的是冻结的 LLM,基于强化学习构建的 ToT 系统仍然可以不断进化,学习新的知识。 +``` +对每个方案进行评估: +- 可行性(1-5) +- 成本(高/中/低) +- 风险(大/中/小) +``` -[Hulbert (2023)](https://github.com/dave1010/tree-of-thought-prompting) 提出了思维树(ToT)提示法,将 ToT 框架的主要概念概括成了一段简短的提示词,指导 LLM 在一次提示中对中间思维做出评估。ToT 提示词的例子如下: +### 3. 剪枝策略 ``` -假设三位不同的专家来回答这个问题。 -所有专家都写下他们思考这个问题的第一个步骤,然后与大家分享。 -然后,所有专家都写下他们思考的下一个步骤并分享。 -以此类推,直到所有专家写完他们思考的所有步骤。 -只要大家发现有专家的步骤出错了,就让这位专家离开。 -请问... +在分析过程中,如果发现某条路走不通, +及时放弃并尝试其他路径。 ``` + +## 注意事项 + +- 分支不要过多(3-5 个为宜) +- 每个分支要有独特性 +- 避免表面不同但实质相同的分支 +- 选择时要给出明确理由 + +## 相关技术 + +- [思维链](./cot.mdx) - 单线推理 +- [ReAct](./react.mdx) - 推理+行动 +- [自我反思](./art.zh.mdx) - 答案审查 \ No newline at end of file diff --git a/pages/techniques/zeroshot.zh.mdx b/pages/techniques/zeroshot.zh.mdx index 28491a796..da46c0120 100644 --- a/pages/techniques/zeroshot.zh.mdx +++ b/pages/techniques/zeroshot.zh.mdx @@ -1,21 +1,98 @@ -# 零样本提示 -如今,经过大量数据训练并调整指令的LLM能够执行零样本任务。我们在前一节中尝试了一些零样本示例。以下是我们使用的一个示例: +# 思维链提示 (Chain of Thought) + +import { Callout } from 'nextra/components' + + +思维链提示是一种让 AI 在给出最终答案之前,先展示其推理过程的技术。 + + +## 什么是思维链? + +思维链(Chain of Thought,CoT)是一种提示工程技术,它鼓励大语言模型展示其推理过程,而不仅仅是给出最终答案。 + +## 为什么有效? + +1. **提高准确性** - 让模型"思考"后再回答,减少错误 +2. **可解释性** - 用户可以看到推理过程,理解答案如何得出 +3. **复杂任务处理** - 对于多步骤推理特别有效 + +## 如何使用 + +### 基础格式 -*提示:* ``` -将文本分类为中性、负面或正面。 +问题:[问题描述] +请先分析问题,然后给出答案。 -文本:我认为这次假期还可以。 -情感: +示例: +问题:如果小明有5个苹果,小红给了他3个,小明吃了2个,小明还剩多少个苹果? +思考:首先,小明有5个苹果。小红给了他3个,所以小明有5+3=8个。然后,小明吃了2个,所以剩下8-2=6个。 +答案:6个 ``` -*输出:* +###Few-Shot 示例 + ``` -中性 +问题:10 + 5 = ? +思考:这是简单的加法题。 +答案:15 + +问题:20 + 30 = ? +思考:20加30等于50。 +答案:50 + +问题:15 + 27 = ? +思考:15加27,先算15+20=35,再加7等于42。 +答案:42 ``` -请注意,在上面的提示中,我们没有向模型提供任何示例——这就是零样本能力的作用。 +## 应用场景 + +| 场景 | 示例 | +|------|------| +| 数学推理 | 计算、应用题 | +| 逻辑推理 | 排列组合、逻辑判断 | +| 代码调试 | 分析错误、修复 bug | +| 复杂决策 | 多选项决策、风险评估 | + +## 进阶技巧 + +### 1. 指定推理格式 + +``` +请用以下格式回答: +1. 理解问题 +2. 分析条件 +3. 逐步推理 +4. 得出结论 +``` + +### 2. 添加约束 + +``` +在回答之前,先验证以下条件: +- 假设是否合理 +- 数据是否足够 +- 逻辑是否严密 +``` + +### 3. 自反思 + +``` +在给出答案后,请检查: +1. 答案是否合理? +2. 是否有遗漏的条件? +3. 是否有更简单的解法? +``` + +## 注意事项 + +- 对于简单问题,CoT 可能过于冗长 +- 推理步骤不要过多(一般 3-7 步) +- 确保推理方向正确 -指令调整已被证明可以改善零样本学习[Wei等人(2022)](https://arxiv.org/pdf/2109.01652.pdf)。指令调整本质上是在通过指令描述的数据集上微调模型的概念。此外,[RLHF](https://arxiv.org/abs/1706.03741)(来自人类反馈的强化学习)已被采用以扩展指令调整,其中模型被调整以更好地适应人类偏好。这一最新发展推动了像ChatGPT这样的模型。我们将在接下来的章节中讨论所有这些方法和方法。 +## 相关技术 -当零样本不起作用时,建议在提示中提供演示或示例,这就引出了少样本提示。在下一节中,我们将演示少样本提示。 +- [零样本提示](./zeroshot.mdx) - 无示例提示 +- [自洽性](./consistency.mdx) - 多数投票 +- [主动提示](./activeprompt.mdx) - 动态选择示例 \ No newline at end of file