元生技データサイエンティストのメモ帳

勉強したことの備忘録とか雑記とか

Azure AI Days Day2 まとめ(基調講演、MS社 自然言語処理技術 最新の動向)

f:id:sue124:20210519221701p:plain

こんにちは。sue124です。

5月20日の Azure AI Days の Day2 に出席したので、備忘録的に内容をまとめたいと思います。
長くなったので、まずは基調講演の分だけ。

Day1がビジネスリーダー向けセッションで、ノーコード、ローコードでの開発の話が多かったのに対して、2日目はデータサイエンティスト向けセッションで、技術的に突っ込んだ話が多かったです。
技術的な難しさと、参加してからブログに書くまで日が空いてしまったので、書くのに苦労しました。

実施されたSessionは、Microsoftの以下のページをご参照ください。

www.microsoft.com

1. 基調講演(MicrosoftNLP 最新動向)

Day2の基調講演は、Microsoft が取り組んでいる「自然言語処理 (NLP)」についての話でした。
細かく分けると、以下の3つのパートがありました。

  • Microsoft が取り組む NLP モデル開発
  • Bing における検索技術
  • 会話できるAI(りんな)開発

細かくみていきましょう。

1-1. Microsoft が取り組む NLP モデル開発

おなじみの「word2vec」から「Transformer」や2020年5月にOpenAIから発表された「GPT-3」までの近年の技術歩みを振り返ってから、Microsoft の最近の NLP モデル開発についての説明がありました。 まずはTuring-NLG(T-NLG)について。
T-NLG はMicrosoft が2020年2月に発表した、約175億個のパラメータを持つ言語生成ができる事前学習モデルです。

ニューラルネットワークではパラメータ数が多ければ多いほど、より複雑なものを表現できるので、パラメータ数が多ければ多いほどモデルの性能が上がります。(ただし、工夫せずにパラメータを増やすと、学習が現実的な時間で終わらなかったり、そもそもGPUのメモリ上にデータが乗り切らなかったりする)
この「175億個」というパラメータ数は、当時としてはダントツで多いモデルでした。  

f:id:sue124:20210523202656p:plain

上図は下記のサイトから抜粋したものですが、講演の中でも同じ図を使ったスライドが使われていました。

www.microsoft.com

ちなみにパラメータ数が13億を超えると、32GBのGPUを持ったメモリでもモデルが単一GPUに収まらないので、上記のサイトによると以下の方法で対処しているようです。(講演でもサラッと同様の説明がありました)

  1. We leverage a NVIDIA DGX-2 hardware setup, with InfiniBand connections so that communication between GPUs is faster than previously achieved.
  2. We apply tensor slicing to shard the model across four NVIDIA V100 GPUs on the NVIDIA Megatron-LM framework.
  3. DeepSpeed with ZeRO allowed us to reduce the model-parallelism degree (from 16 to 4), increase batch size per node by fourfold, and reduce training time by three times. DeepSpeed makes training very large models more efficient with fewer GPUs, and it trains at batch size of 512 with only 256 NVIDIA GPUs compared to 1024 NVIDIA GPUs needed by using Megatron-LM alone. DeepSpeed is compatible with PyTorch.

講演では、T-NLGの事前学習モデルを使って文章を生成するデモが流れました。
デモでは、inputとして「How was the universe created?」と入力すると、「ビッグバン」の説明を返してくれる様子が紹介されました。

上記のように175億個のパラメータで性能をT-NLGなわけですが、これを上回るパワメータ数を誇るのが先ほどチラッと話に出た、2020年5月にOpenAIから発表された「GPT-3」です。   GPT-3の事前学習モデルのパラメータ数は約1750億個と、T-NLGの10倍です。  

arxiv.org

このモデル、文章生成能力は高いのに倫理観はないことから「fake newsや差別的な表現が量産される危険がある」などの理由から、APIは公開されておらず、OpenAIに利用申請をして承認されないと使えないそうです。
利用申請にあたっては、用途を細かく回答しないといけないそうです。  

qiita.com

ちなみに先に出てきた OpenAI と Microsoft は、2019年に「コンピューティングパートナーシップ」を締結しています。  

news.microsoft.com

2020年9月には、Microsoft は GPT-3 の独占ライセンスを取得しています。

news.microsoft.com

そしてMicrosoftは目下、OpenAIと協業で「AIスーパーコンピュータ」なるものを開発しているそうです。
「AIスーパーコンピュータ」の構成は以下の通りで、「世界のスーパーコンピュータ上位5位以内」に相当する性能だそうです。
- 285,000基のCPU、10,000基のGPU
- NVLink、Infinibandによる高速通信

ここに並列分散ライブラリDeepSpeedの新バージョンを適用することによって、大規模データの高速学習が実現できるのだとか。
この「AIスーパーコンピュータ」を使って活用して作ろうとしているのが、パラメータ数がなんと1兆個の事前学習モデルとのことです。

ここで先ほどの図に GPT-3 や開発中のモデルのパラメータ数を書き加えると、以下のようになります。

f:id:sue124:20210601084436p:plain

パラメータ数のインフレが進んでいきますね💦
GPT-3ですら発表直後は業界がざわついたので、ここまで来ると世界が変わるかもしれません。
AIが書く文章のクオリティが上がったら、こうやって人間がブログを書く目的が「備忘録のため」以外はなくなったりして。。

1-2. Bing における検索技術

続いて検索エンジン Bing について。
近年の検索エンジンの主要な開発トレンドは、「雪国は誰が書いたの?」と言うような口語調の質問に対して、質問の意図を理解して回答を提示できるようになることです。
上記の質問の例だと、質問中には「筆者」という言葉は出てきませんが、「質問している人は雪国の筆者を知りたい」という意図を理解して、「川端康成」と回答する必要があります。

