openEuler AI 实践实验——从大模型快速部署到异构协同加速

举报
pluto1447 发表于 2025/12/21 01:26:49 2025/12/21
【摘要】 本次实验聚焦 openEuler 在大模型领域的部署与加速实践。通过 Ollama 实现“开箱即用”的快速部署,并利用 llama.cpp 完成模型量化与格式转换。同时介绍了 sysHAX 异构协同技术,验证了 openEuler 在多样性算力环境下,作为高效 AI 底座在提升推理吞吐量与软硬协同方面的卓越价值。

openEuler AI 实践——从大模型快速部署到异构协同加速

一、 实验目的

  1. 掌握大模型“开箱即用”部署技术:通过 Ollama 实践,理解 openEuler 如何通过简化的工具链支持 Llama、DeepSeek、Qwen 等主流大模型的分钟级私有化部署。
  2. 理解模型全生命周期管理:掌握从开源社区(ModelScope/HuggingFace)获取权重,利用 llama.cpp 进行模型量化与格式转换(GGUF),实现大模型在不同算力环境下的灵活适配。
  3. 探索异构协同加速机制(sysHAX):深入理解大模型推理中 Prefill(计算密集型)Decode(访存密集型) 阶段的不同特征,掌握如何通过 sysHAX 实现 CPU 与 GPU/NPU 的负载均衡与算力套利。
  4. 实践软硬协同性能优化:通过 sysHAX 和 vLLM 的容器化部署,体验 openEuler 在多样性算力(如鲲鹏 CPU + NVIDIA GPU)环境下的高吞吐调度能力,验证操作系统作为 AI 底座的加速价值。

二、 实验环境

  1. 硬件环境

    • 处理器:鲲鹏 920 (ARM64 架构) 或主流 x86_64 处理器。
    • 加速卡:NVIDIA GPU(支持 CUDA 驱动)或华为昇腾 NPU(可选,用于 sysHAX 异构实验)。
    • 内存:建议 32GB 及以上(大模型推理及 KV Cache 占用较大)。
    • 存储:建议 100GB 以上剩余空间(用于存放模型权重及容器镜像)。
  2. 软件平台

    • 操作系统:openEuler 22.03 LTS 或 24.03 LTS。
    • 容器引擎:Docker 或 iSula,并安装 NVIDIA Container Toolkit(GPU 镜像支持)。
    • 核心工具
      • Ollama:模型快速运行框架。
      • llama.cpp:模型转换与 CPU 推理加速工具。
      • sysHAX:openEuler 特有的异构协同加速运行时。
      • vLLM:高吞吐推理服务引擎。
    • 运行环境:Python 3.9+,GCC/C++ 编译工具链(用于 llama.cpp 构建)。
  3. 网络要求

    • 需具备访问 ollama.commodelscope.cnhuggingface.co 的网络连接,用于拉取安装包和模型权重。

三、 实验内容与步骤

1.OpenEuler本地部署大模型实践

智能时代,操作系统需要面向 AI 不断演进。一方面,在操作系统开发、部署、运维全流程以 AI 加持,让操作系统更智能;另一方面,openEuler 已支持 ARM,x86,RISC-V 等全部主流通用计算架构,在智能时代,openEuler 也率先支持 NVIDIA、昇腾等主流 AI 处理器,成为使能多样性算力的首选

openEuler 兼容 NVIDIA、Ascend 等主流算力平台的软件栈,为用户提供高效的开发运行环境。通过将不同 AI 算力平台的软件栈进行容器化封装,即可简化用户部署过程,提供开箱即用的体验。同时,openEuler 也提供丰富的 AI 框架,方便大家快速在 openEuler 上使用 AI 能力。

该模块实验将从零开始手动在openeuler系统上部署大模型,体验openeuler在AI场景下的优点。

1.1.用Ollama一键部署模型

Ollama 是一款主打本地私有化部署的开源大语言模型运行框架,让普通人与企业能零门槛享受安全高效的 AI 服务。它打破传统云端 AI 依赖,将 Llama、Mistral、DeepSeek 等 30+ 主流大模型直接部署在个人电脑或服务器上,无需复杂配置,实现 “一键运行” 的便捷体验。

下载Ollama

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

部署并运行模型:

ollama run [model_name]

本实验以Qwen-2.5-Instruct-1.5B为例,部署运行后,结果如图:

1.2.从大模型开源社区灵活部署模型

国内外有很多优质的大模型开源社区可以选择,以下是两种推荐方案:

国内:ModelScope
ModelScope是由阿里达摩院推出的一个模型共享平台,旨在为开发者提供一个统一的模型存储、发现和使用的生态系统。该平台支持多种任务,包括自然语言处理(NLP)、计算机视觉(CV)、语音处理和多模态任务,提供了丰富的模型和数据集资源。

