この動画は、生成AI 2025コースの第1週目のオフィスアワーを記録したものである。主にハイパーパラメータチューニングの概念と実践について詳しく解説されており、学習率、バッチサイズ、エポック数などの重要なパラメータがモデル性能に与える影響を実演を交えて説明している。また、MCPサーバーやエージェントの概念についても議論され、参加者からの質問に対して丁寧な回答が提供されている。

- ハイパーパラメータチューニング講義の開始
- 技術的な問題の解決とディスカッション開始
- パラメータ調整の実践演習の提案
- MCPとマルチエージェントに関する質問
- エージェントの詳細な説明とMCP活用
- MCPサーバーとAPIの関係性について
- MCPサーバーの具体的な活用事例
- エージェントの高度な機能と進化
- ハイパーパラメータチューニングの実演開始
- ハイパーパラメータの詳細解説
- 学習率の重要性と影響
- バッチサイズの効果と最適化
- エポック数とその他のパラメータ
- 実際の訓練プロセスの説明
- データのランダム化とバイアス回避
- エポック数の最適化について
- LLM訓練の現実的なコストと時間
- 追加のハイパーパラメータについて
- 実際のファインチューニング実行
- 実行中の結果分析とディスカッション
- 訓練時間とコストの現実
- インタラクティブダッシュボードについて
- オフィスアワーの目的とスコープ
- 新規参加者へのデータセット説明
- 実用的な応用例について
- ファインチューニングvsRAGの選択基準
- モデルの切り替えとコスト効率
- コード実行に関するサポート
- セッションのまとめと今後の展望
- リップシンク技術に関する質問
ハイパーパラメータチューニング講義の開始
ルイスさん、こんにちは。ルイスさん、もしお話しされているなら、お声が聞こえません。いえ、私だけでしょうか、それとも他の皆さんも同じ問題を抱えていますか?彼の声が聞こえません。はい、まだお声が聞こえません。
ミュートになっているように表示されています、ルイス。ミュートになっているように見えますので、分からないですね。
いえ、聞こえません。分かりました、待ちましょう。はい、その間に、ルイスが参加するまで、誰か作業に取り組んで、より良い結果を得る機会はありましたか?
皆さん、試してみましたか?誰か、いかがですか?いえ、試していません。分かりました、見てみましょう。今度は試してみて、どうなるか見てみましょう。実際にやってみましたか?はい、試してみました。すべて実行できましたが、バッチサイズと学習率については一度だけ変更しました。時間があるときに、もっと変更を加えて試してみます。
バッチサイズを数回変更してみましたし、インスパイアードも試しましたが、あまり違いは見られませんでした。バッチサイズが低いときは下がりましたが、高いときはあまり違いが見られませんでした。
シャシさん、バッチサイズが低いとき、どのような違いを見ましたか?損失が低くなりました、40%、50%くらいです。60%、70%の代わりに、です。
そうですね。コードを理解しようとしていました。でも、たくさんのことが含まれています。
技術的な問題の解決とディスカッション開始
今、聞こえますか?はい、はい、はい。問題は、ミーティング直前にラップトップが電池切れで止まってしまったことだと思います。バッテリーが切れたせいで、ハードウェアに何か問題が生じた可能性があります。
そのため、すべてが正常に動作することを確認するために再起動する必要がありました。分かりました。
何人かの方がコード自体について質問があったと聞いています。どなたが最初に質問されますか?いえ、変更を加えて、より良い結果やファインチューニング、その他の作業で改善が得られるかどうか、誰かが試したかどうかを議論していただけです。
そういったことをいくつか話し合っていました。そうですね、良いですね。クールです、良いことです。
パラメータ調整の実践演習の提案
もし質問があれば対応できます。もしなければ、皆さんがエクササイズをやりたいなら、パラメータをいくつか調整して、大きな違いが出るかどうか、何が起こるかを見てみることができます。
そのように始めましょう。まず、コードの実行に関して何か問題、質問、困ったことがあるかどうかから始めましょう。
コードの実行に問題はありませんが、少し調整を行って、変更を加えたい場合にどの分野に焦点を当てるべきか、特徴やその他の様々なタイプの入力など、もう少し詳しく観察し理解したいと思います。確かにそうですね。今日のアクションアイテムのメモに、パラメータの調整として記録します。
今日のオフィスアワーで他に話し合いたいことはありますか?
MCPとマルチエージェントに関する質問
ルイス、おそらくこの範囲外の関連のない質問があります。みんなが静かなら、もしよろしければ進めてもいいですか?どのくらい範囲外か見てみましょう。
完全に範囲外というわけではありません。103の範囲外と言いましたが、それでもAIに関することです。質問は、MCPを取り上げるかどうか、そして2つ目は、お好みのアイデアにマルチエージェント機能を統合して、マルチエージェントがどのように相互作用するかを見ることです。
以前のクラスで簡単に取り上げましたよね?あなたは管理者ですとか、レビューアーですとか、そういった感じで見せていただきました。しかし、推論やそういったすべてのことを含めて、実際に動作しているところを見ることができます。これはこのコースで取り上げる予定でしょうか?
MCPについては第3週で取り上げます。来週ではなく、その次の週に、独自のMCPサーバーの作成方法、接続方法など、すべてを説明します。これが第3週の内容です。
RAGとエージェントは第4週の一部になります。評価の実行方法について、もう少し詳しく取り上げます。そして、人々を混乱させないように説明すると、エージェントとは実際何でしょうか?
エージェントとは、ツールを使用できるLLMのことです。LLMにMCPを呼び出させると、それがエージェントの構築です。LLMにAPIを呼び出させると、それもエージェントの構築です。なぜなら、独自のツールを構築する選択肢を与えているからです。それが基本的にエージェントの定義です。
コンサルティングでよく言われる言葉があります。「目を細めて見れば、何でもエージェントに見える」ということです。
エージェントの詳細な説明とMCP活用
確かに、私が本当に意味しているのは、適切なエージェントです。LLMのラッパーのようなものですが、少し手を加えたり調整したりして、文脈に応じて自然言語を必要なパラメータに分解し、実際には必要なパラメータだけではなく、利用可能なMCPツールを特定し、適切なMCPツールを見つけ、文脈をMCPに必要な質問に分解する、といったことです。
でも、カーソルのような設定や、マルチエージェントが並行して作業を行う、といったことにより興味があります。
そういったことの一部を104で行うことを考えています。現在は、エージェントの接続方法をもう少し理解していただきたいと思っています。以前にWikipediaを使って、Python関数を表示し、どちらかを使用するタイミングをLLMに示しました。
今度は、より大きなAPIに接続することです。以前のジャニ101でTaviと接続しました、覚えていますか?TaviはインターネットサーチAPIで、ウェブから情報を取得して返すチャットボットを作成しました。
技術的にはこれもエージェントですが、第4週で説明する「選択をする」エージェントもあります。Wikipedia APIだけでなく、別のAPIも持ち、LLMが両方の間で決定を下すようなものです。しかし、これらのAPIに接続するには、MCPサーバーが必要です。
そのため、第3週は非常に重要です。MCPサーバーがサードパーティのツールやソースに接続するゲートウェイであることを理解するためです。
MCPサーバーとAPIの関係性について
もう一つ、もし誰も質問がなければ、フォローアップの質問をしたいと思います。MCPサーバーをAPIとして使用している人に出会ったことはありますか?
はい、6か月前から現在まで、多くのことが変わりました。以前、MCPサーバーは単にAPIへのコネクターでした、単純にAPI呼び出しだからです。しかし現在、MCPは進化しており、独自のオペレーターになっています。
例えば、以前はデータベースを取得し、SQLクエリを実行するために、データを整理し、データが整理されていることを確認し、すべてが接続されていることを確認し、様々な異なることを行う必要がありました。
現在のMCPサーバーとAPI呼び出しの違いは、LLMにデータベースのスキーマを理解させることができ、すべてがどのように接続されているかを理解させることができることです。様々なSQL呼び出しを与えて、「この領域から情報を取得する必要がある」と理解させることができます。
MCPサーバーは中間のゲートウェイのようなもので、SQLファイルを作成し、情報を取得し、それを他のLLMに渡して理解させる前に理解します。第3週により深く説明します。これがすべての方向性であり、これらのLLMエージェントがMCPサーバーからの情報を使用し、それがエージェント的にする要因です。
MCPサーバーの具体的な活用事例
実際、この質問をした理由は、私たちが作成したMCPサーバーがあり、別のグループの人々が書いたものがあります。彼らのインターfaces見ると、とても汎用的です。しかし、LLMに書かれたルールに基づいてすべてを行わせます。
私たちの場合、まだリモートMCPとして公開していないローカルMCPなので、カーソルルールがあります。そこですべてのコンテキストが与えられ、「これらのテーブルをチェックする権限があり、この特定のテーブルのスキーマと、それらがどのように接続され関連しているか」といった情報があります。
LLMがあなたのコンテキストを理解し、そのクエリを構築するという魔法を行います。しかし、この特定のケースでLLMが必要ないというスタンスを取りたいとします。エージェントに反対しているわけではありませんが、この特定のケースではLLMにアクセスできないが、MCPにアクセスできる場合があります。データモデルを非常によく知っているので、クエリを書くことができます。
API層を書く場合、依存関係管理、セキュリティOAuth、そういった面倒なことすべてが必要ですが、MCPではすべてが対応済みです。なぜ特定のケースでAPIとして呼び出すことができないのでしょうか?すべてのケースではありませんが、デュアル目的を考えています。これは一般的なパターンでしょうか?
エージェントの高度な機能と進化
いえ、先ほど言ったように、現在は物事がより複雑になってきています。なぜなら、エージェントに単純なAPI呼び出し以上のことをしてもらいたいからです。理解し、学習してもらいたい。決定を下してもらいたいのです。
例えば、バックエンドに何かがあり、モバイルアプリで統計を取っているとしましょう。メトリクスに何か異常があることを教えてくれるものが欲しいとします。何かが完全におかしくなったときに。
このMCPサーバーは、バックグラウンドで常に実行され、何が起こっているかをチェックし、データを見て、アラートを作成することができます。そして、このMCPサーバーからアラートを作成し、それをLLMに送信し、LLMが自然言語で「データにスパイクが発生していることに気づいています」と送信します。
これも使用ケースによりますが、MCPサーバーは大きく進化しており、先ほど言ったように第3週で詳しく説明します。必要な場合と不要な場合を自分で気づくでしょう。しかし、エージェントワークをしたい場合、完全に異なる4つのデータセットを与え、それらすべてをどのように接続するかを示すと、要素はそれを行うのに十分スマートです。
ありがとう、ルイス。どういたしまして。
ハイパーパラメータチューニングの実演開始
ハイパーパラメータチューニングに関する質問がいくつかありました。機械学習やニューラルネットワーク、ディープラーニングの世界に踏み込んだことがない場合、これをすぐに理解するのは少し困難かもしれません。
典型的な機械学習における教師ありまたは教師なしのハイパーパラメータチューニングは、モデルをより良く訓練するために行うものです。前回、教師モデルについて話しました。大きなミスをした場合、大きなペナルティを与え、他のミスをした場合は他のペナルティを与えます。
現在、インタラクティブなダッシュボードを作成しました。これをチャットに入れて、画面を共有し、すべての概念を説明し、後でデータセットに追加して、実際に何が起こっているかを理解できるようにします。
画面を共有しましょう。皆さん、画面が見えますか?はい。これは「ハイパーパラメータチューニングダッシュボード」と呼んでいるものです。
ハイパーパラメータの詳細解説
これは各つまみが何をするかを理解するためのものです。車のように考えてください。各車にはオイル、ベルト、エンジンを動作させる様々な機能があります。どのくらいのガソリンを入れるか、どのくらいのオイルが欲しいか、どのくらいの速度が欲しいかに応じて、モデルを調整し、より良いアウトプットを得ようとします。
先週言ったように、オーバーフィッティングと呼ばれるものがあります。モデルをデータに対して非常に多く調整すると、実際の世界のケースに対して完全に混乱してしまいます。90%や95%の精度を達成したとしても、実際のデータに直面すると非常に悪いパフォーマンスを示すことがあります。これは、モデルに過度の調整を与え、本来起こるべきことを適切に学習しなかった場合に起こるオーバーフィッティングです。
これらのより深い理解を進めましょう。これらがあなたが知りたいタイプの質問のようです。ハイパーパラメータチューニングの第1番です。
データセットに戻りましょう。最初に2つのモデルを評価するために与えました。最初に与えた基本的なもの、バッチサイズと学習率です。バッチサイズはモデルに与えられるデータの数で、学習率は1e-5でした。
学習率の重要性と影響
なぜこの1つだけを行い、他のものは残りをやったのでしょうか?学習率が実際に最も重要だからです。これは、重みが更新されるたびに、推定エラーに対してモデルがどのくらい反応するかを制御します。
前回一緒にやったクイズを覚えていますか?100%確信している場合、50%確信している場合、ペナルティを受けるべきです。現在、すべてがログ形式で与えられています。1e-5はログ番号ですが、2、1などに調整できます。1e-5は最小の数字のようなものです。
シミュレーションがどのように動くかを見てください。右に動かしてログを下げるほど、モデルを滑らかにしたいと思います。これが以前に言っていたところです。学習率を上げると、その曲線はどのように見えるでしょうか?下げるのと比べて。
非常に滑らかなものが欲しいのです。1e-5は直線のような滑らかさです。しかし、それを増加させると、モデルに高いペナルティを与え、物事を異なって見るように指示していることになります。
その滑らかな線から、下に見える曲線のような線に変わります。しかし、学習率の全体的なポイントは、非常にまっすぐで曲線的なものが欲しいということです。これは右側のシミュレーションです。モデルにより多くの学習率を追加したらどうなるでしょうか?
損失はノイズが多く、発散する可能性があり、モデルは最適解をオーバーシュートしています。学習率が高いほど、損失はノイズが多くなり、発散し、オーバーフィッティングになる可能性があります。そのため、常に学習率をできるだけ低く保ち、より良いことを行いたいと思います。
バッチサイズの効果と最適化
バッチサイズについてです。1回の反復で利用される訓練サンプルの数です。8を使用した例について話しました。より大きなバッチサイズは、より速い訓練とより安定した収束につながりますが、汎化が悪くなる可能性があります。
バッチサイズ8を使用し、以前のような直線を見ることができました。しかし、バッチサイズを大幅に増やすとどうなるでしょうか?損失が非常に高くなり、以前の2という数字に到達できません。
8周辺では、損失プロセスはまだ同じです。全体のポイントは、モデルが訓練できる滑らかな直線を得ることです。10、9、10に上げることができます。それほど影響はありませんが、20代、30代、40代、50代に入り始めると、影響があることがわかります。非常に不安定になります。
より速く学習し、そういったことができるかもしれませんが、考えて消費するデータが少ないため、非常に汎化してしまう可能性があります。
エポック数とその他のパラメータ
第3のものがあります。これらは実際にモデルに大きな影響を与える調整できる上位2つと言ったものです。他の小さなものは、より良いシグナルを得るために調整できるものです。下の方に置きました。
エポック数は、全データセットの1回のフルパスです。データセットからすべてを理解し学習したいと思います。しかし、再度やり、再度試し、再度試すと、その直線を見ることができます。9エポック、8エポックを与えて、学習しよう、学習しよう、学習しよう、学習しよう、学習しようと言うと。
100エポックやそういったものに持っていくことはお勧めしません。エポック数を1から30、または人々は実際に100、130まで行くことがありますが、それは1から特定の量に調整し始めるときだけです。モデルにデータを何度も何度も繰り返し実行させ、実際に概念を理解するまで続けたいからです。
エポック数を増加させるにつれて、それは全体の異なるデータセット全体を実行する回数です。
実際の訓練プロセスの説明
ここで一時停止しましょう。ティーチングモードではないからです。そこから続けることができます。
ここまでで何か質問はありますか?ルイス、同じデータセットですね、基本的には反復ですよね?データセットを使用して学習し、同じデータセットを与えるが、再度学習するということですね。
はい、すべてがランダムセットに配置されているからです。例えば、そこに入ってランダムに移動すると、テストの最初のデータセットが表示されます。
データセットを3つの異なるカテゴリに分割したことを覚えています。テスト、訓練、検証です。テストはモデルに与えて学習させるデータです。テストは検証に使用するもので、「良くやったか?悪くやったか?戻って調整しよう」という感じです。
最終的な検証は、すべてのテストと訓練を経た後、データセットの最後の10%または15%のホールドアウトセットを使用して、「90%のデータでモデルを訓練した後、最後の10%を取得できるか」と言うことです。
データをモデルに学習させるために与えると、ランダム化されて来ます。8バッチの1、20、60、50、33がバッチ1の一部かもしれません。しかし、2回目のエポックを行うと、2、12、13、40行がLLMに送信されてそのセットを再度実行することになるかもしれません。
データのランダム化とバイアス回避
これはデータでのバイアスを少なくしたいからです。エポック数1を与える最初の時に、何らかの理由で悪いケースがすべて分離されずに一緒に結合されている可能性があります。そうすると、モデルは「すべてが悪いケースになる」と思うかもしれません。
そして、モデルを実行すると、すべてを悪いケースに分類している可能性があります。そのため、エポック数があると、全データセットで再訓練するように指示していますが、バッチを混合しています。毎回まったく同じバッチではありません。理解できますか?
はい、理解できます。ありがとう。
私は新機能が追加されたときなどの観点から考えていました。ここでは新機能を追加していません。パラメータを調整しているだけですよね。おそらくモデルはそれで大丈夫だと思います。
チャレンジャーモデルについて考えていました。本番で良好に動作しているモデルAがありますが、異なる機能セットを持つ新しいモデルが出てきます。モデルAがモデルBと競合し、勝った方が本番に進むという感じです。しかし、この特定のケースでは、同じデータセットで異なる反復やパラメータでモデルを訓練しているということですね。
エポック数の最適化について
この点で重要なことは、エポックが少なすぎるとモデルが学習不足になることです。十分に学習していないのです。2、3、4、5だけにするのは非常に低いです。
再度これを行うとき、みんなが速く進むために、私は何エポックを設定したと思いますか?速く進むために0.25を設定しました。
しかし、20や30エポックに変更して、どれだけ精度が向上するかを確認できます。これは後で確認します。
ルイス、0.25と言うとき、それは25%のデータだけで訓練されるということですか?いいえ、0.25は消費される可能性のあるデータの25%だけです。これを整数として考えてください。エポック2、エポック3、エポック4、そして4.4、4.5もできます。
この0.25は1つの完全なエポックの25%です。この例では、この訓練で完全なエポックをやっていません。エポックの4分の1だけです。速度を示すためだけにそうしました。これを行ったとき、2分かかったと思います。
しかし、5や6エポックに上げると、どのくらい時間が増加するかの例を示します。これは、LLMを構築し始めるときの問題です。ChatGPTやその他の分野を見て、どのくらいのエポック数で訓練されているべきかを見ると、数千のエポックで訓練されており、多くのGPUを使用しています。
LLM訓練の現実的なコストと時間
これらのモデルの一部は、完全に訓練するのに実際に数週間、さらには1か月半かかります。これらのモデルは大きなグラフィックカード、数百時間を消費し、新しい学習率を学習し続けています。
ありがとう、ルイス。基本的なことを理解できていないため、質問があります。事前訓練済みモデルを訓練することと、ML機械学習モデル訓練の違いを理解しようとしています。
第1週で、NLLMモデルはNLPモデルまたはニューラルネットワークに基づく機械学習モデルであることを学びました。LLMは、カテゴリを見て、それらの間の関係を理解するために一緒に働くNLPモデルからのニューラルネットワークの束です。
ニューラルネットワークが初めての方のために説明すると、ニューラルネットワーク内の何千もの何千ものノードに情報を送信し、それらが互いに跳ね返って、見つけることができる単一タイプの関係を見つけようとします。
LLMモデルのファインチューニングを行う場合、例えば、ここでBERTモデルのファインチューニングを行っていますが、新しい情報を学習するために、MLで行うのと同様にニューラルネットワークを訓練する必要があります。
なぜこのようなことをするのかという質問に答えられたでしょうか?はい。
重み減衰について話しました。これらは今度は小さなペナルティです。「より多くのペナルティが欲しい、少ないペナルティが欲しい」と言うことができます。これは重みを小さく保つことでオーバーフィッティングを防ぎます。高すぎると学習不足につながる可能性があります。
これを1に持っていってもそれほど悪くありませんが、2から3に上げ始めると、学習不足につながる可能性があります。
追加のハイパーパラメータについて
ウォームアップステップは、訓練の開始時に学習率が0からターゲット値まで線形に増加するステップ数です。ウォームアップステップは、ここに含めていませんでしたが、これらはモデルをより良くするために追加できる追加のハイパーパラメータチューニングです。
なぜこのようなものが欲しいのでしょうか?ビジネスケースに戻ります。本当に、本当に良いものが欲しく、88%に達していて、「重み減衰を調整した、学習パラメータを調整した、これを上下に動かしたがアップしている、88%以上を得られない」という場合。それから、追加のハイパーパラメータチューニングを追加できます。これらを調整すると、90%に到達するのに役立つかもしれません。
追加のハイパーパラメータチューニングがたくさんありますが、これらすべてが必要ではなく、時にはbeginningから追加のハイパーパラメータチューニングを使用することで、実際にモデルのパフォーマンスを損なう可能性があります。追加のハイパーパラメータチューニングを除去することで、6つすべてを同時に使用するのではなく、2つまたは3つだけを使用してより良い結果を得ることができるかもしれません。
私にとっては、調整できる上位のものを使用し、それから他のものを徐々に追加して、より高い戦略を得て、少し良いことを行うことです。これがデータサイエンスの由来です。通常、これはAIエンジニア、機械学習モデルエンジニアの仕事です。これを見ると、「これを調整してこれを下に移動すれば、より良い精度を得られるだろうか?これを上下に移動すれば、より良い精度を得られるだろうか?」ということを理解する必要がある芸術と科学の融合です。
これがML知識セット、ML分野が入ってくるところで、統計を理解しようとすることです。グラディエント蓄積は微積分、グラディエント降下の理解、GPUの最適化方法について。ウォームアップステップも、L2正規化は線形回帰の統計を使用し、ラッソと呼ばれる線形回帰の異なる手法を使用してLLMモデルにペナルティを与える方法を見つけることです。
これらは、ニューラルネットワークを最適化するために人々が行う非常に高度に規制された統計的イベントです。これが一度見たときに「わあ、この情報は何だ?消化するのが少し難しいかもしれない」と感じるかもしれない理由です。これは、過去10年、15年にわたって人々が開発し、これらのタイプのモデルを調整する方法を見つけることができた、すでに成熟した芸術だからです。
これらのハイパーパラメータ部分が何をしているかのより深い説明になればと思います。それでは戻って、これを編集してみましょう。
実際のファインチューニング実行
ここから、すでにコレクションデータセットを収集したと思います。これを再度実行してみましょう。ウォータートークンモデル。すべてロードされていることを確認しましょう。
この部分はスキップします。非常にシンプルな例を示していたからです。私たちがここで持っているのは、ピープル評価だと思います。この部分をカットします。このモデルの完全なロードだと思います。これが下で実行されることを願っています。
実行する前に、調整を行います。今度は10エポックに変更します。重み減衰を覚えていますか?先ほど言ったことに戻ると、重み減衰はどのようになるべきでしょうか?オーバーフィッティングを防ぐのに役立ちますが、高すぎると学習不足につながる可能性があります。
高すぎない何かを行いましょう。3として、0.01にしましょう。どうなるでしょうか?現在0.01です。0.1にするか、シンプルに見えるように0.1にしましょう。評価ステップはそのままです。
簡単に2つのことを変更しました。学習率は、上で使用した学習率を使用したくありません。学習率も変更してみましょう。0.105は大丈夫でした。しかし、これを1.0に変更したらどうでしょう。7か何かに変更して、上で使用した数字を確認できます。1e-5を確認しましょう。
7に変更し、バッチサイズをもっと少なくしましょう。6にしましょう。これを再実行しましょう。調整を行いました。学習率を上げ、バッチサイズを下げ、10回訓練すると言い、ペナルティを上げ、同じ評価ステップにしました。
どうなるか見てみましょう。APIキーを求められるかもしれませんが、見てみます。取得しましょう。コピーします。しばらく実行させてみます。
実行中の結果分析とディスカッション
もし誰かが古いノートブックを利用できれば、まだ実行していないかもしれません。モデルが現在どのように動作しているかと以前どのように動作していたかを比較できますが、最終的な精度も見て、どのように動作しているかを確認できます。
実行中に何か質問はありますか?10エポックを設定したため、少し時間がかかるかもしれません。最初に実行したときは25%だけでした。25%で2分かかった場合、それを4倍すると、2、4、6、8分、エポックあたり8分になります。それを10倍すると、どのくらいの時間がかかるかがわかります。これらのモデルを訓練し、異なる分野で使用する時間です。
しかし、これは皆さんに作業していただきたい活動の種類です。自分で遊んでみてください。朝に実行させて、数字を調整するだけです。130エポックや80エポックにしたらどうなるでしょうか?本当に違いが見えるでしょうか?
カーブを見ることになるでしょう。1dBに戻りたいとき、特定のエポック数の後に単純にドロップします。「50マークの周りでドロップする。ファインチューニングの後、50エポック以上は必要ないかもしれない。それほど学習していない。50エポックだけに保とう」となります。または「30エポックの後、完全にドロップしている。特定の量だけに変更しよう」となります。
これが、どのようにこれを改善し、見て、そこから進むかという科学に戻ります。
これで損失パーセンテージを監視しています。損失パーセンテージである必要はなく、現在行っていることは、バッチを見て訓練しています。このバッチを見てその精度パーセンテージを与え、そのバッチから学習し、すべての単一バッチでより多く学習しています。
30で始まりました。今37ですが、37が最善を尽くせることを意味するわけではありません。このバッチでは、今後のこのバッチよりも良く学習したと言っているだけです。しかし、まだ答える方法と適切に分類する方法を学習しています。
最終的に底のこの部分が必要になります。最終的に最良の評価を選択し、全体的にどのくらい正確かを確認し、そこから最良の結果を提供します。これは63.3%の精度しかありません。10エポック行うことで、もう少し良い結果が見えることを確信しています。時間内に終わるかどうか見てみましょう。
訓練時間とコストの現実
10エポックは1時間分の情報かもしれません。5,433のうち500です。1時間以内に終了すると言っています。これは10エポックだけでのことです。LLMモデルのファインチューニングを行う場合、シンプルなもので3、4時間、5時間かかる可能性があることを覚えておいてください。
これがファインチューニングが多額の費用がかかる理由です。GPU、ハードウェアを実行してレスポンスを得るため、すべてがそのように動作するようにハードウェアを実行しているからです。
バッチサイズと学習率と比較して、エポックス取る学習時間のほうが多いと思います。その通りです。バッチサイズを下げたので、一度に8個ではなく、より多くの個別結果を見るため、訓練に時間がかかります。
しかし、20に跳ね上げると時間は短縮されますが、より良いかより悪い結果が得られるでしょうか?これが皆さんに実験してもらいたいところです。
これが終了した後、これを実行したままにして、WhatsAppグループに今日の実験のスクリーンショットを投稿できます。これらのタイプのメトリクスで増加できたか、増加できなかったかを確認し、皆さんがより多く遊んで、改善できるかどうかを見ることができます。今は終了しません。明らかに49分後です。低いバーは少し長くかかると言っています。
インタラクティブダッシュボードについて
実行中に何か質問はありますか?他に何かありますか?共有したダッシュボードについても、ドラッグして移動してすべて、どのように生成されましたか?予測をどのように行いましたか?
以前共有したインタラクティブダッシュボードについて質問されています。チャートが変更されるのは、ハードコードされて反映されているだけです。それは単なるデモです。先ほど送ったものは、各モデルがどのように効果を与えるかを学習理解することに関する教育についてです。
視覚化とそのようなツールの使用は、概念をより理解するのに役立つと思います。しかし、これには接続されていません。
WDBダッシュボードでは、ファインチューニングの結果を表示し、チャートを表示して、その滑らかな直線が見えるか、非常に波打っているかを確認できます。
オフィスアワーの目的とスコープ
初回参加の方のために覚えておいてください。オフィスアワーは何でもです。ここの特定のことについてである必要はありません。AI全般について質問があれば、オフィスアワーはあなたのものです。
プロジェクトで作業していて行き詰まった場合、これはクラスと共有し、作業していることで直接助けることができる時間でもあります。オフィスアワーはそのような時間です。講義コードについて毎回特定のことを考える必要があるとは思わないでください。自分で何かに取り組んでいる場合、これらのオフィスアワーでも確実に助けることができます。
新規参加者へのデータセット説明
AIは完全に初心者です。これらの異なる専門用語とあなたが言っているコードをまだ理解しようとしています。訓練しようとしているデータセットがどのようなものか理解しようとしています。このデータセットは実際にRDBMSテーブルのようなものですか、それとも構造化または非構造化データのようなものですか?
この例で使用しているデータセットは、Twitterの評価です。次のクラスで実際に会話を通じて説明する予定ですが、テキストとラベルがある辞書で構造化されています。
テキストはこのTwitter結果、Twitterのテキストで、ラベルはゼロです。以前機械学習やデータサイエンスに取り組んだことがあるなら、非常に似ています。
予測を行うには、数値で表す必要があります。ゼロと1です。あなたのラベル、ターゲット変数は、このBERT教師ありファインチューニングの例では数値形式である必要があります。NLPモデルだからです。
このモデルは、ポジティブなら0、ネガティブなら1、ニュートラルなら1-3のマルチクラス辞書セットをLLMに与えて訓練します。
モデルは「このテキストを読んで、terrible、first、word、problems、can’t、そのような単語がすべて見えるなら、ラベルが0を示しているので、これはネガティブな応答であるべきだ」と言います。
これらの単語が出てきたときに認識すれば、ネガティブな応答として0とラベル付けする必要があることをモデルに訓練しています。訓練データセットを行うときは異なる方法がありますが、LLMにとってこれは例の1つです。
実用的な応用例について
例えば、PLM製品ライフサイクル管理ツールで働いています。部品があり、いくつかの問題が発生し、変更オーダーが入ってくるという多くのデータがあります。設計される部品の変更オーダーの数や欠陥の数を減らそうとしています。
すべてのデータがRDBMSに保存されており、それらの図面ファイルがあります。ユーザーが部品をモデル化しようとしているときに、システムが自動的に訓練して、これが将来問題を引き起こすことをユーザーに警告するようにするにはどうすればよいでしょうか?そのような訓練をしたい場合、同じデータセットを同様の方法で使用するか、そのような訓練には異なる形式がありますか?
ファインチューニングvsRAGの選択基準
それは素晴らしい質問で、クラスの最初に話したことです。ファインチューニングは、あなたのバイブルになるデータセットがある場合に基づいています。マニュアルのように、全く変わらないもので、確実に変わらないとわかっているものです。
何をすべきか、何をすべきでないかなどのすべての知識をファインチューニングモデルが持つため、最終的なケースとしてこのファインチューニングを使用します。
しかし、常に変化があり、データが常に変わり、新しいアーキテクチャ、新しい図面、新しいことが起こっている場合、ファインチューニングは意味がありません。何かをファインチューニングすると凍結され、再度ファインチューニング、ファインチューニング、ファインチューニングを行うには、常にファインチューニングにはお金がかかることを理解する必要があります。
500の小さなデータセットでのシンプルな10エポックの例を使用するだけで、1時間以上かかります。現在、ほぼ2番目のエポックを終了しており、15分が経過しています。
大量のデータがあり、これらの大量のデータでLLMを訓練したい場合、長時間訓練する必要があり、お金がかかります。少なくとも5,000ドル、10,000ドルかかります。
常にアップデート、アップデート、アップデートを試み、5、6か月ごとにモデルを更新する必要がある場合、ファインチューニングは選択肢ではありません。情報を引き込んで書かれているものに対して検証するエージェント的なものか、ベクターデータベース空間に情報を集約し、書かれているものにマッチするRAGを行う必要があります。
しかし、話している基準に基づいてそれを実現するには、人々がインターface書き込む際にLLMにストリーミングされ、LLMが修正を提供し始めるインターフェースが必要です。オートフィルのGitHub Copilotのように、これを入力しているときに提案することを考えてください。
人々が何かを提出するときに、テキストがポップアップするような提案を持つこともできます。「これに取り組んでいます。これらのファイルをチェックしてください」と言ったり、リンクに引っ張ったり、以前のやり取りに投稿したりできます。
入力しているユーザーがそのように知ることができます。その方法を改善する方法はたくさん考えることができます。しかし、ポイントは、まずLLMにその知識を与える必要があることです。その情報を理解する必要があります。
モデルの切り替えとコスト効率
常に更新される場合、まずその知識をフィードするより安い方法を見つける必要があります。
特定のLLMを訓練したが、ChatGPT 4.4のような新しいファイルが入ってきて、そのモデルを使用したい場合、RAGには同じデータベースを使用できますか?
はい、RAGの場合は可能です。RAGの場合、モデルに情報をフィードするだけなので、モデルを交換して使用できます。
しかし、ファインチューニングの場合、ナンバー5を再度ファインチューニングする必要があります。ナンバー4をあなたの応答としてファインチューニングした場合、新しいモデルが出てくると、その新しいモデルもファインチューニングする必要があります。それは追加のコストになります。
最もコスト効率的な方法はRAGです。ChatGPT、Llama、その他のものであろうとLLMを交換でき、常にファインチューニングを行わなくても同じ結果を得ることができます。
コード実行に関するサポート
ありがとう。ルイス、前回のクラスでファイルを見せて実行しましたが、クラス中に設定する時間がなかったので、今やろうとしています。その中の異なるセクションを簡単に説明していただき、正しく実行できているかどうか見てみたいのですが。
時間の関係で、ビデオで詳しく説明しています。多くの人がビデオでつまずいていたのは、Google Cloudにpip install evaluateがない場合、ステップ4の前にそれを行う必要があることです。評価パッケージをインストールする必要があり、パッケージをダウンロードすればすべてを実行できるはずです。
ステップ4の前にということですね。ステップ21だと思います。ステップ2は見えませんが、ステップ1と3だけ見えます。9、10、11。これはステップ12だと思います。
これらの数字はこちらのコードの数字と一致していません。pip install evaluateと言いましたか?はい、trainer integrationの前にそれを入力する必要があります。
trainer integrationの後、pip install evaluateを入力し、次のコードが実行できるはずです。trainer integrationの前ですか?trainer integrationの後です。pip install evaluateを入力し、次のコードが実行できるはずです。
セッションのまとめと今後の展望
時間になったと思います。最後に1つだけ簡単な質問を受けて、何もなければ続けることができます。これは本当に希望的です。30%で0.045です。
モデルが続けて行き、まだたくさん進むことがあり、2.34で既に45%です。最初に評価したときの60から20%しか離れていません。
これらのノブを調整し、より多くの訓練方法を追加することで、確実にプロセスが改善されることがわかります。先ほど言ったように、これが実行を終了した後、最終精度のスクリーンショットを撮り、今日行ったハイパーパラメータチューニングの変更を追加して、皆さんも見ることができるようにします。
今日は参加していただき、ありがとうございました。2分間残りますので、最後の質問があれば受け付けます。
リップシンク技術に関する質問
完全に異なる質問があります。ある人の音声といくつかの動画が与えられた場合、リップシンクビデオを生成したいのです。うまく動作するモデルを知っていますか?いくつか試しましたが、あまりうまくいきませんでした。
リップシンクビデオについては、ビジョン関連の作業をあまり行っていません。単純な吹き替えなのでしょうか?素晴らしい講義をする人がいて、その人の音声がたくさんありますが、すべての動画がないとします。音声がある場合、既存の動画の一部を使用してリップシンクを模倣し、すべての音声に対して動画を作成したいということですね。
まだビデオルートに入っていません。ビデオはまだやっていません。確実に興味深いプロジェクトになるでしょう。そのようなことを行うには、マルチモーダルモデルを使用する必要があります。
CGIディープフェイク、これらのディープフェイク分野で使用しているもの程度しか知りません。多くの人が現在多くの吹き替えを行っています。
YouTubeで気づいたのは、ある言語を話している1人がいて、その人が言っていることを異なる言語で上書きするAIがあることです。インドにいればインド語を話し、スペインにいればスペイン語を話し、彼らの声に上書きするAI音声があります。
音声の面では最も見てきたことですが、ビデオに関しては何もやっていないので、まだそれほど知りません。問題ありません。ありがとう。もし何か見つけたり、WhatsAppグループで共有していただければ、役に立ちます。
そうします。そこから見つけられるかどうか見てみます。
素晴らしい。皆さん、ありがとうございました。良い夜をお過ごしください。ありがとう。さようなら。ありがとう。あなたもです。さようなら。ありがとう、ルイス。


コメント