これに対する Microsoft の取り組みとしては、先ほども登場した Turing NLG を含む「Turing Family」と呼ばれる自然言語処理モデル群をファインチューニングすることで、検索語句の理解性能や検索結果の品質評価が可能となったそうです。 「Turing Family」に関しては以下の Microsoft のサイトに詳細がありました。

msturing.org

このサイトの「Microsoft details how it improved Bing’s autosuggest recommendations with AI」というページを開くと、近年 Microsoft検索エンジンをどう改良しているかを見ることができます。
今回の発表と関係のありそうなところだと、以下の記載があります。

For example, instead of highlighting the words “Germany” and “population” in response to the search “German population,” semantic highlighting bolds the actual figure of 81,453,631 as the population of Germany in 2019.

f:id:sue124:20210603231820p:plain

ドイツ語で「ドイツの人口」と検索すると検索ワードの意図を理解して、実際のドイツの人口にあたる数字を太字で表示してくれていますね。

このセッションの後半は、今後のさらなる性能向上に必要な「より大きなモデル」で学習、推論するための取り組みに関してでした。
これに対して Microsoft は「DeepSpeed」の新バージョンの開発に取り組んでいます。これによって分散学習を効率よく行うことができ、先のセッションで出てきた「1兆個」のパラメータを持つモデル開発を進める、とのことでした。

Microsoft は「AI の民主化」も掲げており、Pytorch のコードを数行変更するだけで使えるようになっているそうです。
あとはより速く学習、推論ができるONNX runtime を開発しているとのことでした。
(この辺は、自分の勉強不足な領域。。)
この辺の情報をキャッチアップしていきたいです。

1-3. 会話できるAI(りんな)開発

最後の基調講演は、会話できる AI「りんな」についてです。
twitter とか LINE に実際アカウントがある、あのりんなです。

f:id:sue124:20210603233817p:plain

twitter.com

今は会社が Microsoft から独立して、「rinna株式会社」が開発をしています。

corp.rinna.co.jp

このセッションの冒頭は「会話ができるAIが目指すところはなんぞや」の話で、昔からある「Turing Test」が紹介されました。
「Turing Test」に関して詳しく書くとブログ1本では収まりきらないので wikipedia のリンクを貼るに留めますが、ざっくり言うと「お互い姿が見えない状態で会話して、AIであると見抜かれずに人間と会話すること」が「会話できるAI」の基準のようです。

ja.wikipedia.org

現段階の技術で「言われた文章を理解して、返答する」ことはできていますが、「文脈を理解して、返答する」ということが厳しいようです。

この問題に対処するために、人間の会話データの一部を「文脈」、それに対する「返答」を学習させて、確率分布 p ( response | context ) を予測するモデルを作成したとのことです。

このような考え方のモデルはいろんな団体から作られており、Microsoft は DialoGPT というモデルを作ったとのことです。

arxiv.org

ただこのようなモデルでも対処しきれない問題があります。
それは「楽しそう/ 悲しそうな トーン」「フォーマル / カジュアル なトーン」のような言葉として現れない情報に対処することです。
(「今日は飲みたい」と言われても、思い悩んだ感じで言われるか、楽しそうに言われるかで、返すべき言葉は変わりますよね)

これに対応するために行われたのは「会話の流れごとにモデルを作る」ということでした。
例えば「明るい話題」「悲しい話題」......とモデルごとに学習させる話題を変える、という形です。

そしてAIが話題を理解して使うモデルを選ぶ際に、「知識探索モデル」というのが使われているそうです。
このセッションのこの辺りを聴いてる時に追いつけなかったので後で調べ直したのですが、「知識探索モデル」についてはこのサイトが分かりやすかったです。

news.microsoft.com

この「知識探索モデル」の軽量化のための取り組みとして Microsoft が実施しているのが「Low-Resource Knowledge-Grounded Dialogue Generation」(低リソースの知識に基づいた会話の生成)という取り組みだそうで、こんな論文が出ていました。(まだ全然読めてませんが)

arxiv.org

「りんな」自体の技術的な取り組みに関しては以上で、残りは「事前学習済みモデル」を使った展開に関しての紹介でした。 rinna 株式会社で「Rinna Character Platform」というサービスを展開しており、これを使うと「りんな」開発の過程でできた、会話を生成するモデルのベースとなる事前学習済みモデルに新たに作りたいキャラクターに沿ったデータを追加学習させることで、簡単に新しいキャラクターの「会話してくれるAI」が作れます。有名どころだとローソンのマスコットキャラクターのLINEボットは、これを活用しているそうです。

corp.rinna.co.jp

あとはこのサービスを活用して、こんなサービスを作ったのだとか。

www.chararu.jp

これから事前学習済みモデルでの「人間と同じように会話ができるAI」によるチャットボットが増えていきそうですね。

2. まとめ

まだ基調講演についてしか書けていないですが、内容が濃くて文章量が多くなったので、ここで一旦まとめます。

Azure AI Days の Day2 の基調講演は「自然言語処理技術」についてでした。
全てのベースとなる、モデルのパラメータ数を如何に増やすか、の話から始まり、それらのモデルを活用した検索エンジン改良や、「人間と同じように会話できるAI りんな」の開発についての講演がありました。
全体を通して、ここ最近の自然言語処理技術の動向から話が始まり、最新の取り組みまで話をしてくれたので、内容的には難しい話ではありましたが、知識がそこまで深いわけではない私でもなんとかついていくことができました。

こういう話を聞いて最新技術、動向をキャッチアップすると、学習意欲が高まりますね。 またこういう話を聞く場があれば、積極的に発信していきたいと思います。

ここまでお読みいただき、ありがとうございました。