LLM:ゼロからエキスパートへ Help

大規模言語モデルについて

1)ドキュメント_コンプリーター_Modelは、以下のように機能します。

send
send
Prompt
Base Model
Response

ユーザープロンプト:

A banana is

modelの回答:

an elongated, edible fruit

2)ドキュメント_ジェネレーター_Modelは、以下のように機能します。

send
send
Prompt
Fine-tuned & RLHF Model
Response

ユーザープロンプト:

I want to buy a new car

modelの回答:

What kind of car do you want to buy?

上記の二つのModelの違いについては、

一つ目のModelは単なるドキュメントコンプリーターで、プロンプトに続く最も可能性の高い次の文字を完成させます。 これはインターネットのデータの一部に基づいて訓練されたModelで、基本Modelと呼ばれます。

二つ目のModelは、ドキュメントジェネレーターで、プロンプトの質問に基づいて_人間のような_回答を生成します。 これはChatGPTのModelです。

ChatGP Modelは、プロンプトの質問に基づいて応答を生成できる推論Modelです。 基本Modelとほぼ99%同じですが、ファインチューニングと人間のフィードバックからの強化学習の二つの追加トレーニングステップがあります。

プリトレーニング:基本Model

これはAI革命の真核であり、まさに魔法が宿っていると言えます。

Modelのトレーニングは、大量のデータをフィードして、それから学習させるピロセスです。

GPT-3の論文GPT-3 paperの記載されているように、基本Modelはインターネットのデータの大きな塊に基づいてトレーニングされます。

これは我々にとって容易な作業ではありませんが、データの取得だけではなく、GPUやTPUのような多大な計算能力を必要とするためです。 私たちでも、自分のコンピュータ上で小さなGPT Modelをトレーニングする方法を学ぶことができますが、その方法は次のブログで説明します。

LLMトレーニングの革新性は、Transformerアーキテクチャの導入にあります。 これにより、Modelは膨大なデータから学習しつつ、入力の異なる部分の重要な_文脈関係_を保持することが可能になります。

これらの接続を維持することで、Modelは提供された文脈に基づいて新たな洞察を効果的に推測することができます。

それが個々の単語であれ、段落であれ、文書であれ、それ以上のものであれ、この能力により、 LLMトレーニングは自然言語処理と生成のタスクに新たな機会を開き、マシンが人間のコミュニケーションをよりよく理解し、応答することを可能にしました。

基本Modelのトレーニングに使用されるトランスフォーマーアーキテクチャは下記の通りです。

Transformer paper architecture

これは、"トークン化"、"エンベディング"、"ポジションエンコーディング"、"フィードフォワード"、 "レイヤーノーマライゼーション"、"マスキング"、"ソフトマックス"、そして最も重要な"マルチヘッドアテンション"など、 古典的および新しい技術を用いたニューラルネットワークベースのModelトレーニングを示しています。」

この部分は、私が最も興味を持っているところです。アーキテクチャの背後にある考え方とトレーニングがどのように正確に行われたかを明確に理解したいと思っています。

そこで次のブログから、基本モデルのトレーニングに使用される論文、コード、数学について掘り下げていきます。

ファインチューニング:アシスタントのトレーニング

ファインチューニングはとても賢い実装方法です。 このアイデアはOpenAIによって初めて実施されたと思います。 このアイデアは非常にシンプルですが、知的に機能します。 人間のラベラーを雇って多くのQ&Aの会話ペア(10万の質問と回答)を作成させます。

次に、その質問と回答のペアを基本Modelにフィードして、そこから学習させます。

このプロセスは_ファインチューニング_と呼ばれます。10万のサンプル会話がModelにトレーニングされた後に何か起こるか知ってますか? Modelは人間のように質問に答えることができるようになります。

これらのサンプルのラベル付けされた会話を見てみましょう

Q&A

Q: あなたの名前は?

A: 私の名前はジョンです。

Q&A

Q: 中国の首都は?

A: 中国の首都は北京です。

Q&A

Q: 映画タイタニックのあらすじを要約してください。

A: 映画タイタニックは、海で沈む船についての話です。

これらのサンプルのQ&Aは私たちが互いに話す方法を模倣しています。

Modelにこれらの応答スタイルを教えることで、関連する文脈的な応答の確率が非常に高くなり、ユーザーのプロンプトに対してより良い応答となります。 様々な会話スタイルでModelをトレーニングすることにより、プロンプトに対して関連性が高く文脈に適した応答を生成する確率が高めます。

これが、言語Modelが非常に知的で人間のように見える理由です。現実世界の会話のリズムやパターンを学習することで、 ユーザーとの行き来の対話を説得力を持ってシミュレートすることができます。

この段階で、私たちは_アシスタントModel_と得たと言えます。 以下は、基本ModelのプリトレーニングからアシスタントModelのファインチューニングまでのいくつかのハイライトを示す図です。

Concept base fintune

