HyperAI超神経

vLLM+Open-webUIを使用してQwen3シリーズモデルをデプロイする

GitHub
星
ライセンス

1. チュートリアルの概要

このチュートリアルでは、単一の RTX_4090 カードのリソースを使用します。

👉 このプロジェクトでは 5 つのモデルが提供されます。

  • クウェン3-14B (シングルカードRTX A6000に切り替える必要がある)
  • クウェン3-8B (デフォルトの使用法)
  • クウェン3-4B
  • クウェン3-1.7B
  • クウェン3-0.6B

クリックしてジャンプ:Qwen3-30B-A3Bのワンクリック展開チュートリアル

Qwen3プロジェクトは、アリババのQwenチームによって2025年にリリースされました。関連する技術レポートは  「Qwen3: より深く考え、より速く行動する」

Qwen3 は、Qwen シリーズの最新世代の大規模言語モデルであり、包括的な高密度モデルと専門家の混合 (MoE) モデルを提供します。豊富なトレーニング経験に基づき、Qwen3 は推論、指示の追従、エージェント機能、多言語サポートにおいて画期的な進歩を遂げました。 Qwen3 の応用シナリオは非常に広範囲です。テキスト、画像、音声、ビデオの処理をサポートし、マルチモーダル コンテンツの作成やクロスモーダル タスクのニーズを満たすことができます。エンタープライズ レベルのアプリケーションでは、Qwen3 のエージェント機能と多言語サポートにより、医療診断、法的文書分析、顧客サービスの自動化などの複雑なタスクを処理できます。さらに、Qwen3-0.6Bなどの小型モデルは携帯電話などのエンドデバイスへの導入に適しており、応用シナリオがさらに広がります。

最新バージョンのQwen3には次の機能があります。

  • フルサイズの高密度および混合エキスパートモデル: 0.6B、1.7B、4B、8B、14B、32B、30B-A3B、235B-A22B
  • 思考モード(複雑な論理的推論、数学、コーディング用)と非思考モード(効率的な一般的な会話用)間のシームレスな切り替えをサポートし、さまざまなシナリオで最適なパフォーマンスを保証します。
  • 推論機能が大幅に強化され、数学、コード生成、常識的な論理推論において、以前の QwQ (思考モード) および Qwen2.5 命令モデル (非思考モード) を上回ります。
  • 人間の好みとの優れた整合性、創造的な文章作成、ロールプレイング、マルチターンの会話、コマンドのフォローに優れており、より自然で魅力的、かつ没入感のある会話体験を提供します。
  • インテリジェント エージェント機能に優れ、思考モードと非思考モードの両方で外部ツールを正確に統合でき、複雑なエージェントベースのタスクにおけるオープン ソース モデルをリードします。
  • 100 を超える言語と方言をサポートし、強力な多言語理解、推論、コマンド追従、生成機能を備えています。

2. 操作手順

1. コンテナを起動した後、API アドレスをクリックして Web インターフェイスに入ります

「モデル」が表示されない場合は、モデルが初期化中であることを意味します。モデルが大きいため、1〜2分ほど待ってからページを更新してください。

2. Web ページに入ると、モデルと会話を開始できます。

利用手順

以下は、API 呼び出しメソッドの最適化された説明であり、より明確な構造と実用的な詳細が追加されています。

3. OpenAI API呼び出しガイド

1. 基本設定を取得する

# 必要参数配置
BASE_URL = "<API 地址>/v1"  # 生产环境
MODEL_NAME = "Qwen3-30B-A3B"  # 默认模型名称
API_KEY = "Empty"  # 未设置 API_KEY

APIアドレスを取得する

2. さまざまな呼び出し方法

2.1 ネイティブPython呼び出し

import openai
# 创建 OpenAI 客户端实例
client = openai.OpenAI(
    api_key=API_KEY,  # 请替换为你的实际 API Key
    base_url=BASE_URL  # 替换为你的实际 base_url
)
# 发送聊天消息
response = client.chat.completions.create(
    model=MODEL_NAME,
    messages=[
        {"role": "user", "content": "你好!"}
    ],
    temperature=0.7, 
)
# 输出回复内容
print(response.choices[0].message.content)
# 方法 2:requests 库(更灵活)
import requests
headers = {
    "Authorization": f"Bearer {API_KEY}",
    "Content-Type": "application/json"
}
data = {
    "model": MODEL_NAME,
    "messages": [{"role": "user", "content": "你好!"}]
}
response = requests.post(f"{BASE_URL}/chat/completions", headers=headers, json=data)

