基于Ollama+AnythingLLM轻松打造本地大模型知识库

server/2024/12/15 3:39:36/

随着人工智能技术的快速发展,大型语言模型(LLM)已成为自然语言处理领域的重要工具。然而,这些模型的运行通常需要大量的计算资源和复杂的部署流程。为了解决这个问题,Ollama应运而生,成为了一个高效的本地大语言模型LLM运行专家。

Ollama

Ollama简介

Ollama是一个开源的大型语言模型服务工具,它帮助用户快速在本地运行大模型。通过简单的安装指令,用户可以执行一条命令就在本地运行开源大型语言模型,如Llama 2和最新开源的Llama 3。Ollama极大地简化了在Docker容器内部署和管理LLM的过程,使得用户能够快速地在本地运行大型语言模型

Ollama的特点与优势

  1. 功能齐全:Ollama将模型权重、配置和数据捆绑到一个包中,定义成Modelfile。它优化了设置和配置细节,包括GPU使用情况,从而提高了模型运行的效率。

  2. 轻量级:Ollama的代码简洁明了,运行时占用资源少。这使得它能够在本地高效地运行,不需要大量的计算资源。此外,它还支持热加载模型文件,无需重新启动即可切换不同的模型,这使得它非常灵活多变。

  3. 易用性:Ollama提供了多种安装方式,支持Mac和Linux平台,并提供了Docker镜像。用户只需按照安装指南进行操作即可完成安装,无需具备专业的技术背景。

使用Ollama在本地运行大型语言模型

首先,访问Ollama官网(点此到达)。在Mac上安装尤为简单,直接下载和运行软件包即可。

image.png

点击下载,选择适配自己电脑的版本。

image.png

Windows下载完之后电脑也没弹出快捷启动方式啥的,不知道是不是bug,我这里一般是点击缩略符进到日志目录下,再右键打开终端。

image.png

image.png

再回到Ollama官网,点击右上角的Models。

image.png

可以看到诸多模型如下:

image.png
image.png

我们点击llama3,可以看到如下界面:

image.png

点击latest,可以选择模型的类型,笔记本运行建议8b,服务器可以选择70b(作者笔记本显卡为RTX4070)。

image.png

点击复制按钮,粘贴命令行到终端框,执行即可。

ollama run llama3:8b

image.png
image.png

安装好后如下所示:

image.png

image.png

AnythingLLM

AnythingLLM简介

AnythingLLM 是 Mintplex Labs Inc. 开发的一款可以与任何内容聊天的私人 ChatGPT,是高效、可定制、开源的企业级文档聊天机器人解决方案。它能够将任何文档、资源或内容片段转化为大语言模型(LLM)在聊天中可以利用的相关上下文。

AnythingLLM特点

  • 多用户实例支持和权限管理

  • 全新的可嵌入式聊天小部件,适用于您的网站

  • 支持多种文档类型(PDF、TXT、DOCX等)

  • 通过简单的用户界面管理您的向量数据库中的文档

  • 两种聊天模式:对话模式和查询模式。对话模式保留之前的问题和修改记录。查询模式用于对您的文档进行简单的问答。

  • 聊天中的引用文献功能

  • 完全适用于云部署。

  • "自带 LLM "模型。

  • 极其高效的成本节约措施,用于管理非常大的文档。您将永远不会为嵌入的大型文档或转录付费超过一次。比其他文档聊天机器人解决方案更省成本,降低 90%。

  • 提供完整的开发者 API,用于自定义集成!

AnythingLLM下载

AnythingLLM是采用MIT许可证的开源框架,支持快速在本地部署基于检索增强生成(RAG)的大模型应用。

在不调用外部接口、不发送本地数据的情况下,确保用户数据的安全。点此下载

最近 AnythingLLM推出了桌面应用,可以在自己的笔记本电脑上下载使用,目前支持的操作系统包括MacOS,Windows和Linux。

image.png

AnythingLLM默认通过Ollama来使用LLama2 7B,Mistral 7B,Gemma 2B等模型,也可以调用OpenAI、Gemini、Mistral等大模型的API服务。

此前,我已经安装了Ollama,那么只要选择Ollama,输入调用的API接口URL,再选择此前已经下载的Gemma模型即可。

在Ollama终端中输入:Ollama serve ,即可将Ollama调整为后端服务器模式,由于我之前已经开启,所以此处报错error。

Ollama serve

image.png

下面分别填入本地地址端口、已下载的模型名称、4096。

image.png

AnythingLLM内置了一个嵌入模型 all-Mini-L6-v2,无需任何配置。该模型也可以在HuggingFace下载。同时,系统也支持OpenAI、LocalAi、Ollama提供的嵌入模型。

比如,Ollama上可供下载运行的嵌入模型有nomic-embed-text,据称性能超过OpenAI的text-embedding-ada-002和text-embedding-3-small。

image.png

AnythingLLM默认使用内置的向量数据库LanceDB。这是一款无服务器向量数据库,可嵌入到应用程序中,支持向量搜索、全文搜索和SQL。我们也可以选用Chroma、Milvus、Pinecone等向量数据库。

image.png

AnythingLLM可以支持PDF,TXT,DOCX等文档,可以提取文档中的文本信息,经过嵌入模型(Embedding Models),保存在向量数据库中,并通过一个简单的UI界面管理这些文档。

