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

AI研修【MIXI 25新卒技術研修】

AI研修【MIXI 25新卒技術研修】

本スライドは、MIXIの2025年度新卒向け技術研修で使用された資料です。
https://zenn.dev/mixi/articles/95e0d0477c1ed7
 
MIXI 2025新卒技術研修
『AI研修』
 
▼リポジトリ
https://github.com/mixigroup/2025BeginnerTrainingAI
▼動画
https://youtu.be/DzWxRv4cDf0
 
───────────────────────────────
※皆様へのお願い※ 資料・動画・リポジトリのご利用について
───────────────────────────────
公開している資料や動画は、是非、勉強会や社内の研修などにご自由にお使いいただければと思いますが、以下のような場でのご利用はご遠慮ください。
- 受講者から参加費や授業料など金銭を集めるような場での利用
(会場費や飲食費など勉強会の運営に必要な実費を集める場合は問題ありません)
- 出典を削除または改変しての利用

Avatar for MIXI ENGINEERS

MIXI ENGINEERS PRO

April 28, 2025
Tweet

Video

More Decks by MIXI ENGINEERS

Other Decks in Technology

Transcript

  1. ©MIXI 2 講義の目的 本講義ではArtificial Intelligence (AI) と呼ばれる 技術の中で、機械学習(Machine Learning; ML)に

    フォーカスして、以下のことを学びます • 何ができるか • 何が必要か • どのように動いているのか • サービスとどのように繋げるか
  2. ©MIXI 4 講師の自己紹介 宮脇 祐太 / みやわき ゆうた/ 職種:MLエンジニア 開発本部たんぽぽ室AIモデリンググループ

    前職 - 競馬・ボートレースの予想AIの開発 - 新聞の朝刊1面に予想掲載 MIXI - 2020年1月 ミクシィ(現 MIXI)入社 - 社内・グループ内のサービスに横断的にAI導入 - TIPSTAR・netkeiba・minimo・mixi2・MIXI M 釣りが趣味
  3. ©MIXI 5 講師の自己紹介 木内 貴浩 / きのうち たかひろ / kittchy

    職種:MLエンジニア みてね事業本部 みてねプロダクト開発部 Data Engineeringグループ 学生時代 - 大学院で音声認識の研究でML技術に触れる - インターンシップなどで音声処理のML技術の研究開発 - ドラムを小学生からやっていて、Jazz・Fank・Punk Rockが好き MIXI - 2024年4月 MIXI 新卒入社 - MLOps に関する業務が経験がしたくて、「家族アルバム みてね」の事業部にジョイン
  4. ©MIXI 6 講義の概要 Section 1 機械学習とは何か Section 2 Deep Learning

    ———— 昼食タイム ——— Section 3 勾配ブースティング Section 4 その他のML技術 Section 5 ML技術のデプロイ Section 6 サービスについて考える
  5. ©MIXI 7 HANDS ON: Jupyter Notebookを動かしてみよう 00 intro jupyter notebook

    Jupyter Notebookの使い方を知ろう https://github.com/mixigroup/2025BeginnerTrainingAI
  6. ©MIXI 9 機械学習とは 過去のデータから知見を得て、それを次の決定に利用すること • 過去のデータ:過去の状態・情報 ◦ 数値, 画像, 音声,

    テキスト, etc. • 知見:ブラックボックスな関数 f(x) ◦ 過去のデータには統計的なルールがあり、 それを表すf(x)を学習によりモデル化する • 決定:現在の状態 (x) から未来 (y) を予測する ◦ 学習した知見を元に、未来の結果を予測する
  7. ©MIXI 10 プログラミングとの違いは? プログラミング 機械学習 ルールを自分で決めて表現する 過去のデータの中からルールを得る 盤面のスコアリングをルールベース で決定し、次のアクションの結果を 評価して駒を動かす

    大量の棋譜からパターンを見つけて、 次の手を決定する 盤面のスコアリングから、 次の行動で一番点数の高い 角を5一にしよう 過去の棋譜と 差し手のパターンから 角を5一にしよう
  8. ©MIXI 11 統計との違いは? 統計 機械学習 データからルールを得て、可視化して 分析・説明する データからルールを得て、目的の タスクの予測などに活かす ある意思決定の理由を説明するの

    が目的 過去の統計情報をもとに、未知の 情報を予測し、精度を上げていくこ とが目的 明日の売上は ???円になりそう! データから知見を得るという部分は同じだし、基礎理論も同じ →良いデータサイエンティストは良いMLエンジニア
  9. ©MIXI 12 どんな問題を解決できるか? 様々な分野で様々な問題を解決することができる 画像・動画処理 自然言語処理 音声処理 時系列 その他 テーブルデータ

    - 商品のレコメンド - 競馬/競輪のオッズ予測 - 検索機能の最適化 - 音声合成 - 声質変換 - 音声認識 - 翻訳 - 書類のチェック - コードレビューの補助 - カスタマー対応 - 書類の文字認識 - モーションキャプチャ - アニメーション生成 - 需要・コスト予測 - 不審な決済ログの洗い出し - ゲームデッキのレコメンド - ゲームAI - 自動運転
  10. ©MIXI 14 機械学習の分類 機械学習 - ラベル付されたデータ - 直接のフィードバック - 成果予測と未来予測

    - ラベルと目的変数なし - フィードバックなし - データから隠れた構造を見つける - 意思決定プロセス - 報酬系 - 一連の行動を学習 教師あり学習 教師なし学習 強化学習 - 出力が計算値 - 出力が連続値
  11. ©MIXI 15 機械学習のモデル構築方法 機械学習 - ラベル付されたデータ - 直接のフィードバック - 成果予測と未来予測

    - ラベルと目的変数なし - フィードバックなし - データから隠れた構造を見つける - 意思決定プロセス - 報酬系 - 一連の行動を学習 教師あり学習 教師なし学習 強化学習 - 出力が計算値 - 出力が連続値 回帰 分類 Deep Learning 勾配ブース ティング 決定木 Q学習 SVM Clustering
  12. ©MIXI 16 機械学習の分類 機械学習 - ラベル付されたデータ - 直接のフィードバック - 成果予測と未来予測

    - ラベルと目的変数なし - フィードバックなし - データから隠れた構造を見つける - 意思決定プロセス - 報酬系 - 一連の行動を学習 教師あり学習 教師なし学習 強化学習 - 出力が計算値 - 出力が連続値 回帰 分類
  13. ©MIXI 18 分類(Classification)と回帰(Regression) クラスラベルを予測するための分類 • 出力が離散値 True/False... 犬、猫、人... • データに与えられたクラス(カテゴリ)

    を予測する際に使用 SVMによる2 値分類 0.3 0.9 0.1 赤色 スピード 攻撃力 予測 多クラス分類 例えば... モンストキャラの画像や特徴から そのキャラがなにかを予測
  14. ©MIXI 22 教師あり学習の流れ (分類問題) 用意したデータ 入力 出力 教師データ(ラベル) 入力(特徴量) 教

    師 デ タ ー モデル Parameters Hyper Parameters 損失(loss)から Parametersを更新
  15. ©MIXI 24 教師あり学習の流れ (分類問題) 用意したデータ 入力 出力 教師データ(ラベル) 入力(特徴量) 教

    師 デ タ ー モデル Parameters Hyper Parameters 損失関数 Loss 最適化関数 (Optimizer) Parameters 更新
  16. ©MIXI 25 損失関数(Loss Function) 多クラス分類問題の代表的な損失関数 ➢ Categorical Cross Entropy Label

    Name オラゴン ブルーリドラ レッドリドラ グリーンリドラ Output 3.57 0.27 1.80 - 0.83 Softmax 0.8200 0.0302 0.1397 0.0101 Label 1 0 0 0 Cross Entropy 0.086 0 0 0
  17. ©MIXI 27 教師あり学習の流れ 用意したデータ 入力 出力 教師データ(ラベル) 教 師 デ

    タ ー モデル Parameters Hyper Parameters 損失関数 Loss 最適化関数 (Optimizer) Parameters 更新
  18. ©MIXI 28 機械学習の分類 機械学習 - ラベル付されたデータ - 直接のフィードバック - 成果予測と未来予測

    - ラベルと目的変数なし - フィードバックなし - データから隠れた構造を見つける - 意思決定プロセス - 報酬系 - 一連の行動を学習 教師あり学習 教師なし学習 強化学習 - 出力が計算値 - 出力が連続値 回帰 分類
  19. ©MIXI 31 機械学習の分類 機械学習 - ラベル付されたデータ - 直接のフィードバック - 成果予測と未来予測

    - ラベルと目的変数なし - フィードバックなし - データから隠れた構造を見つける - 意思決定プロセス - 報酬系 - 一連の行動を学習 教師あり学習 教師なし学習 強化学習 - 出力が計算値 - 出力が連続値 回帰 分類
  20. ©MIXI 34 Deep Learningとの違いは? 機械学習 - ラベル付されたデータ - 直接のフィードバック -

    成果予測と未来予測 - ラベルと目的変数なし - フィードバックなし - データから隠れた構造を見つける - 意思決定プロセス - 報酬系 - 一連の行動を学習 教師あり学習 教師なし学習 強化学習 - 出力が計算値 - 出力が連続値 回帰 分類 Deep Learning 勾配ブース ティング 決定木 Q学習 SVM Clustering
  21. ©MIXI 35 Deep Learningと教師あり・教師なし・強化学習の関係性 Deep Learning は「機械学習の一種」 • Deep Learningは、先ほど学んだ3つの学習方法を実現するための手法

    • つまり、導入で説明した f(x) を表す方法であり、モデルの仕組み Deep Neural Network (DNN) • Deep Learningでは、主にDeep Neural Network という枠組みを用いており、 より複雑な問題を解くことができる • → 詳しい説明はSection 2であります。 ポイント • 教師あり/なし/強化学習 →「学習の方法(目的やデータの使い方)の分類」 • Deep Learning →「学習を実行するためのモデル(道具)の種類」
  22. ©MIXI 36 [余談] LLMどうやって学習してるの? LLM(大規模言語モデル)とは? • Deep Learningの一種で、大量のテキストデータを用いて学習されたモデル 学習の仕組み •

    分類タスク :語彙の中から次の単語を選択 • 入力:過去に現れた単語系列 • 出力:未来に現れる可能性の高い単語を予測 → Section 3でも詳しく触れます ポイント • 「時系列データの多クラス分類」を繰り返している こんにち...? LLM あいうえお...はひ... 尤度
  23. ©MIXI 39 HANDS ON: 学習してみよう 01 multiclass learning: Neural Network

    Neural Networkによる学習を経験してみましょう https://github.com/mixigroup/2025BeginnerTrainingAI ※ 勾配ブースティングの項目は後ほどやります
  24. ©MIXI 41 過学習: overfitting 過学習が起こる条件 • データが少なすぎる • データに対してモデルが複雑すぎる 過学習を対策するためには...

    • データを訓練データと検証データ に分けることで、overfittingに 気づける状態にしておく データ 訓練データ 検証データ テストデータ
  25. ©MIXI 42 訓練データ/検証データ/テストデータ • 訓練データで学習させていくと、やがてモデルは Lossを下げるために過学習していく ➢ 次第に未知のデータへの予測精度が悪化 • 検証データを切り分け、そのLossを検証することで、

    モデルが訓練データに対して過学習することを防ぐ • 検証データを使って訓練データの学習を制御 ➢ 検証データの情報が訓練データにリークするので 最終的な精度の検証はテストデータで行う 検証データ 学習データ Epochs Loss
  26. ©MIXI 45 過学習に対する手法 • Early Stopping • Data Augmentation •

    正則化 • Dropout • バッチ正規化 • …
  27. ©MIXI 46 過学習に対する手法 • Early Stopping • Data Augmentation •

    正則化 • Dropout • バッチ正規化 • …
  28. ©MIXI 47 過学習を防ぐ手法 Early Stopping • 監視する精度(Loss, Accuracy等)が一定期間上がらない場合、 学習を停止させる •

    主に検証データのLossを監視指標とすることが多い 記法例 (Keras) 検証データでの Lossが5回連続 改善しない場合 学習終了 検証データ 学習データ Epochs Loss
  29. ©MIXI 50 正則化項: L1/L2 Normalization L1 Normalization • モデルのweightを菱形のライン上に収める •

    不必要なweightは0を取る事が多い(≒次元圧縮) L2 Normalization • モデルのweightを円のライン上に収める • 不必要なweightは0に近づく 損失が最小となる点
  30. ©MIXI 51 過学習を防ぐ手法 Dropout • ニューラルネットを用いた学習時に、一部のニューロンからの出力を0にする ➢ 特定のニューロンに対しての依存を抑制 • アンサンブル学習のような効果が見込める

    ➢ エポック毎にDropoutするニューロンが変わることで 擬似的に複数モデルで協調した出力がされる形となり、過学習を抑制 … 1 epoch 2 epoch 3 epoch モデル Dropout 適用
  31. ©MIXI 52 HANDS ON: 過学習をさせてみよう 01 multiclass learning: Neural Network

    Neural Networkによる学習で、過学習を起こしてみよう https://github.com/mixigroup/2025BeginnerTrainingAI ※ 勾配ブースティングの項目は後ほどやります 過学習を起こす例 - モデルのパラメータ数を大きくする - Learning Rate を高くする - Dropoutを消す - などなど...
  32. ©MIXI 55 ニューラルネットワーク(NN) : Activation関数(非線形変換) Hidden2 Hidden1 Activation Input Output

    • NNでは層の途中にActivation関数 (非線形変換)を挟む • この関数により、線形分離が できない問題も解けるように ➢ より複雑な表現が可能 • NNでは、Activationを図に 表記しないことが多いので注意
  33. ©MIXI 57 Hyper Parameters ハイパーパラメータ • 学習前に予め決めておく必要がある値 • 学習によって変化しない •

    最適値はタスクによって異なる 例 • learning rate, バッチサイズ • パラメーターの数 • 使用するアルゴリズムの係数 • …
  34. ©MIXI 59 DNN(Deep Neural Network) • NNの層をDeepにしたものがDNN • 深層学習におけるベーシックなネットワーク 記法例

    (Keras) • 値の合計が1になるように 調整する関数 • 主に多クラス分類の出力に おける活性化関数として 用いられる Softmax Dence • 全結合型ニューラルネットワーク
  35. ©MIXI 60 CNN (Convolutional Neural Network) • 画像など近傍値間で関連が高いデータに使うネットワーク • 画像処理で行われるフィルタ処理を学習するというのが思想

    ex) エンボスフィルタ, ラプラシアンフィルタ, etc… • 複雑な処理を少ない訓練パラメータで行える • 畳み込み層とプーリング層が存在する エンボスフィルタのカーネル値 エンボス加工の例
  36. ©MIXI 61 CNN: 画像と行列 • 白黒画像は、2次元行列で表現できる ➢ SVGAサイズの場合、[800, 600]の行列に0〜255の数値が入る •

    カラー画像の場合、カラーモードの次元を含めた3次元行列で表現できる ➢ RGBの場合、 [800, 600, 3]の行列に0〜255の数値が入る 110 136 115 115 104 134 150 186 197 123 112 199 255 225 123 139 216 209 179 114 95 126 115 94 104 134 150 83 52 123 112 83 57 21 89 47 42 41 21 64 96 126 115 93 104 134 150 83 59 123 112 81 64 44 92 R G B [4, 5, 3]
  37. ©MIXI 62 CNN: フィルタを用いた畳み込み • CNNでは、画像の行列に対してフィルタをかけることで畳み込みを行う • フィルタの大きさは[縦, 横, カラーモード]で、縦と横はハイパーパラメータ

    ➢ カラーモードはInputの画像で決めるため、実装では指定しなくて良い ➢ フィルタをスライドさせ、畳み込んでいく(スライド幅もハイパーパラメータ) • フィルタの値がweightであり、学習で最適されるパラメータとなる • フィルタの数はハイパーパラメータとなる 画像 [32, 32, 3] フィルタ [5, 5, 3] スライド幅 1 フィルタ数 6 畳み込み後 フィルタ数分畳み込む 62
  38. ©MIXI 63 CNN: フィルタを用いた畳み込み 63 0 1 0 1 0

    1 0 1 0 1 1 0 0 1 1 1 0 0 0 1 R G B フィルタ 1 1 0 0 0 1 0 1 1 1 0 0 0 1 1 0 1 0 0 0 0 1 1 0 1 0 0 0 1 0 0 1 0 0 1 0 1 1 1 0 0 1 0 1 0 1 画像 [4, 5, 3] フィルタ [2, 3, 3] スライド幅 1 フィルタ数 1 スライド幅ずつずらしていく 5 + bias 1 = 6 [3, 3, 1] Output 1 0 0 1 1 0 0 1 0 1 0 0 [2, 3, 3] 画像(RGB) [4, 5, 3]
  39. ©MIXI 64 CNN: プーリング • 畳み込み後に、行列を圧縮するために用いられる手法 • プーリング幅として[縦, 横, フィルタ数]の行列を指定

    ➢ フィルタ数は畳み込み時に指定するので、実装では指定しなくて良い • 指定した行列の範囲内における最大値や平均値を出力することで圧縮を行う 0 1 0 1 0 1 0 1 0 0 0 0 0 1 1 0 0 0 0 1 R G B 1 1 0 0 0 1 0 0 1 0 0 0 0 1 1 0 1 0 0 0 0 1 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 1 0 0 1 0 1 0 1 4 + bias 1 = 6 3 5 3 4 4 3 2 5 [3, 3, 1] Output 1 0 0 1 1 0 0 1 0 1 0 0 フィルタ プーリング幅 [2, 2, 1] スライド幅 1 Max Pooling Average Pooling 6 5 4 5 4 4 3 3.75 [2, 2, 1]
  40. ©MIXI 66 CNN: Kerasでの記法例 Padding • validとsameがある • validにすると畳み込み後のサイズが フィルタによって小さくなる

    • sameにすると元の行列の周辺に0を 埋めるPadding処理を行う ➢ スライド幅1の場合、畳み込み 後もサイズが変わらない Flatten • 行列を1次元に平坦化する • NNでは多次元の処理が扱えないので、 CNN -> NN にする前でこの平坦化する 処理を行っている
  41. ©MIXI 67 Transfer Learning • 学習済みモデルの一部を利用し、追加で解きたいタスクの学習をさせること • 学習の精度向上や、学習の高速化が期待できる • 出力層以外は学習済みモデルを使用し、出力層やその前の全結合層を新たに

    定義して学習させることで、自分のタスクに必要な部分のみを学習させる • CNNの層までは学習済みモデル のパラメーターで固定 • Flatten後のFC層は学習可能な パラメーターとして新しく定義 67 https://paperswithcode.com/methods/category/convolutional-neural-networks 例
  42. ©MIXI 68 HANDS ON: チャレンジ! https://github.com/mixigroup/2025BeginnerTrainingAI • 02_image_classification • 03_transfer_learning

    • ハンズオン02と03をVertex AIのJupyter Notebook環境下で トライしてみてください(詳しくはアナウンスします)
  43. ©MIXI 70 モデル選定とデータ形式 • 機械学習における深層学習(Deep Learning)系のモデルは、非構造化データに 対してより優れた精度を発揮することが多い ➢ 非構造化データの例: 音楽,

    画像, 動画, テキスト, etc… • 一方、構造化データに対しては、勾配ブースティング決定木(GBDT)系のモデル のほうがより優れた精度を発揮することが多い ➢ 構造化データの例: 表形式データ, RDB内のテーブルデータ, csvデータ, etc… • メリット ◦ 解釈性が高い ➢ 2分木ごとに条件文があるため ◦ 比較的軽くGPUも不要 ◦ DNNと比較して簡単に精度がでやすい • デメリット ◦ 非構造化データには(基本的に)非対応 ◦ マルチモーダルな入力のモデルを作れない • 構造化データ+画像データ+音声+etc...
  44. ©MIXI 71 GBDTモデルの基礎: 決定木 • 二分木の構造を用いて、分類・回帰を行う手法 • 複数の条件を二分していき、最終的な出力を決定する ➢ 決定木の条件は学習によって最適化されていく

    71 True False True True False False Attacker Defender Defender Attacker シュート精度 >= 中 ボール奪取力 >= 高 スピード >= 中 例: サッカーの選手の能力から適正ポジション(Attacker or Defender)を予測 シュート精度 ヘディング精度 ボール奪取力 ボディバランス スピード スタミナ 高 高 低 中 高 中 選手A 能力値 木を深くしすぎると、過学習に陥りやすくなる...
  45. ©MIXI 72 ランダムフォレスト • 単一の木を深くするのではなく、決定木自体を複数作成し、 それぞれの出力値の多数決や平均を使うことで、最終的な出力を得る手法 シュート精度 ヘディング精度 ボール奪取力 ボディバランス

    スピード スタミナ 高 高 低 中 中 高 選手A 能力値 True False True False Attacker Defender Attacker スタミナ >= 高 スピード >= 中 True False True False DefenderAttacker Attacker ボディバラ ンス >= 高 ボール奪取力 >= 中 True False True False Attacker Defender Attacker ヘディング 精度 >= 高 シュート精度 >= 高 Attacker 3 Defender 0 Attacker
  46. ©MIXI 73 ランダムフォレスト • 単一の木を深くするのではなく、決定木自体を複数作成し、 それぞれの出力値の多数決や平均を使うことで、最終的な出力を得る手法 73 シュート精度 ヘディング精度 ボール奪取力

    ボディバランス スピード スタミナ 低 中 高 高 中 中 選手B 能力値 True False True False Attacker Defender Attacker スタミナ >= 高 スピード >= 中 True False True False Attacker Attacker ボディバラ ンス >= 高 ボール奪取力 >= 中 True False True False Attacker Defender Attacker ヘディング 精度 >= 高 シュート精度 >= 高 Attacker 2 Defender 1 Attacker Defender 木の出力値を、どの条件を通るかに関係なく平等に評価してしまう... 73
  47. ©MIXI 74 勾配ブースティング決定木(GBDT) Defender - Attackerか否かの 2値分類とする ➢ 0.5 >=

    Attacker ➢ 0.5 < Defender - • 学習時に各決定木の教師データとの誤差を使って、出力値毎のスコアを算出 ➢ スコアから誤差を算出して、その誤差を次の決定木へと伝搬 • 計算式を用いてスコアを合計し、推論を行う 74 シュート精度 ヘディング精度 ボール奪取力 ボディバランス スピード スタミナ 低 中 高 高 中 中 選手B 能力値 True False True False Attacker DefenderAttacker スタミナ >= 高 スピード >= 中 True False True False Attacker Attacker ボディバラ ンス >= 高 ボール奪取力 >= 中 True False True False Attacker Defender Attacker ヘディング 精度 >= 高 シュート精度 >= 高 Defender 3.5 -2 1 -4 2.5 0.5 3 -1.5 0.5 Sigmoid
  48. ©MIXI 75 GBDT系手法のライブラリ: LightGBMでの記法 主要な学習パラメータ • objective 目的変数(ラベル) ◦ 二値分類

    -> binary ◦ 回帰 -> regression ◦ 多クラス分類 -> multiclass • metric 損失関数 ◦ 二値分類 -> binary_logloss - loglossはcross_entropyと同義 ◦ 回帰 -> MSE, MAE ◦ 多クラス分類 -> multi_logloss • モデルの構造 ◦ n_estimators: 決定木の数 ◦ learning_rate: 学習率 ◦ num_leaves: 葉の数 ◦ max_depth: 階層の最大数 パラメータの公式リファレンス https://lightgbm.readthedocs.io/en/latest/Parameters.html 75
  49. ©MIXI 76 特徴量エンジニアリング • 特徴量を前もって学習しやすい形に加工しておくこと   ex) 収入を予測するモデル • 住んでいる家の緯度、経度の情報は関係ある値

    • ただ、同じ経度でも東北の緯度と東京の緯度では意味は異なる • 本当に意味があるのは数値ではなく、どの地域なのかの情報 • 緯度と経度で分離してバケット化
  50. ©MIXI 77 良い特徴量(入力データ)とは 良い特徴量の条件は 1. 目的に関係している値である • 競馬の購入馬券を予測する問題で、馬主の年齢は関係あるか? • いらないデータはノイズになる

    2. 推論のタイミングで利用可能である • 子供の誕生時の体重を予測する問題で、妊娠日数は使えるか? 3. 意味のある数値(ベクトル)に変換できる • 文章はベクトルに変換することも可能 4. 人間の洞察が含まれている • 良いデータサイエンティストが良いmlエンジニアである理由
  51. ©MIXI 83 時系列データ:Encoder-Decoder Model RNNだけじゃなく、CNNを使ったもの、 Attentionを使ったものもあります Encoder • 時系列データXを特徴量ベクトル hにEncode

    Decoder • 特徴量ベクトルhから時系列Yを推論 例)文章要約の場合 1. 対象の文章をEncoderへ入力し、 意味を持ったベクトル h を出力 2. Decoderで要約を出力
  52. ©MIXI 84 時系列データ:Transformer 「Attention Is All You Need」という論文で自然言語処 理向けに提案されたEncoder-Decoderを元にしたモデル 特徴

    - Attention機構を用いて、時系列的に離れた情報と の関係性もモデル化可能 - 入力ベクトルに位置情報を付与 - モデルのスケールアップが可能 - 大規模なモデルサイズ+大規模なデータセット でさらに精度向上 84 Encoder Decoder Vaswani et al. “Attention Is All You Need”
  53. ©MIXI 87 自然言語処理:自然言語処理(NLP)とTransformer 自然言語処理(Natural Language Processing; NLP)とは • 人間が日常的に使う自然な言葉をコンピュータが理解し、処理する技術 代表的な技術

    • 形態素解析、構文解析、意味解析、感情分析、文章生成 主な活用例 • 機械翻訳、チャットボット、音声アシスタント、文書分類 主要なDeepLearningモデル • ルールベース (TF, IDF) • RNN • Transformer
  54. ©MIXI 89 自然言語処理:ChatGPT • GPTを発展させた高精度なChatbot AI • Reinforcement Learning from

    Human Feedback(RLHF)が特徴 89 Supervised Fine-tuning(SFT) Reinforcement Learning 教師ありデータセットを用いて モデルを微調整 報酬から Agentを 最適化 報酬モデル(RM)を学習 強化学習モデル(PPO)を 用いて出力を最適化 応答 (複数) 入力 (Prompt) ランク付け (ラベル) ラベルを元に ランク学習 応答 (ラベル) 入力 (Prompt) ラベルを元に モデルをFine-Tuning Training language models to follow instructions with human feedback OpenAI et al, 2022 Reward Model(RM)
  55. ©MIXI 90 自然言語処理:LLM ディープラーニング技術を用いて構築された超巨大な言語モデル • 大規模とは ◦ データ量 ◦ 計算量

    ◦ モデルのパラメータ数 LLMモデル Prompt 質問や命令文 出力 - 生成 - 要約 - 解説 - 翻訳 など
  56. ©MIXI 91 [余談] MIXIで使えるLLMサービス Chatサービス - Chat-M (MIXI) : MIXIの社内向け

    - サービス(社内の知見をRAGで検索可能) - ChatGPT (OpenAI) : Enterprise 利用可能 - Gemini (Google) AIコーディング - GitHub Copilot (GitHub) - Cursor (Anysphere) などなど...
  57. ©MIXI 92 RAG(RetrievalAugmentedGeneration) • LLM(大規模言語モデル) + 自前コンテンツの検索 ◦ LLMでの生成ではハルシネーション(それっぽい誤情報)がありがち ◦

    自前コンテンツの検索システムを組み合わせることでハルシネーション対策になる 92 ・Question: モンストで好奇心旺盛でおっちょこちょ いなキャラ Embedding ベクトルDB Prompt ・Instruction 以下のDocumentを参照して、質問に解答してくだ さい ・Question: モンストで好奇心旺盛でおっちょこちょいなキャラ ・SearchResult パンドラは、神々に作られた少女。金髪碧眼で... LLMで 解答を生成 Retriever Generator
  58. ©MIXI 94 RAG: Generator • Generator ◦ Retrieverから得られた情報を用いて、質問に即した回答を生成するパート ◦ プロンプトに正しい情報を使うため

    ハルシネーション対策になる Embedding LLMで テキスト 解答を生成 Prompt ・Instruction 以下のDocumentを参照して、質問に解答してくだ さい ・Question: モンストで好奇心旺盛でおっちょこちょいなキャラ ・SearchResult パンドラは、神々に作られた少女。金髪碧眼で... Generator LLMで 解答を生成 「好奇心旺盛でおっちょこちょいな性格であり、 「やっちゃダメ」と言われることを苦手とする。うっ かり禁断の箱を開けてしまうなど、おっちょこちょ いエピソードも。」
  59. ©MIXI 95 LangChainについて 95 • LangChain ◦ LLMを用いた開発を効率的に行うためのライブラリ ◦ さまざまなLLMのクラスやRetriever(後述)のクラスが揃っている

    ◦ 破壊的アップデートが多い ◦ 過度な抽象化によりカスタマイズ性が悪い メリット ◦ 手軽 ◦ 本来数百行必要なコードが数行に ◦ 新しい技術を試しやすい ◦ 実装が抽象化されており、内部の コードを読まなくても簡単に試せる まとめ デメリット ◦ PoCで使う分には便利 ◦ 本番環境で使うには注意・検討が必要 • 小規模で管理できるなら
  60. ©MIXI 96 LangChain: Retriever • LangChainではRetrieverの機能をもつクラスがいくつか提供されている ◦ 参考: https://python.langchain.com/docs/how_to/#retrievers •

    実装例 ParentDocumentRetriever 96 docをsplitterでsubdocに区切り検索を行う SelfQueryRetriever docをLLMを用いてmetadataでfilteringし検索を行う
  61. ©MIXI 97 Text Embedding • Text Embedding ◦ テキストを抽象化ベクトルに変換 ➢

    テキスト同士の類似度を距離で表現できる 金髪の キャラクター [0.2, 0.1, -0.12 …] パンドラ、金色の髪 と青い目 [0.19, 0.11, -0.12 …] ユビレギリ、片目に 眼帯 [-0.5, 0.43, 0.22 …] ゲキリン、ピンクの 髪と黄色の目 [0.2, -0.41, -0.72 …] 0.9985 -0.4727 0.3948 Cos類似度 ハンズオンでは Multilingual-E5 のモデルを利用します。 そのほかにも、HuggingFace上に様々なモデルが公開されています GCP VertexAIではEmbeddings for TextやEmbeddings for Multimodalなどが使えます Hugging Face 機械学習モデルの開発と共有、公開を するためのプラットフォームです
  62. ©MIXI 99 LangChain: LCEL • LCEL ◦ LCEL(LangChain Expression Language)

    ➢ 各コンポーネントを`|`でつないでChainを定義 ➢ LangChainの各コンポーネントや定義したメソッドを パイプラインに固められる 記法: `chain = (プロンプト | model)`など マグロの釣り方:大海原の王者に挑む マグロ釣りは、釣りの中でも特に挑戦的でエキ サイティングなジャンルです。その引きの強さ と大きさから、「海の王者」とも呼ばれるマグ ロを釣り上げるには、相応の準備と知識が必要 です。 …
  63. ©MIXI 102 画像処理:VIT(Vision Transformer) • Transformerの仕組みを画像分野に応用する試み • パッチと呼ばれるものに画像を均一に分割し、 これを単語のように扱う •

    特徴 ◦ CNNベースモデルより精度が高い ➢ データセットが小さい場合は CNNの方が精度が高い傾向にある ◦ Attentionの機構を利用して、 判断根拠(どこに注目したか)の抽出ができる ◦ Fine-tuningにより、様々なタスクに応用可能 パッチ化(均一に分割) パッチごとにベクトル化 (本当はRGBの行列) パッチのベクトルを 単語のように扱う [(0, 0, 0), (0, 0, 0), (225, 10, 10), (235, 5, 5), (255, 0, 0) ...]
  64. ©MIXI 103 画像生成:Stable Diffusion • 入力されたテキスト情報を元に画像を生成する技術 103 VAE Encoder 潜在空間に

    次元圧縮 各潜在変数 は確率分布 (正規分布) に従う 各ステップで正規分布 に基づくノイズを追加 喜ん で いる オラゴン 0 1 2 3 CLIP Text Encoder [0.32, 0.14, 0.01, …] UNet VAE Decoder 学習時のみ使用 UNet UNet 潜在変数 から画像 に変換 0ステップ目と各ステップのUNetに テキストから抽出された特徴量を追加
  65. ©MIXI 106 音声処理:音声認識(Automatic Speech Recognition; ASR) 音声認識とは、音声をテキストに変換する技術 • スマートスピーカー、字幕生成、議事録作成、検索入力など幅広く活用 仕組み

    • 音声信号(波形)を 特徴量(例:メルスペクトログラム) に変換 • 音響モデルが音を文字・単語にマッピング • 文脈を考慮した言語モデルで自然な文に補正 代表的な音声認識モデル • Whisper(OpenAI): 多言語対応・高精度・ノイズ耐性が強み • Kotoba Whisper(日本語特化): Whisperをベースに日本語性能を強化
  66. ©MIXI 112 要件定義:機能要件 ML技術を導入する際は、一般的に以下の内容を決める 1. 機械学習で解決すべき問題なのか? • ルールベースとML技術で費用対効果(Return on Investment;ROI)を比較

    ◦ ルールベースで解けるなら、ML技術は使うべきではない 2. 適切な定量評価の指標を設定 • 目的関数:モデルを学習するための指標(MSE, Cross Entropy) • 評価指標:学習後にモデルの性能を測定する指標 (Accuracy,エラー率) • KPI:ビジネス目標の達成度を測る指標 (売上増加率、顧客維持率など) 3. 比較対象を設定 • 定量評価の比較対象としてベースラインを設定 ◦ 既存のシステムや単純なモデル(ランダム予測、最頻値予測)を比較対象とする
  67. ©MIXI 113 要件定義:機能要件 113 目的関数 評価関数 KPI 各機械学習モデルが 目的関数を最適化 評価指標における最良の

    機械学習モデルを選択 ML技術を運用し、 ビジネス的価値をKPIで測定 特に、ML技術の効果を計る3つの適切な指標を定めておくことが重要 引用:評価指標入門〜データサイエンスとビジネスを繋ぐ架け橋〜
  68. ©MIXI 114 要件定義:システム要件 MLモデルによる「推論」をどのように動かすかも決めておく。 1. MLモデルをどのタイミングで動かすか ◦ 非同期処理か • バッチ処理による一括推論

    • ストリーム処理による逐次推論 ◦ 同期処理か 2. 推論速度 ◦ リアルタイム推論で許容されるレイテンシーは? ◦ 速度と精度、どちらを優先すべきか
  69. ©MIXI 115 要件定義:みてね のML推論事例 機能要件 • 画像から顔を検出し、顔の解析を行う ◦ 顔の位置、顔の向き、推定年齢など 非機能要件

    • リアルタイム推論は必要ない • 1日に約1000万レベルのメディアを解析 • 複数のタスク特化したモデルを使用 アーキテクチャ • Queue(SQS) を用いて非同期処理 • 複数の顔解析器をパイプライン化 • メディアのUploadをトリガーに非同期処理
  70. ©MIXI 116 要件定義:minimo のML推論事例 機能要件 • AIのレコメンドスコアでスタイリストの検索結果を並び替える ◦ ユーザーの関心がありそうなスタイリストを上位に表示する 要件

    • リアルタイム推論が必要 ◦ 検索結果の表示が遅れることで、体験を損ねる • 並び替え対象が300件以上ある場合は、軽量なルールベースを使用 アーキテクチャ • 特徴量は事前にOpenSearchに格納 • 推論にはAWSのSagemakerEndpoint
  71. ©MIXI 118 モデル実装、PoC構築、本実装 要件定義で決定した3つの指標を元に効果検証を行うフェーズ → 大学の研究で最も行ってきた分野 1. モデルの実装 ◦ 評価指標を最大化するモデルの構築 2.

    PoC構築 ◦ モデル精度だけでなく、システム組み込み可能性も検討 ◦ ビジネス側と継続判断の基準を擦り合わせる 3. 本実装: ◦ モデルのサービスへの組み込み
  72. ©MIXI 121 継続的学習:Machine Learning Operations; MLOps MLモデルを継続的に運用するには? • モデル管理、精度検証、データ収集、再学習、データドリフト対応.... ◦

    MLモデルも、プロダクトとして継続的にUpdateしなければならない これらを継続的に行えるシステム(MLOps)の構築が必要 MLOpsとは • MLシステムの開発(Dev)と運用(Ops)を統合するエンジニアリング手法 • CI/CDに加えて、継続的トレーニング(CT)が行われ、MLモデル更新の自動化と モニタリングを推進する
  73. ©MIXI 123 HANDS ON : チャレンジ! https://github.com/mixigroup/2025BeginnerTrainingAI • 05 deploy

    and serving • 下記のハンズオンにトライしてみてください
  74. ©MIXI 125 今日学んだこと 今日の研修を通して以下のことを学びました Section 1 機械学習とは何か Section 2 Deep

    Learning Section 3 勾配ブースティング Section 4 その他のML技術 Section 5 ML技術のデプロイ Section 6 サービスについて考える
  75. ©MIXI 126 Discussion 自分のサービスに、ML技術を用いてどんな価値が提供できるか考えてみよう! • 何に対して機械学習に適用できるか • どんなことを考えるべきか • どんな解決したい課題があるか

    • どんなデータを持っているか • それは学習できそうか • そもそも既存のモデルが存在しないか? • サービスに入れる評価基準は決められそうか? • どういう風にサービスと繋ぐか?