使用ollama跨平台部署大模型

Ollama介绍

官方网站:https://ollama.com/
官方Github Repo:https://github.com/ollama/ollama
官方自我介绍:Get up and running with Llama 2, Mistral, Gemma, and other large language models.

Why Ollama

1、有模型仓库,一行命令拉取模型运行
2、llama.cpp加速,支持类llama的大量模型。
3、发布api,便于集成各种web ui
4、多模型并行,便于模型测评与切换
5、支持LLVA视觉模型
6、支持Nvidia、AMD显卡加速
7、adapt加载

缺点

1、必须使用gguf模型,经过量化
2、对于pt,safetensor模型需要进行转化
3、需要使用Modelfile配置chat模板,难以使用call tool

Ubuntu Linux X86平台部署

在这里插入图片描述

对于Linux平台,通过curl打开install.sh脚本下载。脚本的核心内容是下载ollama二进制文件。脚本文件自动下载bin包,注册ollama系统服务,创建ollama用户,检测显卡驱动。
命令执行完成后即可通过ollama指令操作服务。

$ 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
  cp          Copy a model
  rm          Remove a model
  help        Help about any command

Flags:
  -h, --help      help for ollama
  -v, --version   Show version information

服务控制:

sudo systemctl stop ollama # 停止服务
sudo systemctl start ollama # 启动服务
# 监听http服务,指定GPU
export OLLAMA_HOST="0.0.0.0:11434"
export CUDA_VISIBLE_DEVICES="0"
ollama serve # 启动

ollama serve后会自动启动一个http服务,可以通过http请求模型服务,但此时还没有注册模型和模型权重,会在后面介绍。

MacOS & Windows系统部署

MacOS与Windows系统都是下载安装文件安装后即完成部署。

Nvidia Jetson部署

ollama通过nvidia-smi命令检测是否安装显卡驱动。Nvidia Jetson的Linux系统和JetPack包中不包含nvidia-smi,因此通过上述install.sh安装后无法实现显卡加速,推理全部使用Arm CPU实现。
1、安装后停止ollama服务

sudo systemctl stop ollama # 停止服务

2、安装tmux

sudo apt install tmux

3、使用tmux启动ollama

tmux has-session -t ollama_jetson 2>/dev/null || tmux new-session -d -s ollama_jetson  'LD_LIBRARY_PATH=/usr/local/cuda-11.4/targets/aarch64-linux/lib/stubs ollama serve'

模型加载

通过pull拉取官方模型

ollama pull mistral # 拉模型
ollama run mistral # 运行模型

模型仓库:https://ollama.com/library
ollama的整体设置与指令风格类似于docker

通过Modelfile创建自己的模型

从huggingface上下载gguf格式模型权重
在这里插入图片描述
新建Modelfile文件:

FROM {path/to/gguf} # required
PARAMETER # 模型参数
SYSTEM # 系统指令
TEMPLATE # 信息格式
ADAPTER  # LORA权重路径,必须为GGML格式

modelfile教程:https://github.com/ollama/ollama/blob/main/docs/modelfile.md

ollama create {modelname} -f Modelfile
ollama run {modelname}

获取已有模型的Modelfile,基于原modelfile创建新模型(adapter)或调整参数

ollama show {modelname} --modelfile

更多操作请移步官方Github Repo学习

lora adapter的文件转换

前提:使用lora方式sft后获得的独立lora权重文件:adapter_model.bin, adapter_config.json
使用llama.cpp转换adapter权重

git clone https://github.com/ggerganov/llama.cpp/tree/master
cd llama.cpp
pip install -r reqiurement.txt
python convert-lora-to-ggml.py [path to LORA adapter folder]/adapter_config.json

脚本执行的输出最后会有转换完成的ggml-adapter-model.bin文件的地址,在modelfile的ADAPTER参数后附上该文件地址即可加载lora

模型使用

官方提供了多种模型使用方法,除了本地命令行、restful api以外还有各种语言的SDK可以使用。

  • 20
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值