使用 Ollama 在本地运行大语言模型
Ollama 在大语言模型生态中的一个工具,用于在本地运行大语言模型(包括 Llama 2、Mistral、 Gemma等),解决的是 “模型服务” 中的工程化问题。
安装 🔗
Ollama 可执行文件 🔗
Ollama 主要由 Go 语言编写,最终被编译成了一个独立的可执行文件。下载对应架构的可执行文件,即可运行。其官方主页的下载页面 提供了 macOS 和 Windows 平台下的可执行性文件, 以及 Linux 平台下的自动安装的脚本。对于 Linux 平台,Ollama 还提供了手动安装说明,以及将 Ollama 作为系统服务运行的步骤。
显卡驱动 🔗
对于 Linux,可按需安装显卡驱动。比如对 Nvidia 的 GPU 安装 CUDA 驱动,或者对 Radeon 的 GPU 安装 ROCm。
运行 Ollama 🔗
运行 ollama serve
即可运行服务程序,默认的端口是 11434
。其代码库的API文档中,包含了服务程序所提供的所有接口的说明。访问 api/tags
接口可列出所有模型,但此时结果为空,这是因为还没有下载模型到本地。
所以,还需要下载具体的模型。在其模型库页面找到合适的模型,运行 ollama pull xxx
即可。也可直接使用 ollama run xxx
,此时会下载模型,然后运行一个交互式的客户端,用于跟大模型交互。
注意,Ollama 会将模型下载到用户主目录下的 .ollama
目录中。由于模型文件都很大,并且今后可能会下载多个模型,因此务必确保文件系统有足够的存储空间。
与大模型交互 🔗
既可在部署 Ollama 的服务器执行 ollama run xxx
,在命令行与大模型交互;亦可使用HTTP API或者兼容的客户端与之交互。
在 Ollama 的 API 文档里,可以找到文本补全的接口 POST /api/generate
,和聊天补全的接口 POST /api/chat
。在生成补全时,默认以流式响应返回;但也可执行 stream
为false
,使其返回阻塞式的响应。
如果使用浏览器中的客户端,可能会出现跨域请求。默认情况下,Ollama只允许来源为本机,即 127.0.0.1
和 0.0.0.0
的请求。如果 Ollama 的地址不是这种本机地址,那么就需要在启动 ollama 时,设置 OLLAMA_ORIGINS
合适的环境变量。在本地测试时可设置为 OLLAMA_ORIGINS=*
,但是在公共环境下,这样做不够安全,需要慎重设置。
第三方的 Chrome 插件 ollama-ui 值得小试。
结尾 🔗
安装和使用 Ollama 还是很简单的,唯一可能遇到的麻烦是下载模型比较慢,甚至下载不稳定。如果解决网络问题,并且安装好显卡驱动,使用起来还是很流畅的,可以做一些本地验证或者完成特定的任务。