サムネイル

Mistral Shieldstral 1.0 自然言語ポリシーで動く3Bガードレール

gen
gen

2026/08/05

  • 0

MistralがShieldstral 1.0を昨日リリースしました。

3Bなのに7倍サイズの安全性モデルに勝つと言い張り、しかも自然言語で書いたポリシーだけで判定基準を変えられるという触れ込みです。

16GB GPUに落として、個人開発の荒らし対策として使えるかを深夜まで検証したので、そのまま書き残します。

個人開発のAIアプリに立ちはだかる荒らし対策問題

副業でAIチャットボットやコメント機能付きのWebアプリを一人で作っていると、必ずぶつかるのが「有害投稿をどう弾くか」の壁です。

選択肢はだいたい3つあって、どれも痛点があります。

OpenAI Moderation APIは精度は良いんですが、呼ぶたびに課金されるし、規約が変わると自分のサービスの運命がOpenAIの都合に握られます。

Llama Guard 3-8Bはローカルで動きますが、8Bだと16GBのGPUに乗せるとギリギリで、しかも判定カテゴリはMeta側が決めた固定セットです。

Mistralの旧Moderation APIも同様で、sexual hate_and_discrimination violence_and_threats など9カテゴリの固定分類。

「うちのフィットネスコミュニティでは商用リンクの投稿を弾きたい」みたいなドメイン固有ルールは、どこにも用意されていません。

Shieldstral 1.0は、この3つの壁を全部刺してきました。

3Bで16GBに収まって、任意のポリシーを日本語で書けて、Apache 2.0でオンプレ運用OK。

これがハッタリで終わってないかを、実際に動かして確かめます。

Shieldstral 1.0とは 3Bで7倍サイズに勝つMistralの新ガードレール

Shieldstral-1.0-3Bは、Mistralが2026年8月4日に公開したマルチモーダル安全性分類器です。

ベースモデルはMinistral-3-3B-Base-2512で、そこにPixtral vision encoderを統合した構成。

テキストだけでなく画像入力も同じ1つの自然言語ポリシーで判定できます。

ライセンスはApache 2.0で商用利用まで含めて自由、コンテキスト長は32k、BF16で16GBのVRAMに収まります。

ベンチマークが正直えげつなくて、テキスト安全性のF1平均が84.9%。

これは7倍サイズあるGPT-OSS-Safeguard-20Bと同等の数字です。

内訳を拾うとWildGuardTestのプロンプト分類で88.1%、Aegis v2のレスポンス分類で87.2%、拒否応答検出のXSTestで94.6%。

マルチモーダルのVLGuardでは97.7%を叩き出していて、こちらは全ベースライン中で1位でした。

「3Bで20B級と同じ精度」はマーケの誇張じゃなく、arXiv論文のベンチマーク表にそのまま載っています。

自然言語ポリシーで再学習なしに判定基準を変えられる仕組み

Shieldstralが他と決定的に違うのは、モデレーションを「固定カテゴリの多クラス分類」ではなく「2値の質問応答」として設計している点です。

入力は3つのコンポーネントに分かれます。

<Instruct>
このコミュニティは、フィットネス関連の一般的な話題を扱います。
商品プロモーションには厳しく判定してください。
</Instruct>

<Query>
この投稿は勧誘的な商品プロモーションを含みますか?
</Query>

<Document>
【体験談】このプロテインで3ヶ月10kg増量!詳細はプロフのリンクから
</Document>

出力はyes/noの確率スコア1つだけ。

で判定の温度感(strict / moderate / lenient)と文脈を渡し、で具体的な質問を書き、に判定したい投稿を入れる。

これのどこが便利かというと、旧Moderation APIだとMistralの決めた9カテゴリしか使えなかったのが、Shieldstralなら「顧問弁護士以外は法律相談に答えるな」「未成年に見えるユーザーへの飲酒推奨を弾け」みたいなドメイン固有ルールを、再学習ゼロで足せることです。

しかも同じ質問形式のままテキストも画像も投げられるので、コメント欄と画像投稿機能で2つ別のモデルを回す必要がありません。

Hugging Faceから落として16GB GPUで動かしてみた

セットアップはtransformersだけで完結します。

from transformers import Mistral3ForConditionalGeneration, MistralCommonBackend
import torch

tokenizer = MistralCommonBackend.from_pretrained("mistralai/Shieldstral-1.0-3B")
model = Mistral3ForConditionalGeneration.from_pretrained(
    "mistralai/Shieldstral-1.0-3B",
    device_map="cuda",
    dtype=torch.bfloat16,
).eval()

手元はRTX 4060 Ti 16GBUbuntu 22.04CUDA 12.4

初回ロードは45秒くらいで、モデルがVRAMに8GBほど確保されます。

日本語の短文なら1推論500msから1秒。

コンテキストを2,000トークンまで積んでも2秒以内で返ってきます。

これはマジで速い。

ローカルGPUを持っていない副業エンジニアなら、RunpodでA10G 24GBが時給0.4ドル前後(およそ60円)、vast.aiでRTX 4090 24GBが時給0.35ドル前後(およそ53円)で借りられます。

検証だけなら30分から1時間、100円もかからず終わる金額なので、まずは触ってから採用判断するのが現実的です。

罠が1つあって、Mistral3ForConditionalGenerationtransformers 4.50.0.dev0以降かv5系が必要です。

