Skip to main content
ClaudeWave
Skill16.8k repo starsupdated 3d ago

编写交互式教程指南

This Claude Code skill provides a comprehensive guide for creating high-quality interactive technical tutorials based on the llm-intro.md writing model. Use it when developing educational content that requires progressive knowledge scaffolding, from concrete experiences to abstract principles, organized through dependency chains, problem-solution contrasts, historical evolution, and mechanistic insights.

Install in Claude Code
Copy
git clone --depth 1 https://github.com/datawhalechina/easy-vibe /tmp/- && cp -r /tmp/-/.trae/skills/编写交互式教程指南 ~/.claude/skills/-
Then start a new Claude Code session; the skill loads automatically.

SKILL.md

# 编写交互式教程指南 (Interactive Tutorial Guide)

## 概述

本指南基于 `docs/zh-cn/appendix/llm-intro.md` 的编写模式,总结如何创建高质量的交互式技术教程。

## 一、内容展开的循序渐进原则

### 1.1 核心叙事模式

`llm-intro.md` 采用的是 **"螺旋上升"** 的叙事结构,每个知识点都遵循以下认知路径:

```
具体体验 → 抽象概念 → 历史对比 → 本质揭示 → 前沿拓展
```

#### 原则 1:从具体体验到抽象原理

**不要一上来就讲定义**,先让读者看到效果。

**示例(llm-intro.md 第 0 章)**:

```markdown
# 大语言模型入门

> 💡 **学习指南**:本章节无需编程基础,通过交互式演示带你深入了解大语言模型...

<LlmQuickStartDemo /> <!-- 先让读者玩起来 -->

## 0. 引言:从人类语言到机器计算

人类用语言交流,计算机用数字计算。
**大语言模型 (LLM)** 的本质,就是一座连接这两个世界的桥梁。
```

**要点**:

- ✅ 第一屏就是交互式演示
- ✅ 读者"玩过"后再讲原理
- ❌ 避免开篇就是"LLM 是基于 Transformer 的..."

#### 原则 2:从简单到复杂(知识依赖链)

**每个新概念都建立在前一个概念基础上**,形成知识链条。

**示例(llm-intro.md 第 1-3 章)**:

```markdown
## 1. 第一步:翻译(Tokenization)

核心任务:把文字变成数字 ID
<TokenizationDemo />

## 2. 核心难题:如何让计算机"计算"语言?

问题:只用 ID 太浪费、没内涵
方案:Embedding(稠密向量)
<EmbeddingDemo />

## 3. 从 单词 到 矩阵

回顾:Embedding 把每个词变成向量 → 把向量拼成矩阵 → GPU 高效计算
<TokenizerToMatrix />
```

**依赖关系**:

```
Tokenization(基础)
    ↓
Embedding(优化 Tokenization)
    ↓
矩阵化(优化 Embedding 的计算)
    ↓
Transformer(利用矩阵并行)
```

**要点**:

- 每章开头"回顾"上一章内容
- 明确说明"为什么要学这个"
- 用"因为...所以..."连接知识点

#### 原则 3:从问题到方案(对比式讲解)

**先提出"直白方案"的缺陷,再引出"聪明方案"**。

**示例(llm-intro.md 第 2.1-2.2 章)**:

```markdown
### 2.1 为什么不用简单的 ID?

如果只用 ID,计算机会认为"10"和"20"只是两个毫无关系的数字。

- **缺点1**:太浪费(稀疏,One-Hot 数组太大)。
- **缺点2**:没内涵(无法表示"苹果"和"香蕉"都是水果)。

### 2.2 解决方案:Embedding(稠密向量)

为了**高效**且**有内涵**地表达一个词,我们发明了 **Embedding**。
它不再用一个长长的 0/1 数组,而是用一个短一点的、填满小数的数组...
```

**模板**:

```markdown
### N.1 为什么不用 [朴素方案]?

[说明朴素方案的问题]

- **缺点1**:[具体问题]
- **缺点2**:[具体问题]

### N.2 解决方案:[优化方案]

为了解决上述问题,我们引入了 [优化方案]。
[说明优化方案的核心思想]
```

**要点**:

- 用"为什么不用..."作为章节标题
- 用列表清晰列出缺陷
- 用"为了...我们引入..."过渡到新方案

