基于Qwen2/Lllama3等大模型,部署团队私有化RAG知识库系统的详细教程(Docker+AnythingLLM)

自 ChatGPT 发布以来,大型语言模型(Large Language Model,LLM,大模型)得到了飞速发展,它在处理复杂任务、增强自然语言理解和生成类人文本等方面的能力让人惊叹,几乎各行各业均可从中获益。

然而,在一些垂直领域,这些开源或闭源的通用基础大模型也暴露了一些问题,主要体现在以下 3 个方面:

  1. 知识的局限性: 大模型的知识源于训练数据,目前主流大模型(如:通义千问、文心一言等)的训练数据基本来源于网络公开的数据。因此,非公开的、离线的、实时的数据大模型是无法获取到(如:团队内部实时业务数据、私有的文档资料等),这些数据相关的知识也就无从具备。

  2. 幻觉问题: 大模型生成人类文本底层原理是基于概率(目前还无法证明大模型有意识),所以它有时候会一本正经地胡说八道,特别是在不具备某方面的知识情况下。当我们也因缺乏这方面知识而咨询大模型时,大模型的幻觉问题会各我们造成很多困扰,因为我们也无法区分其输出的正确性。

  3. 数据的安全性: 对于个人、创新团队、企业来说,数据安全至关重要,老牛同学相信没有谁会愿意承担数据泄露的风险,把自己内部私有数据上传到第三方平台进行模型训练。这是一个矛盾:我们既要借助通用大模型能力,又要保障数据的安全性!

为了解决以上通用大模型问题,检索增强生成(Retrieval-Augmented Generation,RAG)方案就应运而生了:

RAG主要流程

RAG 的主要流程主要包含以下 2 个阶段:

  1. 数据准备阶段: 管理员将内部私有数据向量化后入库的过程,向量化是一个将文本数据转化为向量矩阵的过程,该过程会直接影响到后续检索的效果;入库即将向量数据构建索引,并存储到向量数据库的过程。

  2. 用户应用阶段: 根据用户的 Prompt 提示词,通过检索召回与 Prompt 提示词相关联的知识,并融入到原 Prompt 提示词中,作为大模型的输入 Prompt 提示词,通用大模型因此生成相应的输出。

从上面 RAG 方案我们可以看出,通过与通用大模型相结合,我们可搭建团队私有的内部本地知识库,并能有效的解决通用大模型存在的知识局限性幻觉问题隐私数据安全等问题。

