AI Fundamentals for AI-Assisted Development · Chapter 6

第6章 AIには何ができるのか

Type
Book
Edition
Version 1
Language
Japanese
Format
Web
Author
mars70
Chapter 6

「できる/できない」の二択にしない

AIの能力について考えるとき、

AIにできる
AIにはできない

という二択だけでは、実際の利用判断には十分ではありません。

同じAIでも、仕事の性質によって必要な情報、外部への作用、確認方法が変わります。この章では、「この仕事にはどの種類の情報や外部作用が必要か」を考えるために、次の三つの視点を使います。

1. 与えられた情報を主に使う仕事
2. 現在の外部情報が必要な仕事
3. 外部で何かを実行し、その結果確認が必要な仕事

これは、AI補助開発で「何をAIに任せ、何を別に確認するか」を考えるための、本書の学習用モデルです。

与えられた情報を主に使う仕事

AIは、与えられた文章やデータをもとに処理する仕事に利用できます。たとえば、

  • 要約(Summarization)
  • 文章の書き換え(Rewriting)
  • 翻訳(Translation)
  • 質問応答(Question Answering)
  • 情報抽出(Information Extraction)
  • アイデア・候補の生成(Idea / Candidate Generation)

などです。文章を短くまとめたり、表現を書き換えたり、情報を抜き出したり、候補を複数出したりする用途があります。こうした仕事では、AIへ渡したinput自体が重要な材料になります。

要約(Summarization)

長い文章を短く整理するSummarizationは、AIの代表的な利用例の一つです。ただし、要約できる = 必ず正確 ではありません。重要な条件が抜けたり、意味が変わったりする可能性はあります。そのため、重要な文書では原文と比較できる形を残しておくことが役立ちます。

文章の書き換え(Rewriting)

文章の表現を、

  • 短くする
  • 読みやすくする
  • 丁寧にする
  • 別の文体にする

といった文章の書き換え(Rewriting)にも利用できます。

ただし、書き換え後の文章が元の意味を完全に保存していることが自動的に保証されるわけではありません。

法務、仕様、Evidence記録など、細かな意味の違いが重要な文章では確認が必要です。

翻訳(Translation)

Translationも、モデルが提供し得るtaskの一つです。しかし、翻訳文が自然 であることと、技術的意味が完全に一致 することは同じではありません。

専門用語、否定、条件、例外、数値、法的表現などは確認対象になります。

情報抽出(Information Extraction)

文章の中から、

  • 名前
  • 日付
  • 数値
  • 項目
  • 条件
  • 候補

などを抜き出す用途にも利用できます。

ここでも、重要なのは「抽出を依頼できる」ことと「抽出結果が完全である」ことを分けることです。

アイデア・候補の生成(Idea / Candidate Generation)

AIは、アイデアや候補を出す仕事にも使えます。

たとえば、次のような候補です。

  • タイトル候補
  • 設計案
  • テストケース候補
  • 原因候補
  • 検討項目候補

アイデア・候補の生成(Idea / Candidate Generation)では、AIの出力を「最終回答」ではなく、人間が検討する候補集合として使うと役立つ場合があります。

現在の外部情報が必要な仕事

一方、現在の外部状態を知らなければ答えられない仕事があります。

たとえば、

  • 今日の天気
  • 現在のソフトウェアversion
  • 最新の障害情報
  • 現在のGit remote state
  • 今存在するファイル
  • 現在のサーバー状態

などです。

現在の外部情報が必要な仕事では、モデルに与えられた情報だけでは足りない場合があります。外部情報を取得する仕組みについては、第8章で扱います。

しかし、「AIが答えた」というだけで現在状態が確認されたとは限りません。

外部実行が必要な仕事

さらに別の種類として、

  • fileを変更する
  • testを実行する
  • commandを実行する
  • APIを呼ぶ
  • repositoryへcommitする
  • serviceの状態を変更する

といった、外部世界に作用する仕事があります。

この場合、何をすべきか説明できる ことと、実際に実行された ことは別です。そして、実際に実行された ことと、期待した結果が確認できた ことも別です。Tool requestや実行の仕組みそのものは、第8章で詳しく扱います。

AI補助開発では、この区別が非常に重要です。

「AIに向いている仕事」は固定ではない

この章で挙げた例から、「この仕事は必ずAIに任せるべき」「この仕事はAIには絶対できない」という普遍的な分類を作ることは目的ではありません。モデル、サービス、Tool、入力、task、確認方法によって条件は変わります。重要なのは、その仕事で必要になる情報と、最終的に何を確認しなければならないかを見ることです。

三つの軸で考える

AIへ仕事を依頼するとき、次のように考えると整理しやすくなります。

A. 必要な情報は、すでにinputとして与えられているか

B. 現在の外部情報を取得する必要があるか

C. 外部で何かを実行し、その結果を確認する必要があるか

たとえば文章の要約なら、Aが中心です。現在の障害情報を調べるならBが重要になります。プログラムを修正してテストまで行うならCも重要です。

この三軸は、AI補助開発で必要な情報と確認を考えるための、本書の学習用モデルです。

この章のまとめ

  • AIはSummarization、Rewriting、Translation、Q&A、Information Extraction、Candidate Generationなどに利用できる
  • taskを実行できることと、その結果が常に正確であることは別
  • 現在の外部情報が必要な仕事では、モデルに与えられた情報だけでは足りない場合がある
  • 外部で何かを実行する仕事では、説明・実行・結果確認を分ける
  • AI利用を「できる/できない」の二択だけで判断しない
  • input、外部情報、外部実行・結果確認という三つの視点で考える

次の章では、AIが扱う情報について、Context、Memory、Training Dataを同じものとして扱わないための整理を行います。