RAG算法优化+新增代码仓库支持,CodeGeeX的@repo功能效果提升

CodeGeeX在升级到第三代模型时,就引入了RAG检索增强生成的能力。即模型会根据检索到的相关背景知识生成回答,大幅减轻生成内容的幻觉性。在CodeGeeX插件中,是通过侧边栏对话框中输入“@repo”触发 RAG 技术。用户可以对开源代码仓库进行提问,更准确地获得指定开源代码库相关的内容检索和生成。

近期CodeGeeX通过对检索算法的优化,以及新增流行代码仓库的支持,使得插件中的@repo功能效果获得提升。如果你已经在IDE中安装了v2.7.0版本之后的CodeGeeX插件,那么,现在重新启动IDE,就可以体验性能提升后的“@repo”功能。

一、搜索算法优化,检索效果提升

file

使用@repo,可以针对关联的开源代码库上下文做内容检索,比如代码库中有API的最新更新、有新增的功能组件等,CodeGeeX能够在当前范围内,对信息进行检索增强生成。

file

二、新增对更多流行代码仓库的支持

根据用户反馈,增加对以下仓库的支持 (点击'@repo'图标后,输入仓库名即可找到)

  • FFmpeg/FFmpeg
  • THUDM/CodeGeeX2
  • alibaba-damo-academy/FunASR
  • element-plus/element-plus
  • gradio-app/gradio
  • huggingface/trl
  • nestjs/nest
  • nginx/nginx
  • pandas-dev/pandas
  • pmndrs/zustand
  • run-llama/llama_index
  • tiangolo/fastapi
  • vercel/next.js
  • vitejs/vite

CodeGeeX收录的流行开源仓库已经超过100+个,在输入代码仓库名称的同时,展示出的开源仓库列表会根据检索收录结果发生变化。 file

如果用户输入名称后,发现还未收录该代码仓库,则可以直接在线提交这个代码仓库的信息。

CodeGeeX插件持续地快速迭代,期待将更多功能提供给大家使用。也希望您能不断挖掘和发现CodeGeeX插件在智能编程方面的使用技巧,参加用户评测活动(活动入口详见CodeGeeX官网),一起探索CodeGeeX的丰富体验!

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
根据提供的引用内容,可以得知prompt+RAG的流程如下: 1. 首先,使用Retriever部分在知识库中检索出top-k个匹配的文档zi。 2. 然后,将query和k个文档拼接起来作为QA的prompt,送入seq2seq模型。 3. seq2seq模型生成回复y。 4. 如果需要进行Re-rank,可以使用LLM来rerank,给LLM写好prompt即可。 下面是一个简单的示例代码,演示如何使用prompt+RAG: ```python from transformers import RagTokenizer, RagRetriever, RagSequenceForGeneration # 初始化tokenizer、retriever和seq2seq模型 tokenizer = RagTokenizer.from_pretrained('facebook/rag-token-base') retriever = RagRetriever.from_pretrained('facebook/rag-token-base', index_name='exact', use_dummy_dataset=True) model = RagSequenceForGeneration.from_pretrained('facebook/rag-token-base') # 设置query和context query = "What is the capital of France?" context = "France is a country located in Western Europe. Paris, the capital city of France, is known for its romantic ambiance and iconic landmarks such as the Eiffel Tower." # 使用Retriever部分检索top-k个匹配的文档 retrieved_docs = retriever(query) # 将query和k个文档拼接起来作为QA的prompt input_dict = tokenizer.prepare_seq2seq_batch(query, retrieved_docs[:2], return_tensors='pt') generated = model.generate(input_ids=input_dict['input_ids'], attention_mask=input_dict['attention_mask']) # 输出生成的回复 generated_text = tokenizer.batch_decode(generated, skip_special_tokens=True)[0] print(generated_text) ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值