AI Fundamentals for AI-Assisted Development · Appendix B

Appendix B 本書の用語・定義集

Type
Book
Edition
Version 1
Language
Japanese
Format
Web
Author
mars70
Appendix B

この付録では、この本で使う言葉の意味と境界を整理します。一般的な意味を知りたい場合は、Appendix A「AI基礎用語集」を参照してください。ここでは、特にこの本での使い方や、混同しないための区別を示します。

B.1 AI・モデル・コンテキストの境界

人工知能(AI)

この本では、AIを、知的な処理を行う仕組みやサービスなどを含む、広い言葉として扱います。AIはLLMだけを意味する言葉ではありません。

機械学習(Machine Learning)

機械学習は、データから規則性や関係を学ぶ方法を扱う言葉です。AIと関係する重要な考え方ですが、AIと機械学習を同じ意味にはしません。AIの歴史も、一つの方法が前の方法を完全に置き換えたという単純な順序では捉えません。

モデル(Model)

モデルは、入力に応じて処理や出力を行う、学習済みの仕組みを指す言葉です。モデルと、それを組み込んだAIサービスやアプリケーションは区別します。モデルだけを見て、サービス全体の構成を決めつけません。

言語モデル(Language Model)

言語モデルは、言語の並びや関係を扱うモデルです。言語モデルとLLMは関係のある言葉ですが、言語モデルという言葉が自動的にLLMだけを指すとはしません。

大規模言語モデル(LLM)

LLMは、Large Language Modelの略で、大規模な言語モデルを指します。LLMをAI全体と同じものとは扱いません。また、LLMというモデルの一群と、AIサービス全体も区別します。

AIサービス(AI service)

AIサービスは、モデルを使った処理に加えて、入力の受付、画面、検索、外部ツールなど、複数の機能を組み合わせて提供されることがあります。AIサービスを一つのモデルそのものとは扱いません。公開されていない内部の構成は、確認できるEvidenceがない限り決めつけません。

Transformer

Transformerは、モデルを構成する方法の一つとして扱われるアーキテクチャです。Transformer、LLM、AIサービスを同じ言葉として扱いません。歴史についても、単純な置き換えの順序を意味するとはしません。

アーキテクチャ(Architecture)

アーキテクチャは、仕組みを構成する要素と、それらの関係を考えるための言葉です。この本の概念図は関係を整理するためのものであり、公開されていないベンダー内部の実装や処理順序を示すものではありません。

出力(output)

出力は、AIサービスやモデルが返した結果です。出力はまず確認対象となる情報として扱い、外部の事実や独立したEvidenceと同じものにはしません。AIが出力した報告だけで、検索やテストが実行されたことを確認したことにはなりません。

コンテキスト(Context)

コンテキストは、現在の処理ややり取りで利用される情報に関係する言葉です。コンテキスト、保存された情報、学習によって組み込まれた状態は、同じものとして扱いません。具体的にどの情報がどのように利用されるかは、公開されたEvidenceがなければ分からない場合があります。

**Current context(今の会話やtaskで現在利用可能な情報)**は、コンテキストの下位の説明として扱います。過去に話したことや保存されたことと、現在利用できることは同じではありません。

保存された情報(saved / persistent information)

保存された情報は、サービスが公式に保存や記憶の機能を提供している場合に、その機能によって残される情報を指します。保存された情報は、現在のコンテキストや学習済みのモデル状態と区別します。保存方法、保持期間、内部での扱いは、公開Evidenceがない限り決めつけません。

Learned model state(学習によって組み込まれた状態)

Learned model stateは、学習によってモデルに組み込まれた状態を、この本で説明するための言葉です。現在のコンテキストや保存された情報と同じものとして扱いません。提供者の内部状態や、その具体的な実装が利用者から見えるとは限りません。

B.2 Evidence・Source of Truth・確認

Claim

Claimは、この本で確認対象として扱う主張や完了についての言明です。Claimは、何を言っているのか、どの範囲の話か、何を確認すればよいかを分けて考えます。この本の確認用語を、すべての開発現場にそのまま適用される普遍的な規則とはしません。

