大模型相关学习(本地部署deepseek)
检索(Retrieval)的详细过程准备外部知识库:外部知识库可能来自本地的文件、搜索引擎结果、API 等。通过 Embedding(嵌入)模型,对知识文件进行解析:Embedding 的主要作用是将自然语言转化为机器理解的高维向量,并且通过这一过程捕获到文本背后的语义信息(比如不同文本之间的相似关系)。通过 Embedding(嵌入)模型,对用户的提问进行处理:用户的输入同样会经过嵌入(Embe
知识科普
-
为什么不直接使用网页版 DeepSeek?
- 我们的需求:绝对的隐私保护和个性化知识库构建。
- 场景:若希望大模型能根据企业规章制度来回答问题,一般需上传企业规章制度的附件,但仍可能面临问题。
- 数据隐私问题:联网使用时大型数据隐私性无法得到绝对保证。
- 上传文件的限制问题:网页版 AI 对于文件上传的数量、大小一般有限制并且通常需要付费。
- 仅通过附件扩展上下文功能有限:每次在新对话中提问相关问题时,仍需要重新上传附件;修改删除对话中已有的附件困难。
-
如何实现网页版 DeepSeek 不能实现的需求?
- 隐私保护:通过对话大模型(如 DeepSeek)的本地部署解决隐私问题。
- 个性化知识库构建:使用 RAG 技术(Retrieval - Augmented Generation,检索增强生成)构建个人知识库。为此需要:
- 本地部署 RAG 技术所需要的开源框架 RAGFlow。
- 本地部署 Embedding 大模型(或者直接部署自带 Embedding 模型的 RAGFlow 版本)。
为什么使用RAG技术
- 模型微调:在已有预训练模型基础上,结合特定任务数据集进一步训练,让模型在该领域表现更好,类似考前复习。
- RAG 技术:
- 原理:在生成回答前,通过信息检索从外部知识库查找相关知识,增强生成过程信息来源,提升生成质量和准确性,解决模型幻觉问题。
- 流程:
- 检索:用户提问时,系统从外部知识库检索相关内容。
- 增强:将检索信息与用户输入结合,扩展模型上下文,再传给生成模型(如 DeepSeek)。
- 生成:生成模型基于增强后的输入生成最终回答,因参考外部知识库内容,更准确可读。
什么是 Embedding?为什么除了 DeepSeek、RAGFlow 外我还需要 “Embedding 模型”?
- 检索(Retrieval)的详细过程:
- 准备外部知识库:外部知识库可能来自本地的文件、搜索引擎结果、API 等。
- 通过 Embedding(嵌入)模型,对知识文件进行解析:Embedding 的主要作用是将自然语言转化为机器理解的高维向量,并且通过这一过程捕获到文本背后的语义信息(比如不同文本之间的相似关系)。
- 通过 Embedding(嵌入)模型,对用户的提问进行处理:用户的输入同样会经过嵌入(Embedding)处理,生成一个高维向量。
- 拿用户的提问去匹配本地知识库:使用这个用户输入生成的高维向量,去查询知识库中相关的文档片段。在这个过程中,系统会利用某些相似度度量(如余弦相似度)去判断相似度。
- 模型的分类:Chat 模型、Embedding 模型;
- 简言之,Embedding 模型是用来对上传的附件进行解析的。
本地部署的全流程
- 下载 ollama,借助 ollama 将 DeepSeek 模型下载到本地运行。
- 下载 RAGflow 源代码和 Docker,利用 Docker 本地部署 RAGflow。
- 在 RAGflow 中构建个人知识库,并实现基于个人知识库的对话问答。
Ollama安装以及配置
下载
官网:Ollama
注册并下载,下载完成后直接运行exe程序进行安装。
安装完成后
添加系统配置
OLLAMA_HOST将ollama的端口暴露出来。
OLLAMA_MODELS配置ollama下载模型的存储位置(配置完重启电脑才能生效)
下载大模型(以deepseek r1 1.5b为例)
复制命令
ollama run deepseek-r1:1.5b
打开cmd执行命令完成下载
下载RAGflow源代码
GitHub的中文文档的
iragflow/README_zh.md at main · infiniflow/ragflowhttps://github.com/infiniflow/ragflow/blob/main/README_zh.md
如果不会用git的话可以直接跳到code页面下载压缩包
下载 Docker
Docker 镜像是封装好的环境,含运行 RAGflow 所需依赖、库和配置。
若安装遇问题可自行搜索报错或询问 gpt;
若镜像拉不下来,可尝试修改 docker 的镜像源。
Docker Desktop: The #1 Containerization Tool for Developers | Docker
下载并安装
安装完成后,先查看自己的window版本,家庭版不支持Hyper-V
家庭版转专业版
1.用管理员权限打开cmd窗口
2..在cmd窗口中输入 dism /online /get-targeteditions ,查询当前支持的升级的版本
dism /online /get-targeteditions
3.在cmd窗口中输入changepk.exe /productkey VK7JG-NPHTM-C97JM-9MPGT-3V66T,后一段为专业版密钥:VK7JG-NPHTM-C97JM-9MPGT-3V66T,按回车等待完成重启即可
changepk.exe /productkey VK7JG-NPHTM-C97JM-9MPGT-3V66T
打开控制面板
打开dockerDesktop修改镜像
{
"registry-mirrors" : [
"https://registry.docker-cn.com",
"http://hub-mirror.c.163.com",
"https://docker.mirrors.ustc.edu.cn",
"https://cr.console.aliyun.com",
"https://mirror.ccs.tencentyun.com"
],
"builder": {
"gc": {
"defaultKeepStorage": "20GB",
"enabled": true
}
},
"experimental": false,
"features": {
"buildkit": true
}
}
修改RAGflow的docker配置
如何不修改配置,docker会默认下载轻量的版本,轻量级的版本是没有embedding的。
进行修改
在docker文件夹中打开cmd
执行
docker compose -f docker-compose.yml up -d
执行完毕后就可以通过localhost:80,来访问ragflow
在 RAGflow 中构建个人知识库并实现基于个人知识库的对话问答
在 “模型提供商” 中添加我们本地部署的 deepseek - r1:1.5b 模型;
查看自己window环境的ipv4
创建个人知识库
Embedding模型解析方式:
General(通用):这可能指的是通用信息或常见问题的解答。
Q&A(问答):通常指常见问题及其解答的部分。
Resume(简历):可能涉及简历的撰写或示例。
Manual(手册):可能是操作手册或使用指南。
Table(表格):可能包含数据表格或信息汇总。
Paper(论文):可能涉及学术论文或相关文档。
Book(书籍):可能指参考书籍或相关阅读材料。
Laws(法律):可能涉及法律法规或相关条款。
Presentation(演示/展示):这可能指的是演示文稿或展示内容,通常用于会议、演讲或教学等场合。
One(一):这个条目可能代表某个单一的项目、概念或类别,具体含义需要结合上下文进一步理解。
Knowledge Graph(知识图谱):这是一种结构化的知识表示方式,用于展示实体之间的关系和属性,常用于搜索引擎、推荐系统等领域。
Tag(标签):标签通常用于对内容进行分类或标记,便于搜索和组织信息。
限制ai回答的长度
更多推荐
所有评论(0)