补录:找寻Ragflow的reranker的心酸历程

admin 2025年5月26日11:13:07评论4 views字数 2485阅读8分17秒阅读模式
这是一篇今年3月份的读书笔记,记录下我对新知识的学习过程,在不停地尝试理解中被扎得鼻青脸肿,透过文字窥探到一个百般不得其解的困惑以及苦苦追寻的心路身影,朴素而真实。认识是一个渐进式的,就到现在我还是不能清晰地明白,是技术本身不完善的问题还是我的学习理解不到位甚至是错误的认知问题。这个宝贵的心路过程怕丢了,今天补录在这里。没什么特别的技术点,只是我的感知感受,不一定对。
正文:RAGFlow是一个基于深度文档理解的开源检索增强生成(RAG)引擎,旨在通过结合信息检索和生成式AI的优势,广泛应用于需要动态生成内容且依赖外部知识库的场景,例如智能客服、文档生成与报告分析、辅助诊断、文献综述、新闻报道与投资分析等。系统架构涵盖大语言模型、文档解析器、OCR、多召回、任务调度等模块,各模块协同工作处理问题并生成答案。和Dify属于同类,但比Dify更为强大。
所以,用Ragflow替换掉Dify和ollama搭配。却发现ollama只支持chat 和 embedding类大模型,不支持reranker;就又想着用localai代替ollama,从而又变成了Ragflow+localai搭配。
一、LocalAI
Localai比ollama更有优势:LocalAI支持在普通CPU上运行,无需高性能GPU,适合资源有限的环境;所有数据处理都在本地完成,确保数据隐私和安全,适合对数据安全要求高的场景;支持更广泛的开源模型(如LLaMA、GPT-J、BLOOM等),并支持自定义训练和微调,适合需要高度定制化的用户。
(1)安装LocalAI
git clone https://github.com/mudler/LocalAI
(2)docker版有四种方式:

# CPU only image:

docker run -ti --name local-ai -p 8080:8080 localai/localai:latest-cpu

# Nvidia GPU:

docker run -ti --name local-ai -p 8080:8080 --gpus all localai/localai:latest-gpu-nvidia-cuda-12

# CPU and GPU image (bigger size):

docker run -ti --name local-ai -p 8080:8080 localai/localai:latest

# AIO images 

docker run -ti --name local-ai -p 8080:8080 localai/localai:latest-aio-cpu

(3)local-ai:
补录:找寻Ragflow的reranker的心酸历程
(3-1)这里,围绕这个local-ai命令开始了一场长久的寻找,这个local-ai在哪里呢,找寻了很久,在docker内没有,在cmd下也没有,反正就是没找到。有文章说是在AIO这个镜像中,又是在localai:latest与localai:latest-aio-cpu之间变换,最后还是没找到。
(3-2)后来,又发展到将gguf文件,用命令“docker cp D:OSAIQwen2.5-14B-Instruct-Q4_K_S.gguf e31d089d57ef:/build/models” 上传到localai的/built/models下,在webUI中可以看到gguf这个大模型,也可以在chat中使用了,用命令行测试一下:
curl -X "POST" "http://localhost:8080/v1/chat/completions" -H "Content-Type: application/json" -d "{ "model": "Qwen2.5-14B-Instruct-Q4_K_S.gguf", "messages": [{ "role": "user", "content": "北京景点?" }], "temperature": 1 }"
完好地作出了回答。
(3-3)同理,但当我用localai载入bge-reranker-v2-m3后,始终在ragflow的模型供应商中无法用localai加载到这个模型。
二、Ragflow
(1)安装Ragflow
git clone https://github.com/infiniflow/ragflow
(2)docker版有两种方式:
# Use CPU for embedding and DeepDoc tasks:

docker compose -f docker-compose.yml up -d

# To use GPU to accelerate embedding and DeepDoc tasks:

docker compose -f docker-compose-gpu.yml up -d

(3)这里我犯了一个错,让我折腾了很久

在.env配置中,有个默认的安装的slim版本,

补录:找寻Ragflow的reranker的心酸历程

没有引起我的重视, 一直都是用的默认款来安装;所以,在后面的配置中始终无法找到reranker,这才有了上面localai中安装reranker的动作。

正确的应该是:

补录:找寻Ragflow的reranker的心酸历程

安装完整版,这时就会出现bge-reranker-v2-m3这个大模型了。

就这么点差别,让我在上面折腾了三周时间。这也是水平低的表现。

三、Ragflow+Ollama

用localai确实麻烦,主要是没解决好Ragflow这个docker和LocalAI这个docker两者之间的通讯问题,所以,在ragflow中有了reranker后,又换回到ollama中。

1、在ragflow中配置好ollama模型

补录:找寻Ragflow的reranker的心酸历程

2、添加知识库时选择reranker模型,

补录:找寻Ragflow的reranker的心酸历程
总结:由于知识点的不了解,导致正确选择ragflow的docker方式,继而使在reranker模型问题上又拉入了localai作为嫁接补充,可local-ai命令又不知道在哪里找到,最终陷入了“本来是治疗A,但发现治疗A之前要先治疗B”的循环中,浪费了时间和精力,好在最终回归了正途,这番历程不可谓不曲折,但收获很大,也算是另一种补偿吧。

原文始发于微信公众号(MicroPest):补录:找寻Ragflow的reranker的心酸历程

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2025年5月26日11:13:07
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   补录:找寻Ragflow的reranker的心酸历程https://cn-sec.com/archives/4098054.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息