#### 原则 4:从历史到现代(进化式讲解)

**通过对比"旧技术"和"新技术",说明技术演进的动机**。

**示例(llm-intro.md 第 4 章)**:

```markdown
### 4.1 为什么要淘汰 RNN?

以前的模型(RNN)像人读书一样,**从左到右**一个字一个字读。

- **缺点1**:慢。必须读完第1个字才能读第2个,没法并行。
- **缺点2**:忘。读到文章最后,可能已经忘了开头讲什么了。

### 4.2 Transformer 强在哪?

现在的 LLM 都基于 Transformer 架构,它完美契合了矩阵并行的特性:

1.  **并行阅读**:它可以**一眼看完**整句话...
2.  **注意力机制**:让每个词都**直接关注**到其他所有词...
```

**对比表格化**:

```markdown
| 特性           | RNN                | Transformer            |
| :------------- | :----------------- | :--------------------- |
| **阅读方式**   | 从左到右,逐字处理 | 并行处理,一眼看完整句 |
| **计算效率**   | 慢(无法并行)     | 快(GPU 矩阵运算)     |
| **长距离记忆** | 容易遗忘           | 注意力机制保持连接     |
```

**要点**:

- 明确说明"为什么要淘汰"
- 用具体场景对比(如"读书方式")
- 配合 `<RNNvsTransformer />` 可视化

#### 原则 5:从现象到本质(揭秘式讲解)

**先描述用户能观察到的现象,再揭示背后的本质机制**。

**示例(llm-intro.md 第 5 章)**:

```markdown
## 5. 揭秘:从"续写"到"对话"

很多人会误以为 ChatGPT 真的懂我们在说什么,但其实它的本能只有一个:**猜下一个词**。

### 5.1 本能:疯狂续写

如果你给基础模型输入:"今天天气不错",它可能会续写:"去公园玩吧。"
但如果你输入:"美国的首都是哪里?",它可能会续写:"中国首都是哪里?..."

### 5.2 技巧:用"剧本"来对话

为了让它变成对话助手,工程师们想出了一个绝妙的办法:**角色扮演**。
我们在输入给模型的内容里,悄悄加了一些特殊的**标签**...
```

**叙事结构**:

```
现象(ChatGPT 会对话)
    ↓
打破误解(它只是在续写)
    ↓
揭示本质(Next Token Prediction)
    ↓
技巧揭秘(Template 角色扮演)
    ↓
深度交互(TrainingInferenceDemo)
```

**要点**:

- 用"揭秘"作为章节标题
- 用"很多人会误以为..."制造悬念
- 用"但其实..."转折到真相
- 用"本质只有一个"强调核心

#### 原则 6:从基础到前沿(拓展式讲解)

**在讲完核心原理后,介绍最新进展,保持内容的先进性**。

**示例(llm-intro.md 第 7 章)**:

```markdown
## 7. 前沿探索:会思考的模型、MoE 架构与线性注意力机制

随着技术的发展,我们发现仅仅靠"预测下一个词"有时候会犯蠢...
于是,新一代的 **Thinking Models**(如 OpenAI o1, DeepSeek-R1)诞生了。

### 7.1 什么是"思考"?

- **快思考 (System 1)**:凭直觉,脱口而出。容易犯错。
- **慢思考 (System 2)**:通过产生"思维链",一步步推理。

### 7.5 架构进化:从"全能"到"专家团"(Dense vs MoE)

- **Dense(稠密模型)**:比喻为一个**全能天才**...
- **MoE(混合专家模型)**:比喻为一个**专家团队**...
```

**拓展维度**:

1. **算法演进**:传统 → 现代
2. **架构优化**:Dense → MoE
3. **效率提升**:标准 Attention → Linear Attention

**要点**:

- 用"前沿探索"作为章节标题
- 说明"为什么需要新东西"
- 用比喻降低理解难度(如"专家团队")
- 提供实战指南(Prompt 风格变化)

### 1.2 章节编排的六个层次

一个完整的交互式教程应该包含以下层次(从浅到深):

```
层次 0:引子          (类比 + 核心挑战)
层次 1:基础概念      (是什么 + 怎么做)
层次 2:设计动机      (为什么不用朴素方案)
层次 3:核心机制      (本质原理 + 可视化)
层次 4:实践应用      (数据格式 + 使用场景)
层次 5:前沿拓展      (最新技术 + 未来趋势)
```

