要将 Phi-3 模型应用到行业中,需要向 Phi-3 模型添加行业业务数据。我们有两种不同的选择,第一种是 RAG(检索增强生成),第二种是微调。
RAG 是数据检索 + 文本生成。企业的结构化数据和非结构化数据存储在向量数据库中。当搜索相关内容时,找到相关摘要和内容形成上下文,并结合 LLM/SLM 的文本完成能力生成内容。
微调是基于某个模型的改进。它不需要从模型算法开始,但需要不断积累数据。如果您希望在行业应用中有更精确的术语和语言表达,微调是更好的选择。但如果您的数据频繁变化,微调可能会变得复杂。
-
如果我们的答案需要引入外部数据,RAG 是最佳选择
-
如果您需要输出稳定且精确的行业知识,微调将是一个不错的选择。RAG 优先拉取相关内容,但可能无法始终准确把握专业细微差别。
-
微调需要高质量的数据集,如果只是小范围的数据,效果不会太大。RAG 更加灵活
-
微调是一个黑箱,难以理解其内部机制。但 RAG 可以更容易找到数据的来源,从而有效调整幻觉或内容错误,并提供更好的透明度。
-
垂直行业需要特定的专业词汇和表达,微调 将是最佳选择
-
问答系统,涉及不同知识点的合成,RAG 将是最佳选择
-
自动化业务流程的结合 RAG + 微调 是最佳选择
向量数据库是以数学形式存储的数据集合。向量数据库使机器学习模型更容易记住之前的输入,使机器学习可以用于支持搜索、推荐和文本生成等用例。数据可以基于相似度指标进行识别,而不是精确匹配,从而使计算机模型能够理解数据的上下文。
向量数据库是实现 RAG 的关键。我们可以通过 text-embedding-3、jina-ai-embedding 等向量模型将数据转换为向量存储。
了解更多关于创建 RAG 应用程序的信息 https://github.com/microsoft/Phi-3CookBook
微调中常用的算法是 Lora 和 QLora。如何选择?
LoRA(低秩适应)和 QLoRA(量化低秩适应)都是使用参数高效微调(PEFT)来微调大型语言模型(LLM)的技术。PEFT 技术旨在比传统方法更高效地训练模型。 LoRA 是一种独立的微调技术,通过对权重更新矩阵应用低秩近似来减少内存占用。它提供了快速的训练时间,并保持了接近传统微调方法的性能。
QLoRA 是 LoRA 的扩展版本,结合了量化技术以进一步减少内存使用。QLoRA 将预训练 LLM 中权重参数的精度量化为 4 位精度,比 LoRA 更节省内存。然而,由于额外的量化和反量化步骤,QLoRA 的训练速度比 LoRA 慢约 30%。
QLoRA 使用 LoRA 作为附加手段来修正量化过程中引入的错误。QLoRA 使得在相对较小的、高可用性的 GPU 上微调具有数十亿参数的巨大模型成为可能。例如,QLoRA 可以用仅 2 个 GPU 微调一个需要 36 个 GPU 的 70B 参数模型。
免责声明: 本文档是使用基于机器的人工智能翻译服务翻译的。尽管我们努力确保准确性,但请注意,自动翻译可能包含错误或不准确之处。应将原始语言的文档视为权威来源。对于关键信息,建议使用专业人工翻译。我们对因使用此翻译而引起的任何误解或误释不承担责任。