前言
当下人工智能(Generative AI)快速发展,各种大模型(文心一言、通义千问、豆包、混元等)以及文生图、文生视频、以及其他功能性AI层出不穷。目前AI的发展趋势从增加参数数量使大模型更加智能转向大模型在行业内的应用落地。
而对于专利相关从业人员以及科技型公司,因为技术保密等原因不适合利用公版大模型处理私域数据,例如利用大模型对技术交底书做技术点提炼时,需要上传该技术交底书给大模型进行处理,此时就有可能导致技术内容被公开;又或者技术人员希望利用大模型对技术内容进行扩展、组合时,也有可能将新形成的技术方案被公开。本文介绍一种可部署于本地的大模型应用:“本地大模型+知识库(RAG,检索增强生成)”,有助于解决上述的问题。
01
本地大模型+知识库RAG
的主要应用场景
知识问答、文档生成和内容总结:
使用RAG可以很好的补充大模型在专业领域知识上的不足,并且随着专业领域知识的不断积累,可以不断提升回答质量。
02
数据安全性
因为本地大模型的设计初衷是在设备本地实现AI智能化,大模型下载到本地后,其处理和分析过程均在本地进行,不会将处理后的数据或模型更新再次上传到任何服务器,从而确保了数据的本地化和隐私保护。
03
本地大模型+知识库RAG原理
RAG是一种通过整合外部知识库来增强大模型生成结果的模式。RAG工作流程包括三个关键阶段:
数据准备阶段:语料库(私域数据)被划分为离散块,然后使用本地大模型的编码器模型构建向量索引。
数据检索阶段:RAG使用算法从知识库中找到与输入查询相关的文档或段落。这些检索到的信息将作为提示词Prompt的补充。
生成阶段:RAG将检索到的文档与原始查询结合,构建一个详细的Prompt使大型语言模型(LLM)生成回答。
RAG的关键优势在于它不需要为特定任务重新训练LLM,用户可以添加外部知识库,丰富输入并从而改进模型输出精度。
04
本地大模型+知识库RAG部署
1)下载Ollama(本文均以windows为例)
Ollama 是一款开源的大语言模型服务工具,它可以帮助用户在本地环境快速部署和管理大型语言模型。软件安装完成后在官网选择要下载的大模型,复制下载命令。
2)在windows的命令行(在搜索栏中输入cmd,回车)中执行下载命令
下载完成后可以通过命令行中输入指令与大模型进行交互,但使用命令行的交互方式非常不方便,接下来还需要结合大模型可视化工具OpenWebUI与大模型交互。
3)下载并安装Docker
Docker提供了安装、运行大模型可视化工具OpenWebUI所有的环境依赖。
4)使用Docker安装OpenWebUI
5)前4步都完成后,在浏览器中输入http://localhost:3000/即可进入与大模型的交互界面
6)上传本地文档
7)在对话框中输入“#”选择引入所有文档或者特定文档
之后在对话框中对大模型提出问题时,大模型的回答就会结合所上传的本地文档来生成回答。
至此便完成了大模型+RAG的本地部署,但目前只能在本机访问,还需要为其他用户提供远程访问方式。
05
为外部用户提供远程访问本地大模型
1)安装chocolatey
2)安装内网穿透工具ngrok
3)ngrok网站注册获取鉴权码
在命令行中输入上面命令添加鉴权。
4)建立安全访问通道
命令行中输入:ngrok http http://localhost:3000
输入红色方框内的网址便可以通过外网远程访问部署的本地大模型。
06
其他本地大模型可视化软件
还可以使用其他大模型可视化交互软件,例如AnythingLLM,支持更加丰富的RAG设置(可为不同项目设置不同本地文档)。
总结
通过搭建本地大模型+知识库,相当于构建了一个私人智能小助手,不断的知识积累让这个私人智能小助手更专业,对于专利从业人员、科技公司/部门、个人用户都可以根据自身需求灵活搭建。就目前的使用结果来看,RAG对上传内容明确、格式标准的文档输出结果比较好,另外也可以通过大模型可视化工具调整RAG相关的参数使生成内容更准确,此外随着大模型的愈加智能,以及本地文档积累愈加丰富,得到的结果也会更符合我们的期望,为我们的技术积累赋予智能。