先说结果再讲部署过程,效果图如下:
上传完成后做将文档向量化并存储,处理结束后,便可开始问答,如图:
Ollama:是一个轻量级可扩展的框架,它可以轻易地帮你管理本地的众多开源大模型,并支持众多的开源大模型,包括llama 3 、qwen2、gemma等,并允许用户自定义和创建自己的模型。
本文搭建步骤如下:
- 环境配置相关说明
- 安装Ollama(大模型管理工具框架)
- 下载通义千问大模型(阿里开源模型)
- 安装AnythingLLM(前端桌面软件)
- 测试效果
开始搭建自己的知识库……
第一步:环境配置相关说明
1、配置说明
要求:电脑配置,内存至少8GB,显存至少2GB(当然越高越好),硬盘至少60GB,CPU近几年电脑基本都能满足。
本文所用电脑配置,CPU酷睿2G,4核;内存16GB,共享显存1.5GB,硬盘为2TB。
2、环境说明
需要:操作系统为Windows 10及以上,Linux系统(Centos7及以上,Ubuntu12及以上),macOS(近3年的电脑Intel芯片均可,M系列芯片未测试过不确定)。
本文所有用系统为MacOS Sonoma 14.5。
第二步:安装Ollama(大模型管理工具)
安装Ollama
首先,打开Ollama的官方网站(https://ollama.com/download),如下图所示,选择自己操作系统版本即可:
下载完成之后,双击安装,安装完成之后会在Mac上看到如下的图标,代表安装完成:
Ollama提供的有API服务,不仅仅使用命令行来使用,也可以将应用程序连接到 Ollama API;这样就可以把 AI 的功能整合到自己的软件里。
Ollama的常用命令如下:
ollama serve 启动ollama
ollama create 从模型文件创建模型
ollama show 显示模型信息
ollama run 运行模型
ollama pull 从注册表中拉取模型
ollama push 将模型推送到注册表
ollama list 列出模型
ollama cp 复制模型
ollama rm 删除模型
ollama help 获取有关任何命令的帮助信息
以下是如何连接和使用 Ollama API 的步骤:
1、默认地址和端口:Ollama API 的默认地址是http://localhost:11434。
2、可以通过系统环境变量修改端口号。如变量名:OLLAMA_HOST变量值(端口)::8999 ;注意修改之后一定要重启ollama服务,如图:
MacOS,编辑 vim ~/.zshrc 或 vim /etc/profile 文件,最后行增加内容如图
Windows,找一张Win下环境变量图参考
3、我这里没有做更改,直接使用是默认:
具体的API请求格式请看官网:Ollama官网API 。
我在本地用API测试如下:
第三步:下载通义千问大模型(阿里开源模型)
在Ollama的官方网站有一个Models菜单,如下图所示:
点击即可看到Ollama所支持的所有大模型列表,这里的下拉列表有很多,大家可以自行研究:
从上图点击“qwen2“进入该大模型的详细介绍页面,如下图所示:
点击红圈的按钮,即可复制指令,直接在命令提示符下运行即可,如下图所示,即会开始下载大模型并自动化完成部署:
安装完成之后,会马上有一个基于命令行的交互界面,可以输入prompt指令,并获得返回结果,如下图所示:
安装成功!!!
- 第四步:安装AnythingLLM(前端桌面软件)
首先下载:AnythingLLM安装(https://useanything.com/download)
下载并安装后,会有这样的图标:
启动它,首次运行如图:
我这里已经配置好了,打开后直接是这样的界面了。
搭建一个本地知识库,会涉及到三个关键点:
1、LLM Model,大语言模型,它负责处理和理解自然语言。
2、Embedding Model,嵌入模型,它负责把高维度的数据转化为低维度的嵌入空间,这个数据处理过程在RAG中非常重要。
3、Vector Store,向量数据库,专门用来高效处理大规模向量数据。
1、本地大模型选择
选择 Ollama,填入 Ollama 的 http://127.0.0.1:11434 端口,然后选择你下载的模型。当然你也可以使用 OpenAI,使用更强大的云端模型,提供基础模型支持。但这样的话,就不是完全本地化的私有部署了。
【群内不定期更新资料,可 站内消息 或 +V: HelloHx2016】
LLM Preference配置如下:
1)、LLM provider: Ollama
2)、URL:http://127.0.0.1:11434
3)、Chat Model Selection: 选择你们安装的模型,我的是qwen2:7b
4)、Token context window: 4096
2、Embedding 配置
可以选择:https://ollama.com/library/nomic-embed-text 或者AnythingLLM 自带的 AnythingLLMEmbedder。我这里选择的是qwen2:7b
Embedding选项配置如下:
Embedding: 选择 ollama
Ollama Base URL:http://127.0.0.1:11434
Embedding Model Selection: qwen2:7b
Token context window: 8192
3、向量数据库配置
AnythingLLM 默认使用内置的向量数据库 LanceDB。
这是一款无服务器向量数据库,可嵌入到应用程序中,支持向量搜索、全文搜索和 SQL。
我们也可以选择 Chroma、Milvus、Pinecone 等向量数据库。
我这里选择是内置向量数据库选择LanceDB。
4、接下来就算是完成了,应该是这样的界面,如果是第一次配置
5、会让你填写信息,可填可不填
6、创建工作区
7、进入工作区聊天界面
至此安装完成。
第五步:测试效果
1、导入外部文档
点击任何一个红框都可上传文档。
2、操作说明
1)、拖拽上传文档
2)、选择文档
3)、移到工作区
4)、保存并进行嵌入向量化处理
3、对话问答测试
到这里就结束了。就已经搭建好了自己的一个本地的知识库。
4、更改设置
点击空间的设置按钮并切换为Query状态后,模型将仅在找到文档上下文时提供答案(回答会更加绑定于知识库)。
修改前面的推理模型或者嵌入模型,以及数据库,路径如图。
至此全部结束。