mcpField
H
huawei-cloud-msmodelslim-model-adapt

huawei-cloud-msmodelslim-model-adapt

github.com/huaweicloud開発59158 回インストール2 日前に更新
リポジトリ

huawei-cloud-msmodelslim-model-adapt について

新しいモデル向けに msModelSlim アダプターを作成し、W8A8/W4A16 量子化を行う手順を開発者に示すスキルです。デコーダー専用 LLM と理解型 VLM のテキストバックボーンを対象に、登録と検証も扱います。

主な機能

  1. 01モデル構造の分析
  2. 02LLM・VLM テンプレートによるアダプター作成
  3. 03必要なインターフェースの実装と登録
  4. 044 段階のアダプター検証

活用シーン

  1. 01Ascend NPU 上の新しい LLM に量子化対応を追加
  2. 02VLM のテキストバックボーンを量子化に適応
  3. 03アダプターの重みと量子化ワークフローを検証

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/huaweicloud/huaweicloud-skills --skill huawei-cloud-msmodelslim-model-adapt

インストール後、Claude Code で/huawei-cloud-msmodelslim-model-adaptを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

assets/
model_adapter_template.py
vlm_model_adapter_template.py
references/
acceptance-criteria.md
core_workflow.md
implementation_guide.md
interface_checklist.md
interface_reference.md
model_analysis.md
moe_unpacked_adapter_example.py
moe_unpacked_module_example.py
registration_guide.md
troubleshooting.md
verification_guide.md
verification-method.md
references/llm/
fallback_config.yaml
w8a8_dynamic_full_model.yaml
w8a8_static_full_model.yaml
references/vlm/
fallback_config.yaml
w8a8_dynamic_full_model.yaml
w8a8_static_full_model.yaml
scripts/
step1_generate_test_model.py
step2_run_quantization.py
step3_verify_weights.py
step4_verify_quant_description.py

詳細

Huawei Cloud msModelSlim モデルアダプター

概要

このスキルでは、msModelSlim で W8A8/W4A16 量子化ワークフローを実行するために、新しいモデル用の基本的なアダプターを作成する方法を説明します。

アーキテクチャ:モデル分析 -> アダプター作成 -> 登録 -> 検証(4 ステップ)

関連スキル:

  • huawei-cloud-msmodelslim-model-analysis - アダプター実装前のモデル構造分析
  • huawei-cloud-ascend-profiler-db-explorer - オプション:デプロイ後のパフォーマンス分析

対象範囲

サポート対象:

  • デコーダーのみの LLM
  • 理解型 VLM(テキスト/LLM バックボーンのみ)

サポート対象外:

  • マルチモーダル生成(Stable Diffusion/Flux/Wan)
  • エンコーダーのみのモデル
  • Transformers 以外のアーキテクチャ

アーキテクチャ

┌─────────────────────────────────────────────────────────────┐
│              msModelSlim Model Adapter Skill                │
├─────────────────────────────────────────────────────────────┤
│  ┌──────────────────┐    ┌──────────────────────────────┐  │
│  │  Model Analysis │───▶│    Adapter Creation          │  │
│  │  - config.json  │    │    - LLM Adapter Template     │  │
│  │  - modeling_*.py│    │    - VLM Adapter Template     │  │
│  └──────────────────┘    │    - Required Interfaces     │  │
│                          └──────────────────────────────┘  │
│                                    │                       │
│                                    ▼                       │
│                          ┌──────────────────┐             │
│                          │  Registration    │             │
│                          │  & Installation  │             │
│                          └──────────────────┘             │
│                                    │                       │
│                                    ▼                       │
│  ┌──────────────────────────────────────────────────────┐ │
│  │                   Verification (4 Steps)              │ │
│  │  1. Generate Test Model → 2. Full Fallback Quant     │ │
│  │  3. Weight Verification → 4. Quant Description     │ │
│  └──────────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────┘

アーキテクチャの構成要素

このスキルでは、以下のクラウドサービスとコンポーネントを使用します。

  • msModelSlim:効率的なモデル圧縮を実現する Huawei Cloud のモデル量子化フレームワーク
  • Transformers Library:モデルの読み込みと処理に使用する Hugging Face Transformers
  • ModelScope:モデルのダウンロードおよび管理プラットフォーム
  • Ascend NPU:量子化モデルのデプロイ先となるハードウェア

