# rag **Repository Path**: yc-source/rag ## Basic Information - **Project Name**: rag - **Description**: RAG实验 - **Primary Language**: Python - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 2 - **Forks**: 0 - **Created**: 2024-05-23 - **Last Updated**: 2025-04-09 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # RAG实验项目 ## 前置条件 ### 准备可调用的本地大模型 #### 1.下载 ollama 工具 ``` shell curl https://ollama.ai/install.sh | sh ``` #### 2.在 docker 中运行 ``` shell docker run -d -v ollama:/root/.ollama -p 11434:11434 --name ollama ollama/ollama ``` #### 3.拉取和运行一个模型, 当本地没有的时候会自动拉取 ``` shell ollama run qwen:7b ``` ### 准备向量模型 ``` shell ollama pull milkey/m3e ``` ### 准备数据 目前有一些 PDF 文档 ## RAG项目实践 ### 1.数据读取 使用Python读取 PDF 文档内容, 参考 upload_data.py 脚本 ### 2. RAG 实现 参考 local_rag.py 实现了数据嵌入模型和对话 ## RAG 项目的优化 ### 1. 数据处理优化 对于 PDF 文档的数据读取增加图片内容识别 ### 2. 查询优化 重写 prompt 手动加入文档和上下文,给于大模型更多的提示内容 ### 3. 模型更换调试 #### 1. 向量模型更换 1. mxbai-embed-large 2. text-embedding-ada 3. milkey/m3e #### 2. 自然语言大模型更换 1. llama3 2. qwen:7b #### 3. 交叉验证各个向量模型和大模型的结合使用 ### 4. 增加组件 增加搜索引擎管理文档和文档内容,以便于更好的重写查询时增加本地文档数据作为提示 ### 5. 开源项目参考和实际使用验证效果 #### 1. Anythingllm 使用 Anythingllm 内置的向量模型和向量数据库管理文档,关联本地大模型,实现本地 RAG #### 2. Ragflow 使用 mysql、redis、minio 分布式处理 + 多类型文档识别 + 自选向量模型 + 本地大模型,实现本地 RAG ## RAG 项目的结论 ### 1. 相似度问题 目前自己尝试包括使用开源项目相似度都无法达到 50% 以上,这对于数值类和流程类问题来说是误差极大的 ### 2. 性能和耗时问题 目前已掌握的计算资源极少,验证困难,每次验证最少都要调用三次大模型,即使使用100亿参数以下的大模型仍需要三十分钟左右。 ### 3. 技术问题 目前实验了市面上流行的 大模型和RAG 开源系统,对于专业问题的回答仍然是不太准确,其能力仍然很差不符合作为专业工作者的工具。