LLM 本地运行

2023-12-08 ai linux

Ollama

一个通过 GoLang 实现的本地运行工具,支持多种模型,部分都只需要少量的资源开销,可以参考 GitHub 中的介绍,根据自己的机器选择对应的模型。

安装时只需要一个二进制文件即可,如下以手动方式安装。

----- 下载并解压到 /usr ,包含了 bin 和 lib 目录
curl -L https://ollama.com/download/ollama-linux-amd64.tgz -o ollama-linux-amd64.tgz
tar -C /usr -xzf ollama-linux-amd64.tgz

安装文件本身比较大,主要是因为对 CUDA、ROCm 的支持,单纯 CPU 的比较小,然后通过如下方式运行。

----- 也可以通过 systemd 运行
ollama serve
ollama run gemma2:2b

上述需要联网,如下介绍如何离线安装模型。

安装模型

Hugging Face 下载 GGUF 对应的模型,例如 Qwen2.5-0.5B-Instruct-GGUF 模型,注意,有些模型下载前需要签署相关协议之后才可以下载,否则会报错。

接着需要准备 Modelfile 文件,可以针对官网的内容进行整理,核心参数有:

  • FROM 引入指定的模型。
  • TEMPLATE 提示词模板。
  • PARAMETER 运行参数。

示例如下。

FROM ./qwen2.5-0.5b-instruct-q4_k_m.gguf

TEMPLATE """
... ...
"""

PARAMETER "<|im_start|>"
PARAMETER "<|im_end|>"

如下是常用的命令。

----- 导入模型
ollama create qwen2 -f qwen2.model

----- 查看当前的模型,包括参数信息
ollama ls
ollama list
ollama show

----- 运行某个模型
ollama run qwen2

----- 删除不需要的模型
ollama rm qwen2

默认只监听本地 IP 地址,可以通过 OLLAMA_HOST=0.0.0.0 监听主机所有 IP 地址,监听端口默认是 11434 ,界面可以使用 OpenWebUI 。

源码解析

ollama 是对 llama.cpp 不错的封装,后者基于 ggml 的 Tensor 库支持,可以在不同平台上原生运行。