❤️‍🔥

現代的AIの世界を特急で駆け抜ける【機械学習】

2024/04/14に公開

こんにちは!数理の弾丸の吉田です。

機械学習エンジニアになりたい!けど、こんな悩みがある方に向けて動画を作りました。

  • 何を学ぶべきかわからない
  • 書籍や解説記事など、情報が多すぎて重要なことが何かわからない
  • 大規模言語モデルが盛り上がっているいま、求められるスキルがわからない

本記事は、下記動画の要点を記述したものです。動画には、記事中にない補足説明や、参加メンバーとのQAが含まれています。
https://youtu.be/faEdo_-G0HE?si=gEPrAnAvSVTB_CD

動画内で使用したスライドはこちらに公開されています。

今回のゴールとスコープ


今回は、大きく以下二つのゴール達成を目指して解説を行います。

  • AIとは何か、がざっくり説明できる
  • AIの使い手に求められている能力を知る
    主にAIを専門としたい人にとっての入口となることを意図していますが、AI製品を提供する企業のセールス職の方や、AIを活用したい非IT部署の方にとっても良い導入となることを狙っています。

AIとは一体何

はじめに、「AIとは何か」という点について共通認識を持っておきましょう。人によって揺れるところはありますが、本記事では**「知的な作業をコンピュータによって自動的に行うための技術やシステム」**と考えます。昨今はAIといえば機械学習であることに疑いはありませんが、AIが必ずしも学習を伴うというわけではありません。

とはいえ、機械学習に基づくAIが大きな成功をおさめていることは間違いありません。ここ数年で、関連研究やビジネスへの導入が爆発的に増加しています。それに伴い、機械学習の専門知を持った人材や、専門職とのコミュニケーションが取れるマネージャー、セールス人材のニーズが高まっています。

このような背景から、本記事では機械学習にフォーカスして解説していきます。

機械学習

それでは機械学習に踏み込んでいきましょう。はじめに、ここでいう「学習」とは何をすることなのかご説明します。

機械学習の「学習」とは

例題として、「顧客情報データから、ある商品に対する購買意欲を予測したい」という設定で考えます。

スライド左下に注目してください。データから解法やパターンを学習する仕組みのことをモデルと言います。より具体的には、モデルは顧客情報といった情報を入力として与えられて、購買意欲などの予測値を出力する関数として記述されます。

モデルの構成要素を大きく分けると、以下のようになります。

  • モデルのアーキテクチャ
    • 1次式にするか、ニューラルネットワークにするか...という、基本の構造
    • 開発者が事前に決定する(学習前後で変化しない)
  • モデルのパラメータ
    • データのどこに注目して、どこを無視するか決める数値
    • 学習によって値が調整される

モデルの学習とは、学習用のデータを参照して、パラメータを調整することを意味しています。

以上、機械学習における学習についてご説明しました。ここでご説明した枠組みは、いわゆる教師あり学習の枠組みであることにご留意ください。クラスタリングや次元削減などの教師なし学習は、そもそも予測すべき正解の値がないデータに対して、グループ分けや圧縮を行う枠組みです。これらについては、また別の機会にご説明したいと思います。

機械学習の全体像

機械学習は大きく、深層学習とそれ以外に分かれます。後者を狭義の機械学習と呼ぶことにして、それぞれの基本的なモデルと、長所・短所を整理しました。

ここまでで、今回のゴールの一点目まではクリアできたと思います。

これから、機械学習プロジェクトの流れを追いながら、プロジェクト全体の中で技術サイドに求められるスキルを整理していきます。

機械学習プロジェクトの流れ

機械学習プロジェクトの大まかな流れを次のスライドに整理します。クライアントからの依頼があり、受託開発を行うケースを主に想定しています。

各ポイントについて要点をご説明します。

  • 課題定義:ここでは、クライアントの課題を明確化し、どのように解決するかの方針を決定します。主にシステムエンジニアや技術営業の責任範囲となることが多いでしょう。ここで重要なのは、クライアントの課題を解決するのに機械学習が適切かを検討する能力です。課題の性質によっては、ルールをうまく設計したり、業務そのものの設計を工夫することで解決できることがあります。先方が機械学習での解決を前提としていた場合もあり得ますが、双方の利益のために、手段が先行しないことが重要と考えています。
  • 要件定義・設計:ここでは、課題を解決するためにどのような機能が必要かを決定し、技術設計へと帰着させます。主にシステムエンジニアや技術マネージャーによって担当される範囲です。ここでは、現実的に可能なことと、先方の要求レベルをすり合わせることが非常に重要です。
  • データ準備・環境構築:ここでは、必要なデータの収集や環境のセットアップを行います。これ以降は、実働するエンジニアによって行われることが多いでしょう。モデルの品質は、その大部分がデータの質と量によって決まります。質と量は一般的にトレードオフの関係にあり、また、いずれもどの程度が十分なのか自明でないことが多いでしょう。初動で大きなコストをかけず、まずは小規模なデータによる概念検証(PoC)の実施が重要です。
  • 学習・検証・改善:ここでは、収集したデータとセットアップされた環境のもとで、モデルの学習・検証・改善を行います。データやモデルにどのような課題があるか、改善のサイクルを通じて仮説を立て、実験を繰り返すフェーズです。モデルの検証には、なんらかの評価指標を使用することになりますが、この評価指標が、先方の求める課題解決とリンクしているかには慎重になる必要があります。大きなコストをかけて評価指標の改善が達成されても、それが先方の求める価値とずれていては課題解決につながりません。

以上、機械学習プロジェクトの大きな流れをご説明しました。最後に、LLMの台頭によって新たに求められるスキルをご紹介します。

要求スキルの変化

LLMのビジネス活用が広がったことで、これまでの学習ベースの枠組みだけでなく、生成ベースの枠組みが多く見られるようになってきています。これを受けて、AIを活用する上で以下のようなスキルが必要になってきています。

  • プロンプトエンジニアリング
  • モデルリリース情報のキャッチ
  • ネットワークセキュリティ

スライドでは触れられていませんが、動画内のQAではRAG (retrieval augmented generation)についても言及しています。

以上、機械学習プロジェクトの各段階における要求スキルと、LLM時代における新たな要求スキルをご紹介しました。ここまでで、二点目のゴールが達成されました。

おわりに

以上、現代的なAIの世界をハイスピードで俯瞰しました。今後の記事では、今回言及した各ポイントをさらに掘り下げていきたいと思います。

Discussion