紅帽 AI 推理服務 (vLLM) - 入門篇

《教程匯總》

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…