/note/tech

コードは書ける、でも"AIを理解してない"エンジニアが増えている現実😭

要約:

■ 1. 現状の課題

  • AIアプリエンジニアが急増している:
    • 生成AI(LLM)が普及し誰でも比較的容易に活用できるようになったことが大きな要因である
    • しかし実際のところAIそのものへの理解や理論的な知識を持たずに開発しているケースも少なくない
    • OpenAI APIを使える、LangChainを組めるといったツールとしてのスキルはあってもAIの挙動や構造を理解したうえで設計している人は限られている
  • コードは書けるのに結果が出ないケースをよく見る:
    • ノーコード/ローコーディングツールの普及によって誰でも短期間でMVP(最小実行可能プロダクト)を作れるようになった
    • しかし現場レベルで実際に運用・定着するプロダクトになるケースは非常に少ない
    • 一見動くものを作ることはできても使える・価値を生むレベルまで育てるのが難しい
    • 社外にPRされているAI事例の中にも実際には一部組織内だけの限定的活用にとどまっているものも少なくない

■ 2. 何が起きているのか

  • ノーコード/サンプルコードの充実によってAIアプリを短期間で作ること自体は簡単になった
  • ローコーディングという神ツールも登場し、従来時間のかかっていたコーディング時間は半減し確実にMVPを作るまでは早くなった
  • ただし動く状態から使える状態に引き上げるにはきめ細かなチューニングとAIの仕組みへの理解が不可欠である
  • このチューニングにはモデル構造やプロンプト設計、データセット設計の知識が求められる
  • しかしAIをブラックボックスとして扱っているとどこを調整すればよいか判断できない
  • 結果としてAPIを呼び出すだけの構成にとどまり、課題を根本的に解決できないまま止まってしまうことが多い
  • 具体例:
    • ベクトルDBをとりあえず繋いでいる、プロンプトを変えてみるだけといった状態で止まっている例をよく見かける
    • 特にプロンプトを変えてみるだけはすごく多いパターンである
    • RAGであればそもそも構造的にプロンプトチューニングの限界があるから仕組み的にリトリーバーの改善を、リトリーバーを変えたということはベクトルDBのメタデータをといったような思考プロセスを持ち合わせる人が少ない
  • 技術的にリーチングアウトできるエンジニアは非常に少数である

■ 3. なぜそうなるのか

  • LLMのような生成AIに何でも神頼み:
    • 生成AIの進化によってLLMに任せればなんでもできる、マルチモーダル=すごいという空気感が広がった
    • しかし現場業務のような特定のタスクに特化したアプリケーションを作るほど実は汎用的なLLMだけでは十分に対応できることはかなり少ない
    • モデルの限界や誤答特性を理解し適切な技術や設計を組み合わせていく地道な調整が必要である
  • 成果物重視・SaaS依存構成による原理の理解の欠落:
    • 事業会社ではスピードが求められたり予算に限りがあったりするため、SaaSや既存APIを組み合わせて素早く成果物を出す傾向がある
    • ただしそれが積み重なるとバックエンドではAPIを叩いているだけになりAIそのものへの理解を深める機会が減ってしまう
    • もちろんSaaSの進化が早いので追いつけないこともある
    • 成果物を優先する判断は正しい場面も多いが理解の機会を意識的に確保することが必要である
  • 評価基準が曖昧になり"すごいっぽいデモ"で終わる:
    • デモは盛り上がったけど実務では使われないというパターンも非常に多い
    • 原因は明確で定量的な評価指標やデータセット設計の知見が不足しているからである
    • AIアプリを改善するにはなぜこの出力が良いのか/悪いのかを測れる指標が欠かせない
    • 評価手法を持つことはエンジニアとしてだけでなくプロジェクトの信頼性を担保するビジネススキルにも直結している(相手を説得しやすいのは数値であるため)

■ 4. 本当に有用なAIアプリを作るために必要な理解

  • 基礎的な基礎:
    • 例えばLLMの出力は確率的であり設定や入力次第で大きく変化する
    • RAGであればキーワード検索はBM25の頻度計算をベースにといったような理解が必要である
    • ベースの技術を理解できていればうまく行かない時のチューニングの方針や次のアクションを早く決めることができる
    • アジャイル開発であれば次のスプリントのバックログを事前に計画できるのでプロジェクトとして計画的に進めることもできる
  • 評価軸(正確さ・再現性・効率性など)を明確にする:
    • すごいではなく安定して成果が出る状態を目指すために評価指標を定義し可視化すること(=見える化)が重要である
  • 小さく検証→定量化→改善というループを設計する:
    • 大きなアプリを一気に作るのではなく検証サイクルを短く回す
    • この地道なプロセスが結果的に品質を押し上げる
    • そういった進め方をクライアントもしくは現場と綿密に擦り合わせることも大事である

■ 5. AI時代のエンジニアに求められる姿勢

  • AIアプリエンジニアが数多く登場し社内外でAI活用が広がる中で、いまようやく本当の課題はクオリティだと気づき始めているのではないか
  • AIに対する理解を深め使えるレベルまで磨き上げる姿勢がこれからのエンジニアには求められる
  • AIを使える人は増えた
  • しかしAIを理解して活かせる人こそがこれからの時代に強い