国外:Huggingface
Hugging Face 是一个提供先进自然语言处理(NLP)工具的平台,支持 Transformer 模型的开发和应用。它拥有庞大的模型库和社区资源,能够满足从研究到工业应用的各种需求。类似与AI界的github,也可以作为推理工具。

通过国内外的开源大模型社区,我们可以获取各式各样的有趣的大模型,他们在各个领域、不同任务场景种有着优秀的性能,我们可以从社区将模型下载下来,保存为safeTensors权重层形式。接下来,我们将通过llama.cpp将权重层转化成可使用的GGUF模型格式

llama.cpp
llama.cpp是基于C/C++实现的LLaMa英文大模型接口,可以支持用户在CPU机器上完成开源大模型的部署和使用.llama.cpp核心架构分为两层:

  • 模型量化层:可以量化开源模型,减少模型大小;
  • 模型启动层:可以启动量化后的模型。

安装llama.cpp

yum install llama.cpp

将model转化为GGUF

python3 /usr/bin/llama_convert.py  {your_model_path}/

启动对话

llama_cpp_main -m model_path --color --ctx_size 2048 -n -1 -ins -b 256 --top_k 10000 --temp 0.2 --repeat_penalty 1.1 -t 8

参考:[OpenEuler官方社区]


2.sysHAX 大模型异构协同加速运行时

sysHAX 是 openEuler 操作系统中的一个大模型推理服务加速工具,它通过智能调度CPU和GPU/NPU等异构算力资源,旨在显著提升大语言模型推理任务的性能、吞吐量和算力利用率

sysHAX的核心是“异构协同”,主要通过以下三种技术手段实现加速 :

功能模块 核心目标 实现原理
异构融合调度 动态分配任务,优化整体吞吐 将推理请求分为Prefill(计算密集)和Decode(访存密集)阶段,智能调度至最适合的硬件(如GPU处理Prefill,CPU处理Decode)
CPU推理加速 充分挖掘CPU算力潜力 通过NUMA亲和性绑定、并行优化、算子优化(如使用SVE指令集)等方式,提升CPU执行Decode等任务的效率
KV Cache管理 高效利用内存,降低延迟 管理推理过程中的KV Cache(键值缓存),使其在GPU显存、CPU内存等多级存储间高效搬运和复用

sysHAX功能定位为K+X异构融合推理加速,主要包含两部分功能

推理动态调度 对于推理任务,prefill阶段属于计算密集型任务,decode阶段属于访存密集型任务。因此从计算资源的角度来说,prefill阶段适合在GPU/NPU等硬件上执行,而decode阶段可以放在CPU等硬件上执行。

CPU推理加速 在CPU上通过NUMA亲和、并行优化、算子优化等方式,来加速CPU推理性能。

2.1.部署流程

首先需要通过 nvidia-smi 和 nvcc -V 检查是否已经安装好了nvidia驱动和cuda驱动,如果没有的话需要首先安装nvidia驱动和cuda驱动。

安装NVIDIA Container Toolkit(容器引擎插件

已经安装NVIDIA Container Toolkit可忽略该步骤

容器场景vllm搭建

vllm是一款高吞吐、低内存占用的大语言模型(LLM)推理与服务引擎,支持CPU 计算加速,提供高效的算子下发机制。由于篇幅限制,不做详细阐述。

以下为在GPU容器中部署vllm的示例:

docker pull hub.oepkgs.net/neocopilot/syshax/syshax-vllm-gpu:0.2.1

docker run --name vllm_gpu \
    --ipc="shareable" \
    --shm-size=64g \
    --gpus=all \
    -p 8001:8001 \
    -v /home/models:/home/models \
    -w /home/ \
    -itd hub.oepkgs.net/neocopilot/syshax/syshax-vllm-gpu:0.2.1 bash

在上述脚本中:

  • –ipc=“shareable”:允许容器共享IPC命名空间,可进行进程间通信。

  • –shm-size=64g:设置容器共享内存为64G。

  • –gpus=all:允许容器使用宿主机所有GPU设备

  • -p 8001:8001:端口映射,将宿主机的8001端口与容器的8001端口进行映射,开发者可自行修改。

  • -v /home/models:/home/models:目录挂载,将宿主机的 /home/models 映射到容器内的 /home/models 内,实现模型共享。开发者可自行修改映射目录。

sysHAX安装与配置

dnf install sysHAX

配置sysHAX

syshax init
syshax config services.gpu.port 8001
syshax config services.cpu.port 8002
syshax config services.conductor.port 8010
syshax config models.default ds-32b

启动sysHAX服务

syshax run

启动成功后,可以使用官方提供的测试脚本来进行大模型服务的测试:

curl http://0.0.0.0:8010/v1/chat/completions -H "Content-Type: application/json" -d '{
    "model": "ds-32b",
    "messages": [
        {
            "role": "user",
            "content": "介绍一下openEuler。"
        }
    ],
    "stream": true,
    "max_tokens": 1024
}'
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。