ユースケース

一般的な問題のシナリオ:

  • Ascend NPU 上で、メモリ使用量を抑えた LLM モデルをデプロイする必要がある
  • 精度を大きく損なわずに推論速度を最適化したい
  • msModelSlim の組み込みサポートがないモデルを移行する
  • デコーダーのみの LLM、または VLM のテキストバックボーンに W8A8/W4A16 量子化が必要である

ユーザーからよくある質問:

  • 「カスタム LLM モデルを Ascend 向けに量子化するにはどうすればよいですか?」
  • 「Qwen モデル用の msModelSlim アダプターを作成する」
  • 「W4A16 量子化ワークフローを実装する」
  • 「VLM のテキストバックボーンを量子化に対応させる」
  • 「新しいモデルに量子化サポートを追加するにはどうすればよいですか?」

基本的なワークフロー

1. 準備
  • モデルをダウンロードする:重みファイル以外のファイルには、modelscope download の使用を推奨します。
    • 例:modelscope download --model <org>/<model> --local_dir ./models/<name> --exclude '*.safetensors'
  • モデルを分析する:config.json と modeling_*.py を読み、構造と実装を確認します。
2. アダプターを作成する
  • テンプレートを使用する:
    • LLM:assets/model_adapter_template.py
    • VLM:assets/vlm_model_adapter_template.py
  • インターフェースを実装する:handle_dataset、init_model、 generate_model_visit、generate_model_forward、enable_kv_cache を実装します。
  • 重要な原則:
    • visit と forward は厳密に一致させる必要があります。
    • MoE モデルでは、純粋な線形層に展開することを推奨します。
    • 参照:実装ガイド
3. 登録とインストール
  • config/config.ini でモデルとエントリーを登録し、bash install.sh を実行します。
  • 参照:登録ガイド
4. アダプターを検証する(必須)
  • 4 段階の検証を必ず実行します:テストモデルを生成する -> フォールバック量子化をすべて実行する -> フォールバックモデル全体が浮動小数点重みと完全に一致し、完全に読み込み/保存できることを検証する -> 実際の量子化ワークフローが機能することを検証する(説明ファイルのルール検証を含む)。
  • 参照:検証ガイド

共通スクリプト

スクリプトは scripts/ ディレクトリにあります。

  • scripts/step1_generate_test_model.py
  • scripts/step2_run_quantization.py
  • scripts/step3_verify_weights.py
  • scripts/step4_verify_quant_description.py

前提条件

システム要件
  • Python 3.8+
  • transformers >= 4.40.0
  • msmodelslim >= 1.0.0
環境チェック

前提条件の確認:Python3 + transformers + msmodelslim が必要です

python3 --version  # Python3 >= 3.8
python3 -c "import transformers; print('OK')"  # Transformers library
python3 -c "import msmodelslim; print('OK')"  # msModelSlim library

インストールされていない場合:pip3 install --user transformers msmodelslim

参考ドキュメント

ドキュメント説明
モデル分析ガイドモデル構造の分析ガイド
実装ガイドアダプターの実装手順
登録ガイド登録およびインストールガイド
検証ガイド4 ステップの検証ワークフロー
インターフェースチェックリスト必須インターフェース実装のチェックリスト
コアワークフローコアワークフローのドキュメント
受け入れ基準機能の受け入れ基準
トラブルシューティングよくある問題と解決策

要件

  • transformers >= 4.40.0 がインストールされていること
  • msmodelslim >= 1.0.0 がインストールされていること
  • 適応対象の Transformers モデル
  • 対象の量子化方式(W8A8/W4A16)に関する理解

コアコマンド

# Create model adapter
python3 scripts/create_adapter.py \
  --model Qwen2-7B \
  --quantization W8A8

# Run four-step verification
python3 scripts/verify_adapter.py --adapter ./adapter.py

パラメーターの確認

パラメーター説明必須
modelモデル名またはパスはい
quantization量子化方式(W8A8/W4A16)はい
outputアダプターの出力パスいいえ

コメント