月別アーカイブ: 2021年6月

AIで高性能スパムフィルターを開発、言語モデルGPT-2がスパムを生成しアルゴリズムを教育

セキュリティの国際会議RSA Conference 2021(#RSAC)が2021年5月、バーチャルで開催された。今年は、AIを活用したセキュリティ技術に注目が集まり、多くのソリューションが登場した。一方、AIを実装したセキュリティ製品の効果は限定的で、市場の期待に沿うソリューションは少ないことも指摘された。米国でランサムウェアによる被害が拡大する中、AIがサイバー攻撃を防御できるのか、その実力が問われている。

出典: RSA

言語モデルとスパムフィルター

AI言語モデルの開発でブレークスルーが起こっている。OpenAIは大規模な言語モデル「GPT-3」を開発し、AIが言葉を理解し自然な文章を生成できるようになった。情報セキュリティ企業は言語モデルに着目し、AIでサイバー攻撃を防御する手法を開発している。セキュリティ市場のトップベンダーであるSophosはAI研究機関「Sophos AI」を設立し、機械学習や大規模AIの研究を進めている。Sophosは言語モデルで高精度なスパムフィルターを生成する技法を発表した。

Sophosの研究概要

この研究は、AIでスパムを生成し、これを使ってスパムフィルターのアルゴリズムを教育するというもの。スパムフィルターの開発では高品質な教育データの整備が必要であるが、人間に代わり言語モデルがスパムを生成する。AIが生成したスパムでAIアルゴリズムを教育すると、高精度でスパムを検知でき、開発プロセスが大幅に効率化される。この研究ではOpenAIが開発した中規模の言語モデル「GPT-2」が使われた。

スパムとは

スパムとは受信者の意向を無視して送られるメッセージで、大量に配信され、宣伝広告を目的とする。また、フィッシングやマルウェアを拡散する目的でも使われ、迷惑メールだけでなく、サイバー攻撃の媒体としても使われる。これらのスパムを収集して教育データとして使うが、SophosはこれをGPT-2で生成する技術を開発した。(下のテーブル: GPT-2で生成したスパム。)

出典: Younghoo Lee  

スパム検知技術

スパムフィルター開発の歴史は長く様々な技法が登場している。フィルターが誕生した当初は、特定用語や発信者のアドレスなどをキーにメッセージを選別した(Signature方式)。今では機械学習が主流となり、言葉の重みを統計的に査定する方式(term frequency–inverse document frequency)や異なる手法を併用するモデル(Random Forest Modelなど)が使われている。

ニューラルネットワーク

更に、ニューラルネットワークを使い、スパムフィルターの精度を上げる研究が進んでいる。ニューラルネットワークとして「LSTM(Long Short-Term Memory)」や「CNN(Convolutional Neural Network)」や「Transformer」が使われ、単語の関係を把握してスパムを判定する。特に注目されているのがTransformerで、単語の意味からその関係を把握する(Attentionベースと呼ばれる)。

Transformerベースの言語モデル

TransformerはGoogleが開発した技術でこれが言語モデルのブレークスルーとなった。GoogleはTransformerを実装した言語モデル「BERT」を開発し高度な言語機能を実証した。また、OpenAIはTransformerを実装した「GPT」を開発し、最新モデル「GPT-3」は人間レベルの言語能力を示した。Sophosはこの中で中規模モデル「GPT-2」を使ってスパムフィルターを開発した。

教育データの生成

スパムフィルター開発ではアルゴリズムを教育するためのデータの生成で時間を要し、システム開発で一番時間を要するステップとなる。スパムのデータ数が限られるため、通常は人間がサンプルを改造して件数を増やす(Data Augmentationと呼ばれる)。具体的には、スパムの文字を同意語で置き換え、また、文字をランダムに挿入・削除するなどの操作をする。このマニュアル作業に代わり、言語モデルGPT-2が高品質なスパムのサンプルを生成する。

GPT-2の制御技術

一方、GPT-2は文章を生成するAIであるが、生成された文章はランダムで、必ずしもスパムとして使えるわけではない。このため、言語モデルが生成する内容やスタイルを制御する技術が必要となる。Sophosは「PPLM (Plug and Play Language Model)」と呼ばれる技法を使い、目的に沿ったスパムを生成している。(下のグラフィックス、言語モデルのパラメータを変更し目的に沿った内容の文章を生成。下記はポジティブなトーンの文章を生成する事例。)

出典: Uber Research

PPLMとは

PPLMとはUberの研究所Uber Researchにより開発された技法で、GPT-2など言語モデルに制御機構(Attribute Models)を付加し、目的に沿った文章を生成する。制御機構でセンティメントを指定するとそれに沿った文章が生成される。(下のテーブル、Positive及びNegativeと示された文章で、ポジティブ・ネガティブなトーンとなる)。また、トピックスを指定するとこのテーマで文章が生成される。(下のテーブル、Science及びPoliticsと示された文章で、科学及び政治のテーマに沿った文章が生成される)。因みに、PPLMで何も指定しないとニュートラルな文章が生成される(下のテーブル、[-]と示された部分)。

出典: Uber Research

生成されたスパムとハム

SophosはGPT-2をPPMLで制御してスパム生成した(先頭から二番目のグラフィックス)。このケースではGPT-2は「Santa calling! Would your little」という文字に続くスパムを生成した。また、GPT-2はスパムだけでなく通常のメッセージ(Hamと呼ばれる)を生成することもできる(下のグラフィックス)。このケースではGPT-2に「A lot of this sickness」に続くハムを生成するよう指示した。

出典: Younghoo Lee

スパム検知アルゴリズムの教育

前述の通り、GPT-2はスパム検知フィルターとして機能する。同じアルゴリズムがスパムを生成すると同時にスパムを検知する。GPT-2にテキストを入力し、スパムかどうか尋ねると、その判定結果を回答する。生成したスパムでGPT-2のアルゴリズムを教育すると、人間が手作業で収集・編集したスパムで教育するより高い判定精度を示した。GPT-2で教育データの生成を自動化でき、また、検知精度も向上することが分かった。

AI対AIの戦い

今ではボットがスパムメッセージを生成し偽情報を拡散し消費者を攻撃する。これらのメッセージをGPT-2が解析し、スパムを見つけ出し、それをフィルタリングする。スパムフィルタリングはAIとAIの対決で、如何に高度なアルゴリズムを使うかで勝敗が決まる。このため、GPT-2を最新のスパムで教育しアルゴリズムをアップデートする必要がある。また、次のステップとしては、より高度な言語モデルを使いスパムフィルターの精度を上げることが重要となる。

Microsoftは話し言葉でプログラミングできる技法を公開、OpenAIと共同で大規模AIの開発を加速

Microsoftは2021年5月、話し言葉でプログラミングできる技術を公開した。エンジニアが言葉で指示すると、AIはこれをプログラム言語に変換する。このAIは「GPT-3」と呼ばれ、言葉を理解する言語モデルで、OpenAIにより開発された。OpenAIはGPT-3をMicrosoftに独占的にライセンスしており、これが最初の商用モデルとなる。

出典: Microsoft

自然言語でプログラミング

Microsoftは開発環境「Power Apps」に言語モデル「GPT-3」を組み込み、話し言葉でプログラミングできる技術を開発した。アプリケーション開発ではプログラム言語を使ってコーディングするが、このシステムは自然言語でプログラミングできる(上のグラフィックス)。例えば、「Show me the Customers from U.S whose subscription is expired(サブスクリプションが切れた顧客を表示)」と指示すると(右上の枠)、システムはこれをプログラムに変換する(右下の部分)。プログラム言語は「Power Fx」で、ここでは二つのモデルが示され、開発者はこれをクリックするだけでコーディングが終了する。

ノーコード開発プラットフォーム

このシステムを使うと、プログラミングの知識がなくても誰でもアプリをコーディングできる。Microsoftはこの開発モデルを「Citizen Developers」と呼び、誰もがコーディングできるようになり、プログラム開発者の数が増えると期待している。一般に、コマンドではなくグラフィカル・ユーザインターフェイスでプログラミングする方式は「No-Code Development」と呼ばれているが、MicrosoftはこれをAIによる自然言語の変換で実現した。

Microsoft Power Appとは

MicrosoftはNo Code方式をPower Appsに実装した。Power Appsは簡単にアプリ開発できるフレームワークで、最小限のプログラミング技術でコーディングが可能となる。Visual Studioはプロ開発者向けの開発環境であるが、Power Appsは万人が使えるシステムとなる。

開発方式の進化

Power Appsの投入で開発方式が大きく変わっている。従来は、アプリを設計・開発・試験・運用の順序で行う方式「Waterfall Development」が主流であったが、今ではアジャイル方式「Agile Development」(下のグラフィックス)に移っている。この方式は、短期間でこのサイクルを繰り返し、プロトタイプ(minimum viable product)を開発する。

出典: Microsoft  

新型アジャイル方式

これに対して、MicrosoftはPower Appsを使い、プログラミングと同時にユーザインターフェイスを開発できる「WYSIWYG (what you see is what you get)」方式を提唱した。この方式では、即座にプロトタイプが完成し、これをベースに新機能を追加しバージョンアップを繰り返す(下のグラフィックス)。Microsoftはこの方式を新型アジャイル方式「Agile V2 Development」と呼んでいる。

出典: Microsoft  

Low CodeからNo Codeへ

Power Appsのプログラミング技法は前述の通り「Low-Code Development」と呼ばれ、最小のコーディングでプログラムできる。Power Appsのプログラム言語は「Power Fx」と呼ばれ、Microsoft Excelでマクロを書くように最小限のコーディングでアプリを開発する。(下のグラフィックス)。

出典: Microsoft  

更に、Power AppsにGPT-3が統合され、今度は、コーディングすることなくアプリを開発できるようになった。言葉で指示すると(下のグラフィックス)上述のPower Fxコードが生成される。この方式は「No-Code Development」と呼ばれ、幅広い普及が期待されている。

出典: VentureClef  

MicrosoftとOpenAIとの提携

MicrosoftはOpenAIと共同開発を進めてきたが、2020年9月、GPT-3を独占的にライセンスを受けることで合意した。その対価として、MicrosoftはOpenAIにGPT-3開発のためのAIスパコン環境を提供する。MicrosoftのAIスパコンは世界ランキング5位の性能を持つ。GPT-3のニューラルネットワークは巨大で、大規模AIを開発するためにはスパコンが必要となる。

GPT-3とは

GPT-3は言語モデル「Autoregressive Language Model」で、入力された言葉に基づき、それに続く言葉を予測する機能を持つ。シンプルな機能であるが、これが言葉を理解する本質的な能力となり、文章の生成や言語の翻訳や文章の要約ができる。MicrosoftはGPT-3で言葉をプログラム言語に翻訳する技術を開発した。GPT-3は世界最大規模のニューラルネットワークで構成されたAIで、けた違いに高度な言語能力を示す。