signround-v2-low-bit-quant
DeltaLoss感度メトリクスは、勾配と量子化によるパラメータの偏差を組み合わせた指標で、適応的なビット幅配分を実現します。軽量の事前チューニング検索によってスケール初期化を行い、2.5~6時間で4~5ビットの量子化において競争力のある精度を達成できます。
description の原文を見る
DeltaLoss sensitivity metric combining gradient and quantization-induced parameter deviation for adaptive bit-width allocation, with lightweight pre-tuning search for scale initialization, enabling competitive accuracy at 4-5 bits in 2.5-6 hours.
SKILL.md 本文
概要
SignRoundV2は、極めて低ビット数の学習後量子化のための2つの主要な技術革新を提示しています。主な貢献はDeltaLossであり、信頼性の高いレイヤー単位のビット割り当てのための、ローカルなパラメータ歪みとグローバルなタスク損失への影響の両方をキャプチャする感度メトリクスです。次の貢献は初期化のための軽量な事前チューニングサーチであり、最小限の時間で極めて低ビット数(2~5ビット)での安定で正確な量子化を実現します。
コア技術
DeltaLoss感度メトリクス: 以下を組み合わせてレイヤーの重要度を測定します:
- 勾配情報(重み変化に対する損失の感度の高さ)
- 量子化誘発偏差(量子化がパラメータをどの程度歪ませるか)
DeltaLoss_layer = ||∇_W L|| · ||W - Q(W)||
ローカルおよびグローバルな影響をキャプチャします。感度の高いレイヤーはより多くのビットを取得します。
事前チューニングスケールサーチ: メイン量子化の前に、レイヤーごとに最適な量子化スケール(ステップサイズ)の軽量なサーチを実行します:
scale_opt = argmin_scale MSE(Q_scale(W), W)
適応的ビット幅割り当て: DeltaLossを使用して予算からビットを割り当てます:
bits_layer = base_bits + extra_bits[DeltaLoss_rank(layer)]
重要なレイヤーは追加ビットを取得し、重要度の低いレイヤーはより少ないビットを取得します。
実装
DeltaLoss計算:
def compute_deltaloss_sensitivity(weight, gradient, quant_weight):
# 勾配の大きさ(ローカル感度)
gradient_norm = torch.norm(gradient.flatten())
# 量子化偏差(歪みの大きさ)
deviation = torch.norm(weight - quant_weight)
# 結合された感度
deltaloss = gradient_norm * deviation
return deltaloss
事前チューニングスケールサーチ:
def search_optimal_scale(weight, bits=4):
scales = torch.linspace(0.001, 1.0, 100)
best_scale = None
best_mse = float('inf')
for scale in scales:
# このスケールで量子化
quant_weight = quantize_symmetric(weight / scale, bits) * scale
mse = torch.mean((weight - quant_weight) ** 2)
if mse < best_mse:
best_mse = mse
best_scale = scale
return best_scale
適応的ビット割り当て:
def allocate_bits_adaptive(layers, total_bits_budget, deltaloss_scores):
num_layers = len(layers)
base_bits = total_bits_budget // num_layers
# DeltaLossスコアを正規化
dl_normalized = deltaloss_scores / deltaloss_scores.sum()
bit_allocation = {}
for layer_idx, layer in enumerate(layers):
# 重要度に比例してビットを割り当て
extra_bits = int(total_bits_budget * dl_normalized[layer_idx])
bit_allocation[layer] = base_bits + extra_bits
return bit_allocation
割り当てられたビットでの量子化:
def quantize_with_allocation(model, bit_allocation):
quantized_model = {}
for layer, bits in bit_allocation.items():
weight = model[layer]
# このビット幅に対して最適なスケールをサーチ
optimal_scale = search_optimal_scale(weight, bits)
# 量子化
normalized_weight = weight / optimal_scale
quant_weight = quantize_symmetric(normalized_weight, bits) * optimal_scale
quantized_model[layer] = quant_weight
return quantized_model
使用する場合
- モバイル/エッジデバイス向けの極端なモデル圧縮(2~5ビット)
- 量子化が数日ではなく数時間で完了する必要があるシナリオ
- レイヤー全体で信頼性の高いビット幅割り当てが必要なアプリケーション
- QATよりも学習後量子化が好ましいタスク
使用しない場合
- QAT学習のための豊富なGPUが利用可能なシナリオ
- モデルごとのカスタムチューニングが必要なアプリケーション
- 8ビット量子化で十分なタスク
- サーチのオーバーヘッドが重要なリアルタイム量子化
主要な参考文献
- 学習後量子化と感度分析
- レイヤー単位のビット割り当てと適応的圧縮
- 低ビット量子化と極端な圧縮
- 量子化認識スケール選択
ライセンス: MIT(寛容ライセンスのため全文を引用しています) · 原本リポジトリ
詳細情報
- 作者
- ADu2021
- リポジトリ
- ADu2021/skillXiv
- ライセンス
- MIT
- 最終更新
- 2026/3/26
Source: https://github.com/ADu2021/skillXiv / ライセンス: MIT
関連スキル
agent-browser
AI エージェント向けのブラウザ自動化 CLI です。ウェブサイトとの対話が必要な場合に使用します。ページ遷移、フォーム入力、ボタンクリック、スクリーンショット取得、データ抽出、ウェブアプリのテスト、ブラウザ操作の自動化など、あらゆるブラウザタスクに対応できます。「ウェブサイトを開く」「フォームに記入する」「ボタンをクリックする」「スクリーンショットを取得する」「ページからデータを抽出する」「このウェブアプリをテストする」「サイトにログインする」「ブラウザ操作を自動化する」といった要求や、プログラマティックなウェブ操作が必要なタスクで起動します。
anyskill
AnySkill — あなたのプライベート・スキルクラウド。GitHubを基盤としたリポジトリからエージェントスキルを管理、同期、動的にロードできます。自然言語でクラウドスキルを検索し、オンデマンドでプロンプトを自動ロード、カスタムスキルのアップロードと共有、スキルバンドルの一括インストールが可能です。OpenClaw、Antigravity、Claude Code、Cursorに対応しています。
engram
AIエージェント向けの永続的なメモリシステムです。バグ修正、意思決定、発見、設定変更の後はmem_saveを使用してください。ユーザーが「覚えている」「記憶している」と言及した場合、または以前のセッションと重複する作業を開始する際はmem_searchを使用します。セッション終了前にmem_session_summaryを使用して、コンテキストを保持してください。
skyvern
AI駆動のブラウザ自動化により、任意のウェブサイトを自動化できます。フォーム入力、データ抽出、ファイルダウンロード、ログイン、複数ステップのワークフロー実行など、ユーザーがウェブサイトと連携する必要があるときに使用します。Skyvernは、LLMとコンピュータビジョンを活用して、未知のサイトも自動操作可能です。Python SDK、TypeScript SDK、REST API、MCPサーバー、またはCLIを通じて統合できます。
pinchbench
PinchBenchベンチマークを実行して、OpenClawエージェントの実世界タスクにおけるパフォーマンスを評価できます。モデルの機能テスト、モデル間の比較、ベンチマーク結果のリーダーボード提出、またはOpenClawのセットアップがカレンダー、メール、リサーチ、コーディング、複数ステップのワークフローにどの程度対応しているかを確認する際に使用します。
openui
OpenUIとOpenUI Langを使用してジェネレーティブUIアプリを構築できます。これらはLLM生成インターフェースのためのトークン効率的なオープン標準です。OpenUI、@openuidev、ジェネレーティブUI、LLMからのストリーミングUI、AI向けコンポーネントライブラリ、またはjson-render/A2UIの置き換えについて述べる際に使用します。スキャフォルディング、defineComponent、システムプロンプト、Renderer、およびOpenUI Lang出力のデバッグに対応しています。