ビジョン、音声、NLP、LLMを網羅する419種類の学習済みAIモデルを、共通のPython CLIからailia SDKで実行できます。
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
PyPIからパッケージをインストールします
pip install simurg - 2
または、リポジトリをcloneしてソースからインストールします
git clone https://github.com/doofzoff/SIMURG.git - 3
プロジェクトフォルダに移動し、editableモードでインストールします
cd SIMURG && pip install -e . - 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 の数値は毎日更新されます。
関連プロジェクト
Rust製のエンジン非依存LLMゲートウェイ。OpenAIおよびAnthropic互換のトラフィックを、自前の推論エンジンやクラウドモデルプロバイダーへルーティングします。
Gemma、Qwen、DeepSeek、gpt-ossなどのオープンモデルをローカルやクラウドで実行できるCLI・REST API・各種ライブラリ。
CPUのみのマシンを含むあらゆるハードウェアで各種AIモデルを動かす、セルフホスト型のOpenAI互換AIエンジン。
量子化なしで、レイヤー単位に大規模言語モデルを実行し、70Bクラスのモデルを4GB GPU 1枚で推論できるPythonライブラリ。
独自コンポーネントライブラリからLLMが描画可能なUIを生成する、OpenUI Langベースのフレームワーク非依存Generative UIツールキット。