チューニング。それは。
いっぱい意味があるね!
でも今回は大規模言語モデル(LLM:Large Language Model)のチューニングのお話だよ!
ChatGPT から AI にはまり、その界隈の深淵を覗き込んだ人々はこう言うだろう。。。
チューニング手法、、、多くない?
何を隠そう私もその一人だった。
チューニングと一口にいってもいろいろあって何が違うの?
となるので主なやつを後の自分のために整理しますわよ。
そも LLM のチューニングとは?
LLM は基本事前に学習をして賢い状態にあります。
ので、チューニングなぞ不要!!
と、言うこともできます。
せやかて工藤
さらに賢くしたり特定の情報に強くしたくなる時があるやないかい
はい、そういう時にチューニングするわけですね。
では、ざっくりチューニングの種類を確認しよう!!
種類
情報抽出精度を向上させるための主な種類を見ていきますよいっと
※雑に列挙してます
素
素。すなわち何もしていない状態。
以上。
プロンプトチューニング
はい。名前そのまんまです。
LLM にはプロンプトがつきものですがその中身をいい感じにします。
過去に書いてたりするのでシュッと飛ばしますが
具体的に指示をする、役割を与える、Few-shot learning をする。
みたいなやつが該当します。
これだけで欲しい情報が手に入れやすくなるのだ。
これはとっても簡単でお手軽。
だって指示内容を変更するだけだもん。
以上!!
強化学習
次にわかりやすいのはこれかしら?
強化学習とは、、、
詳しいことはすっ飛ばしましょう。
シュッと理解する。それが大事。
要するにユーザーからのフィードバック等の経験からいい感じに成長させるチューニング。。。
と、認識すれば多分いいでしょう。
LoRA
やっほー!ローラだよ!
はい、そうですね。
Low-Rank Adaptation ですね。
詳しいことはすっ飛ばしましょう。
シュッと理解する。それが大事。
要するに LLM を部分的に意図的な情報になりやすいように既存のレイヤー自体は変更せずに特定の性質をもつ方向へと誘導するためのレイヤーを新規追加して既存レイヤーに重ねるイメージでやんす。
画像生成 AI で特定の画風?を出力させたいような場合に有効で学習コストが低いのが特徴でございます。
Fine-tuning
Yeah, I'm fine thank you !!
そうですね、fine-tuning です。
詳しいことはすっ飛ばしましょう。
シュッと理解する。それが大事。
LLM ってね。事前に大量のデータを学習させているわけですよ。
つまりもともと賢いの。
でも、その学習データにない情報は答えられないのよ。
だってそもそも知らないから。
ので、例えば金融特化だとか、医療特化みたいなモデルへと進化させるために学習データにプラスして追加でデータを与えて訓練する方法でござんす。
これは一から LLM を作成するよりは圧倒的に簡単ではありますがまぁまぁ学習大変です。
でもこれをやるといい感じのモデルができるわけですね。はい。
ControlNet
まぁ、これはおまけみたいなもんです。
画像生成の文脈でよく目にしますね。
詳しいことはすっ飛ばしましょう。
シュッと理解する。それが大事。
簡潔にいうと LoRA と似ている手法。
つまり?
既存のレイヤーのチューニングは不要ってことだね!!
だから学習コストが低いのだ(*´▽`*)
以上!
おまけ
チューニングと銘打ったけれども。
軽量化の文脈もちょいと書いておこう。
ちょいちょい目にすると思うので。
モデルの枝刈り(Pruning)
これはまぁそのままね。不要なものを始末する。それだけだね。
量子化(Quantization)
これもまぁそのままだね。16bit で取りまわしていたものを 8bit にするとか扱うサイズを小さくするってことね。
蒸留(Distillation)
これはちょいとわかりにくいよね。
ざっくりいうと優秀な教師(強くてでかい LLM)の指導の下、優秀な生徒(強くて小さい LLM)を作るってわけよ。
細けぇことはいいんだよ。
シュッとわかりゃあそれでよぉ。
ということで自分が満足したのでおしまい。