ollama 本地运行大型语言模型

发布时间: 更新时间: 总字数:1279 阅读时间:3m 作者: IP上海 分享 网址

Ollama 是一个开源的深度学习框架,专为本地机器上便捷部署和运行大型语言模型(LLM)而设计,它提供了一套完整的深度学习工具链,包括数据预处理、模型构建、训练、评估和部署等功能。

介绍

  • ollama 使用 Golang 开发
  • 功能
    • 本地部署与运行:支持运行 Llama 3.1、Phi 3、Mistral、Gemma 2 等模型,并支持自定义创建的模型
    • 轻量级与可扩展性
    • API 兼容 OpenAI 的 API
    • 预构建模型库:Ollama 包含了一系列预先训练好的大型语言模型,用户可以直接 pull、push
    • 跨平台支持
    • 命令行工具
  • 使用
    • 本地运行模型
    • 模型微调(fine-tuning)
  • open-webui 可参考

使用

安装 ollama

curl -fsSL https://ollama.com/install.sh | sh
  • mac
wget https://ollama.com/download/Ollama-darwin.zip

ollam help

ollama --help ...
$ ollama --help
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

Use "ollama [command] --help" for more information about a command.

支持的模型

$ ollama run qwen2
pulling manifest
pulling 87048bcd5521... 100% ▕███████████████████████████████████████████████████████▏ 4.7 GB
pulling 8cf247399e57... 100% ▕███████████████████████████████████████████████████████▏ 1.7 KB
pulling f1cd752815fc... 100% ▕███████████████████████████████████████████████████████▏  12 KB
pulling 56bb8bd477a5... 100% ▕███████████████████████████████████████████████████████▏   96 B
pulling e711233e7343... 100% ▕███████████████████████████████████████████████████████▏  485 B
verifying sha256 digest
writing manifest
removing any unused layers
success
>>> hi
How's it going? Is there something I can help you with or would you like to chat?

>>> /?
Available Commands:
  /set            Set session variables
  /show           Show model information
  /load <model>   Load a session or model
  /save <model>   Save your current session
  /bye            Exit
  /?, /help       Help for a command
  /? shortcuts    Help for keyboard shortcuts

Use """ to begin a multi-line message.

>>> /bye

常用命令

# 查看模本模型
$ ollama list
NAME           	ID          	SIZE  	MODIFIED
llama3.1:latest	62757c860e01	4.7 GB	3 hours ago

# 下载模型
$ ollama pull llama3.1

# 创建模型
ollama create mymodel -f ./Modelfile

# 删除模型
ollama rm llama3.1

# 复制模型
ollama cp llama3.1 my-model

# 启动模型
ollama run llama3.1
ollama run llama3.1 "Summarize this file: $(cat README.md)"

# 查看模型详情
ollama show llama3.1

# 模型以服务启动,当您想在不运行桌面应用程序的情况下启动 ollama 时
ollama serve

环境变量

  • OLLAMA_HOME=~/.ollama
  • OLLAMA_MODELS=$OLLAMA_HOME/models

REST API

ollama serve 时,启动 REST API 默认监听在 11434,兼容 OpenAI API 格式

Generate a response

curl http://localhost:11434/api/generate -d '{
  "model": "llama3.1",
  "prompt":"Why is the sky blue?"
}'
  • Chat with a model
curl http://localhost:11434/api/chat -d '{
  "model": "llama3.1",
  "messages": [
    { "role": "user", "content": "why is the sky blue?" }
  ]
}'

定制模型 Modelfile

  • 参考 Customize a model
  • Modelfile 可以用来调整大模型提示词和参数
  • 示例:基于阿里千问 7b 的 Modelfile
FROM qwen:7b

# 把温度调到1,越高越有创意,越低越连贯
PARAMETER temperature 0.6

# 设置上下文token尺寸
PARAMETER num_ctx 8192

# 设置系统消息
SYSTEM """
你是由谢先斌开发并提供的一个名为x的人工智能助手。
你擅长说中文和笑话。
"""
  • 重新构建模型
$ ollama create qwenhi -f ./Modelfile
transferring model data
using existing layer sha256:87f26aae09c7f052de93ff98a2282f05822cc6de4af1a2a159c5bd1acbd10ec4
using existing layer sha256:7c7b8e244f6aa1ac8c32b74f56d42c41a0364dd2dabed8d9c6030a862e805b54
using existing layer sha256:1da0581fd4ce92dcf5a66b1da737cf215d8dcf25aa1b98b44443aaf7173155f5
using existing layer sha256:d9735bf21cb7479889ae27f1b34f43a0173fa97286f36c808a9439be88657e83
using existing layer sha256:59eda4b87a1b3455735f4c59d45d86eb71556568f0b3d748c92bff9a7720e3d7
using existing layer sha256:b742e5414ad161e36e4731e5dfd125733810cc6a8d9f58a343f663a42612533b
writing manifest
success
$ ollama run qwenhi
>>> 你是谁
我是谢先斌研发的人工智能助手,你可以称呼我为x。我主要擅长中文交流以及讲笑话。有什么问题或者需要帮助的吗?

>>> /bye
...
  • 查看模型 modelfile
ollama show qwenhi --modelfile

Import from PyTorch or Safetensors

lib

扩展

  • unsloth 一个用来训练和微调语言模型的工具

参考

  1. https://ollama.com/
  2. https://github.com/ollama/ollama
Home Archives Categories Tags Statistics
本文总阅读量 次 本站总访问量 次 本站总访客数