> ## Documentation Index
> Fetch the complete documentation index at: https://docs.monostate.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# 选择您的方法

> 在 fine-tuning、从零训练或 prompt engineering 之间决定

# 选择您的训练方法

并非每个 AI 问题都需要相同的解决方案。有时您需要完整训练，有时只需要 fine-tuning，有时根本不需要训练。

## 三种方法

<CardGroup cols={3}>
  <Card title="Prompt Engineering">
    **无需训练**

    使用现有模型和巧妙的 prompts

    * 即时结果
    * 零训练成本
    * 需要 0-10 个示例
  </Card>

  <Card title="Fine-Tuning">
    **推荐方法**

    将预训练模型适配到您的需求

    * 一致的行为
    * 100-10K 个示例
    * 数小时到数天
  </Card>

  <Card title="Training from Scratch">
    **很少需要**

    构建全新的模型

    * 完全控制
    * 数百万个示例
    * 非常昂贵
  </Card>
</CardGroup>

### 1. Prompt Engineering（无需训练）

使用精心设计的 prompts 使用现有模型。

**是什么**：编写指令，让模型在没有任何训练的情况下做您想要的事情。

**示例**：

```
You are a customer service agent for TechCorp.
Always be polite and helpful.
Product return policy: 30 days with receipt.

Customer: Can I return my laptop?
```

**何时使用**：

* 快速测试想法
* 可用示例很少
* 任务在模型能力范围内
* 预算/时间限制

**优点**：

* 零训练时间
* 不需要训练数据
* 即时结果
* 免费试用

**缺点**：

* 有限的定制
* 结果不一致
* 无法添加新知识
* 推理成本更高

### 2. Fine-Tuning（推荐）

将预训练模型适配到您的特定需求。

**是什么**：采用已经理解语言/图像的模型，教它您的特定任务。

**何时使用**：

* 有数百到数千个示例
* 需要一致的行为
* 想要添加领域知识
* 构建生产系统

**优点**：

* 比从零训练更快
* 需要更少的数据
* 比 prompting 性能更好
* 比 prompting 推理成本更低

**缺点**：

* 需要训练数据
* 需要计算资源
* 需要时间训练
* 可能在小型数据集上过拟合

### 3. Training from Scratch

构建一个全新的模型。

**是什么**：从随机 weights 开始，在大规模数据集上训练。

**何时使用**：

* 创建基础模型
* 完全新颖的架构
* 无限的数据和计算
* 研究目的

**优点**：

* 完全控制
* 可以创建新颖的能力
* 没有继承的偏见

**缺点**：

* 需要大量数据（数百万个示例）
* 极其昂贵
* 需要数周到数月
* 通常不必要

## 决策框架

### 快速决策指南

<Steps>
  <Step title="检查您的数据">
    您有训练示例吗？

    * **没有** → 使用 Prompt Engineering
    * **有** → 继续步骤 2
  </Step>

  <Step title="计算您的示例">
    您有多少个示例？

    * **少于 100** → 使用 Prompt Engineering
    * **100-10,000** → 非常适合 Fine-tuning
    * **数百万** → 可以从零训练（但为什么？）
  </Step>

  <Step title="评估您的需求">
    什么最重要？

    * **部署速度** → Prompt Engineering
    * **一致的行为** → Fine-tuning
    * **新颖的架构** → Training from Scratch
  </Step>
</Steps>

### 详细比较

| 方面       | Prompt Engineering | Fine-Tuning    | Training from Scratch |
| -------- | ------------------ | -------------- | --------------------- |
| **所需数据** | 0-10 个示例           | 100-10,000 个示例 | 数百万个示例                |
| **部署时间** | 数分钟                | 数小时到数天         | 数周到数月                 |
| **成本**   | 前期 \$0             | \$10-1,000     | \$10,000+             |
| **定制**   | 有限                 | 高              | 完整                    |
| **新知识**  | 否                  | 是              | 是                     |
| **一致性**  | 可变                 | 高              | 高                     |
| **维护**   | 更新 prompts         | 定期重新训练         | 持续训练                  |

## 按用例的方法

<Tabs>
  <Tab title="客户服务">
    <Card>
      **何时使用 Prompt Engineering：**

      * 一般常见问题
      * 简单路由
      * 低量
      * 测试阶段

      **何时使用 Fine-Tuning：**

      * 公司知识
      * 品牌声音
      * 高量
      * 复杂产品
    </Card>
  </Tab>

  <Tab title="内容生成">
    <Card>
      **何时使用 Prompt Engineering：**

      * 博客文章
      * 创意写作
      * 各种格式
      * 实验

      **何时使用 Fine-Tuning：**

      * 品牌一致性
      * 技术内容
      * SEO 优化
      * 风格指南遵循
    </Card>
  </Tab>

  <Tab title="代码生成">
    <Card>
      **何时使用 Prompt Engineering：**

      * 一般编码
      * 多种语言
      * 学习/原型
      * 开源

      **何时使用 Fine-Tuning：**

      * 公司标准
      * 自定义框架
      * 领域语言
      * 安全模式
    </Card>
  </Tab>

  <Tab title="文档分析">
    <Card>
      **何时使用 Prompt Engineering：**

      * 标准格式
      * 基本提取
      * 低准确性可接受
      * 一次性任务

      **何时使用 Fine-Tuning：**

      * 自定义格式
      * 高准确性
      * 法律/医疗
      * 合规需求
    </Card>
  </Tab>
</Tabs>

## Fine-tuning 方法

