Agent Skills by ALSEL
汎用LLM・AI開発⭐ リポ 2品質スコア 59/100

safety-at-one-shot-lm-repair

ファインチューニングされたLLMの安全性を、1つの安全性サンプルのみを用いて復旧できます。モデルの有用性を損なわずに、安全性勾配の低ランク構造を活用することで、大量の有害なトレーニングデータによって侵害されたモデルでも、最小限のコストで修正が可能になります。

description の原文を見る

Recover safety alignment in fine-tuned LLMs using only a single safety example, without sacrificing utility. Leverages low-rank structure of safety gradients to enable minimal-cost correction even when models have been compromised by extensive harmful training data.

SKILL.md 本文

このスキルを使用すべき場合

  • 誤ってファインチューニングされたモデルのセーフティ回復
  • 新しいセーフティ問題が発生した場合の迅速なパッチング
  • リソース制約のある設定でのミニマルなセーフティ修正
  • モデルポートフォリオ全体の複数モデルセーフティ更新
  • フルリトレーニングが実用的でないシナリオ

このスキルを使用すべきでない場合

  • 初期モデル開発(包括的なセーフティトレーニングを使用してください)
  • 広範なセーフティ認証が必要な状況
  • 敵対的に危険にさらされたモデル(1つの例では不十分)

問題のまとめ

セーフティアライメント済みのLLMをドメインデータでファインチューニングすると、セーフティプロパティが大幅に損なわれる可能性があります。以前のソリューションでは、大量のセーフティトレーニングデータ(数百の例)と計算オーバーヘッドが必要であり、モデルのユーティリティを低下させることが多くありました。これにより、実践的なセーフティ修正が必要でありながら、モデル全体を再構築したり有用なタスクでのパフォーマンスを犠牲にしたくないという課題が生まれます。

ソリューション:低ランクセーフティグラディエント活用

セーフティ修正では、セーフティグラディエントの低ランク構造を利用して、単一例での回復を実現します。

class OneShotSafetyPatch:
    def __init__(self, model, reference_model):
        self.model = model  # Compromised model
        self.reference = reference_model  # Original safe model

    def patch_with_single_example(self, safety_example, learning_rate=0.01):
        """Recover safety with one reference example"""

        # Step 1: Compute safety gradient
        # Forward pass with compromised model
        output = self.model(safety_example)
        safe_target = self.reference(safety_example)

        # Compute alignment loss (KL divergence)
        alignment_loss = kl_divergence(output.logits, safe_target.logits)

        # Compute gradient
        gradients = torch.autograd.grad(
            alignment_loss, self.model.parameters(), retain_graph=True
        )

        # Step 2: Identify low-rank structure
        # Reshape gradients for singular value decomposition
        gradient_matrix = torch.cat([g.flatten() for g in gradients])

        # Perform SVD: G ≈ U @ S @ V^T
        U, S, Vt = torch.linalg.svd(gradient_matrix, full_matrices=False)

        # Retain only top-K singular values (low-rank approximation)
        k_rank = 10  # Effective rank
        U_low = U[:, :k_rank]
        S_low = S[:k_rank]

        # Step 3: Apply low-rank correction
        correction = U_low @ torch.diag(S_low) @ Vt[:k_rank, :]

        # Update model parameters
        for param, grad_correction in zip(self.model.parameters(), correction):
            param.data -= learning_rate * grad_correction

    def validate_safety_recovery(self, test_prompts):
        """Verify safety is restored without utility loss"""
        harmful_outputs = 0
        utility_score = 0

        for prompt in test_prompts:
            output = self.model.generate(prompt)

            # Check safety
            if is_harmful(output):
                harmful_outputs += 1

            # Check utility
            if is_useful(output):
                utility_score += 1

        return {
            "safety_rate": 1 - (harmful_outputs / len(test_prompts)),
            "utility_rate": utility_score / len(test_prompts)
        }

主要な実装の詳細

低ランク分解戦略:

  • 単一のセーフティ例から完全なグラディエントを計算
  • フラット化されたグラディエント行列でSVDを実行
  • 上位K個の特異値を保持(k ≈ 10)
  • 修正を再構成して適用

トレーニング設定:

  • 単一のセーフティ例(スタイル的には多様である可能性がある)
  • 学習率:0.01(セーフティのため控えめ)
  • 収束:数個のグラディエントステップ(1~5)
  • バッチ蓄積は不要

計算オーバーヘッド:

  • 時間:数分~数時間(モデル依存)
  • メモリ:グラディエント保存(通常は管理可能)
  • コスト:標準的なファインチューニングに比べて無視できる程度

パフォーマンス結果

テスト対象:

  • 5つの異なるセーフティアライメント済みLLM
  • 複数のデータセット
  • ファインチューニング中の有害な例の異なる数(1~1000)
  • 異なるモデルサイズ(7Bから70B)

主要な結果:

  • 有害な例の数に関わらず回復が有効
  • テストされたすべてのモデルサイズで機能
  • ユーティリティの低下なし(MMLU スコア維持)
  • 単一例で回復に十分

セーフティメトリクス:

  • ASR(攻撃成功率):60~90%から5%未満に低下
  • ユーティリティ:元のパフォーマンスの1%以内で維持
  • 汎化:回復されたモデルは新しい攻撃に対してロバスト

