Webエンジニア向けプログラミング解説動画をYouTubeで配信中!
▶ チャンネル登録はこちら

【ITニュース解説】Scam or Genuine? An Offline Message Checker for a Friend (Gemma 3)

2026年10月05日に「Dev.to」が公開したITニュース「Scam or Genuine? An Offline Message Checker for a Friend (Gemma 3)」について初心者にもわかりやすく解説しています。

作成日: 更新日:

ITニュース概要

友人のため、銀行などからのメッセージが詐欺か判別するツールを開発した。SMS等を貼り付けると「詐欺」「疑わしい」「安全」と判定し、理由と対処法を示す。GoogleのGemma 3をPC上で動かし、メッセージは外部に送られずオフラインで利用可能。正確ではない場合もあるため参考程度とする。

ITニュース解説

このニュース記事は、現代社会で増加する詐欺メッセージから人々を守るためのユニークなツール開発について詳細に紹介している。システムエンジニアを目指す皆さんにとって、実世界の問題解決と最新のAI技術活用という観点から、多くの示唆に富む内容だ。

このツールは、銀行などから送られてくるSMSやWhatsAppメッセージが、詐欺(Scam)なのか、それとも正規(Genuine)のものなのかを判断する目的で開発された。開発者の友人が、自身とその父親のために、このようなメッセージの真偽を簡単に確認できる手段を求めていたことが、プロジェクトの直接的な動機となった。

具体的には、ユーザーが受け取ったメッセージをツールに貼り付けると、そのメッセージが「SCAM(詐欺)」「SUSPICIOUS(疑わしい)」「SAFE(安全)」のいずれであるかを判定する。さらに、判定に至った簡単な理由を、英語とヒンディー語を混ぜた「Hinglish」という言葉で表示し、その後に取るべき行動についても具体的なアドバイスを提示する仕組みだ。

このツールの最も重要な特徴は、その高いプライバシー保護とセキュリティ設計にある。ツールは完全にオフラインで動作し、Googleが開発した大規模言語モデル「Gemma 3」を「Ollama」というフレームワークを通じて、開発者のローカルPC上で実行している。この設計により、口座情報や取引詳細といった機密性の高いメッセージの内容が、PCの外にインターネットを通じて送信されることなく処理されるため、ユーザーのプライバシーが最大限に保護される。現代において、個人情報が外部サーバーに送信されるリスクを回避することは、セキュリティ設計における非常に重要な考慮事項だ。

ただし、開発者自身が強調しているように、このツールはあくまで「セカンドオピニオン」であり、完全な安全を保証するものではない。テスト段階では、一部の詐欺メッセージを見逃したり、反対に正規のメッセージを誤って詐欺と判定したりするケースも確認されている。これは、AIを活用したツールが常に完璧ではない現実を示しており、その限界を理解した上で慎重に利用することが求められる。

ツールの具体的な動作原理を深掘りすると、Pythonで書かれたchecker.pyというスクリプトが中核を担っている。このスクリプトは、ユーザーが入力したメッセージをローカルで動作するGemmaモデルに送る際、「Ollama Pythonライブラリ」を通じて通信を行う。Gemmaモデルへの指示では、応答形式を「JSON」と指定し、temperature 0という設定を適用している。このtemperatureは、AIの回答の創造性や多様性を制御するパラメーターで、0に設定することで、モデルが最も確実で一貫した、事実に基づいた回答を生成するように促している。また、Gemmaモデルが求めているHinglishでの回答を生成するように、プロンプトにはあらかじめ2つのHinglishでの例が含められている。これは「プロンプトエンジニアリング」の一例であり、AIモデルの応答を意図通りに制御するための重要な技術だ。もしモデルの応答が正しいJSON形式でなかった場合は、ツールは「UNKNOWN(不明)」という結果を返し、ユーザーへの警告として扱う設計となっている。

ユーザーインターフェースは、「Streamlit」というPythonライブラリを使用して開発されたシンプルなWebアプリケーションだ。これにより、技術的な知識がないユーザーでも、Webブラウザを通じて直感的にツールを利用できる。特に「SAFE(安全)」と判定されたメッセージの場合でも、ユーザーがリンクをクリックしたり、ワンタイムパスワード(OTP)を共有したり、送金したりする前には、必ず銀行に直接確認するよう注意喚起が追加されている。これは、AIの限界を認識し、ユーザーの行動における安全性を高めるための重要なヒューマンファクター設計の具体例だ。

