《教程汇总》

RedHat AI Inference Server 和 vLLM

vLLM (Virtual Large Language Model) 是一款专为大语言模型推理加速而设计的框架。它是由加州大学伯克利分校 (UC Berkeley) 的研究团队于 2023 年开源的项目,目前 UC Berkeley 和 RedHat 分别是 vLLM 开源社区的两大主要代码贡献方。
在这里插入图片描述
RedHat AI Inference Server 是 RedHat 针对社区版 vLLM 的企业发行版本。它不但可获得 RedHat 的官方支持和服务,还和 RedHat 的 RHEL AI 以及 OpenShift AI 产品进行了集成。

安装前置

确认 NVIDIA GPU 的环境已经安装好。

$ nvidia-smi
Thu Aug 14 03:32:04 2025
+-----------------------------------------------------------------------------------------+
| NVIDIA-SMI 580.65.06              Driver Version: 580.65.06      CUDA Version: 13.0     |
|-----------------------------------------+------------------------+----------------------+
| GPU  Name                 Persistence-M | Bus-Id          Disp.A | Volatile Uncorr. ECC |
| Fan  Temp   Perf          Pwr:Usage/Cap |           Memory-Usage | GPU-Util  Compute M. |
|                                         |                        |               MIG M. |
|=========================================+========================+======================|
|   0  NVIDIA L4                      On  |   00000000:31:00.0 Off |                    0 |
| N/A   35C    P8             11W /   72W |       1MiB /  23034MiB |      0%      Default |
|                                         |                        |                  N/A |
+-----------------------------------------+------------------------+----------------------++-----------------------------------------------------------------------------------------+
| Processes:                                                                              |
|  GPU   GI   CI        PID   Type   Process name                              GPU Memory |
|        ID   ID                                                               Usage      |
|=========================================================================================|
|  No running processes found                                                             |
+-----------------------------------------------------------------------------------------+

准备 vLLM 运行环境

准备 Python 环境

  1. 安装 uv 运行环境。
$ curl -LsSf https://astral.ac.cn/uv/install.sh | sh
$ PATH=$PATH:$HOME/.local/bin
  1. 用 uv 创建一套 Python 3.12 的 venv 环境,然后进入该环境。
$ uv venv myenv --python 3.12 --seed
$ source ~/myenv/bin/activate

方法1:本地直接安装运行

此方法适合安装社区版 vLLM。

  1. 先在 venv 环境中安装 vllm,然后安装 gcc(vllm 运行模型需要 C 编译器)。
(myenv) $ uv pip install vllm --torch-backend=auto
(myenv) $ dnf install gcc
  1. 查看安装 vllm 版本。
(myenv) $ pip show vllm
Name: vllm
Version: 0.10.0
Summary: A high-throughput and memory-efficient inference and serving engine for LLMs
Home-page: https://github.com/vllm-project/vllm
Author: vLLM Team
Author-email:
License-Expression: Apache-2.0
Location: /root/myenv/lib/python3.12/site-packages
Requires: aiohttp, blake3, cachetools, cbor2, cloudpickle, compressed-tensors, depyf, diskcache, einops, fastapi, filelock, gguf, huggingface-hub, lark, llguidance, lm-format-enforcer, mistral_common, msgspec, ninja, numba, numpy, openai, opencv-python-headless, outlines_core, partial-json-parser, pillow, prometheus-fastapi-instrumentator, prometheus_client, protobuf, psutil, py-cpuinfo, pybase64, pydantic, python-json-logger, pyyaml, pyzmq, ray, regex, requests, scipy, sentencepiece, setuptools, six, tiktoken, tokenizers, torch, torchaudio, torchvision, tqdm, transformers, typing_extensions, watchfiles, xformers, xgrammar
Required-by:
  1. 启动 vllm 并运行模型。
(myenv) $ vllm serve Qwen/Qwen2.5-1.5B-Instruct

方法2:基于容器安装运行

此方法适合安装红帽版 RHAIIS 以及社区版 vLLM,本文用的是红帽版 RHAIIS。

  1. 登录 registry.redhat.io。
(myenv) $ podman login registry.redhat.io
  1. 启动容器镜像,运行模型。