为管理这些文档,AnythingLLM引入工作区(workspace)的概念,作为文档的容器,可以在一个工作区内共享文档,但是工作区之间隔离。

image.png

其中,AnythingLLM既可以上传文档,也可以抓取网页信息。新建之后点击如下红色区域:

image.png
image.png

这里我们选择一个网页fetch一下,更新到workspace时大致花费了10分钟左右。

image.png

这个回答也算是成功RAG了,但是其实不是很准确,以后在文本召回和重排等方面还可以进一步调优和完善。

image.png

另外一个值得关注的点是,Anything支持多用户模式,有3种角色的权限管理。

  • 系统会默认创建一个管理员(Admin)账号,拥有全部的管理权限。

  • 第二种角色是Manager账号,可管理所有工作区和文档,但是不能管理大模型、嵌入模型和向量数据库。

  • 普通用户账号,则只能基于已授权的工作区与大模型对话,不能对工作区和系统配置做任何更改。

总结

Ollama与AnythingLLM是两款旨在简化本地部署与使用大型语言模型(LLMs)的创新工具。它们响应了人工智能技术快速发展背景下,对高效利用LLMs处理自然语言任务的需求。

Ollama作为开源LLM服务工具,以功能全面、轻量化和高度易用为特点。它将模型、配置与数据封装为Modelfile,优化GPU使用,提高运行效率;占用资源少且支持模型热加载,增强了灵活性。用户通过其官网可轻松下载适用于Mac或Linux的软件包,借助Docker镜像实现一键部署。Ollama还提供丰富的模型库,如Llama 2和Llama 3,方便用户快速在本地运行大型语言模型

AnythingLLM则是Mintplex Labs Inc.开发的面向企业级文档聊天机器人解决方案。它具有多用户管理、丰富文档支持、高效成本优化及云部署友好等特性。支持多种文档格式,提供对话与查询两种聊天模式,内置引用文献功能,并通过一次性处理与存储文档大幅降低成本。用户可下载适用于多种操作系统的桌面应用,内含预置模型,并支持OpenAI、Gemini、Mistral等第三方模型API接入。此外,AnythingLLM集成了向量数据库LanceDB,通过工作区概念实现文档管理与共享。

未来,随着技术持续迭代与优化,这两款工具有望在精准度、性能、用户体验等方面取得更大突破,更加无缝地融入各类自然语言处理应用场景,助力用户更加便捷、高效地利用LLMs解决复杂语言任务,推动人工智能技术在各行各业的深入应用与普及。


http://www.ppmy.cn/server/30495.html

相关文章

C语言-嵌入式-STM32:有哪些接口协议?

STM32微控制器支持多种接口协议以适应不同的通信需求,以下是一些常见的接口协议: USART/UART (Universal Synchronous/Asynchronous Receiver-Transmitter): USART 是同步或异步串行通信接口,常用于设备与PC之间的简单数据传输,如…

OpenHarmony硬件合成方案解析

本文档主要讲解在OpenHarmony中,硬件合成适配的方法及原理说明。 环境说明: OHOS版本:3.1-Release及以上 一、背景介绍 1.1 什么是合成 要理解什么是合成,合成做了什么?我们先通过分解设置界面来回答这个问题: 在…

基于Springboot+Vue的Java项目-入校申报审批系统开发实战(附演示视频+源码+LW)

大家好!我是程序员一帆,感谢您阅读本文,欢迎一键三连哦。 💞当前专栏:Java毕业设计 精彩专栏推荐👇🏻👇🏻👇🏻 🎀 Python毕业设计 &am…

【深入浅出MySQL】「性能调优」高性能查询优化MySQL的SQL语句编写

高性能查询优化MySQL的SQL语句编写准则这里写目录标题 总体优化大纲(1)优化查询性能:通过索引降低全表扫描频率优化方向案例介绍问题分析解决方案建立复合索引建立单独索引 (2)优化数据表与查询:合理使用非…

力扣每日一题-总行驶距离-2024.4.25

力扣题目:总行驶距离 题目链接: 2739.总行驶距离 题目描述 代码思路 直接用数学模拟计算即可 代码纯享版 class Solution {public int distanceTraveled(int mainTank, int additionalTank) {int sum 0;while(additionalTank > 0){if(mainTank > 5){mai…

导出 CDH 中各组件(HDFS、Hive、Impala、Kafka、Kudu、YARN和Zookeeper)指标到 Prometheus

文章目录 前言一、提取准备1. 下载jmx2. 创建规则文件 二、HDFS指标提取1. namenode指标提取2. datanode指标提取 二、Hive指标提取1. Hive Metastore Server 指标提取2. HiveServer2 指标提取 三、Impala 指标提取1. Impala Catalog Server 指标提取2. Impala Daemon 指标提取…

蚁群算法路径规划matlab

蚁群算法(Ant Colony Optimization, ACO)是一种模拟蚂蚁寻找食物路径的优化算法,它被广泛应用于路径规划问题中。在MATLAB中实现蚁群算法进行路径规划的基本步骤如下: 初始化:设置算法参数,包括蚂蚁数量、信…

win11 Terminal 部分窗口美化

需求及分析:因为在 cmd、anaconda prompt 窗口中输入命令较多,而命令输入行和输出结果都是同一个颜色,不易阅读,故将需求定性为「美化窗口」。 美化结束后,我在想是否能不安装任何软件,简单地通过调整主题颜…