Repolode
doofzoff

doofzoff/SIMURG

LLMのデコード破損を検知し、ユーザーに異常なトークンが届く前に生成を止める、NumPyのみで動作するPython製ガード。

スター
101
フォーク
15
未解決の Issue
0
最終コミット
29 日前

これは何?

SIMURGはLLMの生成中にトークンストリームを監視し、反復の崩壊、言語の切り替わり、定型文の繰り返し、構造上のゴミ、チャットテンプレートのマーカー漏れといったデコード破損を検知します。最初の350文字は保留してから出力し、その後は400文字ごとにストリームを再チェックします。調整済みのしきい値を超えると出力を打ち切るため、破損したテキストがユーザーに表示されません。アラームには、人が読める理由と、異常が始まったと推定される位置が付属します。

コア機能はNumPyのみで動作し、モデルもGPUも必要ありません。vLLM、llama.cpp server、TGI、Ollama、OpenAIなど、OpenAI互換のチャット補完エンドポイントで利用できます。GuardedLLMラッパーはリトライとフォールバックモデルのロジックを追加し、自己修復機能では回答全体を再生成せず、検証済みの正常なプレフィックスから生成を続けられます。しきい値は正常な出力を使って調整でき、独自のトラフィック向けの再学習コマンドと、リアルタイム監視やセッション再生に使えるダッシュボードも備えています。

このプロジェクトが検知するのは出力時の破損であり、事実誤認ではないことが明示されています。流暢でも誤った文章には、統計的な特徴がないためです。また、オプションの小型Transformer層、根拠確認用のWeb検索層、実験的なフィードバック学習モジュールも含まれています。

主な機能

  • 01ストリーミング出力に含まれる反復ループ、言語の切り替わり、定型文の繰り返し、構造上のゴミ、テンプレートの漏れを検知します。
  • 02冒頭の文字列を保留し、調整済みのしきい値に達すると出力を打ち切ることで、破損したテキストが表示されないようにします。
  • 03NumPyのみで動作し、モデルやGPUは不要です。OpenAI互換の任意のエンドポイントで利用できます。
  • 04人が読めるアラーム理由と、異常が始まったと推定される位置を報告します。
  • 05生成が異常と判定された場合にリトライするか、別のモデルにフォールバックします。
  • 06独自の正常な出力を使ったしきい値の再調整と、リアルタイム監視用ダッシュボードに対応しています。

ユースケース

  • 量子化モデルやセルフホストモデルを使ったユーザー向けチャットボットを、異常な出力から保護する。
  • トークンがUIに届く前に、推論サーバーの手前でストリーム中の品質チェックを行う。
  • 本番モデルで生成された破損出力を監査・再生し、失敗パターンを特定する。
  • ラベル付きの例から独自の検知器を学習し、自社モデルの新たな失敗モードを検知する。

クイックスタート

  1. 1

    PyPIからパッケージをインストールします

    pip install simurg
  2. 2

    または、リポジトリをcloneしてソースからインストールします

    git clone https://github.com/doofzoff/SIMURG.git
  3. 3

    プロジェクトフォルダに移動し、editableモードでインストールします

    cd SIMURG && pip install -e .
  4. 4

    再現可能なベンチマークを実行します

    python3 -m simurg.data.evaluate

使う前に知っておきたいこと

  • このモデルのキャリブレーションは同梱の合成ベンチマーク向けに調整されているため、本番環境で使用する前に、実際のトラフィックで再学習してください。
  • ストリーム途中で破損が起きると、リトライで置き換えられるまで最大約900文字の不正な末尾が残る場合があります。また、hold window内で始まる破損を完全にブロックできるのは、ベンチマークの21ケース中12ケースのみです。

トピック

よくある質問

SIMURG とは?
LLMのデコード破損を検知し、ユーザーに異常なトークンが届く前に生成を止める、NumPyのみで動作するPython製ガード。 SIMURGはLLMの生成中にトークンストリームを監視し、反復の崩壊、言語の切り替わり、定型文の繰り返し、構造上のゴミ、チャットテンプレートのマーカー漏れといったデコード破損を検知します。最初の350文字は保留してから出力し、その後は400文字ごとにストリームを再チェックします。調整済みのしきい値を超えると出力を打ち切るため、破損したテキストがユーザーに表示されません。アラームには、人が読める理由と、異常が始まったと推定される位置が付属します。
SIMURG は無料で使えますか?ライセンスは?
SIMURG は Apache-2.0 ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
SIMURG は今もメンテナンスされていますか?
活発にメンテナンス中。SIMURG の最終コミットは 2026年9月21日 です。
SIMURG は何に使えますか?
量子化モデルやセルフホストモデルを使ったユーザー向けチャットボットを、異常な出力から保護する。 トークンがUIに届く前に、推論サーバーの手前でストリーム中の品質チェックを行う。 本番モデルで生成された破損出力を監査・再生し、失敗パターンを特定する。 ラベル付きの例から独自の検知器を学習し、自社モデルの新たな失敗モードを検知する。
SIMURG のインストール方法は?
PyPIからパッケージをインストールします: pip install simurg または、リポジトリをcloneしてソースからインストールします: git clone https://github.com/doofzoff/SIMURG.git プロジェクトフォルダに移動し、editableモードでインストールします: cd SIMURG && pip install -e . 再現可能なベンチマークを実行します: python3 -m simurg.data.evaluate
SIMURG はどこで入手できますか?
ソースコードとインストール手順は GitHub にあります:https://github.com/doofzoff/SIMURG

概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。

関連プロジェクト