现如今LLM 应用 面临的主要问题
- 准确性,2. 高成本,3. 专业性,4. 时效性,5. 安全性
- 信息偏差/幻觉 (大模型由于数据缺陷/知识边界 会使用 可靠性下降)
- 知识更新滞后性 (LLM 基于静态数据集训练,可能导致知识更新滞后,无法及时反映最新信息动态。)
- 内容不可追溯: (LLM 生成的内容往往缺乏明确的信息来源,影响内容的可信度。)
- 推理能力限制:(LLM 可能缺乏必要的推理能力)
- 长文本处理能力较弱:(受限于有限的上下文窗口,处理速度随着输入长度增加而减慢)
主流方案
无训练成本
直接使用已经训练好的预训练模型,不需要额外训练,
1. 只通过输入或微调提示(Prompt Engineering)实现功能。
System Prompt + ICL(In-Context Learning)在 Prompt 中提供示例,模型基于示例进行推理+ CoT(Chain of Thought)通过推理链 分步引导,模型逐步推理以提高复杂问题的解决能力:
提供明确的上下文和示例,指导模型分步骤推理,增强回答质量。
2. 限定回答范围(Guidance):通过明确的指令限制模型输出格式和范围。
3. Retrieval Augmented Generation (RAG)通过检索外部知识,补充模型的生成能力。
- 基于检索返回的内容做Prompt增强
当前完整的 RAG 应用流程主要包含两个阶段:-
数据准备阶段:数据提取——>文本分割——>向量化(embedding)——>数据入库
-
应用阶段:用户提问——>数据检索(召回)——>注入 Prompt——>LLM 生成答案
-
- Bing-like 模式
结合全网搜索结果,增强模型的知识范围 调用通用搜索引擎(如 Bing、Google)。调用通用搜索引擎(如 Bing、Google)。
4. Function Call + Plugins 通过外部工具(如函数调用、插件)扩展模型能力。
5. Ensemble/Bagging 通过多次调用模型,使用不同提示或结果整合,提升回答的质量和一致性。
- CoT-SC(Self-Consistency):对一个问题生成多个答案,投票选出最佳答案。
- Prompt Bagging:使用多个设计不同的 Prompt 输入,结合结果进行优化。
- Ensemble Refinement:利用多个模型分别生成答案,最后组合成最终输出。
6.Reflection/System2 像人类一样非线性思考问题、reasoning、planning
- ReAct、ToT
有训练成本
1. SFT(Supervised Fine-Tuning)通过监督微调对模型进行对齐(Alignment)
- Full FT(全模型微调):调整整个模型参数,适合大规模定制。
- PEFT(Parameter-Efficient Fine-Tuning):只调整部分参数(如 LoRA),资源友好。
具体方案
- 准备标注数据集。
- 选择微调方法:
- 全模型微调(Full Fine-tuning)。
- 参数高效微调(PEFT),如 LoRA。
- 使用分布式训练框架(如 Hugging Face Trainer)进行训练。
2. 增量预训练(Incremental Pretraining)增量预训练(Incremental Pretraining)
- 在特定领域数据上继续预训练模型,增强领域能力。 MOE
3. MOE(Mixture of Experts)MOE(Mixture of Experts)
- 通过动态激活模型的部分模块,提升大模型的训练效率和推理能力。好的数据配比、数据质量、训练技巧、训练资源。
总结建议
- 如果需要快速实现功能、资源有限,优先选择无训练成本方案,如:
- 使用 Prompt Engineering(ICL + CoT)改进回答质量。
- 结合检索增强模型(RAG)。
- 借助 Function Call 和 Plugin 扩展功能。
- 如果追求高精度、领域定制化或长期优化,选择有训练成本方案,如:
- 使用 SFT 对齐模型输出格式。
- 在特定领域内增量预训练或全面预训练新模型。
选择具体实现方案需根据应用场景、技术资源和业务需求综合评估。