Transformerとは?今話題の大規模言語モデルとAI機械学習について徹底解説!

Transformerとは?今話題の大規模言語モデルとAI機械学習について徹底解説!

メディアなどで「人工知能」「AI」などのキーワードをよく耳にする時代となってきました。これらの技術は私達の身近なものとなり、簡単に利用できるようになっているのです。多くの場面でAIが多用されるようになってきました。

これらのAIを支える重要な技術として自然言語処理があり、大規模言語モデルと呼ばれるものが利用されています。今回は、大規模モデルの中でも特に広く活用されているTransformerの理解を深めましょう。

Transformerは自然言語処理のモデル

Transformerは2017年に発表された論文である「Attention Is All You Need」の中で初めて紹介された深層学習のモデルです。今まで広く利用されていたCNNやRNNを軸とした言語モデルとは異なり、エンコーダとデコーダをAttentionというモデルで繋いだ独自の概念を採用しています。

詳細については後ほど解説しますが、新しい概念やアルゴリズムが生み出されたことで、今までの自然言語処理よりも性能が格段に高まりました。論文の中では性能比較が紹介されていて、今までのアルゴリズムよりも十分に高性能であることが示されています。また、文字列を理解する能力が高まったことで、機械学習の精度が高まったり効率化されたりしていることにも注目です。

なお、非常に使い勝手の良い大規模言語モデルであることから、派生したモデルや新しいモデルを活用したAIも多数開発されました。Transformer自体も高性能であり、それから派生したモデルも同様に高性能なのです。

Transformerから派生した4つのモデル


Transformerは、自然言語処理の非常に重要なモデルであり、これから派生して多くのモデルが開発されています。現在、世界的に利用されているものも、Transformerの影響を受けているケースが多いため、具体的に確認していきましょう。

BERT

BERTとは「Bidirectional Encoder Representations from Transformers」の頭文字を取ったもので、Transformerを活用した新しい自然言語処理モデルです。2018年10月11日にGoogleが発表したもので、汎用性の高さが魅力とされています。大量のデータから学習しているため、文章の理解や分析の能力が高められているのです。

例えば「文章の分析」においては、感情分析タスクを処理できます。与えられた文章の内容が「肯定的」「否定的」のどちらに分類されるのか判断できるのです。書き言葉から感情を知ることは、人間でも難しいタスクではありますが、BERTならばこのようなタスクでも自動的に処理できます。

GPT

GPTは、OpenAIが開発する言語生成モデルを指します。複数のバージョンが公開されていて、現在はGPT-4と呼ばれるものが最新です。世界的に利用されている対話型AIの「ChatGPT」に採用されている言語モデルでもあります。

言語の生成を軸としたモデルであり、短い文章から長い文章まで生成できることが特徴です。実際、実用化されているChatGPTを利用してみると、人間と大差ないレベルで文章を生成してもらえます。

PaLM

PaLMはGoogleのエンジニアによって2022年4月に公開された、新しい自然言語処理モデルです。Transformerを利用して開発したモデルではありますが、標準よりも多くのパラメータを保有しています。パラメータが多いため、多くの知識を有していると理解して良いでしょう。

パラメータの数が多いと、純粋な言語処理の能力が高いだけではなく、文章生成やプログラミングなどの処理も可能となります。また、推論の精度も高いことが特徴です。

DeFormer

DeFormerはTransformerをさらに高速化した自然言語処理モデルです。基本としてはTransformerと同様ですが、必要な処理だけを効率よく実行できるようにして、メモリの効率化を実現しています。

メモリの効率化を意識した自然言語処理モデルであるため、質問に対しての回答を高速化できます。時間効率が重要となる部分であるため、DeFormerによって高速化できることはメリットです。

基本的な「エンコーダ」「デコーダ」のモデル

Transformerの仕組みは、基本的なエンコーダとデコーダを採用したモデルです。具体的に、どのような処理であるのか解説します。

エンコーダとデコーダ

エンコーダは、Transformerに入力されたデータをコンピュータが処理できるように変換する作業です。文字列を直接的に処理しているイメージがあるかもしれませんが、実際にはモデルの中でグラフなどに置き換えています。この置き換えて理解できるようにする機能がTransformerには備わっています。

また、デコーダは上記のエンコーダからデータを受け取り、それをさらに処理しやすい内容へと加工する作業です。また、状況によっては求められたアウトプットに向けてデータを加工します。例えば、翻訳作業で日本語から英語へ置換する作業はデコーダの役割です。

Multi-HeadAttention層

Transformerのエンコーダとデコーダには、Multi-HeadAttention層と呼ばれるものがあります。これはAIが機械学習する際に「どの単語を中心に学習すれば良いか」を判断するものです。同時に複数の単語に注目できるようになっていて、並行処理で学習できることが効率化に繋がっています。

また、Multi-HeadAttention層は情報をマスクしながら学習できるようになっています。例えば、Transformerが自分自身で精製した情報をマスクして、学習に活かせるのです。一般的に、自己回帰的に参照しながら学習すると、学習モデルに偏りが生じてしまいます。そのため、基本的には入力された情報以外を利用して学習することはありません。しかし、Transformerならば情報をマスクする機能があるため、これを活用することで少ない情報からモデルの精度を高められます。

