Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Fine-tuning Hands-on

Avatar for chiaoi chiaoi
December 23, 2025
1

Fine-tuning Hands-on

Avatar for chiaoi

chiaoi

December 23, 2025
Tweet

Transcript

  1. Agenda 1. AI ? DeepLearning ? 2. Fine-tuning a. Code

    Editor を起動する b. データを準備する c. Fine-tuningの実装をする 3. Inference a. 作ったモデルで推論をする b. データセットの選び方 c. ハイパーパラメータの選び方 4. Summary
  2. DeepLearning ? ニューラルネットワーク を使った学習 1 層 2 層 3 層

    4 層 … N 層 Output e.g. ) LLM - Input : テキスト - N : 数十 ~ 数百 - Output : 次の単語 Input e.g. ) 作るもの - Input : 画像 - N : 18 - Output : true/false
  3. 層? A B C Y X 2 3 10 1

    4 6 7 5 数字 : 重み in features out features
  4. 層? 4 3 1 4×3 + 3×1 + 1×6 +

    5 4×2 + 3×10 + 1×4 + 7 2 3 10 1 4 6 7 5 数字 : 重み in features out features
  5. 層? A B C Y X 2 3 10 1

    4 6 7 5 Training (学習) 重みを微調整していくこと Inference (推論) 重みに従って計算を進めること 大変さ >
  6. ResNet18 (今回使うモデル) 畳 み 込 み 層 L ay e

    r 1 L a y e r 2 L a y e r 3 L a y e r 4 総 結 合 層 Output 224×224 (画像サイズ) ×3   (RGB) Input 1000クラス e.g. ) 犬、猫 畳み込み層 4層ずつ
  7. What is Fine-tuning ? Fine-tuning : 別のタスクで学習した知識を応用して新しくタスクを学習すること ▶ つまり、事前に学習済みの重みから学習を開始する メリット

    - すでに学習された知識を最初から使えるので時間短縮になる。 - 応用できる範囲が広い。                             (今回は、 1000 クラスに分類するモデルから                   自分と他人を識別す るモデルにする。)
  8. 作成するモデル 畳 み 込 み 層 L ay e r

    1 L a y e r 2 L a y e r 3 L a y e r 4 総 結 合 層 Output 224×224 (画像サイズ) ×3   (RGB) Input 2クラス - 自分 or 他人 4層ずつ Fine-tuning で 変更する箇所
  9. Caution このハンズオンは実装をたくさんします。その中でエラーもたくさん出ます。 自力で解決できる場合は、Amazon Q と相談しつつ解決をしてください。難しい場合 は、運営の方に気軽に質問をしてください。時間がかなり限界なので、積極的に質問す ることをおすすめします。 特に、トレーニングに3 回以上失敗すると終わらない可能性が高くなります。2 回失敗し

    た時点で、サンプルコードをコピー & ペーストすることをおすすめします。 エラーが出ることは普通のことです。ハンズオン作成中にも、何度もエラーを出しまし た。初心者のうちは簡単なエラーのデバッグも難しいと思います。ぜひお気軽に運営メ ンバーに聞いてください。
  10. What is Studio, Code Editor Space ? Studio - ML

    エンジニアが作業する環境。ユーザープロファイルを個別に作成することで、簡 単に ML エンジニアに最低限の権限を与えて作業してもらうことができる。 Code Editor Space - ML エンジニアの 1 プロジェクト用の作業スペース。1 スペースに 1 インスタンスが 与えられて、そこで実装をしたり Python コードを実行したりする。
  11. What is Notebook ? Code ブロック単位で順番に実行できる。 「Shift + Enter」で下に Code

    ブロックを作成しながら Codeブロックを実行できる。 「+ Code」を押すと選択している Code ブロックの下に Code ブロックを作成できる。 注)ここからは、ページが切り替わるたびにそのページの Code ブロックを実行して、新しい Code ブロックに次の ページのコードを書いてください。
  12. SageMaker の色々を取得する Pythonのコツ - <ライブラリ名>. でライブラリの中で定義されたものにアクセスできます。 - <大文字始まりのクラス名>(<引数たち>)でクラスインスタンスを作成できます。 ( e.g.

    Session() ) - <関数名>(<引数たち>)で関数を実行できます。( e.g. get_execution_role() ) - print(<表示したいもの>) で出力できます。Notebookの場合は下に出てきます。 main.ipynb .Session() の「S」は大文字
  13. データセットを作る data/test : テスト用の画像データ - me, notmeでそれぞれ4枚ずつ選びましょう data/train : トレーニング用の画像データ

    - 残りすべて どのような画像をトレーニング画像に選ぶかは作成するモデルの 精度を大きく変えます 。これまでの知識とヒントを元に、どのように 選べばいいかを考えてみましょう。 アップロードの方法 PC の Finder(エクスプローラ)からドラッグ & ドロップ 10 分間
  14. モデルを定義して形状を変更する train.py Pythonのコツ - for <要素> in <集合>: で、集合 の要素に対して繰り返し処理が

    できます。 入力画像の前処理が必要な理由? - 用意していただいた画像のサイズ はバラバラです。一方で、モデル は 224×224 の画像しか受け付け ません。なので、モデルに入力す る前に画像のサイズを合わせる必 要があります。
  15. GPUの設定をする train.py cuda は Pytorch で Nvidia GPU を指定する際の文字列です。 CPU

    と GPU は別のメモリ空間を持っています。なので、明示的に転送 してあげる必要があります。転送するべきものは、モデルと画像、ラベ ルです。
  16. GPUが好きなときだけ使える! 今日使うGPU【ml.p3.2xlarge】 スペック - GPU: Nvidia Tesla v100 (買うと 100

    万円以上) 料金 - $ 3.825 / 時間 - 今回の費用 $ 3.825 × 1/30 ≒ $ 0.15 ≒ 20円
  17. ステータスの確認 Pending - GPU の確保をしている最中です。 GPU が世界で足りなくなるとここで 失敗します。 Failed -

    トレーニングが途中で失敗したこと を表します。自力で解決が難しい場 合は、運営の人に助けを求めましょ う。
  18. 重みを S3 から Code Editor 上にダウンロードする main.ipynb Notebook 上で、「!」から始めることで CLI

    を実行することができます。 tar.gz 形式のファイルは、zip のように複数のファイルをまとめて圧縮し たファイルです。tar コマンドを使用して解凍できます。
  19. ハイパーパラメータの選び方 1. 損失関数を見てみましょう。 a. 学習不足が起きていませんか? b. 過学習が起きていませんか? 2. どのハイパーパラメータを修正すればいいと思いますか? 3.

    時間が余っている方は、ハイパーパラメータを修正して一回学習してみましょう。 4. 同じハイパーパラメータで同じ画像の枚数でも、うまくいく人といかない人がいま す。どうしてだと思いますか?
  20. まとめ - DeepLearning のことに詳しくなれましたか? - Fine-tuningによって、元のモデルでは実現できなかった特定タスクができるように なることがわかりましたか? - Pythonの実装を体験できましたか? -

    デバッグは辛かったですか?w 今回は、画像認識タスクでしたが、同じDeepLearning技術を使用しているLLMも基礎 的な構造は同じです。「何かしたいけど物足りないな」って時にFine-tuning のことを思 い出してくれると嬉しいです。