Ollama – 本地部署语言大模型与知识库搭建方案

本文主要介绍部署Ollama本地大模型的(7B)及其结合Obsidian的本地知识库搭建方案。

之前一直有想要构建本地知识库的想法,但因为各种事情搁置了下来。

最近时间,偶然刷到了Obsidian的copilot插件以及ollama本地模型,一下来了兴致,于是乎折腾了半天,将本地模型部署了下来。

时至今天,本地模型部署依然不是一个稳定可靠的方案,受制于普通计算机的性能约束,优秀的本地模型需要较高的硬件配置才可以运行。以目前主流开源大模型llama系列为例,即使是最小化的llama3.1 8B轻量化版本也需要计算机至少16GB的可用显存,而llama3.1 70B模型则需要吃掉多达70-75GB的显存。

因此,相较之下在绝大多数情况下使用线上语言模型例如ChatGPT 4o、Google Gemini,Claoud 3等是更好的选择。然而,当我们在构建知识库时,线上语言模型就未必能够满足需求了。因为线上模型只能通过对话聊天记录来获取问题并根据它的固有知识库与互联网数据进行回答。尽管这在大多数情况下已经做到令人满意,然而在面临一些私有化笔记类型的知识时就显得捉襟见肘。

本地大模型则可以解决这一点,通过建立本地知识库的索引,语言模型可以根据知识库中的信息进行作答,从而真正成为私有的知识库顾问。这在笔记越来越多的时候显得尤为适用。

例如,如今在我的Obsidian中已经记载了七百余条笔记内容,这些笔记错综复杂,涉及多个领域的知识与文献资料。有时候自己也很难回忆和梳理出观点。此时,就可以通过本地语言模型来协助处理这些笔记,并生成我笔记中的相关回忆。

当然,需要再啰嗦一下的是,目前的本地模型并不完善(尽管llama已经做的很好了),此记录仅供感兴趣的朋友抱着尝试的心态试一试,我想,和理想中的私人知识库顾问还是有距离的。

1. 通过Ollama本地部署LLaMA语言模型

LLaMA与Ollama的关系

LLaMA 是由 Meta (前身为 Facebook) 开发的一系列大型语言模型。LLaMA 旨在提供比现有模型更高效且更小的语言模型,能够在更少的资源下实现良好的性能。这些模型广泛应用于自然语言处理任务。

Ollama 是一个支持在本地运行大型语言模型的工具。这种工具允许用户在他们的设备上运行类似于 LLaMA 这样的模型,而不需要依赖云服务。Ollama 的目标是让开发者能够更容易地使用和部署这些大型语言模型,无论是在本地环境还是在应用程序中。

安装Ollama

直接进入Ollama官网下载安装即可:https://ollama.com/download

下载模型

打开CMD命令窗口输入命令(下同):

ollama pull llama3.1

运行模型

ollama run llama3.1

此时即可与模型直接进行对话。

搭建环境变量

set OLLAMA_ORIGINS=app://obsidian.md*

也可以手动设置环境变量:右键【此电脑】-【属性】-【系统】-【高级系统设置】-【环境变量】-【新建环境变量】

安装索引模型

ollama pull nomic-embed-text

2. Obsidian笔记软件与Copilot插件

下载、部署好llama语言模型后,接下来就需要联动Obsidian的知识库与语言模型了。

首先,要确保电脑中有Obsidian这个笔记软件。
Obsidian 是一款支持 Markdown 的强大笔记软件,以本地存储、双向链接和图谱视图为核心特色,帮助用户构建和管理知识网络。它拥有丰富的插件生态系统和高度的可定制性,适用于多平台,为用户提供灵活的笔记和知识管理体验。Obsidian的安装这里不再赘述,可以直接跳转Obsidian的官网:Obsidian – Sharpen your thinking

安装Copilot

然后在第三方插件中下载【Copilot】(注意关闭Obsidian的安全模式)

设置Copilot

设置【Default Model】为:OLLAMA(LOCAL)

设置【Embedding Models】为:ollama-nomic-embed-text # 这里是为了建立知识库索引

设置【Ollama model】为:llama3.1(或你下载的任意版本名)

启动LLaMa服务

命令行输入:

ollama serve

如果出现错误,大概率是11434端口被占用,查看桌面右下角的任务栏是否有一个ollama程序运行的图标(羊驼头),将其右键关闭,然后重新输入:ollama serve即可。

成功运行如图:

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注