内容纲要
标签:RAG,Data Cleaning,Chunking,Embedding Models,Generation Models,Vector Search,Re‑ranking,Multimodal RAG,Game Assets,AI Workflow,LLM,Knowledge Graph
“兄弟,做个 RAG 不就清洗‑切片‑向量库嘛!”
先来一句灵魂拷问:如果连文档都没洗干净,切片没切对,向量歪到火星,你指望检索结果能靠谱?
1. 文档清洗——第一道地雷阵
常见顽疾 | Why so hard | 必杀技 |
---|---|---|
编码杂糅(PDF 字体嵌入、特殊符) | 相同字符多编码,向量稀烂 | ftfy 、正则统一编码 |
结构错乱(表格、脚注、分栏) | 视觉上连贯,文本流炸裂 | 版面分析(PDFMiner + LayoutParser)、分区域 OCR |
噪声/重复 | 多模版拷来拷去 | SimHash/MinHash 去重,正则清噪 |
语义碎片 | 标题与正文混排,层次丢失 | Markdown 化(heading 等级)、树状编号恢复 |
✨ Tips:清洗脚本要“可回滚”,别把原件炸没了;管道化 + 单元测试 = 清洗可持续。
2. 切片(Chunking)——别再一刀 512 Token
策略 | 场景 & Pros | Cons / Risk |
---|---|---|
固定窗口 + 滑动 | 快,适合统一格式手册 | 语义被硬拆;长标题被截断 |
递归分割(Recursive Text Splitter) | 先按段落→句子→词,尽量保持语义完整 | 实现稍复杂,嵌套循环耗时 |
主题聚类 (e.g., LDA, K‑Means) | 问答型知识库,能按 topic 聚段 | 初次训练要调参;主题漂移 |
结构感知(MarkDown 标题/HTML tag) | 多层级技术文档 | 依赖文档结构完整性 |
🎮 游戏资产特别版
- 3D 模型:按 节点层级(骨骼/子网格)切;
- 纹理贴图:分辨率、语义区域(UV 切片);
- 音频:静音段切、句子级 VAD;
- 脚本/配置:函数/类为粒度。
3. Embedding 模型怎么选?
模型 | 维度 | 长度 | 优势 | 盲点 |
---|---|---|---|---|
OpenAI text-embedding-3-small/large |
1536/3072 | 8192 tok | 通用、质量高 | \$ 费 \$\$,商用合规要注意 |
bge‑base / bge‑large‑zh | 768/1024 | 512 | 中文检索一把梭 | 英文 & 多模态弱 |
E5‑mistral / gte‑large | 1024 | 8192 | 欧语、指令式嵌入 | 中文需微调 |
CLIP / SigLIP | 512 | 图文对齐 | 多模态首选,纹理图完美适配 | 长文本无力 |
Lantern‑3D (mesh2vec) | 256 | N/A | 3D 网格拓扑专用 | 生态尚小,需自训 |
📝 决策口诀:
通用问答 → bge/GTE
,
多语言 → E5/GTE + LoRA
,
图文 → CLIP
,
3D → Lantern‑3D
,
音频 → AudioCLIP / Speech2Vec
。
4. 生成模型选谁?
LLM | 上下文 | 性价比 | 特点 |
---|---|---|---|
GPT‑4o | 128k | \$\$\$ | 准确,推理强,多模态 |
Claude‑3 Sonnet/Haiku | 200k | \$\$ | 长文审校,防幻觉佳 |
Gemma‑7b + QLoRA | 8k | \$ | 本地,易私有化 |
DeepSeek‑MoE 16B | 32k | \$ | 速度快,少显存 |
Yi‑34B‑Chat | 32k | \$ | 中文生成流畅 |
🎛 调参小抄:
- temperature 0.2‑0.7 保真度 vs 创新;
- top_p 0.8 常用;
- 条款敏感内容(游戏剧情泄漏)要 system prompt 限制。
5. 召回 (Retrieval) —— Top‑K & Score
- 向量检索:HNSW (FAISS) 默认
ef_search ≈ 2*K
。 - Top‑K
FAQ/短问答: 3‑5
长背景: 10‑20
避免一次吐 50 条,全埋 Prompt。 -
Score 阈值
Cosine 距离 → 相似度分数;经验:- 文本 bge:
0.35‑0.45
- CLIP 图文:
0.25‑0.3
动态阈 → P(Score|Label) ROC 拿 Youden J 最大处。
- 文本 bge:
6. 重排 (Re‑ranking) —— 别把垃圾端给 LLM
方法 | 典型模型 | 耗时 | 适用 |
---|---|---|---|
Cross‑Encoder | bge‑reranker‑base |
慢 | 高精短列表 (K≤50) |
ColBERT v2 | Learned MaxSim | 中 | 长列表 & GPU |
TEI (E5‑Rerank‑Large) | LoRA 可私有 | 中 | 多语言 |
RankLLM | Llama‑2 13B + RankHead | 慢 | 需要复杂规则融合 |
🚀 Pipeline:
向量 Top‑K → CrossEncoder 得分 → “Top‑N to LLM”,N ≈ 3‑7 通常够用。
7. 多模态 RAG 玩法
+-------------+
Asset Repo → | Feature |→ Vector DB (Hybrid) → Top‑K → Re‑rnk → LLM
(model/tex/audio| Extraction |
+-------------+
资产类型 | Feature Extractor | Embedding Dim |
---|---|---|
3D FBX/GLTF | MeshCNN / Point‑BERT | 256‑512 |
纹理贴图 | CLIP‑ViT/L14 | 768 |
音频 (WAV) | AudioCLIP | 512 |
脚本/说明 | bge‑large‑zh | 1024 |
统一检索 = MultiVector(Index ID, Modality Tag)
+ 混合搜索 (λ·TextScore + (1‑λ)·VisionScore
)。
重排阶段再用 Cross‑Modal Ranker(例如 BLIP‑2 ReRank)。
8. 游戏行业落地示例
- 素材 QA:输入关卡关键词 → RAG 返回模型、贴图、音效清单 + LLM 生成人类可读说明。
- 资产相似搜索:设计师上传草图,系统用 CLIP 搜最像的现有纹理;若无→提示生成。
- 剧情脚本连贯性检查:文本切片 + Embedding → 发现设定冲突自动标红。
- Bug 复现辅助:上传崩溃日志 + 场景截图 → 多模态检索历史工单、提交补丁 diff。
9. 小结 & 行动清单
- 先打地基:清洗‑结构化脚本流水线。
- 选粒度:结合业务“问什么”来调 Chunking;别迷信 512 Token。
- Embedding 多模态协同:文本 bge/GTE,图像 CLIP,3D Lantern,一库多索引。
- 检索‑重排“两段式”:Top‑K→CrossEncoder;阈值用 ROC 说话。
- 生成模型评估:Latency、Cost、License,三角形永远只选两边。
- 迭代监控:Hit\@K、LLM Answer Correctness、用户反馈,闭环打磨。
🐯 别被“RAG 很简单”洗脑——真正落地要把数据工程、信息检索、生成模型**三条线编到一起,才算一条龙!