【实践心得】RAG入门级本地部署(Ollama+AnythingLLM) #51

Open
opened 2024-09-11 09:21:44 +08:00 by 11608857409cs · 0 comments

学员信息

刘杰-北京-产品经理 学习分组M

前言

昨天先知老师留了个作业,完成Ollama+AnythingLLM部署。见于学习初期有过一些关于两者的实践经验,所以写出来分享一下,希望能被需要它的小伙伴看到,从而更高效的完成本次作业。

image

部署专项训练

Ollama是谁?能做什么?

首先,我们按照惯例先从服务端开始,在演示之前,我觉得有必要先介绍下该软件的定位和主要特点。

  • Ollama产品定位:本地大语言模型LLM的高效运行专家。

  • Ollama产品介绍:一款开源的大型语言模型部署工具,旨在帮助用户轻松在本地运行大模型。它极大地简化了在 Docker 容器中部署和管理 LLM 的复杂过程,使得用户能够快速、高效地在本地运行强大的大型语言模型。只需简单的安装步骤,用户即可通过单条命令在本地环境中运行开源的大型语言模型。

image

(一)下载与安装Ollama

1、首先,需要根据自己的操作系统选择合适的安装方式。下载地址:https://ollama.com/download

image

2、安装完成后,并没有可视化界面。运行服务的方式有两种:

  • 双击桌面应用程序(只适用于在模型安装完成后的启动后台服务时使用)
  • 通过命令行(适用于安装/运行/删除模型、启动后台服务等全部操作)

3、命令式指令

  • 查看版本:ollama -v
  • 查看已安装模型:ollama list
  • 运行模型:ollama run <MODEL_NAME> (模型下载并运行命令)
  • 拉取模型:ollama pull <MODEL_NAME> (模型下载命令)
  • 删除制定模型:ollama rm <MODEL_NAME>
  • 显示模型信息:ollama show <MODEL_NAME>
  • 复制模型:ollama cp <SOURCE_MODEL> <DESTINATION_MODEL>
  • 帮助信息:ollama help

(二)下载大模型

通过网址https://ollama.com/library 浏览大模型列表,并搜索你要需要的模型名称<MODEL_NAME>。

image

点击进入后,选择具体模型版本,我在图中选择了qwen2:0.5b的模型,复制右侧的命令行指令,在本地进行执行,即可安装对应版本的大模型。

image

安装完成后,可以直接在命令行与模型进行对话,进行测试。
image

当然,如果在ollama中使用自有模型,也就是官方列表中没有的模型,可以通过以下命令进行创建:

ollama create 模型名字 -f <Modelfile的路径>

但需要提前自行创建一个Modelfile文件,比较简单。这里有教程:https://github.com/ollama/ollama

image

以上就介绍完ollama的安装过程了,是不是很简单呢?下面我们开始介绍AnythingLLM吧~

AnythingLLM是何许人也?

  • AnythingLLM产品定位:一个高效、可定制、开源的企业级文档聊天机器人解决方案。
  • AnythingLLM产品介绍:它是Mintplex Labs Inc.开发的一款开源 ChatGPT 等效工具,用于在本地环境中与多种文档等进行聊天,专为想要使用现有文档进行智能聊天或构建知识库的任何人而构建。它是一个全栈应用程序,可以使用商业现成的 LLM 或流行的开源 LLM 和 vectorDB 解决方案来构建私有ChatGPT,可以在本地运行,也可以远程托管并能够智能聊天以及提供的任何文件。

(一)下载与安装AnythingLLM

1、首先,需要根据自己的操作系统选择合适的安装方式。下载地址:https://anythingllm.com/download

image

2、安装完成后,我们打开软件出现这么一个加载页面。

image

3、之后我们双击启动应用程序,并开始进行一些必要的初始设置。

(二)配置步骤说明

首先,我们点击“Get started”开始,进入到LLM配置页面。这时如果ollma服务已经在运行了,那么AnythingLLM就可以将它识别出来,我们选择ollama。

image

在弹出的ollama模型列表中,选择我们运行的模型,其余设置项可以先默认。

image

Embedding模型选择他家自带的,向量数据库使用纯本地的LanceDB。(之前是直接需要自定义的,当前版本已经为大家默认好了)

image

下面这个页面我可以直接点Skip跳过,都是些问卷调查,以前没有的。

image

之后我们创建工作区,一个工作区可以理解为一套独立的环境,可以配置不同的模型、数据库、知识库等。

image

软件自己巴拉巴拉说了一堆介绍和使用引导,又兴趣可以看看。

image

在每个空间中有线程的概念,可以理解为一个个不同的会话。

image

下面我们来上传一下知识库,点击空间名称旁边的上传按钮,进入到知识库管理页面。

image

知识库支持文本、PDF、CSV、音频等类型文件,也可以上传网页地址自动抓取内容。

image

勾选具体使用文件后,点击“Move to Workspace”加入到工作空间中,点击下方按钮执行enbedding。需要等待一会。我加载了一个小米SU7的配置文档(PDF),我们来看看效果。

