大変参考になる動画をありがとうございます。このFineTuningは長州力さんのtweetだけでcausal language modelの学習をした ということでしょうか。その結果として長州力さんのような言い回しが学習されているとしても,学習済モデルがもともと持っていたプロンプトからの推論部分が壊れてしまっていると思います。実際に推論された文書は,元の推論にあったある程度論理的なつながりがなく,長州力さんのtweetがランダムに再現されているように感じます。本来は,不正確であってもある程度の論理性を保ったまま言い回しだけが変わってほしいところですが,そのような学習をするには,長州力さんのtweetを(論理的かどうかはわかりませんが。。)もっと多く学習させる必要があるでしょうか。
impressive work, thanks
I'm grad to help you!
But I'm sorry I can't provide any subtitles...
大分前の動画に失礼します。
Hugging Faceに提供されているGPT-4をファインチューニングし、電子参考書にある内容から自動的に問題を生成するシステムを作りたいのですが、初心者すぎて何からどうしたらいいか全く分かりません…具体的に流れを教えていただければ幸いです…
Hugging Faceのページを眺めてどう触ってみようか悩んでいるところでした。
直感的で分かりやすいです。これからも楽しみにしています。
ありがとうございます!
なるべく直感的な課題で、コードを書くときの思考も細かくアウトプットすることを意識しています。
これからも有益な動画を上げられるよう頑張ります!😊
だいぶ前の動画ですが、もし可能なら教えていただけないでしょうか。私の会社のpcはセキュリティのためtransformers からモデルにアクセスできません。モデルを自分のローカルに置いてtransformersを使う方法をご紹介いただけると嬉しいです。 可能ならよろしくお願いします。
コメントありがとうございます。はい、可能です!🥳
詳細は以下リンクをご確認いただきたいのですが、LLMモデルを読み込む from_pretrained 関数は、モデルが格納されているローカルのパスを指定することもできます。
予めモデルのファイルをダウンロードし、配置しておく必要はあるため、
・別のPCでfrom_pretrainedを実行し、モデルファイルをダウンロード
・そのファイルを使いたいPCへ転送
といった手順が必要になると思います。
こちらで回答になっていそうでしょうか?
huggingface.co/docs/transformers/main_classes/model#transformers.PreTrainedModel.from_pretrained.pretrained_model_name_or_path
大変参考になる動画ありがとうございます。ファインチューニングは1回目の学習データとは異なる学習データで2回、3回と繰り返すものなのでしょうか?、それとも、1回目の学習データに2回目、3回目の学習データを追加して、1回だけファインチューニングするものなのでしょうか?
ご質問をありがとうございます!
現場では、上げてくださった2つの方法だと、後者を採用するケースが多いですね。多段階の訓練となると、再現性が担保しにくいからです。
前者を採用するであろうケースの例は、大規模なデータセットやモデルを使っていて、訓練時間や計算量がネックになりやすいプロジェクトの場合ですね。再現性とのトレードオフになると思います!
動画とても参考になります!
ちなみに最低トレーニングデータに50サンプル、テストデータに20サンプルとのことだったのですが、1サンプルあたりの文字数はどの程度が適切なのでしょうか?元のモデルに利用したデータに依存する感じですかね?
お返事遅れ申し訳ございません!
動画内ではツイートを想定していたので、だいたい10~100文字程度で考えています。
元のモデルがどう訓練されたかは、あまり気にしなくても良いのかなーと思います。GPT Familyの訓練に使用されているデータは、本当に幅広いので。笑
大変参考になる動画をありがとうございます。このFineTuningは長州力さんのtweetだけでcausal language modelの学習をした ということでしょうか。その結果として長州力さんのような言い回しが学習されているとしても,学習済モデルがもともと持っていたプロンプトからの推論部分が壊れてしまっていると思います。実際に推論された文書は,元の推論にあったある程度論理的なつながりがなく,長州力さんのtweetがランダムに再現されているように感じます。本来は,不正確であってもある程度の論理性を保ったまま言い回しだけが変わってほしいところですが,そのような学習をするには,長州力さんのtweetを(論理的かどうかはわかりませんが。。)もっと多く学習させる必要があるでしょうか。
ご質問ありがとうございます!総じて、記載いただいた内容は正しいです。
生成文章の質をなるべく保ちつつ、ファインチューニングを行う術としては、大きく、
・(記載いただいた通り)学習データの量を増やす
・もっとキャパが大きく、元々の性能が高い学習済みモデルを使用する
の2択だと思います。
とはいえファインチューニングをすると、生成文章全体の質としては低下する場合がほとんどです。どうしても元々のモデルの持っていたパラメータを書き換える必要があるためです。😢
今回も素晴らしい動画ありがとうございました!
ハンズオン同様に長州力さんのツイートで試しうまく行き、ファインチューニングのイメージやできる事を理解出来ました。こんな事が簡単にできて感動です。
HuggingFaceで出来る事を知りたいので(言語の分類問題など)、今後も動画アップ楽しみしています!
ちょっと質問ですが、エポック数(num_train_epochs)は画像解析時と同様に学習させ過ぎると過学習気味になるのでしょうか?
コメントをありがとうございます!お返事が遅れ申し訳ございません。
そうですね、私のHuggingFaceの動画では、BERT系モデルをあまり扱えていないので、ぜひ作っていきたいです。
ここ最近、とあるKaggleのコンペに参加しているのですが、そのコンペの報告も兼ねてそういった話題を扱えそうです!
ご質問いただいた「Epoch数を増やすと過学習が起こるのか?」については、直接の回答としてはYesです。
しかし動画内のコードでは、訓練時に load_best_model_at_end 引数が True に指定されています。
そのためたとえ過学習が起こったとしても、最も検証データに対する精度が良いモデルが採用されるので、厳密な調整は必要ありません。