完了報告(completion assertion)

完了報告は、「終わった」「確認した」「PASSした」など、完了したことを伝える言明です。完了報告と、実際に観測できる変更や実行結果を区別します。報告があることだけでは、対象の完了や外部操作の実行を証明しません。

Evidence

Evidenceは、Claimを確認するための根拠や観測結果です。この本では、対象、方法、範囲、条件などに照らして、どこまで確認できるかを考えます。AIが生成した文章、確信の強い表現、複数のAIの一致、生成された引用だけでは、外部の事実を独立に確認したEvidenceにはなりません。

Source of Truth(確認先)

Source of Truthは、ある質問やClaimについて、確認の基準として選ぶ情報源です。何を知りたいかによって、仕様、リポジトリのファイル、Gitの状態、テスト結果、CIの結果、設定、実行時の観測、ログなど、適切な確認先は変わります。普遍的に一つだけのSource of Truthがあるわけではなく、AIが自分で確認先を決めて権限を得るわけでもありません。

VERIFIED / OBSERVED

VERIFIED / OBSERVEDは、確認できる権威ある情報源や再現可能な観測から、直接確認できたものを表します。この本では、直接確認できた範囲を超えて、推測やAIの報告をこの分類に入れません。

INFERENCE

INFERENCEは、確認できたEvidenceから導いた解釈や結論ですが、そのEvidenceが最終的な言明を直接示しているわけではないものです。INFERENCEは根拠のない当て推量ではありませんが、直接観測した事実とも異なります。推論であることと、その根拠・範囲を残します。

UNKNOWN / UNDISCLOSED

UNKNOWN / UNDISCLOSEDは、利用できるEvidenceから確認できないこと、または公開されていないことを表します。この本では、分からない部分をもっともらしい推測で埋めません。UNKNOWNはFAILではなく、UNKNOWNであることはPASSでもありません。

PASS

PASSは、指定した対象について、指定した条件で、決めた確認結果が観測されたことを表す、範囲付きの結果です。PASSを読むときは、少なくとも対象(target)、バージョン(version)、テスト対象の範囲(test set)、条件(conditions)、観測時点(observation point)を一緒に確認します。PASSはシステム全体が正しいこと、安全であること、本番利用が承認されたこと、またはUNKNOWNがゼロであることを意味しません。

FAIL

FAILは、指定した確認条件に対して、確認した結果が基準を満たさなかったことを表します。FAILはUNKNOWNとは異なります。確認できる不一致がある場合のFAILと、確認材料が足りないUNKNOWNを、どちらも失敗としてまとめません。また、FAILはプロジェクト全体の失敗を意味しません。

Verification Loop

Verification Loopは、この本で使う最小限の確認の流れです。これは普遍的なSDLCや業界標準ではなく、AIの出力と対象の状態を分けて考えるための本書のモデルです。

  1. 依頼内容を理解し、意図・範囲・制約を確定する。
  2. AIが生成した出力を受け取る。
  3. その出力に含まれる重要なClaimや完了報告を特定する。
  4. 関連するSource of Truthと、期待する観測可能な結果を定める。
  5. 意図と制約に照らして、独立したEvidenceを取得・確認する。
  6. Evidenceを分類し、裏付けが不十分な場合はUNKNOWNを明示する。
  7. Humanがaccept・correct・stop・escalateのいずれかを判断し、その決定を記録する。次の限定された反復が正当化される場合にのみ、Step 1へ戻る。

技術的な確認(technical verification)

技術的な確認は、対象が決めた条件や期待する結果を満たしているかを調べることです。技術的な確認と、人間が次の行動を決めることを区別します。技術的なPASSだけで、次の保護された操作や公開を自動的に許可することにはなりません。

確認・検証(verification)

確認・検証は、対象、基準、方法、条件を明らかにして、結果を調べることを指す広い言葉です。この本では、一般的な確認・検証、技術的な確認、Verification Loopを関連づけながらも、同じ一つの状態にはまとめません。

B.3 Human authority・scope・反復・次の試行

Human authority

