Slide 1

Slide 1 text

AIの性能の上げ方 まっくす(@minux302)

Slide 2

Slide 2 text

自己紹介 2 機械学習、バックエンドエンジニア 最近の仕事では生成 AIを活用したプロジェクトでモデル開発& バックエンド開発を実運用まで 元々は物体検出等CV系のAIを実運用目指して開発してたり AIで創作補助をすることに興味があります 趣味でイラストや漫画描いたりサービス作ったりしています まっくす(@minux302)

Slide 3

Slide 3 text

自分が作ったりしたもの(個人) 3 SketchEdge (https://sketchedge.net/) 写真をアップロードすると漫画等で使いやすい線画に変換する Webアプリ

Slide 4

Slide 4 text

4

Slide 5

Slide 5 text

AIモデルは最初から 一発で性能が出るわけではない! AIでポンと投げても性能不足であることが多い 試行錯誤を経て性能を改善する → どうやって? 5 なんやかんや SketchEdge でのモデル性能改善

Slide 6

Slide 6 text

今日話すこと ◉ 自分がプロジェクトにアサインされて AI モデル開発をする際に考えている ことを共有します ◉ すごく当たり前のことをふわっと喋ります!! ◉ 画像生成と言うより(画像系)AI全般の話かも。最後に時間があれば画像 生成の調整についても話します。 6

Slide 7

Slide 7 text

AIモデルの開発で 考えていること ◉ 最初の一歩が肝心 ◉ AIはデータが9割 ◉ ドメイン知識 is All You Need ◉ 一歩一歩、記録をとりながら進めよう ◉ 手数をいかに増やすか 7

Slide 8

Slide 8 text

最初の一歩が肝心! 8 最初の一歩 = どの手法・リポジトリをベースに開発するか プロジェクトの周りの人間にとっては小さな一歩だが開発者にとっては今後のモデルの性能を決める偉大な一歩だ       まっくす 大事なこと:実際に動かして性能検証する! 最近は性能の高いベース手法がゴロゴロ転がっているのでこれらを使わないてはありません。 ちゃんと手法を選ぶだけで、選ばなかった場合よりも精度が 10~20%違うケースもあります。 まずはしっかりとサーベイして、手法選定をしましょう。 論文やREADMEでいくらSOTAを主張していても動かして見ると全然性能がでないことがありま す。実際に動かすまで機械学習のコードは信じてはいけません、何一つ。

Slide 9

Slide 9 text

AIはデータが9割! 9 性能改善に大きく効くのはやはりデータの質・前処理です。 1万枚の乱雑なデータよりきれいな綺麗な 3000枚のデータ データの中身と前処理を磨きあげることが一番楽な近道です。 データの質改善の上で大事にしていること AIに解かせる問題を簡単にすることを意識する

Slide 10

Slide 10 text

例. 顔生成の性能改善 10 ◉ 目鼻口の位置のAlign ◉ 解像度の低い画像の除外(ノイズ除去) ◉ 学習画像の高解像度化 ◉ 背景領域の除外 ◉ 画像のバリエーション(老若男女)の数の調整 ◉ etc… 目鼻口の位置の Align の例 https://pyimagesearch.com/2017/05/22/face-alignment-with-opencv-and-python/ より画像引用 AIに解かせる問題を簡単にすることを意識しながら調整 生成AIの場合は出力を高品質なものにする

Slide 11

Slide 11 text

ドメイン知識 is All You Need 11 ドメイン知識の例:自動運転タスク 車にはナンバープレートがついている、区画線は 5m間隔で引かれている、 etc… ドメイン知識 = 解くべきタスクにおける専門知識 ◉ AIモデルの性能改善 ◉ AIで作るものの方向性の設定 ドメイン知識を得るためにお客さんへのヒアリングをしっかりしよう!! ドメイン知識は以下の二つの観点で有用

Slide 12

Slide 12 text

例. 基盤の点検の自動化 12 特にAIプロジェクトにおいて、AIで何か作る時は使ってもらう現場の人を引っ張り出さないと ドメイン知識の不足によりプロジェクトが失敗する可能性が大きくなる印象があります。 ヒアリングとても重要...!! ● ヒアリングをすると、実はある特定の部品について点検するだけでよかっ た!? ● 撮影時の照明環境はどうなってる? ● 部品の色情報は使える? AIモデルの性能改善、作るものの方向性の設定で ドメイン知識(ヒアリング)が大事!!

Slide 13

Slide 13 text

一歩一歩 記録をとりながら進めよう 13 実験毎に仮説検証をすることが大事。そしてその際にちゃんと 記録を取ろう! 一歩一歩改善していけば自ずと目標に辿り着けるはず(と自分に言い聞かせています) ◉ 実験をする際は仮説検証を意識しよう ◉ 実験ログ・記録を取ろう ◉ 実験設定はファイルで残しておこう( json, yaml 等)

Slide 14

Slide 14 text

一歩一歩 記録をとりながら進めよう 14 実験ログのおすすめ : WandB web上で実験管理ができる。途中結果も確認できる優れもの。 https://docs.wandb.ai/ja/quickstart

Slide 15

Slide 15 text

一歩一歩 記録をとりながら進めよう 15 実験ノートのおすすめ : notion テーブル形式にしたり、画像の貼り付け、 Markdown 形式でかける

Slide 16

Slide 16 text

手数をいかに増やすか 16 ◉ 寝てる間に学習を回そう ◉ コスパ良く性能が上がりそうな検証から進めよう ◉ 自分が仮説を思いつきやすいのはどういうタイミングが把握しよう (自分の場合は風呂入っている時、とか) 試行回数の増やし方 が参考になります 一歩一歩進むことができれば、あとはいかに手数を増やせるようになるかです。

Slide 17

Slide 17 text

プロジェクトにおける 性能向上の進み方 17 自分のケース(大体2~3ヶ月くらいのプロジェクト) ◉ ドメイン知識に基づくデータの質改善、前処理の工夫で非自明な性能改善が2~3回あるとうまく行くケース が多い ◉ 2~3ヶ月のプロジェクトで50回くらい実験(仮説)を回すとおおよそ到達が見えてくる ◉ あとはちまちまハイパラチューニングを繰り返す 着実に一歩一歩進めるようにしてあとは手数を増やせば精度があがるという考え方 ディープでポンとよく言われる分野だけれど...

Slide 18

Slide 18 text

最近の画像生成AIで 感じたこと 18 ◉ 学習時パラメータはそこまで凝らなくていい?やっても lr と step 数くらい? ◉ Loss はカスと化した。信じられるのは己が審美眼のみ。ただしテストでは推論設定、シード値を固定して定 性的でもいいのでちゃんと一歩ずつ進んでいるかは自分なりでもいいので検証しよう。 ◉ データ(画像だけでなくプロンプトも)と前処理の重要性がさらに増した。ここに対して仮説検証を立ててい くのが一番効率がいいかもしれない。 ◉ 推論時のパラメータ調整がものすごく大事になった。推論時パラメータをいじるだけで解決することもあ る。 ◉ 技術者だけでなく、趣味で色々試されている方の情報に目を通そう。実案件に活用できるテクニックがゴ ロゴロ転がっています。

Slide 19

Slide 19 text

まとめ ◉ 最初の一歩が肝心 ◉ AIはデータが9割 ◉ ドメイン知識 is All You Need ◉ 一歩一歩、記録をとりながら進めよう ◉ 手数をいかに増やすか ◉ 最近の画像生成AIでの精度改善について 19

Slide 20

Slide 20 text

最後に宣伝 20 趣味でAIをネタにした漫画とか書いてるから是非読んでね AIを擬人化した漫画(作:まっくす)