跳转到内容
搜索 RunEntLinux 文档

仅搜索 RunEntLinux 通用文档,各发行版文档使用各自的搜索入口。

    浏览当前文档目录

    Ollama 本地大模型

    Ollama 是一个轻量级的本地大语言模型运行框架,让你可以在自己的服务器上轻松运行 Llama 3、Qwen2、Gemma 等开源大模型,无需依赖云端 API。它提供了简洁的命令行工具和兼容 OpenAI 的 REST API,非常适合在企业内网部署私有化 AI 服务。

    • CentOS Stream 9 & 10 / AlmaLinux 9.x & 10.x / Rocky Linux 9.x & 10.x
    • 至少 8 GB 内存(运行 7B 模型);16 GB 以上推荐
    • 如需 GPU 加速:NVIDIA 显卡 + 已安装驱动和 CUDA(参考 NVIDIA 驱动与 CUDA)
    • CPU 模式也可运行,但速度较慢

    Ollama 提供了一键安装脚本,适用于所有主流 Linux 发行版:

    Terminal window
    curl -fsSL https://ollama.com/install.sh | sh

    安装完成后,Ollama 会自动注册为 systemd 服务并启动。验证安装:

    Terminal window
    ollama --version

    检查服务状态:

    Terminal window
    sudo systemctl status ollama

    如果服务器无法访问外网,可以手动安装:

    Terminal window
    # 下载对应架构的二进制文件
    curl -L https://ollama.com/download/ollama-linux-amd64.tgz -o ollama-linux-amd64.tgz
    # 解压到 /usr 目录
    sudo tar -C /usr -xzf ollama-linux-amd64.tgz
    # 验证
    ollama --version

    创建专用用户和组:

    Terminal window
    sudo useradd -r -s /bin/false -U -m -d /usr/share/ollama ollama
    sudo usermod -a -G ollama $(whoami)

    Ollama 使用类似 Docker 的方式管理模型。使用 ollama pull 拉取模型。

    Terminal window
    # 拉取 Meta Llama 3.1 8B(约 4.7 GB)
    ollama pull llama3.1
    # 拉取阿里通义千问 Qwen2.5 7B(约 4.7 GB)
    ollama pull qwen2.5
    # 拉取 Google Gemma 2 9B(约 5.4 GB)
    ollama pull gemma2
    # 拉取更小的模型,适合低配机器
    ollama pull llama3.2:3b
    ollama pull qwen2.5:1.5b

    查看已下载的模型列表:

    Terminal window
    ollama list

    删除不需要的模型:

    Terminal window
    ollama rm llama3.1
    Terminal window
    # 启动交互式对话
    ollama run llama3.1

    进入对话后直接输入问题即可。输入 /bye 退出对话。

    Terminal window
    # 通过管道传入问题
    echo "用一句话解释什么是 Linux" | ollama run qwen2.5

    在交互模式中,使用 """ 开始和结束多行输入:

    >>> """
    请将以下内容翻译为英文:
    Ollama 是一个强大的本地大模型框架。
    """

    Ollama 默认在 http://localhost:11434 提供 REST API 服务。

    Terminal window
    curl http://localhost:11434/api/generate -d '{
    "model": "qwen2.5",
    "prompt": "请解释 Linux 中的 SELinux 是什么",
    "stream": false
    }'
    Terminal window
    curl http://localhost:11434/api/chat -d '{
    "model": "qwen2.5",
    "messages": [
    {
    "role": "system",
    "content": "你是一个 Linux 系统管理专家。"
    },
    {
    "role": "user",
    "content": "如何查看 CentOS 的系统版本?"
    }
    ],
    "stream": false
    }'

    Ollama 同时提供兼容 OpenAI API 格式的接口,方便对接已有工具:

    Terminal window
    curl http://localhost:11434/v1/chat/completions -d '{
    "model": "qwen2.5",
    "messages": [
    {"role": "user", "content": "你好"}
    ]
    }'

    这意味着你可以将 Ollama 作为 OpenAI API 的替代后端,只需将 API 地址指向 http://localhost:11434/v1。

    Terminal window
    curl http://localhost:11434/api/tags

    安装脚本会自动创建 systemd 服务。如果你是手动安装的,需要自行创建服务文件:

    Terminal window
    sudo tee /etc/systemd/system/ollama.service > /dev/null <<'EOF'
    [Unit]
    Description=Ollama Service
    After=network-online.target
    [Service]
    ExecStart=/usr/bin/ollama serve
    User=ollama
    Group=ollama
    Restart=always
    RestartSec=3
    Environment="HOME=/usr/share/ollama"
    Environment="OLLAMA_HOST=0.0.0.0"
    [Install]
    WantedBy=default.target
    EOF

    启用并启动服务:

    Terminal window
    sudo systemctl daemon-reload
    sudo systemctl enable --now ollama

    常用服务管理命令:

    Terminal window
    # 查看状态
    sudo systemctl status ollama
    # 查看日志
    sudo journalctl -u ollama -f
    # 重启服务
    sudo systemctl restart ollama
    # 停止服务
    sudo systemctl stop ollama

    通过 systemd 的 override 机制修改配置:

    Terminal window
    sudo systemctl edit ollama

    在编辑器中添加需要的环境变量:

    [Service]
    # 监听所有网络接口(默认仅 localhost)
    Environment="OLLAMA_HOST=0.0.0.0"
    # 修改模型存储目录
    Environment="OLLAMA_MODELS=/data/ollama/models"
    # 设置并发请求数
    Environment="OLLAMA_NUM_PARALLEL=4"
    # 设置最大已加载模型数量
    Environment="OLLAMA_MAX_LOADED_MODELS=2"

    修改后重新加载并重启:

    Terminal window
    sudo systemctl daemon-reload
    sudo systemctl restart ollama

    Ollama 会自动检测 NVIDIA GPU 并使用 CUDA 加速。前提是已正确安装 NVIDIA 驱动。

    Terminal window
    # 检查 NVIDIA 驱动
    nvidia-smi
    # 检查 Ollama 是否识别到 GPU
    ollama ps

    运行一个模型后,通过 nvidia-smi 可以看到 GPU 显存被占用:

    Terminal window
    # 先运行模型
    ollama run llama3.1 "hello" && nvidia-smi

    如果有多块 GPU,可以通过环境变量指定使用哪些:

    Terminal window
    sudo systemctl edit ollama
    [Service]
    # 仅使用 GPU 0 和 GPU 1
    Environment="CUDA_VISIBLE_DEVICES=0,1"

    如果你有 GPU 但希望强制使用 CPU 运行:

    Terminal window
    CUDA_VISIBLE_DEVICES="" ollama run llama3.1

    你可以通过 Modelfile 创建自定义模型配置:

    Terminal window
    cat > ~/Modelfile <<'EOF'
    FROM qwen2.5
    SYSTEM """
    你是一名资深 Linux 系统管理员,专门负责 CentOS/AlmaLinux/Rocky Linux 服务器运维。
    回答问题时请给出具体的命令和步骤。
    """
    PARAMETER temperature 0.3
    PARAMETER num_ctx 4096
    EOF
    # 创建自定义模型
    ollama create linux-assistant -f ~/Modelfile
    # 运行自定义模型
    ollama run linux-assistant

    如果需要从其他机器访问 Ollama API,需要开放端口:

    Terminal window
    sudo firewall-cmd --permanent --add-port=11434/tcp
    sudo firewall-cmd --reload

    可以设置代理加速下载:

    Terminal window
    sudo systemctl edit ollama
    [Service]
    Environment="HTTPS_PROXY=http://your-proxy:7890"
    Environment="HTTP_PROXY=http://your-proxy:7890"
    Environment="NO_PROXY=localhost,127.0.0.1"

    如果遇到 OOM(内存不足),可以尝试使用更小的量化模型:

    Terminal window
    # 使用 4-bit 量化的小模型
    ollama pull llama3.2:3b
    ollama pull qwen2.5:1.5b
    Terminal window
    ollama show llama3.1
    ollama show llama3.1 --modelfile