本技术实施例提供了一种代码检索模型的训练方法、代码检索方法和装置,涉及数据处理技术领域,代码检索模型的训练方法,包括:获取目标代码库中的代码索引及其对应的相似索引;对代码索引进行分析得到对应的至少一个代码检索query信息;利用待训练的双塔模型分别对代码检索query信息、代码索引和相似索引进行编码,得到第一特征向量、第二特征向量和第三特征向量;计算第一特征向量与第二特征向量的第一相似度及第一特征向量与第三特征向量的第二相似度;基于第一相似度和第二相似度计算待训练的双塔模型的对比损失,并根据对比损失调整待训练的双塔模型的参数,得到训练好的代码检索模型。应该本发明实施例,提高了代码检索的准确率。
背景技术
检索增强生成(Retrieval-augmented Generation,RAG)是一种结合检索和生成技术的模型,它通过引用外部知识库的信息来生成答案或内容,具有较强的可解释性和定制能力,适用于问答系统、文档生成、智能助手等多个自然语言处理任务中。RAG以大语言模型(Large Language Model,LLM)为基础,通过向量数据库与嵌入模型结合的方式,具体的,RAG的嵌入模型对外部知识库中的内容进行编码,并通过向量数据库对编码得到的特征向量进行存储,进而在待检索查询词输入LLM之后,将已存储的特征向量作为LLM的上下文,指导LLM生成对应的响应信息,优化LLM的输出使其能够引用训练数据之外的知识库(即外部知识库)来辅助生成响应。
虽然RAG的发展能够让LLM可以连接外部知识库辅助生成响应,但RAG在一些专业知识领域上检索的准确率并不尽如人意,例如在处理编程任务中,具体如代码检索时,因用户输入的查询query信息是自然语言描述,而RAG的Embedding模型(即嵌入模型)在对query信息进行编码之后需要检索的是一段代码,基于代码与自然语言描述结构的不同,使得RAG在处理自然语言描述时无法有效理解其表示的含义,致使生成不同向量表示的代码检索结果,影响代码检索结果的准确率。
实现思路