Neural Network層

Transformerのエンコーダとデコーダには、Feed Forward層と呼ばれるものがあります。これはニューラルネットワークの一種で、入力された情報を線形変換するための仕組みです。

文字列の線形変換にあたっては、文中の単語ごとに独立したネットワークが構築されます。そのため、単語間で発生する処理の影響を受けずに、整列してAIが機械学習を進められるのです。層の「重み付け」は引き継がれる仕組みとなっていますが、この部分は非常に複雑であるため理解できなくても良いでしょう。

Transformerを採用するメリット


Transformerを採用するメリットには以下が挙げられます。

並列処理への対応

自然言語処理モデルにTransformerを採用することで、並行処理へ対応できるようになります。今までの機械学習モデルは、基本的に並行処理に対応できませんでしたが、Transformerならば同時に複数の文字に注目した学習が可能です。同時に処理できる内容が多くなったことで、AIは今までよりも格段に学習できるようになりました。

Transformerが並行処理に対応できている背景には、解説した通り「Multi-HeadAttention」と呼ばれる技術の存在があります。今までは一つの単語に注目した処理しかできませんでしたが、こちらにより複数の単語に注目できるようになりました。Transformerやこれの派生モデルにMulti-HeadAttentionの考え方が存在していて、同時に複数の学習をこなせるようになっています。

長期記憶の実現

Transformerのアルゴリズムでは、学習した内容の長期記憶が実現できます。今まで利用されていたRNNでは、どうしても損失が増えてしまう傾向にありましたが、Transformerならば大量の情報を記憶しながら処理が可能です。損失を最小限に抑えることによって、全体を俯瞰した学習ができるようになっています。

長期記憶のイメージが持ちづらいかもしれませんが、これは「入力された文章が長文である」という状況とほぼイコールです。入力された文章が長いと、AIは学習のためにそれらを全て記憶しなければなりません。ただ、今までのRNNではアルゴリズムの都合から文頭の情報は失われてしまい、適切に学習できなかったのです。

しかし、Transformerはこのような状況にも対応できるようになっていて、入力された文章が長文でも適切に処理できます。必ずしも完璧に処理できるとは言い切れませんが、従来のRNNより圧倒的な長期記憶を実現できることがメリットです。

依存関係の拡大

複数の単語に注目しつつ長期記憶にも対応していることから、依存関係の拡大が可能です。依存関係とは「どの単語とどの単語に関係性があるか」との意味だと理解してください。多くの言語には単語間や文章間の依存関係があるため、これを今まで以上に正しく把握できるようになりました。

また、長期記憶によって依存関係を多く把握できるようになっただけではなく、並行処理によって効率よく処理できるようにもなりました。仮にRNNで依存関係が拡大されたとしても、処理速度の都合から大きな効果は発揮できないでしょう。Transformerのように、処理速度を高めつつ長期記憶にも対応できたことで、依存関係を今までより拡大できるようになりました。

Transformerを活用したサービス例

Transformerは具体的にどのようなサービスに利用されるのか例を紹介します。

AI翻訳

近年は当たり前になったAI翻訳は、Transformerに支えられています。翻訳作業では、文章を適切に分解して理解することが重要です。単語の区切りを理解できないと、翻訳タスクは進められないため、Transformerは非常に大きな役割を担っています。

今までの自然言語モデルでも、このような文章の分解は実現されてきました。ただ、分解の精度が悪かったり、極端に時間を要したりするなどの問題があったのです。結果、AI翻訳の活躍できる場面は限られていました。

しかし、Transformerのように高速かつ精度の高い自然言語処理が生まれたことで、今までの問題は大きく解決されています。長い文章を含めて、気軽にAI翻訳が利用できるようになりました。

文章生成

文章の学習能力が高まったため、文章生成能力も高まっています。大量の文章から、自然に文章を生成する力を身に付け、それを踏まえて人間に近い内容で出力できるようになったのです。今までのように「明らかにAIが作成した文章」というものは少なくなってきました。

人間に近い文章を生成できるようになったことで「対話型AI」が積極的に開発されています。例えば、TransformerをベースにGPTが開発され、ChatGPTのサービス提供に至っているのです。

なお、自然言語処理には「言語によって文法が異なる」という課題があります。これはTransformerでも完璧には解決されていません。日本語は基本的に問題ありませんが、言語によっては生成能力が下がってしまいます。十分なパラメーターを用いて、モデルを教育しておかなければなりません。

まとめ

エンジニアならば理解しておきたいTransformerについて解説しました。自然言語処理のモデルとして特に重要であるため、実装する機会はなくても知識として持っておきましょう。何かしらの場面で、自然言語処理の恩恵を受けることは多くあります。

また、Transformerのような自然言語処理モデルの開発には従事しなくとも、AIを利用したサービスの開発に関わるかもしれません。例えば、ChatGPTを活用したアプリケーションの開発を担当することが考えられます。そのような時に備えて、自然言語処理についても、知識を持っておくと良いでしょう。

SHAREこの記事をシェアする

admin