開発プロセスでは、ツールの品質と信頼性を確保するために、14のユニットテストと、ラベル付けされたメッセージ群を使用してツールの精度を評価するスクリプトが作成された。これにより、開発者は自身のツールの性能を客観的に測定し、継続的な改善を図ることができた。さらに、AIアシスタント(Claude)を企画やコーディングの補助にも活用したという。現代のソフトウェア開発において、AIツールはもはや単なる補助ではなく、開発パートナーとして積極的に活用される時代になっていることを示している。

モデルの選定においては、Gemma 3の「4Bモデル(40億パラメーター)」と「1Bモデル(10億パラメーター)」という2種類のモデルが比較検討された。テストの結果、1Bモデルは詐欺を見逃すことはなかったものの、正規のメッセージの約半分を詐欺と誤判定するという課題を抱えていた。一方、4Bモデルは誤報が少ないため、より信頼性の高い結果を出すことができ、最終的にこの4Bモデルがデフォルトとして採用された。これは、AIモデルの性能、処理速度、そして実用性との間のトレードオフを慎重に考慮した、現実的な選択である。処理速度については、4Bモデルで1メッセージあたり約18〜21秒、1Bモデルで約8〜9秒という結果が出ている。

テストでは、正規のワンタイムパスワード(OTP)メッセージや銀行のデビットカード利用通知を詐欺と誤判定したケースも確認された。また、「これを開始しましたか?はい/いいえ」といった、正規の銀行からの不正利用確認メッセージと酷似した詐欺メッセージを、4Bモデルが「SAFE」と誤判定するケースも認められた。これらのケースは、ツールがメッセージの内容しか判断できず、送信元の信頼性や文脈全体を把握できないというAIモデルの限界を示唆している。したがって、実際の利用においては、メッセージの内容だけでなく、送信元の確実な確認も重要となる。

このツールの開発は、「オープンイノベーション」の大きな利点も明確に示している。第一に、オフラインで動作するため、インターネット接続がない環境でも利用可能であり、一度モデルをダウンロードすれば、その後のネットワーク接続は一切不要だ。第二に、銀行からのメッセージのような機密情報が、ローカルPC上で処理されるため、外部サーバーに送信されるリスクがないというプライバシー保護のメリットは計り知れない。第三に、開発者が自身で異なるモデルを試したり、プロンプトを調整することでモデルの応答言語や挙動を自由に制御したりできる柔軟性も、オープンなモデルだからこそ得られる利点だ。これにより、開発者はツールの性能、速度、誤報率などのトレードオフを自分自身で評価し、最適な選択を行うことができた。そして、モデルのダウンロード後はランニングコストが一切かからないため、個人開発者でも手軽に運用できる。唯一のデメリットは、処理速度が比較的遅いことだという。

このツールの制限事項として、テストセットが小規模であったため、実際の環境での信頼性がテスト結果よりも低い可能性があること、そして依然として詐欺を見逃す可能性があることが挙げられている。そのため、金銭に関わるような重要な判断をする際には、メッセージに記載された連絡先ではなく、自身が所有するカードに印刷されている番号など、信頼できる情報源を通じて直接銀行に問い合わせることが強く推奨される。

最終的に、このツールを実際に利用する開発者の友人からは、「次の行動に移る前に、受け取ったメッセージのだいたいのアイデアを得るのに役立つだろう」という肯定的なフィードバックがあった。これは、たとえ完璧でなくとも、このような補助ツールがユーザーにとって価値のある存在となり得ることを示している。

このプロジェクトは、最新のAI技術であるGemma 3をローカル環境で活用し、プライバシー保護を重視しながら現実世界の問題を解決しようとする、システムエンジニアの皆さんにとって非常に実践的な取り組みの好例だ。オフライン動作、プロンプトエンジニアリングによる挙動制御、モデルの比較検討など、多くの技術的要素と開発思想が含まれており、AI時代のソフトウェア開発の方向性を示すものと言えるだろう。

関連コンテンツ

関連IT用語