(from Andrej Karpathy's build a GPT model from scratch))

人間のフィードバックからの強化学習

2022年1月にOpenAIはAligning language models to follow instructions .に関する研究を公開しました。 そのブログ投稿では、Modelが人間のフィードバックを用いて、さらにファインチューニングされた方法について説明しています。

これは少し複雑ですが、アイデアはModelに人間のフィードバックから学ばせることです。 約10万件のラベル付けされたQ&Aペアを提供する代わりに、ユーザーのプロンプトとModelの応答を収集し, その後、人間によるランキングを行います。

ランク付けされた会話を最も望ましいQ&Aサンプルとして持ち、 それらを再びModelにフィードして、それから学び、全体的なパフォーマンスを改善させます。

このプロセスはOpenAIによって blog :で紹介されています。

以下は基本Modelとファインチューニング/RLHFされた応答の比較です

prompt:

Explain the moon landing to a 6 year old in a few sentences.

Base

Explain the theory of gravity to a 6 year old.

Explain the theory of relativity to a 6 year old in a few sentences.

Explain the big bang theory to a 6 year old.

Explain evolution to a 6 year old.

Fine-tuned/RLHF

People went to the moon, and they took pictures of what they saw, and sent them back to the earth so we could all see them.

ファインチューニングとRLHFがなければ、Modelは単なるドキュメントコンプリーターに過ぎないことがわかります。

プロンプトエンジニアリング

ファインチューニングとRLHFを施しても、Modelは望ましい応答を得るための助けがまだ必要です。

ここでプロンプトエンジニアリングの出番です。

簡単に言うと、プロンプトを慎重に設計することで、Modelがより望ましい応答を引き出せます(時にはファインチューニング無しで)。

もし数学やコーディングに深く入り込むつもりがなければ、プロンプトエンジニアリングにもっと注意を払うことをお勧めします。

なぜなら、より良いプロンプトを作成するだけで、LLM Modelから最大の効果を引き出すことができるからです。

では、例を見てみましょう。

プロンプト:

The sky is

出力:

blue.

少し改善してみましょう

プロンプト:

Complete the sentence: The sky is

出力:

blue during the day and dark at night.

promptにいくつかの指示を含めることで、Modelは何をするべきか、何を応答すべきかを知ることができます。

もう一つ面白い例をみてみましょう:

prompt:

When I was 6 my sister was half my age. Now I’m 70 how old is my sister?

output:

35

答えは間違っています。 正解は67歳です。Modelは質問を理解しているようですが、数学的な計算を参照してしまっているのではなく、 論理的な推論を行うべきです。

ファインチューニングとRLHFなしで、正確な答えを得るためには、プロンプトにさらに例示的な指示を追加するだけで済みます。

prompt:

Q: There are 15 trees in the grove. Grove workers will plant trees in the grove today. After they are done, there will be 21 trees. How many trees did the grove workers plant today? A: We start with 15 trees. Later we have 21 trees. The difference must be the number of trees they planted. So, they must have planted 21 - 15 = 6 trees. The answer is 6. Q: If there are 3 cars in the parking lot and 2 more cars arrive, how many cars are in the parking lot? A: There are 3 cars in the parking lot already. 2 more arrive. Now there are 3 + 2 = 5 cars. The answer is 5. Q: Leah had 32 chocolates and her sister had 42. If they ate 35, how many pieces do they have left in total? A: Leah had 32 chocolates and Leah’s sister had 42. That means there were originally 32 + 42 = 74 chocolates. 35 have been eaten. So in total they still have 74 - 35 = 39 chocolates. The answer is 39. Q: Jason had 20 lollipops. He gave Denny some lollipops. Now Jason has 12 lollipops. How many lollipops did Jason give to Denny? A: Jason had 20 lollipops. Since he only has 12 now, he must have given the rest to Denny. The number of lollipops he has given to Denny must have been 20 - 12 = 8 lollipops. The answer is 8. Q: Shawn has five toys. For Christmas, he got two toys each from his mom and dad. How many toys does he have now? A: He has 5 toys. He got 2 from mom, so after that he has 5 + 2 = 7 toys. Then he got 2 more from dad, so in total he has 7 + 2 = 9 toys. The answer is 9. Q: There were nine computers in the server room. Five more computers were installed each day, from monday to thursday. How many computers are now in the server room? A: There are 4 days from monday to thursday. 5 computers were added each day. That means in total 4 * 5 = 20 computers were added. There were 9 computers in the beginning, so now there are 9 + 20 = 29 computers. The answer is 29. Q: Michael had 58 golf balls. On tuesday, he lost 23 golf balls. On wednesday, he lost 2 more. How many golf balls did he have at the end of wednesday? A: Michael initially had 58 balls. He lost 23 on Tuesday, so after that he has 58 - 23 = 35 balls. On Wednesday he lost 2 more so now he has 35 - 2 = 33 balls. The answer is 33. Q: Olivia has $23. She bought five bagels for $3 each. How much money does she have left? A: She bought 5 bagels for $3 each. This means she spent $15. She has $8 left. Q: When I was 6 my sister was half my age. Now I’m 70 how old is my sister? A:

output:

When I was 6 my sister was half my age, so she was 3. Now I am 70, so she is 70 - 3 = 67. The answer is 67.

output 2:

When the narrator was 6, his sister was half his age, which is 3. Now that the narrator is 70, his sister would be 70 - 3 = 67 years old. The answer is 67.

両方の答えが正しいです! 単にいくつかの例として論理的な説明をプロンプトに追加し、同じ質問を再度します。 Modelは今、質問を理解し、正しく答えることができます。

上記の例はWang et al. (2022)) によって紹介され、最終答えを算出するのにいくつかのステップが必要であるとされています。

強力なプロンプトは、数学の問題を解決したり、テキストを生成したりするような複雑なタスクをModelに実行させるために使うことができます。 そのため、"プロンプトエンジニアリングも"もLLMエコシステムの非常に重要な役割を果たしています。

プロンプトエンジニアリングについてさらに詳しくは、こちらの優れたprompting guideチュートリアルをご覧ください。

まとめ

ここまで読んでくださり、特にLLMの世界に新しい方にとっては、全ての情報を消化するのに時間がかかったと思います。 本当にAIの専門家になる準備ができていると思います!

今のところ、基本的な概念や背景情報について十分にカバーできたと思います。

私たち自身の大規模言語Modelを構築する準備を始める時が来ました。 理論はここまでにして、 トランスフォーマーアーキテクチャの重要な部分に進むにあたり、実践的に取り組んでいきましょう。

Last modified: 22 February 2024