<CardGroup cols={2}>
  <Card title="Standard Fine-Tuning">
    **更新所有参数**

    优点：

    * 最大准确性

    缺点：

    * 需要更多内存

    最适合：具有良好 GPU 的生产系统
  </Card>

  <Card title="LoRA">
    **Low-Rank Adaptation**

    优点：

    * 减少 90% 内存
    * 交换适配器
    * 训练更快

    最适合：大模型、有限资源
  </Card>

  <Card title="QLoRA">
    **Quantized LoRA**

    优点：

    * 在消费级 GPU 上工作
    * 4 位 quantization

    缺点：

    * 准确性略低

    最适合：实验、非常有限的资源
  </Card>

  <Card title="Prompt/Prefix Tuning">
    **仅训练 prompts**

    优点：

    * 最小内存
    * 非常快

    缺点：

    * 容量有限

    最适合：Few-shot learning、多任务
  </Card>
</CardGroup>

## 渐进式方法

<Steps>
  <Step title="阶段 1：Prompt Engineering">
    **简单开始，快速测试**

    * 测试概念
    * 收集用户反馈
    * 识别限制
    * 收集训练数据
  </Step>

  <Step title="阶段 2：Few-Shot Fine-Tuning">
    **用示例改进**

    * 使用收集的示例
    * 提高一致性
    * 减少 prompt 复杂性
    * 验证方法
  </Step>

  <Step title="阶段 3：Full Fine-Tuning">
    **为生产扩展**

    * 用更多数据扩展
    * 优化性能
    * 降低推理成本
    * 生产部署
  </Step>

  <Step title="阶段 4：持续改进">
    **不断变得更好**

    * 收集生产数据
    * 定期重新训练
    * A/B 测试
    * 性能监控
  </Step>
</Steps>

## 成本考虑

<AccordionGroup>
  <Accordion title="Prompt Engineering">
    **训练成本**：\$0

    **推理**：每 1K tokens \$0.01-0.10

    **最适合**：低量、实验

    月度估算（1M tokens）：\$10-100
  </Accordion>

  <Accordion title="Fine-Tuning">
    **训练成本**：\$10-1,000（一次性）

    **推理**：每 1K tokens \$0.001-0.01

    **最适合**：高量、生产

    月度估算（1M tokens）：\$1-10 + 托管
  </Accordion>

  <Accordion title="Training from Scratch">
    **训练成本**：\$10,000-数百万

    **推理**：根据大小可变

    **最适合**：基础模型创建者

    除非您是 OpenAI/Google，否则不推荐
  </Accordion>
</AccordionGroup>

## 数据要求

### Prompt Engineering

* **最少**：Zero-shot（无示例）
* **更好**：Few-shot（3-5 个示例）
* **最好**：Many-shot（上下文中 10+ 个示例）

### Fine-Tuning

* **最少**：50-100 个示例
* **更好**：500-1,000 个示例
* **最好**：5,000+ 个示例

### Training from Scratch

* **最少**：1M+ 个示例
* **更好**：100M+ 个示例
* **最好**：数十亿个示例

## 质量 vs 数量权衡

### 高质量，低数量

→ **仔细数据策划的 Fine-tuning**

* 精心挑选的示例
* 专家注释
* 数据增强

### 低质量，高数量

→ **使用过滤的更大模型**

* 自动清理
* 统计过滤
* Ensemble 方法

### 混合质量

→ **渐进式过滤方法**

* 从所有数据开始
* 识别质量指标
* 按质量加权

## 要避免的常见错误

<Warning>
  **太快跳到训练**

  总是先尝试 prompt engineering。您可能根本不需要训练。
</Warning>

<Warning>
  **训练数据不足**

  用 10 个示例进行 fine-tuning 不会有效。至少需要 100 个高质量示例。
</Warning>

<Warning>
  **过度工程解决方案**

  不要为标准任务从零训练。使用预训练模型。
</Warning>

<Warning>
  **忽略维护**

  模型需要更新。从第一天起就计划重新训练。
</Warning>

## 混合方法

### RAG (Retrieval Augmented Generation)

将 prompting 与外部知识结合。

**何时使用**：

* 需要可更新的知识
* 无法频繁 fine-tune
* 有结构化数据

### Ensemble Methods

组合多种方法。

**示例**：

* Prompt 用于创造力
* Fine-tuned 模型用于准确性
* 投票/组合输出

### Chain of Thought + Fine-Tuning

在推理步骤上 fine-tune。

**何时使用**：

* 需要可解释的输出
* 复杂推理任务
* 教育应用

## 做出决策

### 要问的问题

1. **我的预算是多少？**
   * 低 → Prompt engineering
   * 中等 → Fine-tuning
   * 高 → 考虑所有选项

2. **我有多少数据？**
   * 少于 100 个示例 → Prompt engineering
   * 100-10K → Fine-tuning
   * 超过 1M → 可以从零训练

3. **我的任务有多独特？**
   * 常见 → Prompt engineering
   * 专业化 → Fine-tuning
   * 新颖 → Training from Scratch

4. **我需要什么准确性？**
   * 可接受 → Prompt engineering
   * 高 → Fine-tuning
   * 完美 → 多次迭代

5. **我需要多快的结果？**
   * 今天 → Prompt engineering
   * 本周 → Fine-tuning
   * 本季度 → 任何方法

## 下一步

准备好开始训练了吗？

<CardGroup cols={3}>
  <Card title="快速开始" href="/foundations/quickstart">
    尝试您的第一个模型
  </Card>

  <Card title="选择界面" href="/foundations/choosing-interface">
    选择 UI、CLI 或 API
  </Card>

  <Card title="模型类型" href="/foundations/model-types">
    选择架构
  </Card>
</CardGroup>