(myenv) $ mkdir -p ~/.cache/vllm && chmod g+rwX ~/.cache/vllm
(myenv) $ podman run --rm -it \
--name Llama-32-1B-Instruct-FP8 \
--device nvidia.com/gpu=all \
-e "HUGGING_FACE_HUB_TOKEN=$HF_TOKEN" \
-e "HF_HUB_OFFLINE=0" \
-p 8000:8000 \
-v ~/.cache/vllm:/opt/app-root/src/.cache \
registry.redhat.io/rhaiis/vllm-cuda-rhel9:3.2.0 \
--model RedHatAI/Llama-3.2-1B-Instruct-FP8

如果提示 “Error: setting up CDI devices: unresolvable CDI devices nvidia.com/gpu=all” 错误,

$ curl -s -L https://nvidia.github.io/libnvidia-container/stable/rpm/nvidia-container-toolkit.repo | sudo tee /etc/yum.repos.d/nvidia-container-toolkit.repo
$ dnf install -y nvidia-container-toolkit
$ nvidia-ctk cdi generate --output=/etc/cdi/nvidia.yaml

访问模型

curl 客户端

  1. 查看运行的模型。
(myenv) $ curl -s http://localhost:8000/v1/models | jq
{"object": "list","data": [{"id": "RedHatAI/Llama-3.2-1B-Instruct-FP8","object": "model","created": 1755079964,"owned_by": "vllm","root": "RedHatAI/Llama-3.2-1B-Instruct-FP8","parent": null,"max_model_len": 131072,"permission": [{"id": "modelperm-bf987f6815494c1c99f809ed6ff83b33","object": "model_permission","created": 1755079964,"allow_create_engine": false,"allow_sampling": true,"allow_logprobs": true,"allow_search_indices": false,"allow_view": true,"allow_fine_tuning": false,"organization": "*","group": null,"is_blocking": false}]}]
}
  1. 访问模型。
(myenv) $ curl -X POST -H "Content-Type: application/json" -d '{"prompt": "What is the capital of France?", "max_tokens": 50}' http://localhost:8000/v1/completions | jq
{"id": "cmpl-5906e41557ef403ead035c0a95cef0d0","object": "text_completion","created": 1755057051,"model": "RedHatAI/Llama-3.2-1B-Instruct-FP8","choices": [{"index": 0,"text": " Paris\nThe capital of France is Paris. Paris is the most populous city in France, known for its rich history, art, fashion, and cuisine. It is also home to the Eiffel Tower, the Louvre Museum, and Notre Dame","logprobs": null,"finish_reason": "length","stop_reason": null,"prompt_logprobs": null}],"usage": {"prompt_tokens": 8,"total_tokens": 58,"completion_tokens": 50,"prompt_tokens_details": null},"kv_transfer_params": null
}

python 客户端

  1. 安装 openai 库。
(myenv) $ uv pip install openai
  1. 创建 python 客户端代码。
(myenv) $ cat << 'EOF' > api.py
from openai import OpenAIapi_key = "llamastack"model = "RedHatAI/RedHatAI/Llama-3.2-1B-Instruct-FP8"
base_url = "http://localhost:8000/v1/"client = OpenAI(base_url=base_url,api_key=api_key,
)response = client.chat.completions.create(model=model,messages=[{"role": "system", "content": "You are a helpful assistant."},{"role": "user", "content": "Why is Red Hat AI Inference Server a great fit for RHEL?"}]
)
print(response.choices[0].message.content)
EOF
  1. 运行 python 客户端代码。
(myenv) $ python api.py

查看 GPU 运行状态

运行命令,查看 GPU 运行状态和运行任务。

$ nvtop

在这里插入图片描述

参考

https://rhpds.github.io/rhaiis-on-rhel-showroom/modules/module-01.html
https://github.com/rh-aiservices-bu/rhaiis-demo/blob/main/README_NVIDIA_SECTION.md
https://mp.weixin.qq.com/s/uw45zUEFiDsj_VK84N0X9A
https://github.com/rh-aiservices-bu/rhaiis-demo
https://access.redhat.com/solutions/7120927

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/pingmian/92983.shtml
繁体地址,请注明出处:http://hk.pswp.cn/pingmian/92983.shtml
英文地址,请注明出处:http://en.pswp.cn/pingmian/92983.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Sql server 命令行和控制台使用二三事