image

实践总结

Ollama和AnythingLLM适合RAG初学者体验

Ollama和AnythingLLM都是非常友好的工具,非常适合RAG初学者进行体验和探索。它们提供了简单易用的调用方式,让你可以快速上手,了解RAG的基本原理和应用。

支持自定义LLM

Ollama和AnythingLLM都支持自定义的大型语言模型(LLM)。你可以使用自己训练的模型,或者利用预训练的模型进行微调,满足特定领域的需求。这为RAG系统的定制化提供了很大的灵活性。

支持自定义Embedding模型和向量数据库

RAG系统的核心是利用Embedding模型对文本进行编码,并存储在向量数据库中。Ollama和AnythingLLM都支持自定义的Embedding模型和向量数据库,让你可以选择最适合自己应用场景的方案。这为RAG系统的性能优化提供了保证。

构建Naive RAG的核心组件

Embedding模型、向量数据库和LLM是构建Naive RAG系统的三大核心组件。Ollama和AnythingLLM都提供了这些组件,让你可以快速搭建起一个基本的RAG系统,并进行测试和优化。这为RAG初学者提供了很好的学习资源。

总的来说,Ollama和AnythingLLM非常适合RAG初学者进行体验和探索。让你可以快速搭建起RAG系统,并进行深入的学习和研究。希望这些建议对你的总结有所帮助!

