A Survey of Large Language Models
なぜこの論文を紹介するか
下記理由から本論文をピックアップした
- 案件でLLMを利用したいとの要望を受け、最近のLLMの流れをおさらいしておきたいと思ったため
論文の内容
導入:Introduction
Pre-trained Model (PLM)のサーベイは十分な量があるが、LLMのサーベイは多くないため、本論文を執筆した
LLMは以下の3点でPLMと異なる
- LLMはそれまでの小規模PLMでは解けなかったタスクを解けるようになっている
- LLMはAI開発/利用の方向性を変える
- LLMではプロンプト経由での開発/利用する
- 人はLLMの挙動を理解し、LLMが理解できる形式にタスクを変換する必要がある
- LLMの開発は研究とエンジニアリングの境界を曖昧にする
- LLMの開発には大規模なデータ処理や分散処理のスキルが必要になるため、研究者はエンジニアと一緒に仕事をするか、エンジニアリングスキルを身につける必要がある
ChatGPTとGPT-4の登場により、汎用人工知能Artificial General Inteligence(AGI)の実現の可能性が出てきた。(GPT-4等のLLMを初期のAGIと位置付ける論文もある。)下記はGPT-4を開発したOpenAIのAGI開発のロードマップである。
LLMの急激な発展により、下記のような変化が起きている
- 自然言語処理(NLP)の分野の研究はLLMが汎用的なタスクソルバーとして考え、LLMをどう利用するかという方向にシフトしてきている
- 情報検索(IR)の分野では、既存のサーチエンジンをAIチャットボットベースの検索で置き換える試みが進んでいる(New Bingなど)
- Computer Vision(CV)の分野ではChatGPTのような視覚-言語情報のマルチモーダルモデルの研究が進んでいる。(GPT-4はすでにマルチモーダル)
これらのLLMによりもたらされる現実世界のアプリケーション開発環境にもたらされる変化はMicrosoftOfficeのCopilot機能のような形で、よりよい形で影響を与え始めている
これらの進展と影響とは裏腹にLLM自体は下記のような点で問題がある
- PLMが解けない周辺タスクをLLMがなぜ、どのようにして解けるようになったかは明らかになっていない
- アカデミアで十分な性能を発揮するLLMを学習することは、LLMに要求される膨大な計算資源の観点から難しい(そのため上記の原因究明も難しい)
- 人に害を与えるような偽情報等を出力しないように、人の価値観等をモデルに反映するのが難しい
まだまだ課題はあるものの、LLMの研究/開発のためにはもっと人々からの興味関心を惹く必要がある。そこで、本論文ではLLMへの基礎的な理解を促すために下記の観点から論文のレビューを実施した。
- Pre-training:優秀なLLMを作るためにどう事前学習するか
- Adaptation tuning:事前学習済みLLMをどう有効にチューニングするか
- Utilization:どうLLMを利用してタスクを解くか
- Capacity evaluation:どのようにLLMの能力を評価するか
概要:Overview
LLMの背景
Large Language Models(LLM)は、GPT-3、PaLM、Galactica等の大量データで大量のパラメータを学習したモデルを指す。現状のLLMはTransformerのmulti-head attentionレイヤーを多く積み重ね、事前学習では通常の言語モデルと同じ目的関数を利用するという点は共通している。異なる点はモデルのサイズ、事前学習データ、利用計算リソースといった点ぐらい。
LLM独自の能力
LLMではそれまでの比較的サイズの小さいモデルではみられない能力が確認されている。ここでは下記の3つの能力について紹介する。
- In-context learning
- モデルに指示やタスク実行例を提示された場合に、テストデータに対して期待される結果を追加の学習や勾配更新なしに実現することができる
- Instruction following
- Step-by-step reasoning
- 比較的小規模なモデルでは、解決に複数ステップのロジックが含まれるような算数の文章題を解くといったタスクを苦手としていた。しかし、LLMではプロンプトを用いることでステップ単位でのタスク解決を実行することにより、タスクを解けるようになった
LLMの発展に寄与した主要技術
現在のLLMが実現するにあたり、重要となった•なりそうな技術を紹介する。
- Scaling
- LLMが独自の能力を発揮するにあたり、必要になるモデル/データ/計算リソースサイズをバジェット制約の元で最適化する研究が近年進んでいる
- 事前学習データの質が重要になるため、データ収集/クレンジングが重要になる
- Training
- LLMではモデルサイズが大きいので分散学習が必須。分散学習最適化のFrameworkとしてDeepSpeedやMegatron-LMや、lossのスパイクを避けるためのmixed precision training等の技術が利用されている
- Ability eliciting
- LLMの能力を引き出すためには、適切なInstructionの設計やin-context learning戦略の設計が必要になる。例としては下記のようなものがある
- chain of thoughtのような思考過程をプロンプトに含める戦略
- Instructionにタスクの詳細を含める戦略
- LLMの能力を引き出すためには、適切なInstructionの設計やin-context learning戦略の設計が必要になる。例としては下記のようなものがある
- Alignment tuning
- LLMはモデルの性質上、人にとって有害な情報を生成してしまう可能性がある。これを防ぐために、人の価値観(無害、誠実、便利)にモデルを合わせる必要がある。この実現に向けた取り組みとして、下記のようなものがある
- InstructGPTによる、Reiforcement Learning with Human in the Loop(RLHL)を活用した人の価値観に合せるためのチューニング
- LLMはモデルの性質上、人にとって有害な情報を生成してしまう可能性がある。これを防ぐために、人の価値観(無害、誠実、便利)にモデルを合わせる必要がある。この実現に向けた取り組みとして、下記のようなものがある
- Tool manipulation
- LLMはテキスト情報をベースとして作成されたため、テキストで表現されていないタスクや学習以後に新しく追加された知識に関するタスクは苦手。これらを回避するために、ChatGPTが外部のツールを利用するといったことが検討されている
- chatGPTに検索エンジンや電卓を利用させるなど
- LLMはテキスト情報をベースとして作成されたため、テキストで表現されていないタスクや学習以後に新しく追加された知識に関するタスクは苦手。これらを回避するために、ChatGPTが外部のツールを利用するといったことが検討されている
GPT系モデルの進化の系譜
GPTを会話タスク方面に最適化したChatGPTの成功により、ChatGPTやGPT系モデルへの関心が高まっている。そこで、本節ではGPT系モデルの進化の系譜を紹介する。
OpenAIのLLM (GPT)に関する研究は下記のステージに分けることができるため、各項目ごとに説明していく。
- 初期探索期(Early Exploration)
- 性能向上期(Capacity Leap)
- 性能強化期(Capacity Enhancement)
- 目標達成期(The Milestone of Language Models)
1.初期探索期(Early Exploration)
言語モデルを活用した知的システムの構築のアイデアは、OpenAIにおいてかなり早い段階から模索されていた。Transformer登場後は、Transformerを利用したGPT-1とGPT-2を開発したが、それ以前にもRNNを用いた試みがなされていた。
- GPT-1
- GPT-2
- GPT-1のアプローチを踏襲した上で、モデルのパラメータ数を1.5Bまで大幅に増やし、WebTextデータで学習したモデル
GPT-2では明示的な教師データを用いたファインチューニングをせずに、教師なしの言語モデリングのみでタスクを解く方法を探索し、マルチタスク学習で用いられていた確率モデルの考え方を導入した
- p(output | input, task)の事後確率を予測するためのinput、output、taskを統一的に表現する情報として自然言語文が利用できると考えたとのこと
これにより、全てのタスクは自然言語処理の領域で解けるようになると考えた
“Since the (task-specific) supervised objective is the same as the unsupervised (language modeling) objective but only evaluated on a subset of the sequence, the global minimum of the unsupervised objective is also the global minimum of the supervised objective (for various tasks)”
(汎用モデルの思想はこの辺りから実装に反映され初めている感じな気がする)
2.性能向上期(Capacity Leap)
GPT-2は「教師なしのマルチタスク学習モデル」を意図して開発されたが、教師ありのファインチューニングがされたSoTAモデルと比較するとパフォーマンスはよくなかった。GPT-2をベースとして、モデルを学習済みモデルと同程度までスケールさせたGPT-3を開発した。
- GPT-3
3.性能強化期(Capacity Enhancement)
OpenAIではGPT-3の性能をさらに強化するために、コードデータでの学習と感覚との突合に取り組むようになった
- コードデータでの学習
- GPT-3では複雑なロジックが必要になるプログラムの補完や、算数の文章題を解くといったタスクを苦手としていた
- これを解決するために、Githubのコードデータを用いた学習を実施したCodexをリリースしたところ、複雑なプロブラムの補完や算数の文章題を解くといったタスクでパフォーマンスが大幅に改善した
- また2022に紹介された文章とコードの埋め込みにcontrastive lossを用いるアプローチにより関連するタスクについても性能改善が確認された
- アップデートされたGPT-3.5は、このコードデータで学習されたモデルをベースとして確証されたことで、大幅な性能改善が確認された
- このことから、複雑なロジックに関する性能改善にはコードデータでの学習が重要になることが明らかになった
- 感覚との突合(Human Alignment)
モデル出力の人の感覚との突合は2017年からOpenAI内で課題として認識されており、解決に取り組んでいた
これを実現するための技術開発として下記のような研究が次々と発表されていった
2020年にはこれら手法を利用したGPT-2のチューニングが実施され、2022年にはInstructGPTが提案されGPT-3モデルで感覚との突合が実施された
これらの結果、GPT-3の指示に従う性能が改善するとともに、人にとって有害な情報出力(偽情報など)が軽減するといった改善が確認された
- OpenAIでの感覚との突合に関するアプローチについては下記にまとめられている
4.目標達成期(The Milestone of Language Models)
これまでの探索の結果、OpenAIはChatGPTとGPT-4というマイルストーンになる製品がリリースされた
- ChatGPT
2022年11月にOpenAIはGPT-3.5とGPT-4をベースとする会話モデルChatGPTをリリースした
ChatGPTは基本的にはInstructGPTの手法を利用したものだが、会話により最適化されたものになっているとのこと
- 具体的な違いとしては、人の生成した会話データがInstructGPTで利用したデータに追加されているとのこと
- ChatGPTは人とのコミュニケーションで優れた性能を発揮している。
- 広大な知識ベースの整理
- 数学の文章題を解くといった複雑なロジックを含むタスクの解決
- 複数ターンの対話でのコンテキストの把握
- 人にとっての有害な出力抑制
- また、ChatGPTのプラグイン機能が提供されたことにより既存アプリケーション等への統合が進んでいる
- ChatGPTは現在、AIの歴史上で最も進んだChatbotであるため、多くの影響をAIの研究に与えるだろう
- GPT-4
- 2023年3月にOpenAIは文章入力の他に、画像等のマルチモーダルデータが入力としてサポートされたGPT-4した。
多くのタスクで、GPT-3.5と比較して大幅な性能改善が確認されている
特に6ヶ月に及ぶRLHFにより、安全性は大きく改善しているとのこと
モデルを改善するための新しい技術としては下記を導入している
- read teaming
- 有害な出力生成を抑えるための手法
- predictable scaling
- モデル学習時の計算インフラ最適化
- read teaming
LLMは急激に進展したものの、まだまだ偽情報を生成してしまうといった課題が解決したわけではないので、利用には注意が必要。
リソース:Resources of LLMs
LLMsで利用されている/利用可能なリソースを紹介する
モデル
モデルの変遷は下記の通り
各モデルの概要は下記の通り
API
Open AIはAPIとしてChatGPTやGPT-4を利用できる環境を提供している
データソース
LLMを作成する上で頻繁に利用されているデータソースは下記のとおり
ライブラリ
- Transformers
- Huggingfaceが開発したTransformer系モデル構築に利用可能なPythonライブラリ
- DeepSpeed
- Microsoftが開発したPytorchモデルの最適化ライブラリ
- Megatron-LM
- JAX
- Colossal-AI
- HPC-AI Techが開発した大規模モデルの学習効率化ライブラル
- BMTrain
- OpenBMBが開発した大規模モデルの学習効率化ライブラリ
- FastMoE
- Mixture of Expert(MoE)モデルのための学習効率化ライブラリ
事前学習:Pre-training
大規模なコーパスを用いた事前学習により、LLMは基本的な言語理解/生成能力を獲得する。この時、下記が重要になる
- 学習データの質と量
- モデルのアーキテクチャ
- 学習の高速化と最適化
データの質と量
LLMの能力はデータに依存しているため、事前学習で能力の高いモデルを生成するたには、高い質のデータを大量に集める必要がある。このためにこの節では下記内容について紹介する
- 事前学習用データの収集と前処理
- 事前学習データがLLMの性能に与える影響
事前学習用データの収集と前処理
能力の高いLLMを開発するためには、さまざまなソースの自然言語データを用いるのが肝要。実際、多くのLLMではさまざまなデータソースを混ぜて利用している。
利用されるデータには下記のようなものがある
- 一般テキストデータ
- Webpageデータ
- ウェブページをcrawringしたデータCommonCrawlなど。情報の質にばらつきがあるため、不要データのフィルターや前処理が重要
- 会話文データ:
- 本データ
- Webpageデータ
- 専門テキストデータ
- 多言語データ
- BLOOMやPaLMには122言語が学習データに含まれている。結果、翻訳や多言語要約、多言語QAといったタスクにこれらのモデルは秀でており、対象言語でファインチューニングされたSoTAモデルよりも良い成績を残している
- 科学文書データ
- コードデータ
- 多言語データ
学習データを揃えたら、続いて適切な前処理で不要な情報や有害な情報を取り除く等の作業が必要になる。
- Quality Filtering
- 分類機やヒューリスティックなアプローチで質の低いデータを学習データセットから除外する。分類機は良文学習的なアプローチでモデルを作成するが、質の高いデータを除外してしまう可能性が指摘されている。そのため、BLOOMやGopherでは下記のようなヒューリスティックなルールをもとにデータを除外している
- 言語ベースフィルタ
- 利用を想定していない言語データは除外する
- 指標ベースフィルタ
- 複雑度等の指標をもとに基準を満たさないデータは除外する
- 統計ベースフィルタ
- 平均的な文章の長さやシンボル-語比率等の文章に関する統計情報から外れているデータは除外する
- キーワードベースフィルタ
- HTMLのタグといったデータを除外する
- 言語ベースフィルタ
- 分類機やヒューリスティックなアプローチで質の低いデータを学習データセットから除外する。分類機は良文学習的なアプローチでモデルを作成するが、質の高いデータを除外してしまう可能性が指摘されている。そのため、BLOOMやGopherでは下記のようなヒューリスティックなルールをもとにデータを除外している
- De-duplication
- Privacy Redaction
- ウェブのソースから得られたデータには個人情報が多分に含まれるため、これをルールベースで除外する必要がある
- Tokenization
事前学習データがLLLMの性能に与える影響
LLMはその規模の大きさから学習を繰り返し実施するのは難しい。そのため、事前学習データのコーパスを十分に精査し、準備しておくことが重要になる。本節では事前学習データの分布や質がLLMの性能に与える影響について下記の観点で議論する
- Mixture of Sources
- Amount of Pre-training Data
- Quality of Pre-training Data
モデルのアーキテクチャ
現在のLLMでは下記のようなアーキテクチャが利用されている
- Encoder-Decoder Architecture
- Transformerを用いて、EncoderとDecoderを作成するアーキテクチャ
- Encoderではmulti-head self-attention レイヤを積み上げることで潜在空間での表現を獲得する
- Decoderでは潜在空間での表現に対してcross-attentionを適用し、自己回帰的に出力を生成する
- Transformerを用いて、EncoderとDecoderを作成するアーキテクチャ
- Causal Decoder Architecture
- Prefix Decoder Architecture
- Causal Decoderのマスキング方法を見直し、双方向のattentionをprefix tokenに対して実施し、単方向のattentionを生成部のみ利用するようにしたアーキテクチャ
- (より汎用的な潜在空間の表現獲得が可能になると思われる)
まずはCausal Decoderで学習し、モデルをPrefix Decoderに変換して学習すると効率的とのこと
学習の高速化と最適化
各LLM学習時の設定は下記の通り
LLMの チューニング: Adaption Tuning of LLMS
事前学習でLLMはさまざまなタスクを解く汎用的な能力を獲得する一方で、特定タスク解決に向けて適応させることができることが報告されている。
適応させる方法としては大きく分類して下記がある。
- Instruction Tuning
- Alignment Tuning
Instruction Tuning
Instruction Tuningは事前学習済LLMを、自然言語の形式にフォーマットされたドメイン固有のデータセットを利用してファインチューニングする方法を指す。
Instruction Tuningを実施することにより、LLMは学習データに含まれない未知のデータに対しても高い能力を発揮するようになることが確認されている。
Instruction Tuningを実施するためのデータを集める方法には下記のようなアプローチがある。
- Formatting Existing Datasets
- Formatting Human Needs
データを作成する際には下記項目に注意すると汎用的な性能を獲得しやすいいとのこと
- Scaling the instruction
- 指示タスクタイプ(QA、分類など)を増やすこと
- 指示タスクのディスクリプションを充実させること
- 指示タスクのインスタンス数は少量にすること
- Formatting design
Instruction Tuningの結果として下記のような結果が報告されている。
- Performance Improvement
- 事前学習データと比較して少ない指示データで学習したにも関わらず、Instruction Tuningにより性能改善することが確認されている
- Task Generalization
- Instruction tuningはモデルに自然言語の指示全般を理解させることに一役かっているため、実施することにより人からの指示に従いやすくなる
Alignment Tuning
さまざまなタスクでLLMは素晴らしい性能を発揮している一方で、偽情報の生成、不適切な表現などしてしまうという課題もある。これは事前学習でLLMが次の単語を予測するというタスクで学習しているため、人の価値観や嗜好を明示的に考慮できていないことが原因の一つと考えられている。
そこで、LLMの出力と人の価値観と突合するための方法が提案された。ただ、事前学習やInstruction tuningとは異なる基準を導入することになるため、Alignment tuningの結果、汎用性能が一部悪化することが報告されている(alignment tax)
- Alignment Criteria
- チューニングの基準はさまざまあるが、大きく分類すると下記のようになる
- Helpfulness : 人をどれだけ支援できるか
- Honesty : 偽情報を生成しないか
- Harmlessness : 出力結果が攻撃的でないか
- チューニングの基準はさまざまあるが、大きく分類すると下記のようになる
これらは人の主観的な認識のため、数値化し最適化の対象とすることは非常に難しい。将来性のある方法としては red teamingがある。(これは、マニュアル等を利用してLLMを検査する方法?)
具体的な方法は下記内容を参照のこと
活用 : Utilization
事前学習とチューニングが終わったモデルはプロンプト経由で利用することができる。典型的なプロンプト方法には下記がある。
- In-Context Learning
- プロンプトにタスクの説明やタスクの実行例を自然言語で含める方法
- Chain of thought prompting
- In-Context Learningを補強する方法として、ロジックの中間ステップをプロンプトに含める方法
In-Context Learning (ICL)
適切なタスクの実行例をモデルに提示することで、LLMは追加の学習なしに適切な回答を得ることができる。ただ、タスクの実行性能はモデルに提示する実行例に依存するため、性能をあげるためには適切な実行例を提示する必要がある。
適切な実行例を提示する方法として本節では下記内容を紹介する
- 実行例の選択
- 実行例の自然言語フォーマット方法
- 実行例の提示順序
In-Context learningのより詳しい内容については下記を参照のこと
実行例の選択
ICLの精度はモデルに提示する実行例に大きく依存する。実行例の選択方法には、下記がある
- Heuristic approach
- そのシンプルさと簡易さから、探索的なアプローチがよく利用される
- k-NN等を利用してタスクに類似した実行例を探す方法(実行例間の比較はなし)や、実行例の多様性を考慮するためにサンプル集合からもっとも代表的な実行例を探す(実行例間の比較あり)方法が提案されている
- LLM-based approach
- LLMに実行例の重要度を出力させ、その重要度をもとに実行例を選択する方法や、LLM自体に実行例を生成させる方法が提案されている
実行例の自然言語フォーマット方法
実行例の選択が終わったら、その実行例を自然言語で表現する必要がある。
- 事前定義済みのテンプレート利用
- 実行例の質問と回答で変化する部分のみを穴埋めする方法(例.数学文章題の数値部分のみ変えるなど)
- 回答タスクの説明追加
- 回答タスクの説明を追加することで、回答性能が改善することが報告されている
- 回答タスクの説明自体をLLMに事前に生成させることで、説明データを集める労力を軽減する方法も提案されている
実行例の提示順序
LLMは最後の実行例の結果に影響されやすいという性質を持つことが確認されている。そのため、実行例の提示順序が重要になる。
- 実行例の類似度順
- タスクとの類似度が近い実行例ほど、実行例を最後に持ってくる
- その他指標順
- 情報量など
Chain of thought prompting (CoT)
CoTは複雑な論理構造を持つタスクや、一般常識に関連するタスク等のタスクでLLMの性能を改善するために考えられたプロンプト戦略。
ICLでは入力-出力のペアのみをプロンプトに与えるが、CoTでは最終的な出力結果につながる中間出力をプロンプトに含める。(図7参照)
CoTは下記それぞれの設定のもとで頻繁に利用される。
- Few-shot CoT
- Few-shot CoTは実行例を「入力-CoT-出力」として与える方法(「入力-出力」ではないということ)
- CoT prompt design
- CoTの多様性を増やすこと(各タスクに対して複数のロジックを記載する等)で性能が改善するということが報告されている。特に複雑なロジックの方がLLMの性能改善につながるとのこと。
- ただ、↑の場合、データが必要になってしまう。そこでAuto CoTではZero-shot-CoTを活用し、手動データ準備が不要になるようにしている。
- Enhanced CoT strategies
- CoTはタスクの背景知識を増やすだけでなく、タスクの検討に利用するロジックの幅を増やすことに利用できる
- 多くの研究では複数のロジックパスを生成し、正しい回答に紐づくパスを回答の多数決から決めて、決めて利用している。これを活用した提案であるself-consistencyでは、CoTによる性能改善幅をブーストしたことが報告されている
- CoT prompt design
- Few-shot CoTは実行例を「入力-CoT-出力」として与える方法(「入力-出力」ではないということ)
- Zero-shot CoT
- Zero-shot CoTは、データを利用せずに「Let’s think step by step」でプロンプトを開始し、最終的な結論を「Therefore, the answer is」というプロンプトで促す方法
- LLMが一定の規模を超えると、この戦略で性能が大幅に改善することが確認されている
CoTはLLMで初めて確認された能力のため、一定以上の規模のモデル(10B以上のパラメータ数)でのみ有効に働く。また、数学の文章題、一般常識課題、記号推論といったステップごとのロジックが必要なタスクでは有効に働くが、その他の通常タスクで利用すると精度が劣化するという報告もあるため、使い所は慎重に考える必要がある。
機能評価 : Capacity Evaluation
LLM機能の評価で利用されているタスクとデータセットには下記のようなものがある。
- Language Generation
- Knowledge Utilization
- Closed-Book QA : 外部のリソースを利用することなく、特定コンテキスト内で質問に回答するタスク
- Open-Book QA:外部のリソース利用を許可した上で、質問に回答するタスク
- Knowledge Completion:欠損している部分の知識を補完するタスク
- Complex reasoning
- Knowledge Reasoning : 論理構造と根拠をもとに質問に回答するタスク
- Symbolic Reasoning : 記号と記号活用ルールをもとに推論するタスク
- Mathematical Reasoning : 数学課題に回答するタスク
現在評価データとして頻繁に利用されるのは、上記のうちMMLU、BIG-benchとHELM。
- MMLU:幅広い知識(数学、CS、人文学など)を含む、知識理解の能力を図るために利用されるデータセット
- BIG-bench:204のタスクを含むLLMの性能を測るために作成されたベンチマークデータセット
- HELM:16シナリオ7カテゴリの情報に関するLLMの性能を測るために作成されたデータセット
結論と今後の方向性 : Conclusion And Future Directions
本論文では近年のLLMの発展を理解するために、発展に寄与した主要なコンセプトや技術、LLMの利用方法について下記の観点で紹介した。(LLMの対象としてはパラメータ数が10Bを超えるものを対象とした)
- Pre-training:優秀なLLMを作るためにどう事前学習するか
- Adaptation tuning:事前学習済みLLMをどう有効にチューニングするか
- Utilization:どうLLMを利用してタスクを解くか
- Capacity evaluation:どのようにLLMの能力を評価するか
現在LLMが抱える課題や挑戦、今後の発展の方向性をまとめると下記のようになる
- Theory and Principle
- LLMが獲得した能力が、いつ、どのように発現したかは明らかではない。この原因究明に研究コミュニティが取り組むことは次世代のLLM開発のために非常に価値がある
- Model Architecture
- Model Training
- LLMを何度も学習するのは、計算リソース、学習のコツ、データの質の担保の観点から難しい。そのために下記に取り組む必要がある
- 学習時に発生した異常の早期検知
- 計算リソースの最適化
- 検証に利用可能なオープンソースの学習済みモデルの整備
- LLMを何度も学習するのは、計算リソース、学習のコツ、データの質の担保の観点から難しい。そのために下記に取り組む必要がある
- Model Utilization
- LLMのfine-tuningを実施するのはコストが非常に高いため、LLM活用の際にはプロンプトを利用したIn-Context Learningを活用することが多くなると思われる。プロンプト活用の幅を広げるために、下記課題への取り組みが必要。
- プロンプトのデザインにかかる人手の削減方法検討
- 自然言語で表現されていない複雑なタスクのプロンプトデザイン方法の検討
- 複数回のコミュニケーションを前提としたプロンプト方法の検討
- LLMのfine-tuningを実施するのはコストが非常に高いため、LLM活用の際にはプロンプトを利用したIn-Context Learningを活用することが多くなると思われる。プロンプト活用の幅を広げるために、下記課題への取り組みが必要。
- Safety and Alignment
- LLMは人にとって有害な情報を生成してしまうことがある。これをGPT-3/4ではRLHFで軽減することに成功している。ただ、現状のRLHFには多大な人手が必要になる。これを改善するためのフレームワークの検討が必要
今後読みたい論文や資料など
- LLMについて本論文を記載した研究メンバーがメンテナンスするリポジトリ
LLMの能力がどう獲得されたかを議論するブログポスト
より詳しいICLの内容がまとまったサーベイ
参考資料
- OpenAIブログポスト
Planning for AGI and beyond Learning from human preferences Our approach to alignment research Introducing ChatGPT https://cdn.openai.com/papers/gpt-4.pdf Product
- 論文
[1706.03741] Deep reinforcement learning from human preferences [1707.06347] Proximal Policy Optimization Algorithms [2203.02155] Training language models to follow instructions with human feedback [2303.12712] Sparks of Artificial General Intelligence: Early experiments with GPT-4 [1808.06226] SentencePiece: A simple and language independent subword tokenizer and detokenizer for Neural Text Processing [2301.00234] A Survey on In-context Learning [2303.18223] A Survey of Large Language Models
- その他
GitHub - RUCAIBox/LLMSurvey: The official GitHub page for the survey paper "A Survey of Large Language Models". はじめての自然言語処理 T5 によるテキスト生成の検証 | オブジェクトの広場