全球首发:第二代 RAG 系统 auto-coder.rag 相比市面主流RAG系统 20%-60% 效果提升

先看评测结果

e9904e6bf29dfb1f23ca2fa94474d6cd.jpeg

基本效果上全面碾压当前市面上某主流的一代 RAG 系统。我们在文末会放出评测数据集以及问题,使用流程。欢迎大家和其他 RAG 系统做对比,并且发出自己的评测结果。

在 9月13号,我们又新增了五道更加困难的题目,更加拉开了差距:

433c626fb0da8cf687fc5ba50156cc20.png

下面是一些评测要求和指导:

bcc70ead33b8c0488d1c05afd09ea4f7.png

9027d17e3ad362601198aaaa4863a09f.png

用户好评

有用户第一时间应用于编程的文档库召回,反馈效果:

9d691ace29f5914785b1542c5ba727c4.png

也有人第一时间用来给黑神话悟空做攻略:

ca66ea1ac83575c5866f075e8f91ec63.png

d5908e93855a835c6415c70e4db80038.png

还有人来做 Linux 内核分析:

da44edc155ac8a061dd7c6ea0d0933ec.png

效果很好,第一时间在小红书推荐了我们产品:

5cab9380437cadba50b02a35527ae61d.jpeg

第一代RAG 系统

要搞第一代 RAG 系统,大模型,向量模型,向量存储这三个是标配,接着呢,为了让效果变得更好, 就要继续加,先来个 rerank 模型,提高下精度,向量存储不够,再加个全文检索,做混合多路召回。瞬间就把系统复杂度拉满,然后又要开始做资源隔离,做运维了,保证多系统协同工作,高可用 balabala...

光把系统搞复杂是不够的,应用也要搞复杂!效果还不行,引入llama_index,这个库提供了上百种存储,召回策略,搞 oneapi, 这系统封装了无数个大模型接口。

接着发现,开发应用还是太复杂了,要不再引入个 workflow ,减轻下开发的压力,把一些工作转移给业务?然后成功转移,大家都有活干。

最后,又发现和以前大数据时代一样的问题,实时性好像不太好搞了,得搞个实时系统啊,那得再加kafka,全量批量更新向量数据库 继续折腾中。。。

当然,前面的问题还不是根本。

第一代 RAG 系统根本问题是:

以 chunk 为粒度,使用emb召回的系统,存在严重的信息损耗,并且基本不可解决。这个损耗包括:

1. 数据切片导致的信息丢失

2. 召回过程中存在chunk 同质化严重(比如topN 的chunk 可能都是类似的话)

3. chunk 的排序导致人为的将数据打乱,极大的干扰了大模型的理解

这些问题是一代RAG系统的基因问题,很难通过革新来解决,必须推倒重来。

此外,天花板还低:

1. 依赖的 emb/rerank 模型自身提升上限很低

2. 效果想要好,严重依赖人工做定制

第二代 RAG 系统: auto-coder.rag

auto-coder.rag 是一个完全 llm-native 的 RAG 系统,依托于 Deepseek 支持大窗口,高并发,成本低廉的优势以及我们自身的算法创新,实现了突破性的效果提升。不破不立,我们完全摒弃了一代RAG中的技术栈诸如向量数据库,向量模型,各种存储加工策略,召回策略等。

auto-coder.rag 无需复杂的数据预设计和处理,全流程大模型驱动,通过暴力美学完成计算。

整体流程大致分成三部分:

1. 根据 query 过滤动态文件

2. 根据 query 排序,通过窗口分区来填充信息

3. 最后基于新的信息对 query 进行解答

auto-coder.rag 创新性包括:

  1. 整体实现了百K token 输入, 个位数 token 输出,可以充分利用GPU算力,避开 decode 部分的限制,给大模型推理厂性能优化提供较大的空间,上限极高。

  2. 通过工程优化极限命中 deepseek 缓存,缓存和miss token比例为2:1,降低成本。

2. 首创对 deepseek 的128k窗口分区管理(类似内存分区管理),提供了文件区,片段区,系统buff区,最大限度了利用了窗口以及保证对信息的覆盖的完整性。

应用场景

RAG 系统几乎是大模型在企业级市场落地的基础,也是盘活企业数据最重要的一个环节。举个简单的例子,NL2SQL 最依赖的能力实际上是表召回,以及上下文召回(诸如示例,企业术语,黑话)。可以看到,一个NL2SQL系统至少需要用到两个知识库实例,知识库的准确率直接决定过了NL2SQL的准确率。

快速体验

多说无益,大家可以快速通过自己的数据来体验:

pip install -U auto-coder


auto-coder.rag serve \
--tokenizer_path <你下载的token文件路径> \
--rag_doc_filter_relevance 2 \
--doc_dir <你文档的路径>

其中 tokenizer.json 可以在下面地址中下载:

