生成AIでプログラミング③

「AIに任せてはいけない領域」

生成AIを使用してプログラミングを行うにあたって、
生成AIに任せてはいけない領域(人とAIの役割分担)がある。

AIに任せてはいけない領域は、大きく分けると以下の2点。
・「判断の責任が人間にある領域」
・「誤りが重大な影響を与える領域」

上記2点について、少し細分化してまとめてみた。

以下に生成AIに任せてはいけない領域について書き出したもの。
生成AIを使った事がある人なら、思い当たる節があるはず。


1.要件定義・仕様の最終決定(ビジネス判断)

AIは仕様案を出すことはできるが、何を作るべきかを決めることはできない。


具体例

  • 機能の優先順位
  • どの仕様がユーザーに最適か
  • どの技術選択が組織に合うか
  • 業務フローの決定


理由

AIはビジネス背景・価値判断を理解できないため。


2.セキュリティ・認証・権限管理

AIは「安全そうなコード」を書くが、本当に安全かどうかは保証できない。


具体例

  • JWTの署名・期限設計
  • パスワードハッシュ戦略
  • RBAC/ABAC
  • CSRF/XSS/SSRF対策
  • CORS設定


理由

脅威モデルや攻撃手法を完全に理解していないため。


3.長期的なアーキテクチャ設計

AIは短期的なコード生成は得意だが、長期運用を見据えた設計判断は苦手。


具体例

  • モジュール構造
  • ディレクトリ構成
  • 依存関係の整理
  • 拡張性の見積もり
  • チーム規約の策定


理由

未来の変更やチーム事情を理解できないため。


4.ビジネスロジックの最終判断

AIはロジックを実装できるが、業務の文脈を理解できない。


具体例

  • 売上計算
  • 税率・割引・例外処理
  • 請求・会計
  • 法律に関わる処理


理由

「動くけど間違っている」コードを生成する可能性があるため。


5.データの真偽判断(ハルシネーション領域)

AIは「知らないことを知らない」と言えない。


具体例

  • 外部APIの仕様の推測
  • ライブラリの関数名の推測
  • 実在しないメソッドの生成
  • 実行環境の誤認


理由

もっともらしい嘘を作ることがあるため。


6.大規模コードの一括生成

AIは長いコードの整合性維持が苦手。


具体例

  • 500行以上のファイル
  • 複数ファイルにまたがる依存関係
  • モジュール全体の一括生成


理由

AIは前のコードを忘れやすく、整合性が崩れるため。


7.本番環境の設定・インフラ構築

AIの提案は参考になるが、本番環境の設定をそのまま信用してはいけない。


具体例

  • nginx/Apache設定
  • Dockerfile最適化
  • セキュリティグループ
  • 本番DB接続
  • CI/CDの本番設定


理由

  • 設定ミスは重大事故につながるため。


8.法務・コンプライアンス判断

AIは法律を解釈できない。


具体例

  • 個人情報保護法
  • GDPR
  • 著作権
  • OSSライセンスの互換性


理由

法務判断は専門家の領域。


9.UX(ユーザー体験)の最終判断

AIはUIを作れるが、人間の感情や体験を理解できない。


具体例

  • ボタン配置
  • 文言のトーン
  • アクセシビリティ
  • フローの複雑さ


10.責任が発生する領域(最重要)

AIは責任を負わない。


具体例

  • 本番リリースの判断
  • データ消去・移行
  • 金銭が絡む処理
  • セキュリティ事故の判断


統合まとめ:AIに任せてはいけない領域(一覧)

  • 要件定義・仕様決定
    ビジネス判断が必要
  • セキュリティ
    “安全そう”に見えるだけ
  • アーキテクチャ設計
    長期運用を理解できない
  • ビジネスロジック
    業務文脈を理解できない
  • データの真偽判断
    ハルシネーションが起きる
  • 大規模コード生成
    整合性が崩れる
  • 本番環境設定
    ミスが致命的
  • 法務・コンプライアンス
    解釈できない
  • UX判断
    人間の感覚を理解できない
  • 責任が発生する領域
    AIは責任を負わない


人がAIに任せるべきは「作業」であり、人が担うべきは「判断」。

0 件のコメント:

コメントを投稿