Advertisement

ollama模型CPU轻量化部署

阅读量:

一、定义

以下是改写后的文本内容

二、实现

  1. ollama 定义
    ollama 是llama-cpp 的进一步封装,更加简单易用,类似于docker.
    模型网址:https://www.ollama.com/
    部署网址:https://github.com/ollama/ollama
    教程:https://github.com/ollama/ollama/releases

  2. 环境部署
    1. 宿主机安装
    curl -fsSL https://ollama.com/install.sh | sh

在这里插入图片描述

curl http://localhost:11434 已经启动。

复制代码
    远程访问配置:
    >>sudo vi /etc/systemd/system/ollama.service
    对于每个环境变量,在 [Service] 部分下添加一行 Environment:
    [Service]
    Environment="OLLAMA_HOST=0.0.0.0"
    保存并退出。
    重新加载 systemd 并重新启动 Ollama:
    >>systemctl daemon-reload
    >>systemctl restart ollama
    
    
    bash
在这里插入图片描述

2. docker 模式安装
https://hub.docker.com/r/ollama/ollama

安装镜像到Ollama

  1. 案例
    1.加载模型/模型
复制代码
    ollama pull llama3:8b
    
    
    bash
在这里插入图片描述

2. 调用模型
方式一、指令交互的方式进行调用

复制代码
    >>ollama run llama3
    
    
    bash
在这里插入图片描述

方式二、api 接口调用

复制代码
    curl http://localhost:11434/api/generate -d '{
    "model":"llama3:8b",
    "prompt": "请分别翻译成中文 -> Meta Llama 3: The most capable openly available LLM to date",
    "stream": false
    }'
    
    
    bash
在这里插入图片描述

方式三、 python 接口调用

复制代码
    pip install ollama-python
    import ollama
    response = ollama.run('llama3:8b', '你好,世界!')
    print(response)
    
    
    bash
复制代码
    from openai import OpenAI
    
    client = OpenAI(
    base_url='http://localhost:11434/v1/',
    
    # 必需但被忽略
    api_key='ollama',
    )
    
    chat_completion = client.chat.completions.create(
    messages=[
        {
            'role': 'user',
            'content': 'Say this is a test',
        }
    ],
    model='llama2',
    )
    
    
    
    bash
![](https://ad.itadn.com/c/weblog/blog-img/images/2025-08-18/BUKfxR91GLYgAd6imElraQsp2wPO.png)
  1. 本地模型加载方法
    请参考官网文档
    4.1 GGUF 模型
  2. 编写 ModelFile 文件
    从 ./mistral-7b-v0.1.Q4_0.gguf 生成文件
  3. 创建模型实例
    通过 ollama 工具创建 llama3-8b:0.001 模型实例,并指定 ModelFile 作为配置文件
  4. 进行测试验证
    运行推理过程,并使用以下示例对话:
    "你最喜欢的调味品是什么?"
在这里插入图片描述
  1. 基本指令 : 和docker 指令类似,基本重合
复制代码
    journalctl -u ollama           查看日志
    journalctl -n 10               查看最新的10条日志
    journalctl -f                  实时查看新添加的日志条目
    
    
    bash
复制代码
    ollama -h
    (base) [root@cnki-31-199-1 jiayafei_linux]# ollama -h
    Large language model runner
    
    Usage:
      ollama [flags]
      ollama [command]
    
    Available Commands:
      serve       Start ollama
      create      Create a model from a Modelfile
      show        Show information for a model
      run         Run a model
      pull        Pull a model from a registry
      push        Push a model to a registry
      list        List models
      ps          List running models
      cp          Copy a model
      rm          Remove a model
      help        Help about any command
    
    Flags:
      -h, --help      help for ollama
      -v, --version   Show version information
    
    
    bash
![](https://ad.itadn.com/c/weblog/blog-img/images/2025-08-18/6oJRgqTNdXpbvVYUaZLQ7lKwSBuM.png)
  1. ollama 如何同时 多个模型, 多进程
复制代码
    vim /etc/systemd/system/ollama.service
    [Service]
    Environment="OLLAMA_NUM_PARALLEL=4" #并行处理请求的数量
    Environment="OLLAMA_MAX_LOADED_MODELS=4" #同时加载的模型数量 
    
    sudo systemctl daemon-reload
    sudo systemctl restart ollama
    
    加载一个模型
    ollama run gemma:2b
    加载另外一个模型
    ollama run llama3:8b  
    
    
    bash
![](https://ad.itadn.com/c/weblog/blog-img/images/2025-08-18/HduOp8SN0UoaJbfeVLRwt6EBqhy2.png)
在这里插入图片描述

测试序号从0还是1开始,应是从0开始

测试编号从零开始。

测试编号从零开始。

复制代码
    $sudo vi /etc/systemd/system/ollama.service
    [Service]
    Environment="CUDA_VISIBLE_DEVICES=0,1"
    systemctl daemon-reload
    systemctl restart ollama
    
    
    bash
  1. 修改模型的存储路径
复制代码
    mv ~/.ollama/models/* /Users/<username>/Documents/ollama_models     将以前的models移动到当前目录
    
    
    bash

看上文。

在这里插入图片描述

10. 后台

复制代码
    后台模型
    使用 tmux:
    启动一个新的 tmux 会话:
    
    tmux new -s ollama_session
    
    在 tmux 会话中 ollama run:
    
    ollama run deepseek-r1:70b
    
    按下 Ctrl + B,然后按 D 分离会话。
    
    重新连接到会话:
    
    tmux attach -t ollama_session
    
    
    测试:
    from openai import OpenAI
    
    client = OpenAI(
        base_url='http://127.0.0.1:11434/v1/',
    
        # 必需但被忽略
        api_key='ollama',
    )
    
    chat_completion = client.chat.completions.create(
        messages=[
            {
                'role': 'user',
                'content': '你好',
            }
        ],
        model='deepseek-r1:70B',
    )
    print(chat_completion)
    
    
    
![](https://ad.itadn.com/c/weblog/blog-img/images/2025-08-18/aMP2jWysCA5rDwepVTUI6JoHhvl9.png)

全部评论 (0)

还没有任何评论哟~