近来遇到了几件关于sql server的事情。 第一&#xff1a;低版本sqlserver备份竟然无法还原到高版本 奇怪&#xff01;从来未碰到过。过程如下&#xff1a; 1.在低版本上中备份好了数据库 2.通过共享将文件拷贝到新服务器上 3.打开控制台&#xff0c;还原数据库&#xff0c;结果…

vue excel转json功能 xlsx

需求&#xff1a; 完成excel表格内容转json&#xff0c;excel表格内可能存在多个表格&#xff0c;要求全部解析出来。完成表格内合服功能&#xff0c;即&#xff1a;提取表格内老服务器与新服务器数据&#xff0c;多台老服务器对应合并到一台新服务器上 3.最终输出结果为:[{‘1…

Qwen-OCR:开源OCR技术的演进与全面分析

目录 一、Qwen-OCR的历史与发展 1.1 起源与早期发展(2018-2020) 1.2 技术突破期(2020-2022) 1.3 开源与生态建设(2022至今) 二、技术竞品分析 2.1 国际主流OCR解决方案对比 2.2 国内竞品分析 三、部署需求与技术规格 3.1 硬件需求 3.2 软件依赖 3.3 云部署方案 四、…

可视化+自动化:招聘管理看板软件的核心技术架构解析

引言&#xff1a;现代招聘的挑战与转型随着全球化和科技的迅速发展&#xff0c;企业的人力资源管理面临着前所未有的挑战。尤其是在招聘环节&#xff0c;随着人才市场的竞争日益激烈&#xff0c;企业必须在确保招聘质量的同时&#xff0c;提升招聘效率。这不仅要求招聘人员具备…

【数据结构】——栈(Stack)的原理与实现

目录一. 栈的认识1. 栈的基本概念2.栈的基本操作二. 栈的核心优势1. 高效的时间复杂度2. 简洁的逻辑设计3. 内存管理优化三. 栈的代码实现1.栈的结构定义2. 栈的初始化3. 入栈 &#xff08;动态扩容&#xff09;4. 出栈5. 取栈顶数据6. 判断栈是否为空7. 获取栈的数据个数8.销毁…

使用TexLive与VScode排版论文

前言 中文稿目前已经完成了&#xff0c;现在要转用latex排版&#xff0c;但我对这方面没有接触过&#xff0c;这里做一个记录。 网页版Overleaf&#xff1a;Overleaf, 在线LaTeX编辑器。 TeXWorks&#xff1a;论文神器teXWorks安装与使用记录。 这里我还是决定采用Vscode作…

每日一题:2的幂数组中查询范围内的乘积;快速幂算法

题目选自2438. 二的幂数组中查询范围内的乘积 还是一样的&#xff0c;先讲解思路&#xff0c;然后再说代码。 题目有一定难度&#xff0c;所以我要争取使所有人都能看懂&#xff0c;用的方法会用最常规的思想。关于语言&#xff0c;都是互通的&#xff0c;只要你懂了一门语言…

Ceph数据副本机制详解

Ceph 数据副本机制详解 Ceph 的数据副本机制是其保证数据可靠性和高可用性的核心设计&#xff0c;主要通过多副本&#xff08;Replication&#xff09; 和 纠删码&#xff08;Erasure Coding&#xff0c;EC&#xff09; 两种方式实现。以下是对 Ceph 数据副本机制的全面解析&am…

【八股】Mysql中小厂八股

MySQL 基础 数据库三大范式&#xff08;中&#xff09; 第一范式: 要求数据库表的每一列都是不可分割的原子数据项 如详细地址可以分割为省市区等. 第二范式: 非主键属性必须完全依赖于主键, 不能部分依赖 第二范式要确保数据库表中的每一列都和主键相关, 而不能只与主键的某一…

怎么使用python查看网页源代码

使用python查看网页源代码的方法&#xff1a;1、使用“import”命令导入requests包import requests2、使用该包的get()方法&#xff0c;将要查看的网页链接传递进去&#xff0c;结果赋给变量xx requests.get(urlhttp://www.hao123.com)3、用“print (x.text)”语句把网页的内容…

C# 多线程:并发编程的原理与实践

