huawei-cloud-msmodelslim-model-adapt について
新しいモデル向けに msModelSlim アダプターを作成し、W8A8/W4A16 量子化を行う手順を開発者に示すスキルです。デコーダー専用 LLM と理解型 VLM のテキストバックボーンを対象に、登録と検証も扱います。
主な機能
- 01モデル構造の分析
- 02LLM・VLM テンプレートによるアダプター作成
- 03必要なインターフェースの実装と登録
- 044 段階のアダプター検証
活用シーン
- 01Ascend NPU 上の新しい LLM に量子化対応を追加
- 02VLM のテキストバックボーンを量子化に適応
- 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.pyvlm_model_adapter_template.pyreferences/acceptance-criteria.mdcore_workflow.mdimplementation_guide.mdinterface_checklist.mdinterface_reference.mdmodel_analysis.mdmoe_unpacked_adapter_example.pymoe_unpacked_module_example.pyregistration_guide.mdtroubleshooting.mdverification_guide.mdverification-method.mdreferences/llm/fallback_config.yamlw8a8_dynamic_full_model.yamlw8a8_static_full_model.yamlreferences/vlm/fallback_config.yamlw8a8_dynamic_full_model.yamlw8a8_static_full_model.yamlscripts/step1_generate_test_model.pystep2_run_quantization.pystep3_verify_weights.pystep4_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
- LLM:
- インターフェースを実装する:
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.pyscripts/step2_run_quantization.pyscripts/step3_verify_weights.pyscripts/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 | アダプターの出力パス | いいえ |
コメント
Markdown 対応