以上就是本次的实践心得,如果有不解之处可以加我微信( LiuJie201X ),很愿意与好学之人成为朋友。
# 学员信息 刘杰-北京-产品经理 学习分组M # 前言 > 昨天先知老师留了个作业,完成Ollama+AnythingLLM部署。见于学习初期有过一些关于两者的实践经验,所以写出来分享一下,希望能被需要它的小伙伴看到,从而更高效的完成本次作业。 ![image](/attachments/e7dbc97e-7212-4bb8-a00e-3806cc37f986) # 部署专项训练 ## Ollama是谁?能做什么? 首先,我们按照惯例先从服务端开始,在演示之前,我觉得有必要先介绍下该软件的定位和主要特点。 - [x] Ollama产品定位:本地大语言模型LLM的高效运行专家。 - [x] Ollama产品介绍:一款开源的大型语言模型部署工具,旨在帮助用户轻松在本地运行大模型。它极大地简化了在 Docker 容器中部署和管理 LLM 的复杂过程,使得用户能够快速、高效地在本地运行强大的大型语言模型。只需简单的安装步骤,用户即可通过单条命令在本地环境中运行开源的大型语言模型。 ![image](/attachments/2b5fed59-258d-4109-8743-f023fe982093) ## (一)下载与安装Ollama 1、首先,需要根据自己的操作系统选择合适的安装方式。下载地址:https://ollama.com/download ![image](/attachments/2ce177ee-334e-4c26-86c1-5e11eb50c97d) 2、安装完成后,并没有可视化界面。运行服务的方式有两种: * 双击桌面应用程序(只适用于在模型安装完成后的启动后台服务时使用) * 通过命令行(适用于安装/运行/删除模型、启动后台服务等全部操作) 3、命令式指令 * 查看版本:ollama -v * 查看已安装模型:ollama list * 运行模型:ollama run <MODEL_NAME> (模型下载并运行命令) * 拉取模型:ollama pull <MODEL_NAME> (模型下载命令) * 删除制定模型:ollama rm <MODEL_NAME> * 显示模型信息:ollama show <MODEL_NAME> * 复制模型:ollama cp <SOURCE_MODEL> <DESTINATION_MODEL> * 帮助信息:ollama help ## (二)下载大模型 通过网址https://ollama.com/library 浏览大模型列表,并搜索你要需要的模型名称<MODEL_NAME>。 ![image](/attachments/c1d24abc-f8d3-46a5-a27b-6bb69294d163) 点击进入后,选择具体模型版本,我在图中选择了qwen2:0.5b的模型,复制右侧的命令行指令,在本地进行执行,即可安装对应版本的大模型。 ![image](/attachments/91dd64cb-7b3f-4bf8-9a2d-2b7a9b520c56) 安装完成后,可以直接在命令行与模型进行对话,进行测试。 <img width="650" alt="image" src="/attachments/2b85a544-6b10-41b2-aede-6d4983b2054e"> 当然,如果在ollama中使用自有模型,也就是官方列表中没有的模型,可以通过以下命令进行创建: `ollama create 模型名字 -f <Modelfile的路径>` 但需要提前自行创建一个Modelfile文件,比较简单。这里有教程:https://github.com/ollama/ollama <img width="650" alt="image" src="/attachments/ad80bedf-03ce-4d74-ab98-e48326a5a5c3"> 以上就介绍完ollama的安装过程了,是不是很简单呢?下面我们开始介绍AnythingLLM吧~ ## AnythingLLM是何许人也? - [x] AnythingLLM产品定位:一个高效、可定制、开源的企业级文档聊天机器人解决方案。 - [x] AnythingLLM产品介绍:它是Mintplex Labs Inc.开发的一款开源 ChatGPT 等效工具,用于在本地环境中与多种文档等进行聊天,专为想要使用现有文档进行智能聊天或构建知识库的任何人而构建。它是一个全栈应用程序,可以使用商业现成的 LLM 或流行的开源 LLM 和 vectorDB 解决方案来构建私有ChatGPT,可以在本地运行,也可以远程托管并能够智能聊天以及提供的任何文件。 ## (一)下载与安装AnythingLLM 1、首先,需要根据自己的操作系统选择合适的安装方式。下载地址:https://anythingllm.com/download ![image](/attachments/dc607d3a-43f3-483b-996b-105dcbde5995) 2、安装完成后,我们打开软件出现这么一个加载页面。 ![image](/attachments/49afb4c3-b38c-464c-8431-d246db793c77) 3、之后我们双击启动应用程序,并开始进行一些必要的初始设置。 ## (二)配置步骤说明 首先,我们点击“Get started”开始,进入到LLM配置页面。这时如果ollma服务已经在运行了,那么AnythingLLM就可以将它识别出来,我们选择ollama。 ![image](/attachments/0269554c-9f26-4bcb-8545-038fc39c2570) 在弹出的ollama模型列表中,选择我们运行的模型,其余设置项可以先默认。 <img width="650" alt="image" src="/attachments/488e8a92-62bc-47ae-9317-b61811b0ba74"> Embedding模型选择他家自带的,向量数据库使用纯本地的LanceDB。(之前是直接需要自定义的,当前版本已经为大家默认好了) <img width="650" alt="image" src="/attachments/c247228a-c944-4515-97bd-d05ade06230a"> 下面这个页面我可以直接点Skip跳过,都是些问卷调查,以前没有的。 <img width="650" alt="image" src="/attachments/5bafed0b-e889-4767-8fa2-d416dbd44b2c"> 之后我们创建工作区,一个工作区可以理解为一套独立的环境,可以配置不同的模型、数据库、知识库等。 ![image](/attachments/d77d9e38-e65f-4ae2-b6c4-4caa8cd72759) 软件自己巴拉巴拉说了一堆介绍和使用引导,又兴趣可以看看。 ![image](/attachments/48b1f660-a440-449a-a611-22847e2b6b76) 在每个空间中有线程的概念,可以理解为一个个不同的会话。 ![image](/attachments/ddc9a548-d161-4a6b-a19d-23a8d1f1f2ad) 下面我们来上传一下知识库,点击空间名称旁边的上传按钮,进入到知识库管理页面。 <img width="300" alt="image" src="/attachments/497e8d09-9794-4e92-b5dd-09aec6c54ae0"> 知识库支持文本、PDF、CSV、音频等类型文件,也可以上传网页地址自动抓取内容。 ![image](/attachments/68ab45a2-203c-484a-8f4b-2d1aeae9508d) 勾选具体使用文件后,点击“Move to Workspace”加入到工作空间中,点击下方按钮执行enbedding。需要等待一会。我加载了一个小米SU7的配置文档(PDF),我们来看看效果。 ![image](/attachments/438c747c-6b05-4014-9229-f1d7f526a721) ## 实践总结 ### Ollama和AnythingLLM适合RAG初学者体验 Ollama和AnythingLLM都是非常友好的工具,非常适合RAG初学者进行体验和探索。它们提供了简单易用的调用方式,让你可以快速上手,了解RAG的基本原理和应用。 ### 支持自定义LLM Ollama和AnythingLLM都支持自定义的大型语言模型(LLM)。你可以使用自己训练的模型,或者利用预训练的模型进行微调,满足特定领域的需求。这为RAG系统的定制化提供了很大的灵活性。 ### 支持自定义Embedding模型和向量数据库 RAG系统的核心是利用Embedding模型对文本进行编码,并存储在向量数据库中。Ollama和AnythingLLM都支持自定义的Embedding模型和向量数据库,让你可以选择最适合自己应用场景的方案。这为RAG系统的性能优化提供了保证。 ### 构建Naive RAG的核心组件 Embedding模型、向量数据库和LLM是构建Naive RAG系统的三大核心组件。Ollama和AnythingLLM都提供了这些组件,让你可以快速搭建起一个基本的RAG系统,并进行测试和优化。这为RAG初学者提供了很好的学习资源。 #### 总的来说,Ollama和AnythingLLM非常适合RAG初学者进行体验和探索。让你可以快速搭建起RAG系统,并进行深入的学习和研究。希望这些建议对你的总结有所帮助! ``` 以上就是本次的实践心得,如果有不解之处可以加我微信( LiuJie201X ),很愿意与好学之人成为朋友。 ```
Sign in to join this conversation.
No Milestone
No project
No Assignees
1 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: HswOAuth/llm_course#51
No description provided.