**对照检查**:

- ✅ 每个层次是否有对应章节?
- ✅ 层次之间是否有逻辑连接?
- ✅ 是否提供了交互式演示?

### 1.3 段落内的微观展开

每个段落内部也遵循 **"提出问题 → 分析问题 → 解决问题"** 的三段式结构:

```markdown
[提出问题]
计算机看不懂"汉堡"这两个字,它只认识数字。
所以,我们的第一个任务是:**把文本切分成计算机能理解的最小单位**。

[分析问题]

- **英文**:自带空格,天然容易分词(如 `I love AI`)。
- **中文**:没有空格,需要算法来切分(如 `我爱人工智能`)。

[解决问题]
现代 LLM(如 GPT-4)通常使用 **Subword Tokenization(子词分词)** 技术(如 BPE 算法)。
它的聪明之处在于:

- **常用词**(如 "apple")保持完整,作为一个 Token。
- **生僻词**(如 "applepie")拆分成常见片段("apple" + "pie")。
```

**要点**:

- 第一段:提出问题(用粗体强调任务)
- 第二段:分析问题(用列表对比)
- 第三段:解决问题(说明方案和优势)

## 二、文章结构规范

### 2.1 标题与学习指南

```markdown
# 主题名称 (English Title)

> 💡 **学习指南**:本章节[前置要求],通过[教学方式]带你深入了解[核心主题]。我们将从[起点]开始,一直到[终点]。
```

**要点**:

- 标题使用中英双语,括号标注
- 学习指南块说明:前置要求、教学方式、学习路径
- 降低读者焦虑,强调"无需XX基础"

### 2.2 引子:从问题到动机

**结构**:

1. **类比/比喻**:用日常生活中的例子引入
2. **核心挑战**:列出 3 个左右要解决的问题
3. **路线图**:预告章节结构

```markdown
## 0. 引言:从[熟悉概念]到[新概念]

[用类比连接两个概念]

它的核心任务只有一个:**[一句话总结核心目标]**。

为了实现这个目标,我们需要解决三个核心挑战:

1.  **[挑战1]**:[为什么需要]
2.  **[挑战2]**:[为什么需要]
3.  **[挑战3]**:[为什么需要]

本教程将带你从零开始,一步步拆解[核心主题]的构建过程。
```

### 2.3 主体章节结构

每个知识点遵循 **"问题 → 方案 → 对比 → 演示"** 的结构:

```markdown
## N. [章节标题]

[段落1:提出问题/当前困境]

### N.1 [子问题标题]

[解释问题产生的背景/原因]

### N.2 [解决方案标题]

[提出解决方案,解释其核心思想]

**关键点**:[一句话总结核心概念]

<[InteractiveDemo />
```

**要点**:

- 用问答式标题("什么是XX?" "为什么不用XX?")
- 用列表和粗体强调重点
- 每个关键概念后紧跟交互式演示

### 2.4 对比分析表格

当需要对比多个选项时,使用表格:

```markdown
| 特性         | [选项A]            | [选项B]            |
| :----------- | :----------------- | :----------------- |
| **核心逻辑** | **[描述]**         | **[描述]**         |
| **优点**     | [优点1]<br>[优点2] | [优点1]<br>[优点2] |
| **缺点**     | [缺点1]<br>[缺点2] | [缺点1]<br>[缺点2] |
| **适用场景** | [场景1]            | [场景2]            |

> ⚠️ **注意**:[使用建议或注意事项]
```

### 2.5 数据示例

当涉及数据格式时,提供 JSON 示例:

````markdown
- **数据示例 (JSON 格式)**:
  ```json
  // [注释说明这是什么数据]
  {
    "field1": "值1",
    "field2": "值2"
  }
  // 模型学会了:[解释这个数据的作用]
  ```
````

### 2.6 名词速查表

文章末尾提供 Glossary:

```markdown
## N. 名词速查表 (Glossary)

| 名词      | 全称        | 解释                                   |
| :-------- | :---------- | :------------------------------------- |
| **TERM1** | Full Name 1 | **简短中文说明**。详细解释为什么重要。 |
| **TERM2** | Full Name 2 | **简短中