Upgrade to Pro — share decks privately, control downloads, hide ads and more …

【ChatGPTの基礎と応用】自然言語処理の最新動向

ITANDI
April 27, 2023
850

 【ChatGPTの基礎と応用】自然言語処理の最新動向

ChatGPTとは、OpenAIによって開発された自然言語処理を使ったサービスです。
その背景にあって最近特に注目を集めている技術が大規模言語モデルです。

GA technologiesで活躍する機械学習エンジニア2名が、大規模言語モデルの基礎とその活用方法について解説しています。

ITANDI

April 27, 2023
Tweet

Transcript

  1. 06

  2. 13

  3. 20

  4. 33

  5. P011    0. 導入
 資料のゴールと流れ
 P017    1. 言語モデルって?
 言語モデルとGPT
 P044    2.

    ChatGPTに至るまで
 GPT-3が様々なタスクをこなすまで
 P058    3. 最近の話題
 GPT-4周りについて少しだけ
 P062    4. 参考資料
 大規模言語モデルの基礎
 - ChatGPTをざっくり理解する -

  6. ChatGPT
 14 何ができる?
 -> 自然言語処理のタスクであればだいたいできる!
 https://platform.openai.com/docs/guides/chat 
 ドラフト作成
 コード作成
 資料に関する回答


    チャットボット
 自然言語インターフェース
 チューター
 翻訳
 キャラクターなりきり
 OpenAI APIドキュメント
 要約
 質疑応答
 翻訳
 代表的な使い方
 コード作成
 なりきり
 …

  7. この発表のゴール:ChatGPTをざっくり理解する
 17 1. 言語モデル、GPTのイメージを掴んでもらう
 2. GPTが様々なタスクをこなすようになるまでの道のりを知ってもらう
 GPT-1
 GPT-2
 GPT-3
 (davinci)


    InstructGPT
 (text-davinci-003) 
 ChatGPT
 (gpt-3.5-turbo) 
 GPT-4
 要約
 質疑応答
 翻訳
 …
 1章
 2章
 3章
 2020.5
 2019.2
 2018.6
 2022.1
 2022.11
 2023.3
 ※ 丸の大きさは使うのに必要な
   リソースを大きさを相対的に表しています

  8. 前提:機械学習
 20 機械学習とは、データから自動的にルールを学習する技術
 
 「どんなモデルにどんなデータをどのように学習させるか」で決まる
 モデル
 データ 学習済み
 モデル
 例:画像分類


    CNN
 画像とラベルのペア
 , “猫”
 , “犬”
 画像からラベルを予測するように
 問題設定
 学習後
 “犬”
 画像分類
 モデル
 画像は次のデータセットを利用しています https://www.kaggle.com/datasets/tongpython/cat-and-dog 

  9. 言語モデルとは
 23 「単語(token)の並びから続く単語(token)を予測する」ように
 学習されたモデルのこと
 ※ 説明のしやすさのため、ここでの例は英語にしています...🙇
 A language model is 


    ??? 言語
 モデル
 …
 ※ 確率分布はOpenAI API playgroundで利用できるtext-davinci-003(temperature=0)のものを記載しています 
 続く単語の確率を予測する

  10. 言語モデルとは
 24 「単語(token)の並びから続く単語(token)を予測する」ように
 学習されたモデルのこと
 ※ 説明のしやすさのため、ここでの例は英語にしています...🙇
 A language model is 


    ??? 言語
 モデル
 …
 a
 何らかの方法で続く単語を決定する(サンプリング)
 ※ 確率分布はOpenAI API playgroundで利用できるtext-davinci-003(temperature=0)のものを記載しています 

  11. 言語モデルとは
 25 「単語(token)の並びから続く単語(token)を予測する」ように
 学習されたモデルのこと
 ※ 説明のしやすさのため、ここでの例は英語にしています...🙇
 A language model is a

    
 ??? 言語
 モデル
 決定した単語を並びに追加する
 ※ 確率分布はOpenAI API playgroundで利用できるtext-davinci-003(temperature=0)のものを記載しています 

  12. 言語モデルとは
 26 「単語(token)の並びから続く単語(token)を予測する」ように
 学習されたモデルのこと
 ※ 説明のしやすさのため、ここでの例は英語にしています...🙇
 A language model is a

    
 ??? 言語
 モデル
 …
 続く単語の確率を予測する
 ※ 確率分布はOpenAI API playgroundで利用できるtext-davinci-003(temperature=0)のものを記載しています 

  13. 言語モデルとは
 27 「単語(token)の並びから続く単語(token)を予測する」ように
 学習されたモデルのこと
 ※ 説明のしやすさのため、ここでの例は英語にしています...🙇
 A language model is a

    
 ??? 言語
 モデル
 …
 probability
 何らかの方法で続く単語を決定する(サンプリング)
 ※ 確率分布はOpenAI API playgroundで利用できるtext-davinci-003(temperature=0)のものを記載しています 

  14. 言語モデルとは
 30 「単語(token)の並びから続く単語(token)を予測する」ように
 学習されたモデルのこと
 ※ 説明のしやすさのため、ここでの例は英語にしています...🙇
 distribution over sequences of words.

    
 ??? 言語
 モデル
 この操作を繰り返していくと、文章が生成できる!!
 A language model is a probability 
 A language model is 
 a probability distribution 
 over sequences of words. 
 全体としては与えられた文章(入力)に自然に続く文章(出力)を生成するモデル

  15. 言語モデルの学習
 31 「どんなモデルにどんなデータをどのように学習させるか」
 モデル
 データ 言語
 モデル
 問題設定
 学習後
 A

    language model is 
 a 言語
 モデル
 A language model is
 ??? 単語の並びから続く単語を予測するように:

  16. 言語モデルの学習
 32 「どんなモデルにどんなデータをどのように学習させるか」
 モデル
 データ 言語
 モデル
 問題設定
 A language

    model is
 ??? 単語の並びから続く単語を予測するように:
 Wikipedia(https://en.wikipedia.org/wiki/Machine_learning )
 単語の並びと続く単語のペア
 Machine learnng (ML) is a , field
 Machine learnng algorithms build a , model
 以下の手順で学習データを機械的かつ大量に作成できる
 1. WikipediaのようなパブリックなWebページから文章を抽出
 2. 文章を単語で分割、上記のような単語の並びと続く単語のペアへ

  17. 言語モデルの学習
 33 「どんなモデルにどんなデータをどのように学習させるか」
 モデル
 データ 言語
 モデル
 問題設定
 A language

    model is
 ??? 単語の並びから続く単語を予測するように:
 単語の並びと続く単語のペア
 Machine learnng (ML) is a , field
 Transformerと呼ばれる
 モデルを使うのが最近の主流
 Machine learnng algorithms build a , model

  18. 言語モデルは何を学習している?
 34 左の英語の文章に続く単語を埋める問題を考えてみてください! 
 In my free time, I like

    to {run, banana} 文法的な知識 First grade arithmetic exam: 3 + 8 + 4 = {15, 11} 算数力 [...] Iroh went into the kitchen to make some tea. Standing next to Iroh, Zuko pondered his destiny. Zuko left the {kitchen, store} 空間的な論理思考力 The word for “pretty” in Spanish is {bonita, hola} 翻訳する能力 Movie review: I was engaged and on the edge of my seat the whole time. The movie was {good, bad} 感情を推定する能力 The capital of Denmark is {Copenhagen, London} 世界に関する知識 I went to the zoo to see giraffes, lions, and {zebras, spoon} 単語の意味に関する知識 ※ 英語の例は次の資料から引用しています: Scaling, emergence, and reasoning (Jason Wei, NYU)
  19. First grade arithmetic exam: 3 + 8 + 4 =

    {15, 11} 算数力 言語モデルは何を学習している?
 35 言語モデルも続く単語を予測するという問題を通して
 暗黙的に「文章理解に役立つ一般的な知識や能力を学習している」と考えられる!
 ※ 英語の例は次の資料から引用しています: Scaling, emergence, and reasoning (Jason Wei, NYU) 左の英語の文章に続く単語を埋める問題を考えてみてください! 
 In my free time, I like to {run, banana} 文法的な知識 [...] Iroh went into the kitchen to make some tea. Standing next to Iroh, Zuko pondered his destiny. Zuko left the {kitchen, store} 空間的な論理思考力 The word for “pretty” in Spanish is {bonita, hola} 翻訳する能力 Movie review: I was engaged and on the edge of my seat the whole time. The movie was {good, bad} 感情を推定する能力 The capital of Denmark is {Copenhagen, London} 世界に関する知識 I went to the zoo to see giraffes, lions, and {zebras, spoon} 単語の意味に関する知識
  20. First grade arithmetic exam: 3 + 8 + 4 =

    {15, 11} 算数力 言語モデルは何を学習している?
 36 言語モデルも続く単語を予測するという問題を通して
 暗黙的に「文章理解に役立つ一般的な知識や能力を学習している」と考えられる!
 ここで学習したものを他のタスクにも流用しよう!というのがGPTの始まり
 ※ 英語の例は次の資料から引用しています: Scaling, emergence, and reasoning (Jason Wei, NYU) 左の英語の文章に続く単語を埋める問題を考えてみてください! 
 In my free time, I like to {run, banana} 文法的な知識 [...] Iroh went into the kitchen to make some tea. Standing next to Iroh, Zuko pondered his destiny. Zuko left the {kitchen, store} 空間的な論理思考力 The word for “pretty” in Spanish is {bonita, hola} 翻訳する能力 Movie review: I was engaged and on the edge of my seat the whole time. The movie was {good, bad} 感情を推定する能力 The capital of Denmark is {Copenhagen, London} 世界に関する知識 I went to the zoo to see giraffes, lions, and {zebras, spoon} 単語の意味に関する知識
  21. 要約
 質疑応答
 事前学習:学習したものを流用する
 38 従来:タスクごとに専用のデータを使って1から学習
 事前に学習した言語モデルからタスクごとに専用のデータを使って学習
 モデル
 要約
 モデル
 モデル


    質疑応答
 モデル
 要約
 データ
 質疑応答
 データ
 モデル
 言語
 モデル
 公開
 データ
 言語
 モデル
 要約
 モデル
 言語
 モデル
 質疑応答
 モデル
   O 言語モデルの活用により
 タスクの精度向上
 
   O 専用のデータが
 少量で済むように
 Pre-training(事前学習):
 タスク共通の能力補強が目的
 Fine-tuning(ファインチューニング):タスク専用の能力特化が目的
   X 専用のデータを
 大量に集めるのが大変

  22. 事前学習された
 Transformer(モデルの種類)
 (言語モデルとして文章の)生成能力がある
 GPT-1
 39 事前に学習した言語モデルからタスクごとに専用のデータを使って学習
 モデル
 言語
 モデル
 公開


    データ
 言語
 モデル
 要約
 モデル
 言語
 モデル
 質疑応答
 モデル
   O 言語モデルの活用により
 タスクの精度向上
 
   O 専用のデータが
 少量で済むように
 Pre-training(事前学習):
 タスク共通の能力補強が目的
 Fine-tuning(ファインチューニング):タスク専用の能力特化が目的
 Generative Pre-trained Transformer
 Transformer
 GPT
 Generative Pre-trained Transformer
 GPTとはこれのこと!

  23. 大規模言語モデルの課題
 44 モデル
 言語
 モデル
 公開
 データ
 要約
 モデル
 Pre-training(事前学習)


    Fine-tuning(ファインチューニング)
 モデルの大規模化によりファインチューニングのコストが増大
 性能向上を果たした言語モデルのより効率的な利用が求められる
 GPT-3
 GPT-3
 質疑応答
 モデル
 GPT-3
   X モデルの大規模化によりタスクごとに
 ファインチューニング・運用するのが大変

  24. 大規模言語モデルの課題:Recap
 47 大規模化した言語モデルを効率よく様々なタスクに適用したい
 要約
 質疑応答
 文章生成
 (本来できること)
 モデル
 公開
 データ


    Pre-training(事前学習)
 GPT-3
 大規模言語モデル
 • なるべくファインチューニングしたくない
 • 運用するモデルも少なくしたい(=マルチタスクさせたい)

  25. 言語モデルとのコミュニケーション上の課題:考察
 52 1. 当初のGPT-3はなぜタスクの説明に従わないのか
 ◦ 学習データの中にタスクの説明とその適切な応答からなる文章がない
 ✓ ほとんどがWebページに記載されている書き言葉
 ✓ 人とのコミュニケーションで用いられるような命令形や疑問形の文章の意図を上

    手く理解できていない(?)
 
 
 2. 当初のGPT-3はなぜ人間にとって好ましくない発言もするのか
 ◦ 人間のコミュニケーションが前提としている倫理観を学習する仕組みがない
 ✓ 人間は暗黙的に理解している、文章には明示的に表れない
 ✓ ここに関しては、Web上の文章に続く単語を予測しているだけではダメ

  26. 言語モデルとのコミュニケーション上の課題:解決策
 53 1. 当初のGPT-3はなぜタスクの説明に従わないのか
 ◦ 学習データの中にタスクの説明とその適切な応答からなる文章がない
 ➢ タスクの説明とその適切な応答のデータを作成、それを学習に使用
 (Instruction tuning)


    
 
 
 2. 当初のGPT-3はなぜ人間にとって好ましくない発言もするのか
 ◦ 人間のコミュニケーションが前提としている倫理観を学習する仕組みがない
 ➢ 人間によるフィードバックを言語モデルの学習に組み込む仕組みを導入
 (Alignment tuning)

  27. ChatGPT
 56 InstructGPTに対して、さらにInstruction tuningとAlignment tuningを適用
 対話形式のデータを学習に追加しフォローアップや間違いの訂正ができるように
 ご近所さんへの挨拶に向けて私の簡単な自己紹介を考えて!
 こんにちは、私は〇〇と申します。この地域に引っ越してきたばかりで、まだ周りのことをよく 知らないのですが、ご近所の方々と仲良くなりたいと思っています。趣味は〇〇で、休日は 〇〇をして過ごすことが多いです。今後ともよろしくお願いします。

    相手は同い年くらいだからもう少しカジュアルな感じでお願い!
 やあ、こんにちは!私は〇〇って言うんだ。最近この辺に引っ越してきたんだけど、まだ周り のことよく知らなくて、ちょっと緊張してるんだよね。趣味は〇〇で、休日は〇〇をして過ごすこ とが多いんだ。これからもよろしくね! ※ 上例では、OpenAI API playgroundで利用できるgpt-3.5-turbo(system=default, temperature=0)の出力を記載しています 

  28. ChatGPTに至るまで:まとめ
 57 X:大規模言語モデルをいくつもファインチューニングしたり運用するのはコストが高い 
 
 ✓ 言語モデルのまま、入力の指示に従うようにファインチューニングを行うことで入力の指示を 通して様々なタスクを行うことができるようになった 
 ◦

    個々のタスクにファインチューニングしているのではない! 
 
 ✓ 人間によるフィードバックを学習に組み込むことで 不適切な発言をしにくくなった
 ◦ 文章に明示的に書かれていないことをある程度考慮できるようになった! 
 ※ 上例では、OpenAI API playgroundで利用できるgpt-3.5-turbo(system=default, temperature=0)の出力を記載しています 
 要約
 質疑応答
 文章生成
 モデル
 公開
 データ
 Pre-training(事前学習)
 ChatGPT
 高品質
 データ
 GPT-3
 Fine-tuning(ファインチューニング)
 X

  29. 利用したサービス
 64 • OpenAI, OpenAI API Playground [url]
 ◦ GPT-3,

    InstructGPT, ChatGPTの出力生成に利用しました
 • Sorami Hashimoto, Sizes of large Language Models [url]
 ◦ GPT-1,2,3のモデルサイズの比較用グラフに利用しました

  30. 引用した資料
 65 • Introducing ChatGPT - OpenAI [url]
 • ChatGPT

    - Wikipedia [url]
 • Cat and Dog dataset - Kaggle [url]
 • Machine Learning - Wikipedia [url]
 • Jason Wei, Scaling, emergence, and reasoning [url]
 • Jared Kaplan et al., “Scaling Laws for Neural Language Models” [arXiv]
 • Wayne Xin Zhao et al., “A Survey of Large Language Models” [arXiv]
 • GPT-4 - OpenAI [url]
 • OpenAI’s CEO Says the Age of Giant AI Models Is Already Over - Wired [url]

  31. 参考にした資料
 66 • 岡崎 直観, “大規模言語モデルの驚異と脅威” [url]
 • Slides -

    CSCI-GA.2590 Natural Language Processing, Spring 2023 [url]
 • Jason Wei et al., “Finetuned Language Models Are Zero-Shot Learners” [arXiv]
 • Long Ouyang et al., “Training language models to follow instructions with human feedback” [arXiv]

  32. Chain-of-Thought Prompting(CoT)
 Q:
 ロジャーは5個テニスボールを持っています。 
 彼は、2つの缶を買いました。 
 缶には、それぞれ3個ずつテニスボールが入っていま す。
 彼はテニスボールをいくつ持っているでしょうか?

    
 
 A:
 ロジャーは最初5個のボールを持ってます。 
 2つの缶には合計6個のテニスボールがあります。 
 5+6=11で、答えは11個です 
 https://arxiv.org/abs/2201.11903 82
  33. Chain-of-Thought Prompting(CoT)
 Q:
 カフェには23個のりんごがあります。 
 20個昼食に使って新たに6個買ったら、 
 合計いくつですか? 
 


    A: 
 カフェには最初23個のりんごがあります。 
 20個を昼食に使いました。 
 6個新しく買ったので、彼らは3+6=9個持ってます。 
 なので答えは9です。 
 https://arxiv.org/abs/2201.11903 83
  34. Zero-shot CoT
 • “Let’s think step by step”と聞くことでモデルに推論過程を出力させる
 • 出力させた推論過程を入力に加えて答えを導き出す


    • CoTで必要であった例が必要ない
 Zero-shot CoTの工程 
 一般ユース向け https://arxiv.org/abs/2205.11916 84
  35. ReAct
 思考: ホテルは「Mystere(Cirque du Soleil)」で調べられると判断
 行動: 「Mystere(Cirque du Soleil)」で検索
 結果:

    開催されている「Treasure Island Hotel and Casino」が見つかる
 https://arxiv.org/abs/2210.03629 90
  36. ReAct
 思考: 「Treasure Island Hotel and Casino」について調べて、部屋数を確認
 行動: 「Treasure Island

    Hotel and Casino」で検索
 結果: 2,884室の部屋と220室のスイートがあることがわかる
 https://arxiv.org/abs/2210.03629 91
  37. 間違った出力
 • この問題を緩和する方法はいくつか提案されている
 ◦ わからないこと・自信のないことは「わからない」と出力させる
 ◦ Demonstrationに、わからない時の例を追加する
 ◦ Promptの一部として、参照して欲しい情報を渡す
 


    Q: 原子とは何ですか? A: 原子とは、すべてのものを構成する微小な粒子です。 Q: アルバン・ムンツとは誰ですか? A: ? Q: Kozar-09とは何ですか? A: ? Q: 火星には何個の衛星がありますか? A: フォボスとデイモスの 2つです。 Q: ネト・ベト・ロベルトとは誰ですか? https://www.promptingguide.ai/jp/risks/factuality
 98
  38. 🦜🔗LangChain
 • 大規模言語モデルを使用したアプリ開発の支援ツール
 ◦ Python版とTypeScript版がある
 • 様々な便利モジュールが含まれている
 ◦ OpenAI APIなどのAPI使用をWrapしてくれているModelsモジュール


    ◦ 文書のロード・ベクトル化・検索を支援するIndexesモジュール
 ◦ 外部リソースとのやりとりをE2Eで行ってくれるAgentsモジュール
 • 更新が頻繁に行われている
 https://github.com/hwchase17/langchain
 104
  39. 参考文献・資料
 Brown et al. Language Models are Few-Shot Learners( arxiv)


    Wei et al. Chain-of-Thought Prompting Elicits Reasoning in Large Language Models( arxiv)
 Kojima et al. Large Language Models are Zero-Shot Reasoners( arxiv)
 Wang et al. Self-Consistency Improves Chain of Thought Reasoning in Language Models( arxiv)
 Yao et al. ReAct: Synergizing Reasoning and Acting in Language Models( arxiv)
 Elvis. Prompt Engineering Guide( url)
 Armstrong & Gorman. Using GPT-Eliezer against ChatGPT Jailbreaking( url)
 Chase. LangChain(url)
 宮脇. Prompt Engineeringについて( url)
 107