什么是 Ollama?
Ollama 是一个可以在本地部署和管理开源大语言模型的框架,由于它极大的简化了开源大语言模型的安装和配置细节,一经推出就广受好评,目前已在github上获得了46k star。
不管是著名的羊驼系列,还是最新的AI新贵Mistral,等等各种开源大语言模型,都可以用Ollama实现一键安装并运行,支持的更多模型的列表可以查看Ollama官网。
Model | Parameters | Size | Download |
---|---|---|---|
Llama 2 | 7B | 3.8GB | ollama run llama2 |
Mistral | 7B | 4.1GB | ollama run mistral |
本文就让我们一起入门Ollama。
如何安装 Ollama框架?
Ollama支持各个平台:Mac、Windows 和 Linux,也提供了docker image。
在Ollama官网或者Github可以下载,然后一键安装Ollama框架:
由于Ollama刚支持windows不久,在windows上的相关配置还不够完善,以下我将主要以Linux上运行Ollama来举例说明。
运行 Ollama 服务
在Ollama安装完成后, 一般会自动启动 Ollama 服务,而且会自动设置为开机自启动。安装完成后,可以使用如下命令查看是否Ollama是否正常启动。如下例子中显示“Active: active (running)”表示Ollama已经正常启动。
1 | yaml复制代码$ systemctl status ollama |
在Linux上,如果Ollama未启动,可以用如下命令启动 Ollama 服务:ollama serve
,或者 sudo systemctl start ollama
。
通过分析Linux的安装脚本install.sh,就会看到其中已经将ollama serve
配置为一个系统服务,所以可以使用systemctl
来 start / stop ollama进程。
1 | ini复制代码 status "Creating ollama systemd service..." |
启动Ollama服务后,可以查看当前的Ollama版本,以及常用命令
1 | sql复制代码~$ ollama -v |
如何下载并运行大语言模型?
至此,已经完成Ollama框架的安装,接下来,可以用一条命令在本地运行大语言模型。以著名的羊驼举例:ollama run llama2
。
如果还没有下载过指定的大语言模型,这条命令将会先执行ollama pull llama2
,将大语言模型下载到本地,再在本地运行大语言模型。
下载完成后,运行效果如下:
1 | less复制代码:~$ ollama run llama2 |
REST API
Ollama还提供了API接口:
1 | vbnet复制代码curl http://localhost:11434/api/generate -d '{ |
返回结果如下:
1 | json复制代码{ |
使用API接口,就可以实现更多灵活的功能,比如与IDE插件配合,实现本地的编程助手,可参考如下文章:
零基础入门AI:搭建本地的编程助手
FAQ
如何查看运行的日志?
在Linux上运行命令journalctl -u ollama
,即可查看运行日志。
如何配置本地大模型对局域网提供服务?
在Linux上创建如下配置文件,并配置环境变量 OLLAMA_HOST
来指定对局域网提供服务的地址,再重启Ollama服务即可。
1 | ini复制代码:~$ cat /etc/systemd/system/ollama.service.d/environment.conf |
如此配置后,即可由一台GPU服务器为本地局域网提供大语言模型的服务。
本地有多张GPU,如何用指定的GPU来运行Ollama?
在Linux上创建如下配置文件,并配置环境变量 CUDA_VISIBLE_DEVICES
来指定运行Ollama的GPU,再重启Ollama服务即可。
1 | ini复制代码:~$ cat /etc/systemd/system/ollama.service.d/environment.conf |
下载的大模型存储在哪个路径?
默认情况下,不同操作系统存储的路径如下:
- macOS:
~/.ollama/models
- Linux:
/usr/share/ollama/.ollama/models
- Windows:
C:\Users<username>.ollama\models
如何修改大模型存储的路径?
Linux平台安装Ollama时,默认安装时会创建用户ollama,再将模型文件存储到该用户的目录/usr/share/ollama/.ollama/models
。但由于大模型文件往往特别大,有时需要将大模型文件存储到专门的数据盘,此时就需要修改大模型文件的存储路径。
官方提供的方法是设置环境变量“OLLAMA_MODELS”,但我在Linux上尝试后,并没有成功。
分析Linux版的安装脚本install.sh后,我发现是由于其中创建了用户ollama和用户组ollama,然后将大模型存储到了该用户的目录/usr/share/ollama/.ollama/models
,而我的帐户对ollama帐户的一些操作并不能生效,即使我再手动将我的帐户添加进ollama用户组,也仍然会有一些权限问题,导致对ollama帐户的目录操作不生效。
由于新建的ollama帐户并没有给我带来额外的便利,最后我用以下步骤来实现修改大模型文件的存储路径:
- 修改安装文件 install.sh,取消其中创建用户ollama的步骤,参考如下:
1 | shell复制代码# if ! id ollama >/dev/null 2>&1; then |
- 修改安装文件 install.sh,使用我的帐户来启动ollama服务,参考如下:
1 | ini复制代码 status "Creating ollama systemd service..." |
- 修改安装文件 install.sh,添加如下配置中指定环境变量
OLLAMA_MODELS
指定存储路径,再用此安装文件来安装ollama。
1 | ini复制代码Environment="OLLAMA_MODELS=/home/paco/lab/LLM/ollama/OLLAMA_MODELS" |
或者在安装完成后,创建如下配置文件,并配置环境变量OLLAMA_MODELS
来指定存储路径,再重启Ollama服务。
1 | ini复制代码:~$ cat /etc/systemd/system/ollama.service.d/environment.conf |
本文转载自: 掘金