ベースラインとの比較における利点

  • リトレーニング比較:100~1000倍の高速化
  • 複数例メソッド比較:100倍少ないサンプル数
  • グラディエントフリーメソッド比較:より高速な収束、ハイパーパラメータ探索不要

適用シナリオ

シナリオ1:誤った危険な状態への変化

  • 有害な命令を含むコーパスでファインチューニングされたモデル
  • 迅速なパッチ:1つのセーフティ例 + 5分
  • 結果:セーフティ復元、ユーティリティ保護

シナリオ2:複数モデル修正

  • セーフティ上の懸念がある複数のモデルポートフォリオ
  • 同じ参照例で各モデルをパッチ
  • 総時間:日数ではなく時間単位

シナリオ3:新しく発見されたセーフティ問題

  • デプロイ後に新しい攻撃パターンが発見される
  • 迅速な対応:単一の修正例
  • 検証:自動セーフティメトリクス

実装チェックリスト

  1. 参照モデルの準備:元のセーフバージョンまたはクリーンなバージョント
  2. セーフティ例の収集:単一の代表的なセーフレスポンス
  3. SVDパラメータの設定:低ランクk(通常5~15)を設定
  4. パッチの適用:グラディエント修正ループを実行
  5. 回復の検証:セーフティベンチマークとユーティリティタスクでテスト
  6. ドリフト監視:デプロイ後のセーフティメトリクスを追跡

ライセンス: MIT(寛容ライセンスのため全文を引用しています) · 原本リポジトリ

詳細情報

作者
ADu2021
リポジトリ
ADu2021/skillXiv
ライセンス
MIT
最終更新
2026/3/26

Source: https://github.com/ADu2021/skillXiv / ライセンス: MIT

関連スキル

OpenAILLM・AI開発⭐ リポ 6,054

agent-browser

AI エージェント向けのブラウザ自動化 CLI です。ウェブサイトとの対話が必要な場合に使用します。ページ遷移、フォーム入力、ボタンクリック、スクリーンショット取得、データ抽出、ウェブアプリのテスト、ブラウザ操作の自動化など、あらゆるブラウザタスクに対応できます。「ウェブサイトを開く」「フォームに記入する」「ボタンをクリックする」「スクリーンショットを取得する」「ページからデータを抽出する」「このウェブアプリをテストする」「サイトにログインする」「ブラウザ操作を自動化する」といった要求や、プログラマティックなウェブ操作が必要なタスクで起動します。

by JimmyLv
汎用LLM・AI開発⭐ リポ 1,982

anyskill

AnySkill — あなたのプライベート・スキルクラウド。GitHubを基盤としたリポジトリからエージェントスキルを管理、同期、動的にロードできます。自然言語でクラウドスキルを検索し、オンデマンドでプロンプトを自動ロード、カスタムスキルのアップロードと共有、スキルバンドルの一括インストールが可能です。OpenClaw、Antigravity、Claude Code、Cursorに対応しています。

by LeoYeAI
汎用LLM・AI開発⭐ リポ 1,982

engram

AIエージェント向けの永続的なメモリシステムです。バグ修正、意思決定、発見、設定変更の後はmem_saveを使用してください。ユーザーが「覚えている」「記憶している」と言及した場合、または以前のセッションと重複する作業を開始する際はmem_searchを使用します。セッション終了前にmem_session_summaryを使用して、コンテキストを保持してください。

by LeoYeAI
汎用LLM・AI開発⭐ リポ 21,584

skyvern

AI駆動のブラウザ自動化により、任意のウェブサイトを自動化できます。フォーム入力、データ抽出、ファイルダウンロード、ログイン、複数ステップのワークフロー実行など、ユーザーがウェブサイトと連携する必要があるときに使用します。Skyvernは、LLMとコンピュータビジョンを活用して、未知のサイトも自動操作可能です。Python SDK、TypeScript SDK、REST API、MCPサーバー、またはCLIを通じて統合できます。

by Skyvern-AI
汎用LLM・AI開発⭐ リポ 1,149

pinchbench

PinchBenchベンチマークを実行して、OpenClawエージェントの実世界タスクにおけるパフォーマンスを評価できます。モデルの機能テスト、モデル間の比較、ベンチマーク結果のリーダーボード提出、またはOpenClawのセットアップがカレンダー、メール、リサーチ、コーディング、複数ステップのワークフローにどの程度対応しているかを確認する際に使用します。

by pinchbench
汎用LLM・AI開発⭐ リポ 4,693

openui

OpenUIとOpenUI Langを使用してジェネレーティブUIアプリを構築できます。これらはLLM生成インターフェースのためのトークン効率的なオープン標準です。OpenUI、@openuidev、ジェネレーティブUI、LLMからのストリーミングUI、AI向けコンポーネントライブラリ、またはjson-render/A2UIの置き換えについて述べる際に使用します。スキャフォルディング、defineComponent、システムプロンプト、Renderer、およびOpenUI Lang出力のデバッグに対応しています。

by thesysdev
本サイトは GitHub 上で公開されているオープンソースの SKILL.md ファイルをクロール・インデックス化したものです。 各スキルの著作権は原作者に帰属します。掲載に問題がある場合は info@alsel.co.jp または /takedown フォームよりご連絡ください。
原作者: ADu2021 · ADu2021/skillXiv · ライセンス: MIT