安定版の4.49以下だとAttributeErrorで落ちるので、pip install git+https://github.com/huggingface/transformers.gitで最新版を入れてください。

これで詰みました、僕の環境で。

自作ポリシーを5パターン書いて際どい投稿を判定させてみた結果

日本語で5つの自作ポリシーを書いて、それぞれ複数の投稿を判定させました。

コミュニティ運営で実際に困りそうなラインを狙ってサンプルを作っています。

ポリシー
投稿サンプル
判定
期待
個人攻撃
〇〇さんの投稿マジで頭悪すぎ
Yes (0.94)
Yes
個人攻撃
今日の会議の意見、ちょっと弱いなと思った
No (0.12)
No
副業勧誘
月100万稼げる案件あります DMください
Yes (0.89)
Yes
副業勧誘
エンジニアの副業事例まとめ記事書きました
No (0.08)
No
過剰自慢
今日Google内定もらいました みんな祝って
Yes (0.71)
微妙
過剰自慢
副業で年収300万超えました
Yes (0.62)
微妙
誹謗中傷
あの会社、労基違反で有名だよ 事実だけど
Yes (0.68)
微妙
スパム
無料相談はこちら bit.ly/xxx
Yes (0.85)
Yes
スパム
詳しくはこの記事にまとめました
No (0.15)
No

明らかなクロと明らかなシロの識別精度はかなり高いです。

面白かったのが「個人攻撃」ポリシーで、「頭悪すぎ」みたいに罵倒語が入る投稿は0.9超えで拾いますが、「意見が弱い」レベルの穏やかな批判はきちんとNoに寄せます。

一方で「過剰自慢」は0.71と0.62で、正直これは僕から見て「別に自慢していいでしょ」レベルでも高確率Yesに寄る傾向がありました。

ここはの書き方で許容範囲を明示すればしきい値が動きます。

「業績報告や採用祝いは自慢とみなさない」と1行足したら0.35まで落ちました。

判定に迷った 外したケース

いいところばかり書くと嘘になるので、外したケースも並べます。

1: 皮肉・アイロニーが理解できない

「あのアプリのUX、天才ですね(棒)」を「個人攻撃」ポリシーに投げるとNo (0.15)でした。

文脈上は皮肉で相手をディスっているんですが、モデルは字面通りに受け取ります。

日本語の(棒)や(白目)は英語圏の学習データにほぼないので、こういう文化差はモデルサイズを増やしても限界があります。

2: コンテキストが短いと過剰反応

「殺す」の1語だけを「暴力の脅迫」ポリシーに投げるとYes (0.96)

でも実際の会話ログでは「そのボケ、殺す」のように笑いの文脈で使われている可能性があります。

に前後3投稿ぶんの会話を含めるだけで0.42まで落ちました。

投稿単体で判定させると誤検知が積み上がります。

3: yes/noの根拠が返らない

これは設計上の制約なんですが、Shieldstralは確率スコアを1つ返すだけで、「なぜYesと判定したか」の根拠テキストは出ません。

本番環境で「あなたの投稿はBANしました」と言うときに、理由を説明できないと運営が詰まります。

対策としては次の3つが現実的でした。

  1. confidence tiering: 0.9以上は自動NG、0.5から0.9は人間レビュー、0.5未満は自動OK
  2. コンテキスト同梱: 単発投稿ではなく、直近3から5投稿の会話ブロックをに入れる
  3. 2段構え: Shieldstralで一次スクリーニング、グレーゾーンだけClaude Haikuに理由生成させて低コスト運用

失敗ケースを最初に触っておくと、実装のフェーズで悩む時間が減ります。

Llama Guardや旧Mistral Moderation APIとの違い 個人開発者は今すぐ使うべきか

競合4つと並べるとShieldstralの立ち位置が分かりやすいです。

モデル
サイズ
ライセンス
ポリシー柔軟性
マルチモーダル
個人開発向け
Shieldstral 1.0
3B
Apache 2.0
自然言語で任意
テキスト+画像
Llama Guard 3-8B
8B
Llama 3 Community
カテゴリ固定
テキストのみ
中 (VRAM負担)
Mistral旧Moderation API
クラウド
商用API
9固定カテゴリ
テキストのみ
低 (課金)
OpenAI Moderation API
クラウド
商用API
13固定カテゴリ
対応
低 (課金と規約)

僕の結論を書くと、副業でチャットボットやUGC付きWebアプリを作っている個人開発者にとって、Shieldstral 1.0は現状の最有力候補です。

3Bで16GBに収まり、日本語ポリシーが再学習なしで書け、Apache 2.0でオンプレ運用OK。

この3点セットが揃っているのは、今のところこれだけです。

企業のcompliance監査ログ用途ならOpenAI Moderation APIAmazon Bedrock Guardrailのほうが証跡は取りやすい。

説明可能性が絶対要件の場面では、Shieldstralだけで完結させず、グレーゾーンをClaude HaikuGPT-4o miniに投げるハイブリッドが安全です。

今日試したい人は、pip installでtransformersの最新版を入れて、モデルカードのコードをコピペで叩くだけ。

30分あれば1発目の判定結果が見えます。

ローカルGPUがなくてもRunpodで100円以下で試せる時代なので、採用判断は動かしてからで十分です。

会員登録して機能を使おう

この機能を利用するには、無料の会員登録が必要です。
お気に入りの記事を保存して、あとで読み返しましょう!