Skip to content

Repository files navigation

搜索系统训练和部署完整指南

📚 文档导航

本文档集涵盖搜索系统从预训练到部署的完整流程,包含 LLM 和 Embedding 模型的训练、优化和部署技术。


📖 核心文档

内容概览

  • LLM 预训练:Causal LM (GPT) 和 Masked LM (BERT)
  • Embedding 预训练:对比学习(InfoNCE Loss)
  • 跨模态预训练:Text-Image、Text-Video 对齐
  • 训练技术和优化:DeepSpeed ZeRO、Megatron、Flash Attention

适合阅读场景

  • 从零开始训练基础模型
  • 理解预训练的核心原理
  • 学习大规模训练的优化技术

关键知识点

  • CLM vs MLM 的区别
  • InfoNCE Loss 的原理
  • ZeRO Stage 1/2/3 的选择
  • Flash Attention 的优势

文档定位方法和技术实现 - 专注于 SFT 和偏好学习的具体方法、技术实现和训练技巧

内容概览

  • LLM SFT:指令微调、格式对齐、训练策略
  • Embedding SFT:相关性判断、排序优化、Loss 函数
  • 偏好学习方法:DPO、RLHF、IPO、KTO、ORPO 的实现
  • 多目标对齐方法:相关性 vs 多样性 vs 新鲜度
  • 高效微调技术:LoRA、Adapter、提示调优

适合阅读场景

  • 需要了解 SFT 和偏好学习的具体方法
  • 学习如何实现 DPO、RLHF 等算法
  • 需要训练技巧和最佳实践

关键知识点

  • LoRA 参数设置(r, alpha)
  • DPO beta 参数的选择
  • 多目标平衡策略
  • 数据质量要求

与其他文档的关系


文档定位对齐理论和应用 - 专注于对齐的理论基础、为什么需要对齐、DPO 的真正目的、个性化对齐和案例研究

内容概览

  • 为什么需要对齐?SFT 的局限性
  • DPO 在搜索中的真正目的(深度理论分析)
  • DPO 是否不可替代?SFT 能不能学用户偏好?
  • 个性化 vs 大众偏好
  • 个性化对齐的实现方式
  • 安全与负责任 AI 对齐
  • 案例研究:字节跳动、电商搜索、TikTok
  • 挑战与解决方案

适合阅读场景

  • 深入理解对齐理论
  • 理解为什么需要 DPO(SFT 的局限性)
  • 学习个性化搜索对齐
  • 了解生产环境的对齐实践

关键知识点

  • DPO 为什么需要(SFT 的局限性)
  • 个性化对齐的实现方式
  • 安全训练技术
  • 对齐模型的评估指标

与其他文档的关系


内容概览

  • 模型压缩:量化(INT8/FP8)、知识蒸馏、剪枝
  • 架构优化:Flash Attention、GQA、MQA
  • vLLM 和推理框架对比
  • 硬件优化:GPU、CPU、混合部署
  • 向量数据库优化:HNSW、FAISS
  • 缓存策略和性能分析

适合阅读场景

  • 优化推理性能和延迟
  • 降低部署成本
  • 学习生产环境优化技巧

关键知识点

  • AWQ vs GPTQ vs SqueezeLLM
  • vLLM vs TensorRT-LLM
  • KV Cache 优化方法
  • 向量检索加速技术

内容概览

  • Video Embedding 生成:关键帧提取、ViT 编码、多模态融合
  • Text-to-Video 检索流程
  • 多模态对齐训练
  • TikTok 场景的搜索应用

适合阅读场景

  • 处理视频内容检索
  • 理解多模态搜索
  • 学习视频 embedding 生成

关键知识点

  • 关键帧提取策略
  • 帧融合方法(平均、注意力、LSTM)
  • ViT 和 CLIP 的关系
  • 多模态 DPO

文档定位完整代码示例 - 包含可直接运行的训练和部署代码

内容概览

  • Pretraining 训练代码(DeepSpeed、Megatron)
  • SFT 训练代码(LoRA)
  • DPO 训练代码(Unsloth + LoRA)
  • Ray + vLLM 部署代码(量化、KV Cache 优化)