Human authorityは、重要な判断や操作について、誰が最終的に決める権限を持つかという上位の考え方です。本書では、AIのcapability、Human approval、Human authorizationを同じものとして扱いません。Human authorityの範囲は、projectやHumanが決めます。

人間の承認(Human approval)

Human approvalは、確認された材料を踏まえて、人間が受け入れる、修正する、停止する、またはエスカレーションする判断をすることです。Human authorizationは、特定の範囲や操作を実行してよいと人間が決めることです。両者は関係しますが、同じ判断とは限りません。人間の承認はEvidenceを強くしたり、技術的な確認そのものになったりするものではなく、技術的なPASSも次の権限が必要な操作を自動的に承認しません。

Human authorization

Human authorizationは、特定の範囲や操作を実行してよいと人間が決めることです。authorizationがあることは技術的な正しさを証明せず、AIのcapabilityや技術的なPASSから自動的に生まれるものでもありません。

意図(Intent)

意図は、現在の依頼やtaskでHumanが達成しようとしていることです。意図は範囲や制約と関係しますが、範囲そのものでも、制約そのものでもありません。また、意図を示しただけでは、範囲外の操作や追加の権限が許可されることにはなりません。

範囲(scope)

範囲は、今回の依頼や確認で対象にする境界です。この本では、意図した対象と、対象外のことを分けるために使います。範囲を決めたことは、範囲外の作業や権限を自動的に許可することではありません。

制約(constraints)

制約は、作業や確認に付ける条件や限界です。意図と範囲と制約を先に確認することで、AIの提案が対象外へ広がることを防ぎます。この本での扱いは、完全な要件定義やプロジェクト管理の方法を定めるものではありません。

観測できる結果(observable result)

観測できる結果は、決めた基準と方法で確認できる結果です。結果は数値とは限らず、ファイルの内容、テスト結果、設定、実行時の状態など、質問に合った形で観測します。観測できない部分を、観測できたことにはしません。

エスカレーション(escalation)

エスカレーションは、現在の範囲や判断できる権限を超える問題について、停止して人間や適切な判断者に確認を求めることです。この本では、エスカレーションを一つの組織構造や普遍的な手続きとして定めません。

反復・次の試行(iteration)

反復・次の試行は、確認で分かった不一致や不足に対応するために、理由と範囲を明らかにしてもう一度試すことです。何度もPASSになるまで自動的に繰り返すことではありません。次の試行を行うかどうかは、人間が状況とリスクに応じて判断します。

B.4 Completion states

この本では、完了に関係する次の六つの状態を別々に扱います。ある状態になったことは、後の状態や別の権限を自動的には意味しません。

実装した(implemented)

implementedは、意図した変更を実装した状態です。実装したことは、テストしたこと、PASSしたこと、commitしたこと、pushしたこと、deployしたこととは別です。

testした(tested)

testedは、指定したテストを実行した状態です。テストしたことは、テストが確認した範囲を超えて全体が正しいことや、PASSであることを意味しません。

PASS

PASSは、指定した範囲について確認結果が基準を満たした状態です。詳しい境界は、B.2の「PASS」で扱う対象(target)、バージョン(version)、テスト対象の範囲(test set)、条件(conditions)、観測時点(observation point)を参照してください。

commitした(committed)

committedは、変更をリポジトリのcommitとして記録した状態です。commitしたことは、リモートへpushしたことや、deployしたこととは別です。

pushした(pushed)

pushedは、commitなどの変更をリモートリポジトリへ送った状態です。pushしたことは、対象環境へdeployしたこと、技術的に安全であること、公開が承認されたことを意味しません。

deployした(deployed)

deployedは、変更を対象の実行環境へ配置した状態です。この本では、deployしたことを、implemented、tested、PASS、committed、pushedと区別します。deployの事実だけから、安全性や次の操作への承認を推測しません。

確認済み(confirmed)

確認済みは、何らかの確認が済んだことを表す説明です。この本では、確認済みをimplemented、tested、PASS、committed、pushed、deployedに加わる第七の完了状態にはしません。何がどの条件で確認されたかを別に確かめます。