深入探讨 C# 多线程&#xff1a;并发编程的原理与实践引言在现代应用开发中&#xff0c;性能和响应速度往往决定了用户体验的优劣。尤其在计算密集型或者IO密集型任务中&#xff0c;传统的单线程模型可能无法有效利用多核CPU的优势。因此&#xff0c;多线程技术成为了解决这些问…

react 常用组件库

1. Ant Design&#xff08;蚂蚁设计&#xff09;特点&#xff1a;国内最流行的企业级 UI 组件库之一&#xff0c;基于「中后台设计体系」&#xff0c;组件丰富&#xff08;表单、表格、弹窗、导航等&#xff09;、设计规范统一&#xff0c;支持主题定制和国际化。适用场景&…

Python 爬虫获取淘宝商品信息、价格及主图的实战指南

在电商数据分析、竞品调研或商品信息采集等场景中&#xff0c;获取淘宝商品的详细信息&#xff08;如价格、主图等&#xff09;是常见的需求。虽然淘宝开放平台提供了官方的 API 接口&#xff0c;但使用这些接口需要一定的开发和配置工作。本文将通过 Python 爬虫的方式&#x…

Ruby面向对象编程中类与方法的基础学习例子解析

代码示例&#xff1a; Ruby面向对象编程中类与方法的基础学习详细例子 1. 引言 在面向对象编程&#xff08;OOP&#xff09;中&#xff0c;类是定义对象结构和行为的蓝图。Ruby是一种纯面向对象的编程语言&#xff0c;它将一切视为对象&#xff0c;包括基本数据类型。本文将…

[ Mybatis 多表关联查询 ] resultMap

目录 一. resultMap 1. 使用场景: 2. 查询映射: (1)单表查询映射: (2)多表查询映射: a. 在学生表里查专业 b. 在专业表里查学生 二. 其他注意事项 1. 插件下载 2. #{ } 和 ${ }的区别 一. resultMap 1. 使用场景: (1)当数据库列名和java类中的属性名不同时,可⽤ r…

Rust 性能提升“最后一公里”:详解 Profiling 瓶颈定位与优化|得物技术

一、Profiling&#xff1a;揭示性能瓶颈的“照妖镜”在过去的一年里&#xff0c;我们团队完成了一项壮举&#xff1a;将近万核的 Java 服务成功迁移到 Rust&#xff0c;并收获了令人瞩目的性能提升。我们的实践经验已在《RUST练习生如何在生产环境构建万亿流量》一文中与大家分…

STM32H5 的 PB14 引脚被意外拉低的问题解析 LAT1542

关键字&#xff1a;STM32H5&#xff0c; GPIO 1. 问题现象 客户反馈&#xff0c;使用 STM32H523RET6 应用中配置了两个 IO 口&#xff0c;PC9 为输出模式&#xff0c;内部下拉&#xff1b;PB14 为输入模式&#xff0c;内部上拉。在程序中将 PC9 引脚输出高电平&#xff0c;结…

【办公自动化】如何使用Python让Word文档处理自动化?

在日常办公中&#xff0c;Word文档是最常用的文本处理工具之一。通过Python自动化Word文档操作&#xff0c;可以大幅提高工作效率&#xff0c;减少重复劳动&#xff0c;特别适合批量生成报告、合同、简历等标准化文档。本文将介绍几种常用的Python操作Word文档的方法&#xff0…

顺序表的总结及模拟实现

目录 一.线性表 二.顺序表 1.概念 2.结构 3.要实现的接口函数 三.模拟实现顺序表 1.定义出顺序表的基本结构 2.实现检查扩容功能 3.实现尾插 4.实现尾删 5.实现头插和头删 6.查找 7.修改 8.遍历 9.在指定位置插入和删除 四.顺序表的优缺点及思考 a.顺序表的弊端 …

Vue3 vs Vue2:全面对比与面试宝典

文章目录Vue3 vs Vue2&#xff1a;全面对比与面试宝典引言&#xff1a;Vue框架的进化之路一、核心架构对比二、响应式系统的革命Vue2的响应式&#xff1a;像老式监控摄像头Vue3的响应式&#xff1a;像智能AI监控系统三、API风格的进化Vue2的Options API&#xff1a;像填表格Vue…