Sign inSign up

ocpub/oc9-llama-cpp

By ocpub

Updated 4 months ago

Image
0

53

ocpub/oc9-llama-cpp repository overview

llama.cpp on OpenCloudOS 9

基本信息

  • 框架版本:b8981
  • 开源地址ggml-org/llama.cpp
  • 基础镜像:opencloudos/opencloudos9-cuda-devel:12.8
  • Python 版本:3.11
  • CUDA 版本:12.8
  • 编译选项:GGML_CUDA=ON, CMAKE_CUDA_ARCHITECTURES=80;86;89;90
  • 支持 GPU 架构:Ampere (sm_80/sm_86)、Ada Lovelace (sm_89)、Hopper (sm_90)

构建

docker build -t oc9-llama-cpp:b8981 .

构建过程从源码编译 llama.cpp,需要较好的网络环境以拉取依赖,构建时间约 5-15 分钟。

使用示例

命令行推理(llama-cli)
# 下载模型(示例:Qwen2.5-0.5B)
wget https://huggingface.co/Qwen/Qwen2.5-0.5B-Instruct-GGUF/resolve/main/qwen2.5-0.5b-instruct-q4_k_m.gguf -O /tmp/model.gguf

# 运行推理
docker run --rm --gpus all \
  -v /tmp/model.gguf:/models/model.gguf \
  oc9-llama-cpp:b8981 \
  llama-cli -m /models/model.gguf -p "你好,请介绍一下你自己" -n 256
API 服务(llama-server)
# 启动推理服务
docker run --rm --gpus all \
  -p 8080:8080 \
  -v /tmp/model.gguf:/models/model.gguf \
  oc9-llama-cpp:b8981 \
  llama-server -m /models/model.gguf --host 0.0.0.0 --port 8080

# 访问服务
curl http://localhost:8080/v1/chat/completions \
  -H 'Content-Type: application/json' \
  -d '{
    "model": "model",
    "messages": [{"role": "user", "content": "你好"}],
    "max_tokens": 128
  }'
Python 推理(llama-cpp-python)
docker run --rm --gpus all \
  -v /tmp/model.gguf:/models/model.gguf \
  oc9-llama-cpp:b8981 \
  python3 -c "
from llama_cpp import Llama
llm = Llama(model_path='/models/model.gguf', n_gpu_layers=-1)
print(llm.create_chat_completion(
    messages=[{'role': 'user', 'content': '你好'}],
    max_tokens=128
))
"

测试验证

# 执行测试脚本(需要 GPU 环境)
bash test.sh oc9-llama-cpp:b8981

测试脚本会验证以下内容:

  • CUDA 环境是否可用
  • llama-cli 命令行工具是否可执行
  • llama-server 服务程序是否可执行
  • llama-cpp-python 绑定是否可正常导入

已知问题

  • 首次运行时需要提供 GGUF 格式的模型文件,建议提前下载并挂载到容器中。
  • 源码编译耗时较长,建议利用 Docker 层缓存加速重复构建。

Tag summary

Content type

Image

Digest

sha256:af22ea56d

Size

9.5 GB

Last updated

4 months ago

docker pull ocpub/oc9-llama-cpp:b8981