https://modelscope.cn/datasets/WilliamZhu/auto_coder_rag_financial_report 

文档路径为一个绝对路径的目录。里面支持的文件类型包括: excel, ppt,pdf, word 以及任意文本。

启动过程中会让大家填写 deepseek token,大家可以去官网申请一个。

现在,你可以使用 OpenAI SDK 来访问:

from openai import OpenAI
import json


client = OpenAI(api_key="xxxx", base_url="http://127.0.0.1:8000/v1")


response = client.chat.completions.create(
    messages=
        [ 
  {
    "role": "user",
    "content": "董事会审议通过的利润分配预案为:以2,968,907,902股为基数 这个数字准确么?"
    }],
    model="deepseek_chat",
)
print(response.choices[0].message.content)

你也可以使用 OpenAI  SDK 的流式输出。

如果你喜欢用客户端,可以使用 NextChat 之类的客户端软件:

1db7eb61904ed77b2aded579409163c2.png

评测数据集,测试问题 下载地址

大家也可以自行下载我们的评测数据集以及我们测试的问题,进行效果验证。

地址: 

https://modelscope.cn/datasets/WilliamZhu/auto_coder_rag_financial_report

<开源版>费用以及速度

  1.  测试数据集首次提问,大概7-8块钱。

  2.  测试数据集命中缓存后,3-4块钱

  3.  回答速度取决于 Deepseek 的当前的负载,单次请求一般 1-3分钟,通常第一次使用时间较长,后续会明显变快,如果当前用户较大很忙,可能时间会很长(5分钟+)。

  4. NextChat 客户端无法配置超时,所以第一次请求有可能会超时,通常第第二次就会正常。如果数据规模较大,可以直接使用 OpenAI SDK 或者其他客户端。

4. 我们允许高级用户不同阶段使用不同的模型,从而在成本,速度和效果获得一个较好的平衡。

<开源版>单实例数据规模

推荐当前一个实例总token数不要超过 600w。auto-coder.rag 启动的时候会帮你计算总 token 数。

此外,对于单个文件,你还可以用我们的工具来计算 token:

auto-coder.rag tools count \
--tokenizer_path /Users/allwefantasy/Downloads/tokenizer.json \
--file /Users/allwefantasy/data/yum/schema/schema.xlsx

细节点:

  1. 单文档最好是在 100-110k token之间, token 和 字符的换算比例 1:1.5 到 1:2,也就是不能超过200k 字符。超过了建议写个程序拆分下,太小,建议做个合并。

  2. 文档数目前不要超过千个。

开源版本我们放在 https://github.com/allwefantasy/auto-coder 中进行孵化。

最后

  1. 欢迎大家验证我们的性能指标,无论使用我们提供的测试数据还是自己的数据。

  2. 欢迎大家和其他各类 RAG 系统进行PK,并且发出评测对比。

  3. 最最重要的,欢迎将 auto-coder.rag 应用在各种场景下,让他真正的助力自己。

### Qwen2.5 RAG 搭建部署教程 #### 一、环境准备 为了成功搭建和部署Qwen2.5 RAG(Retrieval-Augmented Generation),需先准备好相应的软硬件环境。这包括但不限于满足特定性能指标的服务器设备,以及安装必要的操作系统和支持库。 对于具体的软件配置流程,可以从GitHub克隆Qwen 2.5-Coder仓库来获取最新的源码文件[^2]: ```bash git clone https://github.com/your-repo/Qwen-2.5-Coder.git cd Qwen-2.5-Coder ``` #### 二、依赖项安装 进入项目目录后,按照官方文档指示设置虚拟环境并安装Python包管理工具pip所必需的各种依赖项。通常情况下,这些操作可以通过执行`requirements.txt`中的命令完成。 #### 三、数据集预处理 RAG模型特别强调检索模块的重要性,在此之前要对用于训练的数据集做充分清洗与转换工作,使其能够被有效地索引和查询。这部分可能涉及到文本分词、去除停用词等一系列自然语言处理技术的应用。 #### 四、构建向量数据库 针对已处理好的语料库建立高效的向量存储结构,以便后续快速定位相似度最高的上下文片段作为生成过程中的辅助输入。可以考虑采用开源框架如Faiss或Annoy实现这一功能。 #### 五、微调Qwen2.5-Coder 基于上述准备工作之上,利用迁移学习方法进一步优化基础版本的大规模预训练模型参数,使之更好地适应具体应用场景下的任务需求。这里推荐使用Hugging Face Transformers库提供的API接口简化该环节的操作难度。 #### 六、集成Ollama服务端口 最后一步则是将调整完毕后的Qwen2.5-Coder实例同Ollama平台对接起来,从而允许外部应用程序通过RESTful API等方式访问内部资源和服务。有关于此部分的具体实践指南可参见相关文献说明[^1]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值