2.2 開発ツールの統合

VScodeを使って公式をインストールする場合 CLINE プラグイン

2.3 cURL呼び出し

curl <BASE_URL>/v1/chat/completions \
  -H "Content-Type: application/json" \
  -d '{
    "model": <MODEL_NAME>,
    "messages": [{"role": "user", "content": "你好!"}]
  }'

4. モデルの切り替え

このチュートリアルでは、デフォルトで Qwen3-8B モデルを使用します。別のモデルに切り替えるには、次の手順に従ってください。

1. グラフィックカードの要件(最小構成)を確認する

  • クウェン3-14B:NVIDIA A6000
  • クウェン3-8B:RTX4090(デフォルト)
  • Qwen3-4B: RTX 4090
  • Qwen3-1.7B: RTX 4090
  • Qwen3-0.6B: RTX 4090

知らせ:

  • 14B モデルには A6000 (48 GB ビデオ メモリ) が必要です。コンピューティング リソースが切り替えられていることを確認してください。
  • 8B 以下は RTX 4090 (24 GB VRAM) で実行できます。

2. モデルのステップを切り替える

2.1 現在のモデルサービスを閉じる

ターミナルで次のコマンドを実行して検索します vllm  処理して終了:

ps aux | grep vllm

プロセス ID (PID) を見つけて、次を実行します。

kill -9 [PID]

2.2 新しいモデルの開始

例えば、スタートQwen3-4B:

vllm serve /input0/Qwen3-4B \
  --tensor_parallel_size 1 \
  --host 0.0.0.0 \
  --port 8080 \
  --gpu-memory-utilization 0.95 \
  --max-num-seqs 16 \
  --served-model-name Qwen3-4B \
  --enable-reasoning \
  --reasoning-parser deepseek_r1

変更点:

  • /input0/Qwen3-4B → ターゲットモデルパスに置き換えます(例: Qwen3-1.7B)。
  • --served-model-name → 対応するモデル名に変更します(例: Qwen3-1.7B)。

完了すると、新しいモデルが使用できるようになります。 🚀

交流とディスカッション

🖌️ 高品質のプロジェクトを見つけたら、メッセージを残してバックグラウンドで推奨してください。さらに、チュートリアル交換グループも設立しました。お友達はコードをスキャンして [SD チュートリアル] に参加し、さまざまな技術的な問題について話し合ったり、アプリケーションの効果を共有したりできます。

引用情報

ありがたい ZV-Liu  このチュートリアルを作成するためのプロジェクト参照情報は次のとおりです。

@misc{glm2024chatglm,
      title={ChatGLM: A Family of Large Language Models from GLM-130B to GLM-4 All Tools},
      author={Team GLM and Aohan Zeng and Bin Xu and Bowen Wang and Chenhui Zhang and Da Yin and Diego Rojas and Guanyu Feng and Hanlin Zhao and Hanyu Lai and Hao Yu and Hongning Wang and Jiadai Sun and Jiajie Zhang and Jiale Cheng and Jiayi Gui and Jie Tang and Jing Zhang and Juanzi Li and Lei Zhao and Lindong Wu and Lucen Zhong and Mingdao Liu and Minlie Huang and Peng Zhang and Qinkai Zheng and Rui Lu and Shuaiqi Duan and Shudan Zhang and Shulin Cao and Shuxun Yang and Weng Lam Tam and Wenyi Zhao and Xiao Liu and Xiao Xia and Xiaohan Zhang and Xiaotao Gu and Xin Lv and Xinghan Liu and Xinyi Liu and Xinyue Yang and Xixuan Song and Xunkai Zhang and Yifan An and Yifan Xu and Yilin Niu and Yuantao Yang and Yueyan Li and Yushi Bai and Yuxiao Dong and Zehan Qi and Zhaoyu Wang and Zhen Yang and Zhengxiao Du and Zhenyu Hou and Zihan Wang},
      year={2024},
      eprint={2406.12793},
      archivePrefix={arXiv},
      primaryClass={id='cs.CL' full_name='Computation and Language' is_active=True alt_name='cmp-lg' in_archive='cs' is_general=False description='Covers natural language processing. Roughly includes material in ACM Subject Class I.2.7. Note that work on artificial languages (programming languages, logics, formal systems) that does not explicitly address natural-language issues broadly construed (natural-language processing, computational linguistics, speech, text retrieval, etc.) is not appropriate for this area.'}
}