目前市面上已经有多个开源 RAG 框架,老牛同学将选择AnythingLLM框架(16.8K ☆,https://github.com/Mintplex-Labs/anything-llm)与大家一起来部署我们自己或者团队内部的本地知识库。整个部署过程将涉及以下几个方面:

  1. 环境准备: AnythingLLM框架推荐使用 Docker 部署,因此我们需要提前把 Docker 安装和配置好

  2. 大模型准备: 老牛同学继续使用Qwen2-7B大模型,大家可以根据自己实际情况选择,无特殊要求

  3. RAG 部署和使用: 即 AnythingLLM 安装和配置,并最终使用我们大家的 RAG 系统

环境准备:Windows 打开虚拟化功能(Hyper-V 和 WSL)

友情提示: 老牛同学用的是 Windows 操作系统,因此下面是 Windows 的配置方式。

安装 Docker 需要用到虚拟化,因此需要 Windows 系统打开Hyper-VWSL 子系统功能。如果是 Windows 11 家庭版,默认并没有安装Hyper-V功能,可以通过以下方式进行安装:

Windows家庭版

【第一步(家庭版):安装 Hyper-V 依赖包】

  1. 新建一个 txt 临时文本,并复制以下代码并保存,之后把该临时文件重命名为Hyper-V.bat

  2. 右键以管理员方式运行Hyper-V.bat,本代码自动安装相关包,完成之后输入Y重启电脑后即可

pushd "%~dp0"``dir /b %SystemRoot%\servicing\Packages\*Hyper-V*.mum >hyper-v.txt``for /f %%i in ('findstr /i . hyper-v.txt 2^>nul') do dism /online /norestart /add-package:"%SystemRoot%\servicing\Packages\%%i"``del hyper-v.txt``Dism /online /enable-feature /featurename:Microsoft-Hyper-V-All /LimitAccess /ALL

【第二步:开启虚拟化功能】

首先,打开 Windows 功能(即:控制面板):

Windows功能

然后,勾选以下 3 个选项(Hyper-V适用于 Linux 的 Windows 子系统虚拟机平台),打开虚拟化功能:

打开虚拟化功能

点击确定之后重启电脑即可!

环境准备:Docker 安装和配置

Docker 安装和配置主要包含以下 2 个步骤:

【第一步:下载 Docker 软件】

下载和安装 Docker 软件:https://www.docker.com

如果大家和老牛同学一样,出现无法打开 Docker 官网的情况,则也可以通过以下方式下载最新的版本:

  1. 打开 Docker 中文网站:https://docker.github.net.cn/desktop/release-notes/

  2. 选择对应的安装软件,如果直接点击下载,可能还是无法下载。可以右键复制下载链接,然后通过迅雷进行下载(老牛同学亲测有效)

Docker下载

【第二步;Docker 安装和配置】

下载完成之后,安装过程与普通的软件没有区别,安装完成之后需要注销电脑:

Docker安装完成

登录操作系统之后,需要Accept同意 Docker 协议条款,然后注册登录或者Continue without signing in直接跳过,打开 Docker 软件。

设置镜像源: 点击右上角齿轮设置按钮,选择Docker Engine,打开设置页面,输入 Docker 镜像文件加速器地址:

"registry-mirrors": [`    `"https://docker.registry.cyou",`    `"https://mirror.baidubce.com"`  `]

如果以上加速器地址不可用,可以使用阿里云个人私有的地址:https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors

设置Docker镜像源

点击Apply & Restart按钮即可!

AnythingLLM 安装和配置

接下来,我们开始安装和部署AnythingLLM框架,包含以下 3 步:

第一步: 下载和启动 AnythingLLM 镜像】

docker pull mintplexlabs/anythingllm

Docker镜像下载

可以通过以下命令,查看当前 Docker 的镜像列表:

>docker images``REPOSITORY                 TAG       IMAGE ID       CREATED      SIZE``mintplexlabs/anythingllm   latest    d950fa3b8011   2 days ago   2.94GB

Docker镜像列表

第二步: 启动 AnythingLLM 框架】

Windows 系统: AnythingLLM 镜像挂载和启动命令(因为命令有多行,需要通过PowerShell执行):

# Run this in powershell terminal```$env:STORAGE_LOCATION="$HOME\Documents\anythingllm"; ` ````If(!(Test-Path $env:STORAGE_LOCATION)) {New-Item $env:STORAGE_LOCATION -ItemType Directory}; ` ````If(!(Test-Path "$env:STORAGE_LOCATION\.env")) {New-Item "$env:STORAGE_LOCATION\.env" -ItemType File}; ` ````docker run -d -p 3001:3001 ` ````--cap-add SYS_ADMIN ` ````-v "$env:STORAGE_LOCATION`:/app/server/storage" ` ````-v "$env:STORAGE_LOCATION\.env:/app/server/.env" ` ````-e STORAGE_DIR="/app/server/storage" ` ```mintplexlabs/anythingllm;

或者,Linux/MacOS 系统: AnythingLLM 镜像挂载和启动命令:

export STORAGE_LOCATION=$HOME/anythingllm && \``mkdir -p $STORAGE_LOCATION && \``touch "$STORAGE_LOCATION/.env" && \``docker run -d -p 3001:3001 \``--cap-add SYS_ADMIN \``-v ${STORAGE_LOCATION}:/app/server/storage \``-v ${STORAGE_LOCATION}/.env:/app/server/.env \``-e STORAGE_DIR="/app/server/storage" \``mintplexlabs/anythingllm

启动完成,通过浏览器打开AnythingLLM界面:http://localhost:3001

AnythingLLM初始界面

第三步: 配置 AnythingLLM】

点击Get started 按钮,进入LLM 选择页面。老牛同学在前面文章中,分别介绍了大模型通过OllamaOpenAI这 2 种主要的部署方式(包括:Llama3Qwen2Gemma2等)。

老牛同学在这里选择Ollama方式,如果大家重新设置了端口号,则需要看下 Ollama URL 端口号是否正确,默认值为:http://host.docker.internal:11434

AnythingLLM确认配置

AnythingLLM 设置确认,包括:大模型提供方、词嵌入和向量数据库,这些配置后续还可以修改。

最后,创建一个工作区,老牛同学设置的名称为:RAG-ClassmateWX

AnythingLLM 导入数据和使用

上一步配置完成之后,无需任何其他配置,就可以和大模型对话聊天了,和通过其他客户端与大模型对话没有区别。接下来,我们需要导入我们内部私有数据,并进行验证。

【第一步:导入内部数据】

我们在电脑本地新建一个 txt 文件,文件名为:为什么个人、团队等均有必要部署私有化的RAG知识库系统.txt,文件内容就是本文的开头内容:

自ChatGPT发布以来,大型语言模型(Large Language Model,LLM,大模型)得到了飞速发展,它在解决复杂任务、增强自然语言理解和生成类人文本等方面的能力让人惊叹,几乎各行各业均可从中获益。``   ``然而,在一些垂直领域,这些开源或闭源的通用的基础大模型也暴露了一些问题,主要有以下3个方面:``   ``1. **知识的局限性:** 大模型的知识源于训练数据,目前主流大模型(如:通义千问、文心一言等)的训练数据基本来源于网络公开的数据。因此,非公开的、离线的、实时的数据大模型是无法获取到(如:团队内部实时业务数据、私有的文档资料等),这些数据相关的知识也就无从具备。``2. **幻觉问题:** 大模型生成人类文本底层原理是基于概率(目前还无法证明大模型有意识),所以它有时候会**一本正经地胡说八道**,特别是在不具备某方面的知识情况下。当我们也因缺乏这方面知识而咨询大模型时,大模型的幻觉问题会各我们造成很多困扰,因为我们也无法区分其输出的正确性。``3. **数据的安全性:** 对于个人、创新团队、企业来说,**数据安全**至关重要,老牛同学相信没有谁会愿意承担数据泄露的风险,把自己内部私有数据上传到第三方平台进行模型训练。这是一个矛盾:我们既要借助通用大模型能力,又要保障数据的安全性!``   ``为了解决以上3个大模型通用问题,**检索增强生成**(Retrieval-Augmented Generation,**RAG**)方案就应运而生了!

首先,点击RAG-ClassmateWX工作空间右边的上传图标,准备上传本 txt 文件:

准备上传文件

然后,点击 txt 文件并上传,并点击Move to workspace导入到工作空间:

上传txt外部文件

最后,点击Save and Embed完成 txt 文本文件数据准备步骤(导入、向量化和入库等)。

【第二步:内部数据使用和验证】

回到主界面,输入刚才 txt 内部文件名:为什么个人、团队等均有必要部署私有化的 RAG 知识库系统

AnthingLLM的检索和结果

RAG 的回答感觉比我原文要好多了,大模型在引用了内部数据的同时,还展示自己的创造性!

同时,老牛同学用同样的问题,咨询 AnythingLLM 的底层模型,结果就比较普通通用了,大家可以对比看下:

AnythingLLM底层大模型结果

总结和问题

和我们之前的大模型部署和应用过程相比,基于 AnythingLLM 的 RAG 实现整个部署过程比较繁琐,包括环境准备、Docker 安装和配置、AnythingLLM 配置等。然而,AnythingLLM 的使用过程却相对比较简单,我们只需要上传我们内部数据文件,AnythingLLM 框架屏蔽了中间的数据提取分割、向量化处理、向量索引和入库、检索召回和重组 Prompt 提示词等过程。

同时,我们通过构建本地知识库,做了一个简单的测试验证,测试结果表明,在使用 RAG 的情况下,大模型的回答结果更加有效、更符合我们期望,同时具备了一定的创造性!

老牛同学最后提个问题:检索召唤的过程,能否使用搜索引擎(如:Elastic Search)代替?欢迎大家留言讨论,我们共同学习进步!

那么,如何系统的去学习大模型LLM?

我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。

作为一名热心肠的互联网老兵,我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。

但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。

所有资料 ⚡️ ,朋友们如果有需要全套 《LLM大模型入门+进阶学习资源包》,扫码获取~

篇幅有限,部分资料如下:

👉LLM大模型学习指南+路线汇总👈

💥大模型入门要点,扫盲必看!
在这里插入图片描述
💥既然要系统的学习大模型,那么学习路线是必不可少的,这份路线能帮助你快速梳理知识,形成自己的体系。

路线图很大就不一一展示了 (文末领取)
在这里插入图片描述

👉大模型入门实战训练👈

💥光学理论是没用的,要学会跟着一起做,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。
在这里插入图片描述

👉国内企业大模型落地应用案例👈

💥两本《中国大模型落地应用案例集》 收录了近两年151个优秀的大模型落地应用案例,这些案例覆盖了金融、医疗、教育、交通、制造等众多领域,无论是对于大模型技术的研究者,还是对于希望了解大模型技术在实际业务中如何应用的业内人士,都具有很高的参考价值。 (文末领取)
在这里插入图片描述

👉GitHub海量高星开源项目👈

💥收集整理了海量的开源项目,地址、代码、文档等等全都下载共享给大家一起学习!
在这里插入图片描述

👉LLM大模型学习视频👈

💥观看零基础学习书籍和视频,看书籍和视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。 (文末领取)
在这里插入图片描述

👉640份大模型行业报告(持续更新)👈

💥包含640份报告的合集,涵盖了AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,这套报告合集都将为您提供宝贵的信息和启示。
在这里插入图片描述

👉获取方式:

这份完整版的大模型 LLM 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

😝有需要的小伙伴,可以Vx扫描下方二维码免费领取🆓

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值