适合阅读场景

  • 需要可直接运行的代码
  • 学习具体的实现细节
  • 快速上手训练和部署

关键知识点

  • 每个流程的简述和 framework
  • 关键参数配置说明
  • 完整的可运行代码示例
  • 部署脚本和配置文件

与其他文档的关系


文档定位Loss 函数和伪代码 - 专门讲解各种偏好学习方法的 Loss 函数和伪代码

内容概览

  • RLHF Loss 函数和伪代码
  • DPO Loss 函数和伪代码
  • PPO Loss 函数和伪代码
  • GRPO Loss 函数和伪代码
  • KTO Loss 函数和伪代码
  • RoPE、SwiGLU、量化方法(INT4/AWQ/FP8)
  • InfoNCE Loss 函数和伪代码

适合阅读场景

  • 需要理解 Loss 函数的数学推导
  • 需要实现 Loss 函数
  • 对比不同方法的 Loss 函数

关键知识点

  • 各种 Loss 函数的数学公式
  • 伪代码实现
  • 参数含义和调优建议

与其他文档的关系


文档定位显存需求计算 - 详细计算推理和训练场景下的显存需求

内容概览

  • Qwen 2.5 8B + vLLM + KV Cache 推理显存计算
  • Llama3-8B + LoRA 训练显存计算
  • 不同配置下的显存对比
  • 显存优化建议

适合阅读场景

  • 需要估算模型训练的显存需求
  • 需要优化推理显存占用
  • 选择合适的 GPU 配置

关键知识点

  • KV Cache 显存计算公式
  • 训练激活值显存计算
  • 梯度检查点的影响
  • 不同 GPU 的显存对比

🗺️ 学习路径推荐

路径 1:理论到实践(完整学习)

1. Pretraining(了解基础)
   ↓
2. SFT & Preference Learning(学习微调)
   ↓
3. Post-Training Alignment(深入对齐)
   ↓
4. Inference Optimization(优化部署)
   ↓
5. 完整训练和部署 Pipeline(动手实践)

适合人群:想要系统学习搜索系统的完整流程


路径 2:快速上手(实战优先)

1. 完整训练和部署 Pipeline(先看代码)
   ↓
2. Pretraining(理解训练原理)
   ↓
3. SFT & Preference Learning(学习微调)
   ↓
4. Inference Optimization(优化性能)

适合人群:需要快速上手实现功能


路径 3:特定场景(按需学习)

场景 A:文本搜索

1. Pretraining(Embedding 预训练)
   ↓
2. SFT & Preference Learning(检索优化)
   ↓
3. Inference Optimization(向量检索优化)

场景 B:视频搜索

1. Video Embedding & Text-to-Video Search(视频相关)
   ↓
2. Pretraining(跨模态预训练部分)
   ↓
3. SFT & Preference Learning(跨模态 DPO)

场景 C:模型部署

1. Inference Optimization(优化技术)
   ↓
2. 完整训练和部署 Pipeline(部署代码)

🔍 快速查找

按主题查找

主题 文档 章节
Causal LM / GPT 预训练 Pretraining 1.1
BERT / MLM 预训练 Pretraining 1.2
对比学习 / InfoNCE Pretraining 2.1-2.3
LoRA 微调 SFT & Preference 1.3
DPO 原理 SFT & Preference 2.2
DPO 在搜索中的应用 Post-Training Alignment 2
vLLM 部署 Inference Optimization vLLM 章节
KV Cache 优化 Inference Optimization 内存优化
向量数据库 Inference Optimization 向量数据库优化
视频 Embedding Video Embedding 1
ViT / CLIP Video Embedding 1.2
训练代码 完整 Pipeline 1-3
部署代码 完整 Pipeline 4
显存计算 显存计算详解 1-2

按任务查找

任务 推荐文档
从零开始训练模型 Pretraining → SFT → Pipeline
微调现有模型 SFT & Preference → Pipeline
优化推理性能 Inference Optimization → Pipeline
部署生产服务 Pipeline → Inference Optimization
视频搜索系统 Video Embedding → Pretraining(跨模态)
理解 DPO Post-Training Alignment → SFT & Preference

