问题分析与解决方案
基于公司私有组件生成代码,这个问题的本质是:由于大模型的训练数据集不包含
你公司的私有组件数据,因此不能够生成符合公司私有组件库的代码。
因此,解决问题的核心就是:让大模型知道你公司的私有组件库是什么样的。
基于这个核心,有三种解决方案:
方案一:RAG:Retrieval
(检索)- Augmented
(增强)- Generation
(生成)
RAG 技术原理简单来说:从大模型外的知识库(如私有的向量数据库、联网的实时数据等)中检索与查询相关的信息,然后结合这些信息以及原始查询,一起给到大语言模型,从而生成包含专业领域(大模型外的知识)的内容。
方案二:Fine-tuning 微调
简单说:微调就是拿别人训练好的模型(如 gpt3.5)来微调一下,让它的表现更适合自己的特定领域的任务。
但是,微调所需要的精力比 RAG 大很多,而且你的场景或许不适合用微调。👇
微软官方也推荐能用 RAG 那就别用 Fine-tuning 微调来浪费精力。
参考详见:https://learn.microsoft.com/zh-cn/azure/ai-services/openai/concepts/fine-tuning-considerations
方案三:预训练自有模型
这种方案,适合对数据安全性和隐私性很强的场景,而且对于算力的要求也高,目前阶段暂不推荐。
综上,我们选择 RAG,那如何来使用 RAG 呢?
1、基于开源知识库平台快速使用RAG
比如使用 FastGPT 的知识库能力来构建私有化组件库。
2、基于LLM应用框架来上手RAG
比如基于 LlamaIndex 来构建 RAG 应用。
下面,我们来详细认识一下 RAG 技术,并基于上面的两种 RAG 使用方式,来实现私有组件库的代码生成。