📋 文档关系图

┌─────────────────────────────────────────────────────────────┐
│                   搜索系统完整指南                             │
└─────────────────────────────────────────────────────────────┘
                            │
        ┌───────────────────┼───────────────────┐
        │                   │                   │
        ▼                   ▼                   ▼
┌──────────────┐   ┌──────────────┐   ┌──────────────┐
│  Pretraining │   │ SFT & DPO    │   │  Inference   │
│   (理论)     │──▶│  (微调)      │──▶│ Optimization │
└──────────────┘   └──────────────┘   └──────────────┘
        │                   │                   │
        │                   ▼                   │
        │           ┌──────────────┐            │
        │           │  Post-Training│           │
        │           │  Alignment    │           │
        │           │  (对齐理论)   │           │
        │           └──────────────┘            │
        │                   │                   │
        ▼                   │                   ▼
┌──────────────┐            │           ┌──────────────┐
│    Video     │            │           │   完整 Pipeline│
│  Embedding   │            │           │   (代码实现)  │
└──────────────┘            │           └──────────────┘
                            │                   │
                            └───────────────────┘
                                    │
                            ┌───────┴───────┐
                            │   实践应用     │
                            └───────────────┘

🎯 核心概念速查

训练流程

阶段 数据 方法 Loss 目标
Pretraining 无标注数据 CLM/MLM/对比学习 Language Model Loss / InfoNCE 学习语言表示、跨模态对齐
SFT 有标注数据 监督学习 CrossEntropy / MSE 任务适应、相关性判断
DPO 用户偏好数据 直接偏好优化 DPO Loss 用户偏好、人类价值观

关键技术

  • ZeRO:DeepSpeed 的参数分片优化
  • LoRA:参数高效微调(r=8-16, alpha=16-32)
  • GQA:分组查询注意力,减少 KV Cache
  • PagedAttention:vLLM 的 KV Cache 分页管理
  • InfoNCE:对比学习的核心 Loss(temperature=0.07)

🔗 文档引用关系

完整 Pipeline 详解
  ├─ 引用 → Pretraining(理论)
  ├─ 引用 → SFT & Preference(方法)
  └─ 引用 → Inference Optimization(优化)

Video Embedding
  ├─ 引用 → Pretraining(跨模态预训练)
  └─ 引用 → SFT & Preference(跨模态 DPO)

Post-Training Alignment
  ├─ 引用 → SFT & Preference(DPO 基础)
  └─ 引用 → Pretraining(预训练基础)

💡 使用建议

新手建议

  1. 先看概述:每个文档开头都有概述,了解文档范围
  2. 跟随学习路径:按照推荐的学习路径阅读
  3. 理论与实践结合:理论文档 + 代码文档一起看

进阶建议

  1. 按需查阅:使用"快速查找"定位具体问题
  2. 对比阅读:对比不同方法的优劣
  3. 实践验证:运行代码文档中的示例

面试准备

  1. 核心流程:Pretraining → SFT → DPO → 部署
  2. 关键技术:ZeRO、LoRA、GQA、PagedAttention
  3. 实践经验:完整 Pipeline 文档中的代码示例

📝 文档更新说明

  • Pretraining:包含最新的训练技术和优化方法
  • SFT & DPO:涵盖主流微调和偏好学习方法
  • Post-Training Alignment:深入讲解对齐理论
  • Inference Optimization:包含最新的推理优化技术
  • Video Embedding:专门的视频搜索内容
  • 完整 Pipeline:包含可直接运行的代码

🤝 贡献和建议

如有问题或建议,请:

  1. 检查相关文档的详细说明
  2. 参考代码文档中的示例
  3. 查看文档内的交叉引用

📚 相关资源

外部链接

关键论文

  • CLIP: Learning Transferable Visual Models from Natural Language Supervision
  • DPO: Direct Preference Optimization
  • vLLM: Efficient Memory Management for Large Language Model Serving
  • Flash Attention: Fast and Memory-Efficient Exact Attention

最后更新:2024

文档版本:1.0


💡 提示:建议将此文档作为入口,根据你的具体需求选择合适的学习路径和文档。

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages