見出し画像

第2冊『EQUESの次世代AI実装大全――Python・Rust・TypeScript・SQL・Cloud・LLM・Agent・Physical AIで、研究から産業実装までを接続する(第1回)(序章 AI研究を産業システムへ変える)

序章 AI研究を産業システムへ変える

第1節 研究コードと本番システム

AI研究では、まず「動くもの」を作る。

論文を読む。Datasetを準備する。PythonでModelを実装する。Notebook上でExperimentを繰り返す。Metricを測り、Baselineと比較し、Hypothesisを検証する。

この世界では、研究者が高速に試行錯誤できることが重要である。

しかし産業システムでは、問いが変わる。

そのModelは明日も動くのか。

同じ入力に対して再現可能なのか。

誰がDataへAccessしたのか記録できるのか。

Modelが誤ったとき、誰が検知するのか。

外部Serviceが停止したらどうするのか。

AIが生成した内容を誰が承認するのか。

そして、数年後にも運用できるのか。

研究コードから本番システムへ進むとは、単にCodeをきれいに書き直すことではない。

AIをExperimentからResponsibilityのあるSystemへ変換することである。

────────

研究コードの目的

Research Codeの第一目的は、未知の問いを高速に検証することである。

典型的には、

```python
data = load_data()
model = train(data)
score = evaluate(model)

print(score)
```

これでも研究上の問いには答えられる。

「このMethodはBaselineより性能が高いか」

という問いであれば、十分な場合もある。

研究では、変更可能性が重要になる。

Modelを交換する。

Loss Functionを変える。

Hyperparameterを変える。

Datasetを変える。

Evaluation Methodを変える。

つまりResearch Codeは、

Change for Learning

に最適化される。

────────

Production Codeの目的

本番Systemでは目的が異なる。

必要なのは、一回成功することではない。

継続的に、

入力を受ける。

処理する。

結果を返す。

記録する。

異常を検知する。

失敗したら回復する。

変更を安全に反映する。

というOperationである。

したがってProduction Systemは、

Operate for Reliability

に最適化される。

この違いが、研究コードと本番システムの最初の境界になる。

────────

NotebookからServiceへ

AI ResearchではJupyter Notebookが強力である。

Dataを確認しながら処理できる。

Visualizationできる。

Cell単位でExperimentできる。

しかしNotebookは、そのまま企業SystemのRuntimeになるとは限らない。

研究段階の処理を、

```text
Experiment
   ↓
Reusable Module
   ↓
API / Service
   ↓
Application
   ↓
Production Runtime
```

へ分解する必要がある。

Notebookで発見したAlgorithmを、再利用可能なModuleへ切り出す。

それをAPIとして公開する。

Applicationから呼び出す。

CloudやLocal Environmentで継続運用する。

ここからSoftware Engineeringが本格的に始まる。

────────

Pythonは消えない

Production化するとPythonを捨てなければならない、という意味ではない。

Machine Learning。

Data Processing。

LLM。

Evaluation。

Scientific Computing。

これらではPythonは依然として中心的なLanguageである。

重要なのは、

Pythonを研究用Scriptとして使うこと

と、

Production Componentとして設計すること

を区別することである。

例えば、単純な関数でも型と境界を明確にする。

```python
from dataclasses import dataclass

@dataclass
class Prediction:
   label: str
   confidence: float

def predict(text: str) -> Prediction:
   if not text.strip():
       raise ValueError("input text must not be empty")

   # model inference
   return Prediction(
       label="example",
       confidence=0.92,
   )
```

入力条件。

Output Schema。

Error。

こうした境界を明示することからProduction化は始まる。

────────

再現可能性

研究者のPCでは動いた。

しかし別のMachineでは動かない。

これはProductionでは大きな問題になる。

Python Version。

Library Version。

CUDA。

Model Weight。

Environment Variable。

Prompt Version。

これらが変われば結果も変わり得る。

したがって、

CodeだけではSystemを再現できない。

必要なのは、

```text
Code
+ Dependencies
+ Model
+ Configuration
+ Data
+ Runtime
```

である。

Containerを使う理由もここにある。

Execution Environmentそのものを管理対象にする。

────────

ConfigurationをCodeから分離する

研究段階では、

```python
MODEL_NAME = "model-a"
TEMPERATURE = 0.2
```

と直接書いてもよい。

しかしProductionでは、

Development。

Staging。

Production。

で設定が異なる。

API KeyやCredentialをSource Codeへ書くこともできない。

そこで、

Code ≠ Configuration ≠ Secret

という境界を設ける。

この小さな分離が、Cloud、Security、Deploymentへつながっていく。

────────

DataもSystemの一部である

AIではSoftwareだけをVersion管理しても十分ではない。

Training Dataが変わる。

Knowledge Baseが更新される。

Embedding Modelが変わる。

Vector Databaseの内容が変わる。

すると同じCodeでもOutputが変化する。

したがって、

AI System = Code + Model + Data + Configuration

として管理する必要がある。

────────

LLMではPromptもVersionになる

Generative AIでは、さらにPromptが加わる。

例えば、

```python
SYSTEM_PROMPT = """
You are an assistant for reviewing regulated documents.
Use only the supplied evidence.
If evidence is insufficient, request human review.
"""
```

このPromptを変更すればSystem Behaviorが変わる。

したがってPromptは単なる文章ではない。

Production AIでは、

Prompt = Executable Configuration

としてVersion管理する必要がある。

────────

Outputを構造化する

Research Demoでは自然言語をそのまま表示してもよい。

しかしEnterprise Systemでは、後続処理が必要になる。

そこでOutputをSchemaへ変える。

```python
from pydantic import BaseModel
from typing import Literal

class ReviewResult(BaseModel):
   status: Literal["pass", "review_required", "reject"]
   reason: str
   evidence_ids: list[str]
```

これによってAI Outputを、

Databaseへ保存する。

UIへ表示する。

Audit Logへ残す。

Workflowへ渡す。

ことが容易になる。

自然言語生成をEnterprise Systemへ組み込む重要な一歩である。

────────

Model OutputとBusiness Decisionを分ける

高信頼AIでは、さらに重要な境界がある。

AIが、

```text
risk = high
```

と出力した。

だからSystemが自動的に重要Operationを停止する。

この二つを直接接続してよいとは限らない。

必要なのは、

```text
Model Output
     ↓
Validation
     ↓
Business Rule
     ↓
Human Approval
     ↓
Action
```

というLayerである。

つまり、

Prediction ≠ Decision ≠ Action

である。

この分離は本書全体を貫く重要な原則になる。

────────

Errorを前提にする

Research CodeではErrorが起きればStack Traceを読んでResearcherが修正できる。

Productionでは夜中にErrorが起きるかもしれない。

APIがTimeoutする。

LLM Providerが停止する。

Databaseへ接続できない。

Sensor Dataが欠損する。

Modelが想定外のOutputを返す。

したがって、

```python
try:
   result = run_inference(request)
except TimeoutError:
   result = fallback(request)
```

のようにFailureをSystem Designへ組み込む。

重要なのは例外処理の構文そのものではない。

Failure is expected.

という設計思想である。

────────

Observability

Systemが動いているだけでは足りない。

何が起きているか分からなければ運用できない。

必要になるのがObservabilityである。

Logs。

Metrics。

Traces。

AI固有のEvaluation。

例えば、

```text
request_id
user_id
model_version
prompt_version
retrieved_document_ids
latency
token_usage
output_status
review_result
```

を記録する。

すると、

どのModelが答えたのか。

何を参照したのか。

どこで遅延したのか。

Humanが修正したのか。

を追跡できる。

────────

Auditはさらに深い

製薬、Energy、原子力、重要なEnterprise Systemでは、ObservabilityだけでなくAuditabilityが必要になる。

単にDebugできるのではなく、

後から意思決定の経路を再構成できること

が求められる。

誰が実行したか。

どのDataを参照したか。

AIは何を提案したか。

誰がApproveしたか。

何が実行されたか。

ここでAI EngineeringはGovernanceと接続する。

────────

Rustが入る場所

すべてをPythonだけで構築する必要はない。

Low Latency。

Concurrency。

Memory Safety。

Long-running Runtime。

Edge Processing。

Device Integration。

こうしたRequirementが強くなれば、RustのようなLanguageが有効になる。

例えば、

```text
Python
 └─ Model / Research / Evaluation

Rust
 └─ Runtime / High-performance Service / Edge

TypeScript
 └─ Enterprise UI / Workflow / API Integration

SQL
 └─ Authoritative Business Data / Audit / State
```

というRole Separationが考えられる。

重要なのはLanguageを増やすことではない。

Requirementに応じて適切なRuntimeを選択することである。

────────

TypeScriptはHumanとの境界を担う

AIが企業で使われるためにはInterfaceが必要になる。

ReviewerがOutputを見る。

Evidenceを確認する。

修正する。

Approveする。

履歴を見る。

このHuman–AI InterfaceではTypeScriptが重要になる。

AI SystemはBackend Modelだけでは完成しない。

```text
AI

API

TypeScript Application

Human
```

まで接続して初めて業務Systemになる。

────────

SQLは「現在」を保持する

LLMは生成する。

しかし企業は、生成された文章だけで動いているわけではない。

Customer。

Document。

Approval State。

User Permission。

Execution History。

Audit Record。

これらのAuthoritative Dataを保持する必要がある。

そこでRelational DatabaseとSQLが重要になる。

AIがProbabilityを扱う一方、企業Systemには、

現在何が正式な状態なのか

を保持するLayerが必要である。

────────

Cloudは実行環境である

研究者のLaptopから企業Systemへ移ると、Computeも変わる。

API。

Container。

Database。

Object Storage。

Queue。

Monitoring。

Identity。

Secret Management。

GPU。

これらをCloud Infrastructureとして組み合わせる。

Cloudとは単なるServerの置き場所ではない。

AIを継続的に運用するためのExecution Environment

である。

────────

しかしCloudだけではない

高機密Domainでは、すべてのDataを外部Cloud Serviceへ送れるとは限らない。

Private Environment。

On-premises。

Local LLM。

Edge AI。

を選択する必要がある。

したがって本書では、

```text
Public Cloud
Private Cloud
On-premises
Local
Edge
```

を二者択一として扱わない。

Security、Latency、Cost、Data Governanceに応じて配置する。

────────

Research PrototypeとProduction Architecture

ここまでを整理すると、Research Prototypeは比較的小さい。

```text
Data

Model

Result
```

Production Architectureは異なる。

```text
User / Machine
     ↓
Authentication
     ↓
Application
     ↓
Workflow / Agent
     ↓
AI Service
     ↓
Model / RAG / Tools
     ↓
Validation
     ↓
Human Approval
     ↓
Execution
     ↓
Database / Audit
     ↓
Monitoring / Evaluation
```

Modelは中心にある。

しかし、ModelだけがSystemではない。

────────

Physical AIではさらに外へ広がる

AIがPhysical Worldへ出ればArchitectureはさらに拡張される。

```text
Physical Environment
       ↓
Sensor
       ↓
Edge Runtime
       ↓
Perception AI
       ↓
Planning
       ↓
Safety Layer
       ↓
Human / Control
       ↓
Robot
       ↓
Physical Environment
```

ここではAI ErrorがPhysical Actionへ接続する。

だからSafetyとFail-safeがArchitectureの第一級Componentになる。

────────

研究コードを捨てるのではない

Production化とは、Research Codeを否定することではない。

研究には研究に適したArchitectureがある。

ProductionにはProductionに適したArchitectureがある。

重要なのは、その間にTranslation Layerを作ることである。

```text
Research
  ↓
Experiment
  ↓
Validated Method
  ↓
Reusable Component
  ↓
Production Service
  ↓
Industrial Workflow
```

研究速度を失わず、本番信頼性を獲得する。

それがResearch-to-Production Architectureの目的である。

────────

ProductionからResearchへ戻れるようにする

さらに、本書では一方向のProduction化だけを扱わない。

ProductionでFailureが起きる。

Humanが修正する。

Domain ExpertがFeedbackする。

Environmentが変化する。

それをResearchへ戻す。

```text
Research
  ↓
Production
  ↓
Observation
  ↓
Evaluation
  ↓
Feedback
  ↓
Research
```

この循環を成立させるため、Production Systemには最初からEvaluationとLoggingが必要になる。

────────

EQUES型実装の核心

第1冊で見たEQUESの企業構造を技術Architectureへ翻訳すると、重要なのは「最新AIを使うこと」ではない。

研究成果を受け取り、

Domainへ適応し、

Systemへ変換し、

Humanへ接続し、

高信頼に運用し、

現場から学び、

再びResearchへ戻す。

その全工程を実装可能にすることである。

最小化すれば、

Research Code
→ Domain AI
→ Production System
→ Human / Industry
→ Evaluation
→ Next Research

となる。

────────

本書はModelの作り方だけを扱わない

PythonでModelを作る。

LLMをFine-tuningする。

RAGを構築する。

それだけなら、AI Engineeringの一部分である。

本書が対象にするのは、その外側まで含めたArchitectureである。

PythonでIntelligenceを作る。

LLMとRAGをDomainへ適応する。

AgentでWorkflowへ接続する。

TypeScriptでHuman Interfaceを作る。

SQLでStateとAuditを保持する。

Cloudで運用する。

RustとEdgeでPhysical Worldへ近づく。

SensorとRobotを接続する。

OptimizationとQuantumを必要な計算Problemへ使う。

EvaluationとHuman Feedbackによって継続改善する。

これらを一つのIndustrial AI Systemとして接続する。

────────

研究コードは、問いを開くために書かれる。

本番システムは、その答えを現実世界で継続的に使うために作られる。

そして優れた産業AI Architectureは、その二つを分断しない。

Researchの自由度をProductionへ翻訳し、ProductionのRealityをResearchへ返す。

この双方向性こそが、EQUES型AI実装の出発点である。

次節では、その間に存在する最初の大きな断絶――PoCとProductionの距離を、Architecture、Data、Security、Operation、Evaluationの観点から具体的に分解していく。
第2節 PoCとProductionの距離

AI開発では、PoCが成功する瞬間がある。

実データを入力すると、期待した分類結果が出る。LLMが専門文書を生成する。RAGが関連資料を検索し、質問へ回答する。画像認識Modelが対象物を検出する。

Demoを見る限り、Technologyは完成したように見える。

しかし産業実装では、ここが出発点になる。

PoCで動くことと、Productionで使えることの間には大きな距離がある。

この距離を埋めるEngineeringこそ、EQUES型AI社会実装の中心である。



PoCが検証するもの

Proof of Conceptの目的は、文字通りConceptが成立するかを確認することにある。

例えば製薬Documentなら、

「LLMを使って特定の文書作成を支援できるか」

を検証する。

Physical AIなら、

「CameraやSensor Dataから必要な状態を認識できるか」

を試す。

したがってPoCでは、最小限の構成で仮説を検証することが合理的である。

Problem
  ↓
Hypothesis
  ↓
Prototype
  ↓
Evaluation
  ↓
Go / No-Go

最初から巨大なProduction Systemを作る必要はない。

むしろ作るべきではない。



PoCの成功条件

PoCでは問いを限定する。

特定Dataset。

限定されたUser。

限定されたUse Case。

限定された期間。

例えば、

入力文書100件

RAG

LLM

回答精度を評価

という構成でもTechnology Feasibilityは確認できる。

この段階で重要なのは、

Can it work?

である。



Productionでは問いが変わる

本番導入では問いが、

Can it keep working safely?

へ変わる。

Userが100人になったらどうなるか。

Documentが100万件になったらどうなるか。

Model Providerが停止したらどうするか。

機密情報を誰が閲覧できるか。

誤回答をどう発見するか。

新しいModelへ変更したら性能は維持されるか。

Productionでは、Technologyそのものだけでなく、その周囲にあるSystem全体が評価対象になる。



100件で動くことと100万件で動くこと

PoCではDataをMemoryへ読み込み、単純な検索を行ってもよい。

ProductionではData Volumeが増える。

そこで、

SQL。

Object Storage。

Vector Database。

Cache。

Index。

Queue。

といったData Architectureが必要になる。

つまり、

PoC
Data → Model

から、

Production
Data Source
  ↓
Ingestion
  ↓
Validation
  ↓
Storage
  ↓
Index
  ↓
Retrieval
  ↓
Model

へ変わる。

Modelの前後が大きくなる。



Demo UserとReal User

PoCではDeveloper自身が操作することも多い。

入力形式を知っている。

SystemのLimitも理解している。

Errorが起きても原因を推測できる。

しかしProductionでは、Systemを作っていないHumanが使う。

入力を間違える。

想定外のQuestionをする。

AI Outputを過信する。

したがって、

Developer-friendly Prototype

から、

Human-safe Product

への変換が必要になる。



Happy PathからFailure Pathへ

PoCは正常に動くCaseを中心に作りやすい。

Productionでは異常系の方が重要になる。

入力が空だったら。

File Formatが違ったら。

Databaseが落ちたら。

LLMがTimeoutしたら。

Retrieval Resultが0件だったら。

ModelがSchema外のOutputを返したら。

Production Architectureでは、

Success Path
+
Failure Path
+
Recovery Path

を設計する。



LLMは常に正しい形式を返すとは限らない

例えばAIへJSON出力を要求しても、想定外のResponseが返る可能性がある。

そこでSchema Validationを行う。

from pydantic import BaseModel, ValidationError
class AIResult(BaseModel):
   status: str
   reason: str
def validate_output(raw: dict) -> AIResult:
   try:
       return AIResult.model_validate(raw)
   except ValidationError as exc:
       raise ValueError("invalid AI output") from exc

重要なのはこのCodeそのものではない。

AI Outputを信頼境界の外側に置く

という原則である。

Modelが返したから正しい、とは考えない。



AccuracyからRiskへ

PoCではAccuracyが主要Metricになることが多い。

しかしProductionでは、

False Positive。

False Negative。

Hallucination。

Latency。

Cost。

Availability。

Security Incident。

Human Review Time。

まで見る必要がある。

特に高信頼Domainでは、平均Accuracyだけでは不十分である。

例えば99%正しくても、残り1%がCriticalなFailureなら採用できない可能性がある。



Errorを同じ重さで数えない

産業AIでは、Errorの種類によってCostが異なる。

そこで単純Accuracyから、

Risk-weighted Evaluation

へ進む。

例えば、

Minor Error          = 1
Review Required      = 5
Critical False Pass  = 100

のように、Business RiskをEvaluationへ反映する。

実際のWeightはDomain Expertと設計する。

ここでAI EvaluationとBusiness Requirementが接続する。



Domain Expertが必要になる理由

PoCからProductionへ進むと、AI Engineerだけでは判断できない問題が増える。

製薬なら品質保証。

Energyなら設備Operation。

原子力ならSafety。

AI EngineerはModel Behaviorを理解する。

Domain ExpertはFailure Consequenceを理解する。

したがって、

AI Engineer
    ⇅
Domain Expert
    ⇅
Operator

という協働が必要になる。

Production Requirementは、この境界から生まれる。



Human Reviewを後付けしない

高信頼AIでは、

「最後に人が確認する」

だけではArchitectureにならない。

誰が確認するのか。

何を確認するのか。

どのEvidenceを見るのか。

何分以内に判断するのか。

Rejectした場合どうなるのか。

これをWorkflowとして定義する。

AI Generate
   ↓
Automated Check
   ↓
Human Review
   ↓
Approve / Reject
   ↓
Record

HumanはSystem外部の例外処理ではない。

Production ArchitectureのComponentである。



PoCでは共有Accountでも動く

ProductionではIdentityが必要になる。

誰がLoginしたか。

どのRoleを持つか。

どのDataを見られるか。

どのActionを実行できるか。

そこで、

Authentication

と、

Authorization

を分離する。

「誰であるか」と「何をしてよいか」は別の問題である。



CapabilityとPermissionを分ける

AI Agentでは特に重要になる。

Agentには、

Documentを読む能力。

Draftを作る能力。

Databaseを更新する能力。

External Systemを操作する能力。

があるかもしれない。

しかし、

Capability ≠ Permission

である。

できるからといって、実行を許可する必要はない。



PoCではLogがなくても進める

Developerが画面を見ていれば挙動を確認できる。

Productionではそれでは足りない。

Request ID。

User ID。

Model Version。

Prompt Version。

Retrieved Documents。

Tool Calls。

Approval。

Execution Result。

を記録する。

これによって初めて、

「何が起きたのか」

を後から再構成できる。



LoggingからAuditへ

通常のApplication LogはDebugのために使われる。

高信頼AIではさらに、

Decision Trace

を残す。

User Request
  ↓
Retrieved Evidence
  ↓
Model Output
  ↓
Automated Validation
  ↓
Human Decision
  ↓
Executed Action

このChainを追えるようにする。

製薬や重要Infrastructureでは、これは単なるDeveloper ConvenienceではなくSystem Requirementになり得る。



SecurityがArchitectureを変える

PoCではPublic APIへDataを送れば数時間でDemoを作れることがある。

Productionでは、そのDataを外部Serviceへ送ってよいかを確認しなければならない。

Confidential Data。

Personal Data。

Regulated Data。

Critical Infrastructure Data。

用途によってDeployment Architectureそのものが変わる。

Public API
Private Cloud
Dedicated Environment
On-premises
Local Model
Edge

Securityは完成後に追加するLayerではない。

最初からArchitecture Decisionに入る。



RAGにもProduction Gapがある

PoCでは数十DocumentをVector Databaseへ入れればRAG Demoができる。

Productionでは、

Document Version。

Access Permission。

Deletion。

Metadata。

Freshness。

Duplicate。

Source Reliability。

が問題になる。

例えば退職したUserが閲覧できないDocumentを、RAG経由で取得できてはいけない。

つまりRetrievalにもAuthorizationが必要になる。



Knowledgeは更新される

Production Knowledge Baseは静的ではない。

Documentが追加される。

改訂される。

失効する。

そこで、

Document

Version

Validity

Access Policy

Index

を管理する。

RAGの品質はEmbedding Modelだけでは決まらない。

Knowledge LifecycleそのものがArchitectureの一部になる。



Modelも更新される

Foundation Modelは継続的に変化する。

新Versionが出る。

API Behaviorが変わる。

Costが変わる。

旧Modelが終了する。

だからApplicationを一つのModelへ強く結合すると、将来の変更Costが高くなる。

Model Adapterを置くことで、

Application
    ↓
Model Interface
    ↓
Model A / Model B / Local Model

と分離できる。



Model UpdateをそのままProductionへ出さない

新しいModelのBenchmarkが高い。

それだけでProductionへ切り替えるべきではない。

既存Test Setで評価する。

Domain Benchmarkで評価する。

Critical Casesを確認する。

Costを見る。

Latencyを見る。

Human Reviewへの影響を見る。

そしてReleaseする。

Candidate Model
     ↓
Offline Evaluation
     ↓
Domain Evaluation
     ↓
Safety / Security Check
     ↓
Staging
     ↓
Controlled Release

となる。



Stagingという中間世界

ResearchとProductionの間には、Staging Environmentを置く。

Productionに近いInfrastructure。

Productionに近いWorkflow。

しかし実業務へ直接影響しないEnvironment。

ここでIntegration Testを行う。

AI Systemでは、

Model TestだけでなくSystem Test

が必要になる。



Shadow Deployment

さらに既存Systemを止めず、新しいAIを裏側で動かす方法もある。

Userには旧Systemの結果を返す。

新Systemも同じInputを処理する。

結果だけ比較する。

Input
├─ Current System → Production Result
└─ New AI System → Shadow Result

これによってReal-world Distributionで性能を評価できる。



Gradual Rollout

Production Releaseも0か100かである必要はない。

一部User。

一部Department。

低Risk Task。

から開始する。

問題がなければ範囲を広げる。

これはAIの不確実性をDeployment Architectureで管理する方法である。



Rollbackできること

新Versionに問題が見つかったら、旧Versionへ戻せる必要がある。

Codeだけでなく、

Model。

Prompt。

Configuration。

Knowledge Index。

もVersion管理する。

つまり、

AI Deployment must be reversible.

変更可能性だけでなく、復元可能性を持たせる。



Availability

PoCは一時間動けば成功する場合がある。

Productionでは毎日利用される。

Systemが停止するとBusinessが止まる。

そこで、

Health Check。

Retry。

Timeout。

Redundancy。

Backup。

Disaster Recovery。

が必要になる。

AIはSoftware Engineeringの基本原則から免除されない。



CostもProduction Requirementになる

PoCでは数千円のAPI Costは問題にならない。

ProductionではRequestが百万回になる可能性がある。

すると、

Token Cost。

GPU Cost。

Storage Cost。

Network Cost。

Human Review Cost。

を含めて考える。

最も高性能なModelをすべてのTaskへ使うことが最適とは限らない。



Model Routing

簡単なTaskにはSmall Model。

難しいTaskにはLarge Model。

機密TaskにはLocal Model。

Critical TaskにはHuman Review。

というRoutingが可能である。

Request
  ↓
Risk / Complexity Classification
  ├─ Small Model
  ├─ Large Model
  ├─ Local Model
  └─ Human

Performance、Cost、Trustを同時に最適化する。



Physical AIでは距離がさらに広がる

RobotのPoCでは、

「対象物を認識してArmが動いた」

ことで成功と判断できる場合がある。

Productionでは、

Lightingが変わる。

Sensorが汚れる。

Networkが切れる。

Humanが近づく。

Obstacleが増える。

Hardwareが劣化する。

RealityはLabより複雑である。



Safety Layer

Physical AIでは、

AI Decision
    ↓
Safety Validation
    ↓
Control System
    ↓
Physical Action

とする。

AIがActionを提案しても、Safety Constraintに違反すれば実行しない。

これはSoftware AI以上に重要なProduction Boundaryである。



Edge Runtime

Physical SystemではCloud Latencyを待てない場合がある。

Emergency Stop。

Collision Avoidance。

Real-time Perception。

こうした処理はEdgeへ置く。

一方、大規模AnalysisやTrainingはCloudへ置ける。

Cloud
 ⇅
Edge
 ⇅
Sensor / Robot

Production化すると、Compute PlacementそのものがSystem Designになる。



PoCからProductionへ進む判定

PoCが成功したからProductionへ進むのではない。

複数のGateを通過する。

Technical Feasibility
       ↓
Domain Validity
       ↓
Business Value
       ↓
Security
       ↓
Reliability
       ↓
Operational Readiness
       ↓
Production

どこかで成立しなければ、止める判断も必要になる。



PoCを捨てる判断も成功である

PoCの目的はProduction化を正当化することではない。

Technologyが不適切だと分かることにも価値がある。

Accuracyが不足する。

Costが合わない。

Humanの方が速い。

Riskが高すぎる。

その場合、

No-Go

という結論を出す。

無理にAI化しないことも、優れたAI Engineeringである。



Production Readiness

Productionへ進む前に、最低限確認する。

* Domain上の有効性が検証されているか
* Failure Modeを把握しているか
* Data Accessが管理されているか
* Outputを検証できるか
* Human Responsibilityが定義されているか
* LoggingとAuditが可能か
* Security Requirementを満たすか
* Monitoringできるか
* Rollbackできるか
* 運用責任者が存在するか

ここまで来て初めて、AIは「Demo」から「Industrial System」へ近づく。



PoCとProductionの間にあるもの

両者の差を最小化すると、

PoC

├─ Architecture
├─ Data Engineering
├─ Domain Validation
├─ Security
├─ Human Workflow
├─ Evaluation
├─ Observability
├─ Reliability
├─ Governance
└─ Operations

Production

となる。

つまりPoCとProductionの距離とは、単なるCode量の差ではない。

責任を持って継続運用するために必要な構造の差である。



EQUES型実装の位置

EQUES型AI実装の価値は、研究Technologyを知っていることだけではない。

研究段階で成立したCapabilityを、

Domain Requirementへ翻訳する。

PoCで検証する。

Production Architectureへ変換する。

Humanを組み込む。

高信頼に運用する。

現場からFeedbackを取得する。

そして再びResearchへ返す。

ここまでを一つのProcessとして扱うことにある。



研究からPoCまでは、

可能かどうか

を問う。

PoCからProductionまでは、

現実の産業の中で、継続的かつ安全に使えるか

を問う。

この二つは似ているようで異なる。

そして、その距離を正しく認識することが、AI社会実装の最初の条件になる。

次節では、この距離が産業ごとに異なる理由をさらに深く掘り下げる。

一般的なAIを特定産業のKnowledge、Data、Workflow、Evaluationへ適応させる――Domain-specific AIという第三の層である。
第3節 Domain-specific AI

AIは汎用化している。

一つのLLMが、文章生成、要約、翻訳、検索支援、Coding、Question Answeringまで幅広いTaskを扱える。

しかし産業実装では、汎用性だけでは足りない。

製薬には製薬のLanguageがある。

EnergyにはEnergyのDataがある。

原子力には独自のSafety Requirementがある。

Enterpriseには企業ごとのWorkflow、Permission、Master Data、Approval Ruleがある。

同じAI Modelを利用しても、必要とされるKnowledge、Accuracy、Risk、OperationはDomainごとに異なる。

そこで必要になるのが、

Domain-specific AI

である。

Domain-specific AIとは、単に専門用語を多く知っているAIではない。

General AI Capabilityを、特定DomainのKnowledge、Data、Task、Evaluation、Workflow、Governanceへ適応させたAI System

である。



General AIとDomain AI

General-purpose AIは広いTaskへ対応する。

一方、Domain AIは対象範囲を狭くする代わりに、その領域で必要な条件を深く扱う。

概念的には、

General AI
  ↓
Domain Knowledge
  ↓
Domain Task
  ↓
Domain Evaluation
  ↓
Domain Workflow
  ↓
Domain AI

となる。

重要なのは、Modelだけを専門化するのではないことである。

System全体をDomainへ適応する。



「知っている」と「使える」は違う

LLMがGMPという言葉を説明できる。

それだけでは製薬AIとは言えない。

製薬業務で必要なのは、

どのDocumentを参照するのか。

どの項目が重要なのか。

どこでHuman Reviewが必要か。

どのOutputを正式記録として扱えるか。

どの情報を外部Modelへ送ってよいか。

まで理解したSystemである。

つまり、

Domain Knowledge ≠ Domain Implementation

である。



Domain-specific AIの五層

Domain AIを実装する場合、少なくとも五つのLayerを考えると整理しやすい。

1. Domain Knowledge
2. Domain Data
3. Domain Task
4. Domain Evaluation
5. Domain Workflow

この五つが揃って初めて、汎用AIが産業AIへ近づく。



第1層――Domain Knowledge

最初に必要なのはKnowledgeである。

製薬なら、

GMP。

品質保証。

逸脱。

変更管理。

年次照査。

薬学。

Energyなら、

設備。

Inspection。

Maintenance。

Sensor。

Safety。

こうしたConceptを整理する。

Knowledge Sourceには、

Manual。

Regulation。

Internal Document。

Standard Operating Procedure。

Historical Report。

Expert Knowledge。

などがある。



KnowledgeをそのままLLMへ入れない

大量のDocumentをPromptへ貼り付けるだけではScaleしない。

そこでKnowledgeを構造化する。

例えば、

from dataclasses import dataclass
@dataclass
class DomainDocument:
   document_id: str
   title: str
   version: str
   effective_date: str
   document_type: str
   access_level: str

単なるTextではなく、

Version。

Validity。

Type。

Permission。

を持たせる。

Domain AIでは、Knowledgeの意味だけでなくLifecycleも重要になる。



第2層――Domain Data

KnowledgeとDataは同じではない。

KnowledgeはRuleやManualを含む。

Dataは実際の業務状態を含む。

製薬なら、

品質関連記録。

製造情報。

Document Metadata。

Energyなら、

Sensor Time Series。

Inspection Image。

Equipment State。

Maintenance History。

である。

AIが利用するDataは、

What the domain knows

だけでなく、

What is happening now

を表現する。



Data SchemaがDomainを表現する

Domain AIでは、Database Schemaそのものが業務理解になる。

例えば、

equipment
inspection
maintenance_event
sensor_reading
operator
approval

というEntityを定義する。

そのRelationshipを設計する。

するとDomain KnowledgeがSoftware Architectureへ変換される。



第3層――Domain Task

AIに何をさせるのかを明確にする。

「製薬に強いAIを作る」

では曖昧すぎる。

例えば、

Document Draft。

Consistency Check。

Knowledge Retrieval。

Anomaly Detection。

Risk Classification。

Maintenance Recommendation。

Task単位へ分解する。

つまり、

Domain → Concrete Task

へ落とす。



Task Definitionが最も重要になる

例えば、

「文書を確認する」

というTaskがある。

これを分解すると、

項目が欠落していないか。

数値が一致しているか。

日付が矛盾していないか。

記述内容がSourceと整合しているか。

という複数Taskになる。

AI Systemは、この具体化されたTaskを扱う。



第4層――Domain Evaluation

General Benchmarkで高性能でも、Domain Taskで高性能とは限らない。

そこで独自Evaluationが必要になる。

例えば、

General Benchmark
       ↓
Domain Benchmark
       ↓
Task-level Evaluation
       ↓
Critical Case Evaluation

という階層で見る。

JPharmaBenchのような取り組みは、このDomain Evaluationの考え方に接続する。



Domain Expertが正解を作る

Domain-specific Evaluationでは、AI Engineerだけで正解を決められない。

Domain Expertが必要になる。

どのOutputがAcceptableか。

どのErrorがCriticalか。

どこまで差異を許容するか。

これを定義する。

つまり、

Domain Expert → Evaluation Criteria

である。



第5層――Domain Workflow

最後に、そのAIを実際の業務へ組み込む。

AIが良いOutputを出しても、業務の外側にあるならValueは限定される。

例えば、

Business Event
   ↓
AI Processing
   ↓
Domain Validation
   ↓
Human Review
   ↓
Approval
   ↓
Enterprise System

へ接続する。

ここで初めてDomain AIがProduction Systemになる。



Domain-specific AIはModelだけではない

この五層をまとめると、

Model
+
Knowledge
+
Data
+
Task
+
Evaluation
+
Workflow
=
Domain AI System

となる。

これが本節の中心である。



Domain Adaptationの方法は一つではない

Domain AIを作る方法としてFine-tuningが注目されやすい。

しかし、最初からModel Trainingを行う必要はない。

選択肢には、

Prompt Engineering。

RAG。

Tool Use。

Fine-tuning。

Continued Pretraining。

Domain-specific Model。

がある。

どこまでModelそのものを変えるかはRequirement次第である。



Promptだけで十分な場合

General Modelが既にTaskを理解できる。

必要Knowledge量が小さい。

高いDomain-specific Reasoningが不要。

この場合、Promptだけで十分なこともある。

最小構成を選ぶ。

General Model
+
Domain Instruction
=
Domain Use

まずここから始める方が合理的である。



RAGが適する場合

Knowledgeが頻繁に更新される場合、Fine-tuningよりRAGが適することがある。

Regulation。

Manual。

Internal Document。

これらを外部Knowledgeとして管理する。

Question
 ↓
Retriever
 ↓
Domain Documents
 ↓
LLM
 ↓
Answer + Evidence

KnowledgeをModel Weightへ埋め込まず、参照可能な状態に保つ。



Fine-tuningが適する場合

一方、Task Behaviorそのものを変えたい場合にはFine-tuningが有効になる。

特定Formatで回答する。

Domain-specificな分類を行う。

独特のLanguage Patternを扱う。

このような場合である。

重要なのは、

Knowledge Problem

と、

Behavior Problem

を区別することだ。

Knowledgeが不足しているならRAG。

Behaviorを変えたいならFine-tuning。

この切り分けが必要になる。



Domain-specific Model

さらに深く入る場合、Domain-specific LLMを開発する。

ここでは、

Training Data。

Compute。

Evaluation。

Deployment。

が必要になる。

JPharmatronのような取り組みは、このLayerに位置づけられる。

しかし独自Modelを持つこと自体をGoalにしてはいけない。



Modelを作る理由を定義する

Domain-specific Modelを開発する前に問う。

General Modelでは何が不足しているのか。

Security上Local Deploymentが必要なのか。

Costを下げたいのか。

専門Knowledgeが足りないのか。

Domain Benchmarkで性能差があるのか。

つまり、

Build a Model because the requirement demands it.

である。



Local AIという要件

Domain-specific AIでは、性能以外の理由からLocal Modelが必要になる場合もある。

機密Dataを外部へ出せない。

Networkが使えない。

Latencyを下げたい。

Costを予測可能にしたい。

この場合、

Enterprise Data
    ↓
Local Model
    ↓
Local Application

というArchitectureを選択する。

Model CapabilityだけでなくDeployment Requirementを見る。



Domain-specific RAG

RAGもDomainごとに設計が変わる。

単純なSemantic Searchだけでは不十分な場合がある。

Document Type。

Version。

Effective Date。

Department。

Permission。

をFilterに使う。

例えば、

SELECT *
FROM documents
WHERE document_type = 'quality'
 AND is_active = TRUE
 AND access_level <= :user_access;

この結果をVector Retrievalと組み合わせる。

つまり、

Semantic Retrieval + Domain Constraint

である。



Hybrid Retrieval

Domain用語ではExact Matchが重要な場合がある。

Document Number。

Product Code。

Chemical Name。

Equipment ID。

そこで、

Keyword Search。

Vector Search。

Metadata Filter。

を組み合わせる。

Query
 ├─ Keyword
 ├─ Vector
 └─ Metadata
       ↓
   Re-ranking
       ↓
     Context

これがHybrid Retrievalである。



Domain Ontology

より高度なDomain AIではOntologyを持つこともできる。

例えば製薬なら、

Product。

Batch。

Process。

Deviation。

Document。

Approval。

それぞれのRelationshipを定義する。

Energyなら、

Facility。

Equipment。

Sensor。

Event。

Maintenance。

Operator。

となる。

Ontologyがあれば、AIがDomain Structureへより明確に接続できる。



Knowledge Graphとの接続

OntologyをGraphとして保持すれば、

Equipment
  ├─ hasSensor → Sensor
  ├─ hasEvent → FailureEvent
  └─ requires → MaintenanceProcedure

のようなRelationshipを検索できる。

LLMとKnowledge Graphを組み合わせることで、単純Text Retrievalだけでは扱いにくい構造を利用できる。



Domain RuleはLLMへ丸投げしない

Critical RuleをすべてNatural LanguageでLLMに解釈させるのは危険な場合がある。

明確なRuleはSoftware側へ置く。

def requires_human_review(risk_score: float) -> bool:
   return risk_score >= 0.8

曖昧な判断をAIへ。

決定的なConstraintをRuleへ。

つまり、

AI + Deterministic Logic

で設計する。



High-reliability DomainほどHybridになる

製薬やEnergyでは、

Machine Learning。

Rule-based System。

Optimization。

Human Judgment。

を組み合わせる必要がある。

一つの巨大Modelですべてを解く必要はない。

Domain System
├─ LLM
├─ ML Model
├─ Rules
├─ Database
├─ Optimizer
└─ Human

このHybrid ArchitectureがIndustrial AIでは重要になる。



Domain-specific AI Agent

AgentをDomainへ入れる場合も同じである。

General AgentへすべてのToolを与えるのではない。

例えば製薬Agentなら、

Document Search。

Draft Creation。

Consistency Check。

Review Request。

だけを許可する。

Domain Agent
  ↓
Allowed Tools
  ├─ search_documents
  ├─ create_draft
  ├─ check_consistency
  └─ request_review

DomainとRiskに応じてCapabilityを制限する。



Tool SchemaもDomain Knowledgeである

Function CallingのSchemaは、単なるAPI Definitionではない。

業務で何が可能かを表現する。

例えば、

def request_quality_review(
   document_id: str,
   reviewer_role: str,
   reason: str
) -> str:
   ...

このFunctionには、

Document。

Reviewer。

Reason。

というDomain Conceptが埋め込まれている。

つまりTool InterfaceもDomain Modelの一部である。



Domain-specific Security

Domainが変わればSecurity Requirementも変わる。

誰が何を見られるか。

誰がApproveできるか。

どのDataを外部Modelへ送れるか。

Role-based Access ControlをDomain Roleに合わせる。

Researcher
Reviewer
Approver
Operator
Administrator

Role自体がBusiness Logicになる。



Domain-specific Audit

Audit LogもGeneral Logだけでは足りない。

例えば、

Document ID。

Model Version。

Evidence。

Reviewer。

Approval Timestamp。

を記録する。

Physical AIなら、

Sensor State。

Action。

Operator Override。

を記録する。

つまりAudit SchemaもDomainによって変わる。



Domain-specific Observability

Monitoringも同じである。

LLM Applicationなら、

Hallucination Rate。

Retrieval Success。

Human Correction Rate。

Physical AIなら、

Sensor Failure。

Control Latency。

Emergency Stop。

を見る。

同じObservability PlatformでもMetricはDomain-specificになる。



Domain-specific Failure Mode

産業AIでは、何が失敗なのかをDomainごとに定義する。

製薬では、

Critical Informationの欠落。

Document間の重大な不整合。

Energyでは、

異常の見逃し。

False Alarm。

Physical AIでは、

Unsafe Action。

Failure Modeを先に定義する。

それをEvaluationとMonitoringへ反映する。



Domain-specific AIの中心はFailure Definitionである

これは重要な点である。

「何が正しいか」だけでなく、

何が危険な失敗か

を定義できること。

ここにDomain Expertの価値がある。

General AIは平均的なPerformanceを示せても、Critical Failureの意味までは自動的に理解しない。



Domain ExpertをArchitectureへ組み込む

Domain ExpertはRequirement Definitionだけに参加するのではない。

Dataset作成。

Evaluation。

Prompt Design。

Review Workflow。

Incident Analysis。

へ継続的に関与する。

Domain Expert
   ⇅
AI Engineer
   ⇅
Production System

このLoopがDomain AIを継続改善する。



Knowledge Transfer

AI EngineerがDomainを学ぶ。

Domain ExpertがAIを学ぶ。

この双方向Learningによって共通Languageが形成される。

結果として、

Requirement Definitionが速くなる。

Failure Analysisが正確になる。

新しいUse Caseを発見しやすくなる。

Domain-specific AIは、TechnologyだけでなくTeam Capabilityでもある。



製薬からEnergyへ再利用できるもの

Domain-specific AIは、Domainごとにすべてをゼロから作るという意味ではない。

再利用できるCoreがある。

Evaluation Infrastructure。

Human Approval。

Audit。

Security。

RAG Framework。

Model Routing。

これらは共通化できる。

一方、

Domain Knowledge。

Rules。

Failure Definition。

Workflow。

は個別化する。

つまり、

Common AI Core
     +
Domain-specific Layer

である。



Trusted Coreという考え方

EQUES型Architectureでは、この共通部分をTrusted Coreとして持つことができる。

Trusted Core
├─ Identity
├─ Security
├─ Evaluation
├─ Audit
├─ Observability
├─ Model Gateway
└─ Human Approval

その上に、

Pharmaceutical Layer
Energy Layer
Physical AI Layer

を載せる。

これによってDomain差を保持しながらEngineering Assetを再利用できる。



Domain-specific AIとVertical AI

BusinessのLanguageでは、Domain-specific AIはVertical AIへ接続する。

Horizontal AIは多業種に同じCapabilityを提供する。

Vertical AIは特定IndustryのWorkflowまで深く扱う。

その差はModelではなく、Domain Integration Depthにある。

General Tool
  ↓
Domain Assistant
  ↓
Domain Workflow
  ↓
Vertical AI System

下へ行くほどIndustry固有のKnowledgeが増える。



Domain DepthがMoatになる

Foundation Model自体がCommodity化しても、

Domain Knowledge。

Evaluation Set。

Workflow Integration。

Customer Trust。

は簡単にはCommodity化しない。

したがってDomain-specific AIでは、

Model Advantage

より、

Domain Integration Advantage

が長期的な差別化になる可能性がある。



ただしOver-specializationにも注意する

一つのCustomerに合わせすぎると、Reusable Productにならない。

一つのDomainに閉じすぎると、共通Technologyを再利用できない。

したがって、

Specific enough to create value, general enough to reuse.

というBalanceが必要になる。



Domain-specific AIの開発手順

実装の流れを最小化すると、

1. Domain Problemを定義する
2. Domain Expertを参加させる
3. Knowledge / Dataを整理する
4. Taskを具体化する
5. Baselineを作る
6. General Modelで検証する
7. RAG / Fine-tuningを必要に応じて追加する
8. Domain Evaluationを作る
9. Human Workflowへ接続する
10. Production Feedbackで改善する

最初から巨大なDomain ModelをTrainingする必要はない。

Requirementに応じてDepthを増やす。



Smallest Sufficient Model

これは重要な設計原則になる。

必要なTaskを満たせる最小のSystemを選ぶ。

Promptで足りるならPrompt。

RAGで足りるならRAG。

Fine-tuningが必要なら追加する。

Local Modelが必要なら構築する。

つまり、

Smallest Sufficient AI Architecture

を選ぶ。

ComplexityはRequirementによって正当化されるべきである。



Domain-specific AIは固定されない

Domain Knowledgeは更新される。

Regulationが変わる。

Workflowが変わる。

Productが変わる。

したがってDomain AIも継続更新する必要がある。

Knowledge Baseを更新する。

Evaluation Setを追加する。

Promptを変更する。

Modelを交換する。

Human Feedbackを反映する。

つまりDomain-specific AIもContinuous Systemである。



Domain-specific AIの最小構造

本節全体を圧縮すると、

General AI
   ↓
Domain Knowledge
   ↓
Domain Data
   ↓
Domain Task
   ↓
Domain Evaluation
   ↓
Domain Workflow
   ↓
Production Feedback

となる。

そしてFeedbackが再びKnowledge、Evaluation、Modelへ戻る。



AIを産業へ実装するためには、汎用AIの能力をそのまま持ち込むだけでは足りない。

Domainの言葉を理解し、DomainのDataを扱い、DomainのTaskを実行し、Domainの基準で評価され、DomainのWorkflowの中でHumanとともに動く。

そこまで到達して初めて、AIは産業システムの一部になる。

EQUES型AI実装において重要なのは、General AIを無理に専門化することではない。

General CapabilityとDomain Realityの間に、正しいArchitectureを作ることである。

そしてDomainが製薬、Energy、原子力のようにFailure Costの高い領域へ進むと、次に問われるのは専門性だけではなく信頼性になる。

次節では、Domain-specific AIのさらに上に必要となる設計条件――高信頼AIを、Evaluation、Evidence、Security、Human Oversight、Audit、Fail-safeまで含めたSystem Architectureとして具体化していく。
第4節 高信頼AI

AIが産業の中で重要な判断や業務を担うほど、単に「高性能であること」だけでは不十分になる。

正しい結果を出す。

速く処理する。

大量のDataを扱う。

これらは重要である。

しかし製薬、Energy、原子力、Infrastructureのような高信頼領域では、さらに問われる。

なぜその結果になったのか。

どのDataを参照したのか。

どのModel Versionを使ったのか。

誰が確認したのか。

異常時に停止できるのか。

後から再現できるのか。

つまり必要なのは、

High-performance AI

ではなく、

High-reliability AI System

である。



高信頼AIは一つのModelではない

高信頼AIというと、極めて正確なModelを想像しやすい。

しかし実際には、

Modelだけを信頼できてもSystemは信頼できない。

Dataが古いかもしれない。

Retrievalが誤っているかもしれない。

Promptが変わっているかもしれない。

Userが誤操作するかもしれない。

Networkが落ちるかもしれない。

そこで、信頼性はSystem全体で作る。

AI Model
+
Data Quality
+
Evaluation
+
Evidence
+
Security
+
Human Oversight
+
Audit
+
Failure Handling
=
Trusted AI System

これが本書における高信頼AIの基本構造である。



Accuracyだけでは足りない

例えばModel Accuracyが99%だったとする。

高い数字に見える。

しかし残り1%が、

単純な表記揺れなのか。

重要な警告の見逃しなのか。

では意味がまったく違う。

したがって、

Average Accuracy

だけではなく、

Failure Severity

を見る必要がある。



Risk-based Evaluation

高信頼AIでは、ErrorをRiskで重みづける。

Minor Formatting Error        → Low Risk
Wrong Supporting Evidence     → Medium Risk
Critical False Negative       → High Risk
Unsafe Physical Action        → Critical Risk

評価Metricもこれに合わせる。

単なる平均Scoreではなく、

Critical Error Rate。

False-negative Rate。

Human Escalation Rate。

などを見る。



AIを信頼する前に測る

Trustの前にEvaluationがある。

新しいModelを導入する。

まず測る。

Domain Datasetで評価する。

Critical Caseを評価する。

既存Modelと比較する。

その後で採用を判断する。

つまり、

Candidate AI
   ↓
Evaluation
   ↓
Risk Analysis
   ↓
Deployment Decision

である。



Evaluation Setを資産化する

高信頼AIではEvaluation Datasetが非常に重要になる。

過去のFailure。

典型Case。

Edge Case。

Critical Case。

を蓄積する。

例えばPythonでは、

from dataclasses import dataclass
@dataclass
class EvalCase:
   case_id: str
   input_text: str
   expected_status: str
   severity: str

のようにTest Caseを構造化できる。

重要なのはCodeではなく、

Failure Experienceを再利用可能なEvaluation Assetへ変えること

である。



Regressionを防ぐ

新しいModelは全体では高性能でも、一部Critical Taskで性能が落ちることがある。

そこでModel変更のたびに過去Testを再実行する。

Current Model
   ↓
Regression Suite
Candidate Model
   ↓
Regression Suite

Compare

これによって、

「新しくしたら重要なTaskが壊れた」

という問題をRelease前に発見する。



Continuous Evaluation

Productionへ出した後も評価は続く。

Model。

Prompt。

Knowledge Base。

User。

Environment。

すべてが変化するからである。

したがって、

Evaluation is not a phase.
Evaluation is a runtime capability.

である。



Evidenceを残す

LLMが回答した。

しかし高信頼Systemでは、回答だけでは不十分である。

何を根拠にしたのかを保持する。

例えば、

{
 "answer": "review required",
 "evidence_ids": ["doc-102", "doc-231"],
 "model_version": "v3",
 "confidence": 0.71
}

という構造にする。

HumanはEvidenceを確認できる。

後からAuditもできる。



EvidenceとExplanationを分ける

AIが説明文を生成したからといって、それが根拠とは限らない。

そこで、

Explanation

と、

Evidence

を分離する。

ExplanationはHuman理解のため。

Evidenceは検証のため。

高信頼AIではEvidenceの方が重要になる場合がある。



Source Traceability

RAGを使う場合、

どのDocument。

どのVersion。

どのChunk。

を参照したか記録する。

Answer
 ↓
Source Document
 ↓
Document Version
 ↓
Retrieved Section

Knowledgeが更新された後でも、当時の判断を再現できるようにする。



Versionをすべて持つ

AI Systemでは、Behaviorを決める要素が多い。

Code Version。

Model Version。

Prompt Version。

Knowledge Version。

Configuration Version。

それらを記録する。

つまり、

Decision State
=
Code
+ Model
+ Prompt
+ Knowledge
+ Config

である。



Human Oversight

高信頼AIではHumanをSystemへ明示的に組み込む。

AIが提案する。

Humanが確認する。

ApproveまたはRejectする。

例えば、

AI Result
  ↓
Risk Check
  ↓
Human Review
  ↓
Approve / Reject

である。



Humanを万能なSafety Layerにしない

しかし「最後にHumanが見る」だけでは不十分である。

大量のOutputを毎日確認すれば、Humanは疲れる。

AIを過信する。

見落とす。

そこでHuman Review自体も設計する。

High-risk Caseだけ強制Review。

Evidenceを強調表示。

低Confidenceを自動Escalation。

Second Reviewerを要求。

つまり、

Human Review must be engineered.



Automation Biasを抑える

HumanはAIが何度も正解すると、AIを信頼しすぎる傾向がある。

そこでUI側で、

Confidence。

Evidence。

Warning。

Contradiction。

を見せる。

AIのAnswerだけを大きく表示しない。

Humanが自分で判断できるInterfaceへする。



Uncertaintyを表現する

AIが常に一つの答えを出す必要はない。

例えば、

PASS
REVIEW_REQUIRED
INSUFFICIENT_EVIDENCE
REJECT

という状態を持たせる。

特に、

INSUFFICIENT_EVIDENCE

を第一級のOutputとして扱う。

「分からない」をSystem Behaviorとして実装する。



Confidence Threshold

例えば、

def decide(confidence: float) -> str:
   if confidence >= 0.90:
       return "pass"
   if confidence >= 0.60:
       return "review_required"
   return "insufficient_evidence"

のようなThresholdを置ける。

ただし実際のThresholdはDomain Evaluationによって決める。

単なる数値設定ではなくRisk Designである。



Deterministic Ruleを使う

Critical RuleまでLLMへ任せない。

例えば、

def can_auto_approve(risk_level: str) -> bool:
   return risk_level == "low"

というように、明確なPolicyはDeterministic Logicで扱う。

つまり、

Probabilistic AI + Deterministic Guardrail

というHybrid Architectureである。



Guardrail

Guardrailには複数種類がある。

Input Guardrail。

Output Guardrail。

Tool Permission。

Policy Check。

Safety Check。

例えば、

User Input
  ↓
Input Policy
  ↓
AI
  ↓
Output Validation
  ↓
Business Rule
  ↓
Action

とする。

AIをSystemの中で囲う。



Tool Useでは権限を限定する

AgentがToolを使える場合、Riskはさらに高まる。

検索だけできるAgent。

Draftだけ作れるAgent。

DB更新できるAgent。

Robotを動かせるAgent。

同じではない。

そこで、

Agent Capability
       ↓
Permission Policy
       ↓
Allowed Action

とする。



Least Privilege

Securityの基本原則として、

必要最小限の権限だけを与える。

例えばAgentにDB Readが必要なら、

Write Permissionは与えない。

一部TableだけAccessさせる。

期間限定Tokenを使う。

AI AgentにもLeast Privilegeを適用する。



AuthenticationとAuthorization

UserとAI Agent双方にIdentityを持たせる。

誰がRequestしたのか。

どのAgentがActionしたのか。

どのRoleを使ったのか。

を記録する。

つまり、

User Identity
     ↓
Agent Identity
     ↓
Permission
     ↓
Action

というChainを作る。



Audit Log

高信頼AIでは、Actionの記録が重要になる。

例えばSQLでは、

CREATE TABLE audit_events (
   event_id TEXT PRIMARY KEY,
   actor_id TEXT NOT NULL,
   action_type TEXT NOT NULL,
   model_version TEXT,
   created_at TIMESTAMP NOT NULL
);

のように記録できる。

ただし重要なのはSchemaではなく、

AI Actionを後から追跡可能にすること

である。



Audit Trail

より完全には、

Request

Authentication

Retrieved Evidence

Model Output

Validation

Human Approval

Action

Result

を一つのTraceとして保持する。

これがDecision Audit Trailになる。



Data Governance

高信頼AIではData自体の信頼性も重要である。

どこから来たDataか。

誰が更新したか。

いつ有効になったか。

どこまで利用してよいか。

を管理する。

つまり、

Trusted AI requires trusted data provenance.



Data Classification

DataをRisk Levelで分類する。

Public
Internal
Confidential
Highly Confidential
Regulated

そしてAI Serviceごとに扱えるClassを制限する。

例えばPublic APIへRegulated Dataを送らない。



Model Gateway

複数Modelを直接Applicationから呼ばず、Gatewayを置く方法もある。

Application
   ↓
Model Gateway
   ├─ Public LLM
   ├─ Private LLM
   └─ Local LLM

Gatewayで、

Routing。

Logging。

Security。

Evaluation。

を統一する。



Data SensitivityによるRouting

例えば、

Public Data       → Public Model
Confidential Data → Private Model
Critical Data     → Local Model

のようなPolicyを持つ。

これによってSecurity RequirementをRuntimeへ埋め込む。



Fallback

Productionでは外部Modelが停止する可能性がある。

そこでFallbackを設計する。

Primary Model
   ↓ failure
Secondary Model
   ↓ failure
Human Queue

重要Taskでは「何も返せない」状態にも対応する。



Circuit Breaker

外部Serviceが失敗し続ける場合、無限Retryしない。

一定回数Failureしたら呼び出しを止める。

Healthy
↓ repeated failure
Open Circuit
↓ recovery check
Healthy

これはTraditional Distributed Systemの原則だが、AI Systemにもそのまま必要になる。



Timeout

LLMやToolが永遠に応答しない可能性を想定する。

Timeoutを設定する。

Retry回数を制限する。

つまり、

AI Call is an unreliable network call.

として扱う。



Observability

高信頼AIでは、System状態を観測できなければならない。

見るべきMetricには、

Latency。

Error Rate。

Model Usage。

Token Usage。

Retrieval Success。

Human Correction Rate。

Critical Failure Rate。

などがある。



AI固有のRuntime Metric

例えば、

retrieval_hit_rate
citation_coverage
schema_failure_rate
human_rejection_rate
critical_error_rate

をMonitorする。

CPUやMemoryだけ見てもAI Qualityは分からない。



Human Correction Rate

HumanがAI Outputを何回修正したか。

これは非常に重要なMetricになる。

修正率が急に上がれば、

Model Change。

Knowledge Update。

Prompt Change。

に問題がある可能性がある。

Human FeedbackがMonitoring Signalになる。



Drift

Production Dataは変化する。

User Behaviorも変わる。

Documentも変わる。

Sensor Environmentも変わる。

するとTraining時と分布がずれる。

これがDriftである。

Training Distribution
      ↓
Production Distribution
      ↓
Drift Detection

必要なら再Evaluationする。



Incident Response

高信頼AIではIncidentが起きた後のProcessも定義する。

Detect。

Contain。

Investigate。

Recover。

Learn。

例えば、

Incident
 ↓
Stop / Limit
 ↓
Root Cause
 ↓
Rollback
 ↓
Evaluation Update

とする。



Postmortem

Incidentを直して終わりにしない。

なぜ起きたか。

なぜ検知できなかったか。

どう再発防止するか。

を分析する。

そしてFailure CaseをEvaluation Suiteへ追加する。

つまり、

Incident → Permanent Test Case

へ変換する。



Controlled Change

AI Systemは継続的に改善する。

しかしProduction中に自由に変化させない。

Modelを更新する。

Offline Evaluationする。

Stagingで確認する。

Canary Releaseする。

問題があればRollbackする。

Learn Continuously
      ↓
Evaluate
      ↓
Approve
      ↓
Deploy Carefully

である。



Safety Caseという考え方

Physical AIのような高Risk Systemでは、

「このSystemはなぜ安全だと考えるのか」

を構造化する必要がある。

Sensor。

AI。

Control。

Guardrail。

Human Override。

Emergency Stop。

それぞれの役割を整理する。

AI Model単体の性能ではなく、System全体のSafety Argumentを持つ。



Physical AIでは高信頼性がさらに厳しくなる

RobotがPhysical WorldへActionする場合、

誤回答ではなく誤動作になる可能性がある。

そこで、

AI Planning
  ↓
Safety Rule
  ↓
Collision Check
  ↓
Control
  ↓
Physical Action

のように複数Layerを置く。



Fail-safe

何かが壊れたら、安全側へ移る。

Networkが切れる。

Sensorが故障する。

Modelが判断できない。

その場合、

停止する。

Low-risk Modeへ移る。

Human Operationへ戻す。

これがFail-safeである。



Fail-operationalとの違い

Systemによっては停止そのものが危険な場合もある。

その場合は一部機能を維持する必要がある。

つまり、

Fail-safe

と、

Fail-operational

をRequirementに応じて選ぶ。

高信頼AIはFailure時のBehaviorまで設計する。



Redundancy

Critical Systemでは、一つのAIに依存しない。

複数Sensor。

Rule-based Check。

Second Model。

Human Verification。

を組み合わせる。

例えば、

Model A
  +
Model B
  +
Rule Check
  +
Human

一致しない場合はActionしない。



Diversityによる信頼性

同じArchitectureのModelを二つ使っても、同じFailureを起こす可能性がある。

場合によっては、

ML Model。

Rule-based System。

Human。

のように異なるFailure Modeを持つComponentを組み合わせる。

これはSystem Reliabilityの考え方である。



High Reliability Organization

高信頼AIには、高信頼なOrganizationも必要になる。

EngineerがWarningを無視する。

Incidentを報告しない。

Deliveryを優先してTestを省略する。

これではArchitectureが良くても信頼性は維持できない。

したがって、

Trusted AI = Technical System + Operational Culture

である。



Release Authority

誰がProduction Releaseを承認するのか。

Researcher。

Engineer。

Domain Expert。

Security。

Business Owner。

Riskに応じて複数Roleを設定する。

Technical Decisionだけで完結させない。



Responsibility Boundary

AIが提案した。

Humanが承認した。

Systemが実行した。

問題が起きた。

誰が何へ責任を持つのかを事前に定義する。

高信頼AIでは、

Capability

Authority

Accountability

を分離する。



Performance・Safety・CostのBalance

最も高性能なSystemが最適とは限らない。

巨大Modelは高性能だが高Cost。

Local Modelは低Latencyだが性能が低い。

Human Reviewは安全だが時間がかかる。

そこで、

Performance
Reliability
Safety
Cost
Latency

を総合して設計する。



高信頼AIは「AIを使わない判断」も含む

場合によっては、

このTaskではAIを使わない。

Rule-based Systemにする。

Human Decisionだけにする。

という判断もある。

AI導入そのものを目的にしない。

No AI can also be a valid architecture decision.



Trusted by Default

毎回Projectの最後に信頼性を追加するとCostが大きい。

そこで共通基盤へ組み込む。

Identity。

Logging。

Evaluation。

Audit。

Human Approval。

Security。

をStandard Componentとして持つ。

Trusted Core
├─ Identity
├─ Model Gateway
├─ Evaluation
├─ Audit
├─ Policy
├─ Human Approval
└─ Observability

その上にDomain Applicationを作る。



EQUES型Trusted Core

第1冊で見たEQUESの方向をArchitectureへ翻訳すると、

製薬。

Energy。

Physical AI。

それぞれに共通するのは、

高いFailure Costを持つDomainへAIを実装すること

である。

したがって再利用可能なCoreとして、

Evaluation。

Traceability。

Security。

Human Oversight。

Controlled Deployment。

を持つ意味がある。



高信頼AIの最小構造

本節を最小化すると、

Input

Validation

AI

Evidence

Evaluation / Guardrail

Human or Policy Decision

Action

Audit

Runtime Monitoring

Feedback

となる。

このLoop全体がHigh-reliability AI Systemである。



高信頼AIとは、絶対に間違えないAIを作ることではない。

現実のAIは間違える。

Dataも間違える。

Humanも間違える。

だから、

間違いを測る。
発見する。
影響を限定する。
Humanへ戻す。
記録する。
学習する。

というArchitectureを持つ。

そこに「信頼」が生まれる。

そしてAIがDigital DocumentやEnterprise Workflowの中だけに存在する間は、Failureの多くをSoftware Layerで封じ込めることができる。

しかしAIがSensorを通じてRealityを観測し、Robotを通じて現実へActionするようになると、信頼性の意味はさらに変わる。

次節では、その境界を越える。

SoftwareからPhysical AIへ。

Cloud、Edge、Sensor、Robot、Human、安全制御を一つのCyber-Physical Architectureとして接続していく。
第5節 SoftwareからPhysical AIへ

これまでのAIは、主としてデジタル空間の中で働いてきた。

文章を生成する。

画像を分類する。

Databaseを検索する。

Documentを検査する。

企業Workflowを支援する。

AIが誤ったとしても、そのOutputが情報の段階に留まる限り、Human ReviewやSoftware上のValidationによって影響を止められる場合が多い。

しかしAIがCamera、LiDAR、Sensor、Robot、Industrial Equipmentへ接続されると、条件は根本的に変わる。

AIのOutputが、

Physical Action

になるからである。

ここにSoftware AIとPhysical AIの境界がある。



Software AI

Software AIの基本構造は比較的単純である。

Digital Input
    ↓
AI Model
    ↓
Digital Output

Textを入力する。

LLMが処理する。

Textを返す。

あるいはImageを入力し、Classification Resultを返す。

InputとOutputの双方がDigital Worldに存在する。



Physical AI

Physical AIではLoopが閉じる。

Physical World
     ↓
Sensor
     ↓
Digital Representation
     ↓
AI
     ↓
Decision / Planning
     ↓
Control
     ↓
Machine
     ↓
Physical World

現実世界を観測する。

AIが理解する。

Actionを決める。

Machineが動く。

その結果によってRealityが変わる。

そして変化したRealityを再びSensorが観測する。

Physical AIとは、このClosed Loopの中へAIを組み込むことである。



Physical Worldを直接理解しているわけではない

AIが見るのはRealityそのものではない。

Camera Image。

Point Cloud。

Temperature。

Pressure。

Vibration。

Force。

Position。

といったMeasurementである。

したがって、

Physical Reality ≠ Sensor Representation

という境界を保持する必要がある。

Sensorが見えていないものを、AIも見ることはできない。



Sensor Failure

Physical AIではModel Errorだけを考えても足りない。

Camera Lensが汚れる。

LiDARが遮られる。

Calibrationがずれる。

Sensorが故障する。

Network Packetが欠落する。

つまり、

Physical State
     ↓
Sensor Error
     ↓
Incorrect Representation
     ↓
AI Decision

というFailure Chainが存在する。

AIが正しく推論していても、Input自体が誤っている可能性がある。



Sensor Fusion

一つのSensorへ依存しない方法として、複数Sensorを統合する。

Camera ─────┐
LiDAR ──────┤
Force ──────┼→ Sensor Fusion → World State
Position ───┤
Audio ──────┘

Cameraは色や形を見る。

LiDARはDistanceやGeometryを見る。

Force Sensorは接触を測る。

複数のRepresentationを統合することで、Environmentをより頑健に認識できる。



Point Cloud

LiDARやDepth Sensorから得られる3D情報はPoint Cloudとして表現できる。

概念的には、

points = [
   (x1, y1, z1),
   (x2, y2, z2),
   (x3, y3, z3),
]

である。

ここから、

Object。

Surface。

Obstacle。

Free Space。

を認識する。

Physical AIでは、Text Tokenだけでなく3D GeometryがAI Inputになる。



Perception

Sensor DataをPhysical Meaningへ変換するLayerがPerceptionである。

Raw Sensor
   ↓
Preprocessing
   ↓
Detection
   ↓
Tracking
   ↓
Scene Understanding

例えば、

人がいる。

Valveがある。

Obstacleがある。

Robot Armがこの位置にある。

というStateへ変換する。



World Model

より高度なSystemでは、瞬間的なSensor Inputだけでなく、Environmentの内部Representationを保持する。

位置。

Object。

Relationship。

History。

これらを統合したものをWorld Modelとして扱える。

Observation
   ↓
World State
   ↓
Prediction
   ↓
Planning

AIは「今何が見えているか」だけでなく、「次に何が起こり得るか」を扱うようになる。



PerceptionからActionへ

Physical AIで重要なのは、認識だけではない。

Perception
   ↓
Reasoning
   ↓
Planning
   ↓
Action

まで進む。

ここでGenerative AI、Agent、Roboticsが接続する。



VLA

近年のPhysical AIで重要な方向の一つがVision-Language-Actionである。

VisionでEnvironmentを見る。

LanguageでInstructionを理解する。

Actionを生成する。

概念的には、

Vision
  +
Language
  ↓
Model
  ↓
Action

となる。

例えば、

「赤い箱を棚へ移す」

というInstructionとCamera Imageを入力し、Robot Actionへ変換する。



しかしModelからMotorへ直接つながない

高信頼Physical AIでは、

VLA

Motor

という直接接続を避けるべき場合が多い。

間にSafety Layerを置く。

AI Planning
    ↓
Safety Validation
    ↓
Motion Planning
    ↓
Control
    ↓
Actuator

AIが提案したActionを、そのままPhysical Actionにしない。



PlanningとControlを分ける

AIが、

「Robot Armを対象物へ移動する」

と判断する。

しかし、

どの軌道で移動するか。

どの速度にするか。

どのTorqueを使うか。

どう停止するか。

はControl Engineeringの問題になる。

したがって、

AI Planning ≠ Control

である。



Classical Controlは残る

Physical AIが高度化しても、従来のControl Engineeringが不要になるわけではない。

PID。

State Estimation。

Trajectory Planning。

Constraint Control。

Emergency Stop。

確立されたEngineeringを利用する。

つまり、

AI
+
Classical Robotics
+
Control Engineering

というHybrid Systemになる。



Deterministic Safety Layer

Safety Constraintは、可能な限りAIとは独立して持つ。

例えば、

def is_safe(speed: float, distance: float) -> bool:
   if distance < 0.5 and speed > 0.1:
       return False
   return True

実際の安全制御ははるかに複雑だが、原則は同じである。

SafetyをAIの判断だけへ委ねない。



Human Override

Physical AIではHumanが即座に介入できることも重要になる。

AIが異常Actionを開始する。

Operatorが停止する。

Manual Modeへ切り替える。

AI Control
  ↓
Human Override
  ↓
Safe State

Human OverrideはUI FeatureではなくSafety Architectureの一部である。



Emergency Stop

Physical Systemでは、最終的に物理的な停止機構が必要になる場合がある。

Softwareが壊れている。

AIが誤動作する。

Networkも利用できない。

その状況でも停止できる。

つまり、

Physical Safety must not depend entirely on AI.

である。



Edge AI

Physical AIではLatencyが重要になる。

Camera ImageをCloudへ送る。

AIが処理する。

結果を返す。

これでは遅すぎるTaskがある。

Collision Avoidance。

Emergency Detection。

Real-time Control。

そこでComputeをMachineの近くへ置く。

Cloud
 ⇅
Edge Computer
 ⇅
Robot / Sensor

これがEdge AIである。



CloudとEdgeの役割分担

すべてをEdgeへ置く必要もない。

Edgeでは、

Real-time Perception。

Safety-critical Processing。

Local Control。

Cloudでは、

Large-scale Training。

Fleet Analytics。

Long-term Storage。

Model Management。

を行う。

つまり、

Cloud
├─ Training
├─ Analytics
└─ Model Management
Edge
├─ Perception
├─ Local Inference
└─ Real-time Decision

という分業になる。



Rustが有効になる場所

Physical AIでは、

Low Latency。

Concurrency。

Memory Safety。

Hardware Interface。

Long-running Process。

が重要になる。

ここでRustが有効になる場合がある。

例えば、

Python
└─ Research / Training / Model Evaluation
Rust
└─ Edge Runtime / Device Service / High-performance Processing

というRole Separationが考えられる。

Pythonを捨てるのではなく、Runtime Requirementに応じて接続する。



Message-driven Architecture

Physical Systemでは複数Componentが同時に動く。

Camera。

LiDAR。

Inference。

Planner。

Controller。

Logger。

そこでEventやMessageによって接続する。

Camera
 ↓
Image Event
 ↓
Perception
 ↓
Object Event
 ↓
Planner
 ↓
Action Command

Componentを疎結合にすることで、交換やFailure Isolationを容易にする。



Timeが第一級Dataになる

Enterprise AIでは数秒のLatencyでも許容されるTaskがある。

Physical AIでは、

10ms。

50ms。

100ms。

という時間差がSystem Behaviorを変える。

したがってDataには、

Valueだけでなく、

Timestamp

が重要になる。

古いSensor Dataを最新Stateとして扱ってはいけない。



Synchronization

複数Sensorを統合する場合、それぞれのTimestampを揃える必要がある。

Cameraはこの瞬間。

LiDARは少し前。

Position Sensorはさらに別の時刻。

これを無視すると、存在しないWorld Stateを作ってしまう可能性がある。

Physical AIでは、

Space + Time

を一体として扱う。



Network Failure

CloudとのConnectionは必ず使えるとは限らない。

Networkが切れた場合、

停止するのか。

Local Modeで続けるのか。

HumanへControlを戻すのか。

あらかじめ決める。

Connected
  ↓ network failure
Local Safe Mode
  ↓
Reconnect / Human Decision

Connectivity Failureも通常状態の一つとして設計する。



Digital Twin

Physical AssetをDigital Representationとして保持する考え方がDigital Twinである。

例えば、

Physical Equipment
      ⇅
Digital State

設備状態。

Sensor History。

Maintenance History。

Current Configuration。

をDigital側へ保持する。

AIはこのRepresentation上で分析やSimulationを行える。



Simulation

Physical Worldで直接ExperimentすることはCostやRiskが高い。

そこでSimulationを利用する。

Robot Motion。

Sensor Noise。

Obstacle。

Failure。

Environment Variation。

をDigital Environmentで再現する。

Simulation
   ↓
Training / Testing
   ↓
Controlled Field Test
   ↓
Reality

という段階を踏む。



Sim-to-Real

Simulationで学習したAIをRealityへ移す。

しかしSimulationとRealityは完全には一致しない。

Lighting。

Friction。

Sensor Noise。

Material。

Human Behavior。

差がある。

これがReality Gapである。



Real-to-Sim

逆方向も重要である。

RealityでFailureが起きる。

その状況をSimulationへ戻す。

Variationを大量生成する。

改善したAIを再びRealityへ出す。

Reality
  ↓
Failure
  ↓
Simulation
  ↓
Improvement
  ↓
Reality

ここでもResearchとProductionの循環が成立する。



Physical AIのEvaluation

Model Accuracyだけでは評価できない。

Task Completion Rate。

Collision Rate。

Intervention Rate。

Control Latency。

Energy Consumption。

Recovery Rate。

などを見る。

つまり、

Model Evaluation → System Evaluation → Physical Outcome Evaluation

へ広がる。



Human Intervention Rate

Humanが何回介入したかは重要なMetricになる。

介入が多すぎればAutonomyが不足している。

しかし介入がゼロだから安全とも限らない。

必要なときにHumanへEscalateできているかを見る。



Safety Envelope

Robotに許可するOperation範囲を限定する。

位置。

速度。

Force。

Area。

Task。

例えば、

Allowed Workspace
Allowed Speed
Allowed Force
Allowed Actions

を定義する。

AIはこのSafety Envelopeの内部だけでActionできる。



Adaptive Autonomy

すべてを完全自律にする必要はない。

Low-risk Taskは自動。

Medium-risk TaskはHuman Supervision。

High-risk TaskはHuman Control。

Risk

Autonomy Level

と対応させる。

Physical AIではAutonomyそのものを調整可能なSystem Propertyとして扱う。



Remote Operation

原子力施設や危険Environmentでは、完全自律だけでなくRemote Operationが重要になる。

Humanが安全な場所からRobotを操作する。

AIは、

Perception。

Stabilization。

Path Suggestion。

Anomaly Detection。

を支援する。

つまり、

Human + AI + Robot

というSystemになる。



Haptics

Remote OperationではVisual Informationだけでなく、ForceやTouchをHumanへ返すこともできる。

Robotが受けたResistance。

Surface Contact。

Force。

これをHumanへ伝える。

Physical Contact
     ↓
Sensor
     ↓
Digital Signal
     ↓
Haptic Interface
     ↓
Human

DigitalとHuman Bodyの間にPhysical Feedback Channelが形成される。



Physical AIとHuman-centered Design

Robotの性能だけを最大化すればよいわけではない。

Operatorが理解できるか。

警告に気づけるか。

Controlを取り戻せるか。

長時間Operationできるか。

Human Factorsが重要になる。

Physical AIは、

AI Engineering + Robotics + Human Factors

の統合領域である。



CybersecurityとPhysical Safetyが接続する

Software AIへのCyberattackはData Leakを引き起こす可能性がある。

Physical AIでは、それがPhysical Actionへつながる可能性もある。

Unauthorized Command。

Sensor Spoofing。

Compromised Model。

したがって、

Cybersecurity
     ↓
Control Integrity
     ↓
Physical Safety

が接続する。



IdentityからMachine Authorityへ

誰がRobotを操作できるのか。

どのAgentがどのMachineへCommandを送れるのか。

どのTaskまで許可されているのか。

IdentityとPermissionをPhysical Actionまで拡張する。

Identity
  ↓
Authorization
  ↓
Action Permission
  ↓
Machine

これはEnterprise AIのAccess ControlをPhysical Worldへ延長した構造である。



AuditもPhysical Worldへ伸びる

AIが何を判断したか。

どのCommandを送ったか。

Robotが何を実行したか。

HumanがOverrideしたか。

最終的に何が起きたか。

これらを一つのTraceとして残す。

Sensor

AI Decision

Command

Robot Action

Human Intervention

Physical Outcome

高信頼Physical AIでは、Audit TrailもCyber-Physicalになる。



Software UpdateがMachine Behaviorを変える

通常のWeb ApplicationではSoftware Updateによって画面や機能が変わる。

Physical AIではModel UpdateによってMachine Behaviorが変わる。

Perceptionが変わる。

Planningが変わる。

Actionが変わる。

したがって、

Model Update = Potential Physical Behavior Change

として扱う必要がある。



OTA UpdateにもValidationが必要になる

Fleetへ新しいModelを配布する場合、

Offline Evaluation。

Simulation。

Hardware-in-the-loop Test。

Limited Deployment。

Monitoring。

を経て広げる。

New Model
  ↓
Simulation
  ↓
Hardware Test
  ↓
Limited Fleet
  ↓
Evaluation
  ↓
Full Deployment

Software DeliveryとSafety Engineeringが一つになる。



Physical AIは一つの巨大Modelではない

Physical AIを、すべてを処理する巨大Foundation Modelとして考える必要はない。

実際には、

Sensor
+
Perception Model
+
World Model
+
Planner
+
Rules
+
Controller
+
Human

という複数ComponentのSystemになることが多い。

VLAもその中の重要なComponentの一つとして配置できる。



General ModelとIndustrial Controlを分離する

General-purpose Modelは柔軟である。

Industrial Controlは予測可能性が必要である。

そこで、

General Intelligence
      ↓
Task Planning
      ↓
Constrained Execution Layer
      ↓
Physical Control

という階層を作る。

柔軟なIntelligenceと厳格なExecutionを分離する。



Software AIとの連続性

ここまで見るとPhysical AIは全く別のTechnologyに見える。

しかし前節までのArchitectureはそのまま残っている。

Identity。

Security。

Evaluation。

Audit。

Human Approval。

Observability。

Data Governance。

これらに、

Sensor。

Edge。

Control。

Safety。

Robot。

が追加される。

つまりPhysical AIは、

Trusted Software AIをPhysical Worldまで拡張したArchitecture

として理解できる。



EQUES型Physical AI

EQUES型実装として一般化するなら、重要なのはRobot Hardwareそのものをすべて自社開発することではない。

AI Research。

Domain Knowledge。

Edge Runtime。

Evaluation。

Safety。

Human Interface。

Partner Hardware。

を接続することである。

つまり、

Research Intelligence
      ↓
Industrial Architecture
      ↓
Physical Interface
      ↓
Trusted Action

へ進む。



DigitalからPhysicalへの境界

この境界を最小化すると、

Software AI
Data

Model

Information
Physical AI
Reality

Sensor

Model

Planning

Safety

Control

Action

Reality

となる。

Physical AIでは、Outputが次のInputを生み出す。

ActionがRealityを変え、そのRealityをAIが再び観測するからである。



Closed-loop Intelligence

したがってPhysical AIの核心はRobotそのものではない。

Closed-loop Intelligence

である。

Observe
 ↓
Understand
 ↓
Plan
 ↓
Act
 ↓
Observe

このLoopを安全に、継続的に、現実世界の時間の中で回す。



研究室でModelが動く。

Cloud上でAI Serviceになる。

Enterprise Workflowへ組み込まれる。

Humanと協働する。

そしてSensorとMachineへ接続される。

ここまで進むと、AIは単なるSoftware Componentではなく、現実世界の状態変化へ参加するSystemになる。

だからPhysical AIでは、Intelligenceの高さだけでは足りない。

AIが何を認識し、何を判断し、何を実行でき、どこで停止し、誰が介入できるのか。

その境界をArchitectureとして定義しなければならない。

SoftwareからPhysical AIへ進むとは、AIに身体を与えることだけではない。

Digital Intelligenceへ、現実世界に対する責任あるAction Boundaryを与えることなのである。

次節では、このSoftware AIからPhysical AIまでを一つの産業システムとして成立させるために必要な全体構造――Research-to-Production Architectureを統合する。
第6節 Research-to-Production Architecture

AI研究を産業システムへ変えるには、研究コード、Model、Data、Cloud、Human、Security、Evaluation、Operationを一つの流れとして接続する必要がある。

研究段階では、各要素を分離して考えることができる。

Modelを作る。

Accuracyを測る。

結果をNotebookへ表示する。

しかしProductionでは、それぞれが相互依存する。

Dataが変わればModel Outputが変わる。

Modelが変わればEvaluationが必要になる。

Evaluation ResultによってRelease可否が変わる。

Release後はHuman Feedbackが発生する。

そのFeedbackが次のResearchへ戻る。

したがってResearch-to-Production Architectureとは、単なるDeployment Pipelineではない。

ResearchとProductionの間に継続的な双方向Loopを構築するArchitectureである。



最小構造

全体を最小化すると、

Research
  ↓
Experiment
  ↓
Evaluation
  ↓
Domain Adaptation
  ↓
Production
  ↓
Observation
  ↓
Feedback
  ↓
Research

となる。

重要なのは、Productionが終点ではないことだ。

Productionは、次のResearch Dataを生む地点でもある。



Research Layer

最上流にはResearch Layerがある。

ここでは、

Paper。

Algorithm。

Foundation Model。

Fine-tuning。

RAG。

Optimization。

Robot Learning。

などを検証する。

目的は、

What could work?

を明らかにすることである。

Research Layerでは自由度を高く保つ。

新しいLibraryを試す。

Modelを交換する。

Experimentを高速に回す。



Experiment Layer

Research Ideaを実行可能なExperimentへ変える。

例えば、

def run_experiment(model, dataset, evaluator):
   outputs = model.predict(dataset.inputs)
   return evaluator.evaluate(outputs, dataset.targets)

ここでは、

Dataset。

Model。

Configuration。

Metric。

を明示する。

重要なのはExperimentを再現可能にすることである。



Experiment Tracking

研究が増えると、

どのModelを使ったのか。

どのData Versionだったのか。

どのHyperparameterだったのか。

何点だったのか。

を追跡する必要がある。

Experiment
├─ code_version
├─ model_version
├─ dataset_version
├─ config
└─ metrics

これがResearch Memoryになる。



Research Artifact

ExperimentからProductionへ渡すものは、Notebookそのものではない。

Validated Model。

Evaluation Result。

Known Limitation。

Input / Output Schema。

Resource Requirement。

これらをまとめたResearch Artifactとして扱う。

つまり、

Research Result → Transferable Artifact

へ変換する。



Technology Readinessを判定する

新しいMethodが面白いからといって、すぐProductionへ出すわけではない。

例えば、

Experimental
   ↓
Reproducible
   ↓
Domain Validated
   ↓
Production Candidate

という段階を設ける。

このGateによって、Research SpeedとProduction Reliabilityを分離する。



Domain Adaptation Layer

次にGeneral TechnologyをDomainへ適応する。

製薬なら、

専門Knowledge。

Document。

GMP Workflow。

Domain Evaluation。

Energyなら、

Sensor。

Equipment。

Maintenance。

Safety。

を組み込む。

ここで問いは、

Can it work?

から、

Can it work here?

へ変わる。



Domain Adapter

General Modelを直接Applicationへ結合するのではなく、Domain Adapterを置く。

General Model
    ↓
Domain Adapter
    ↓
Domain Application

Domain Adapterには、

Prompt。

RAG。

Ontology。

Business Rule。

Output Schema。

を配置できる。

これによってModel変更とDomain Logicを分離する。



Evaluation Gate

Domain Adaptation後にはEvaluation Gateを置く。

Candidate
  ↓
General Evaluation
  ↓
Domain Evaluation
  ↓
Critical Case Evaluation
  ↓
Go / No-Go

ここを通過しなければProduction Candidateにはしない。



Production Candidate

Production CandidateになったAI Componentには、少なくとも以下が必要になる。

Input Schema。

Output Schema。

Model Version。

Known Limitation。

Performance Profile。

Security Requirement。

Fallback Behavior。

つまり、

AI CapabilityをOperational Contractへ変える。



Service Layer

ModelをApplicationから直接呼び出さず、Serviceとして包む。

Application
   ↓
AI Service
   ↓
Model / RAG / Tool

AI Serviceは、

Validation。

Logging。

Model Routing。

Timeout。

Retry。

を担当する。



API Contract

例えば、

from pydantic import BaseModel
class ReviewRequest(BaseModel):
   document_id: str
   text: str
class ReviewResponse(BaseModel):
   status: str
   evidence_ids: list[str]
   requires_human_review: bool

Modelの自由なOutputを、安定したSoftware Contractへ変える。



Model Gateway

複数Modelを扱う場合はGatewayを置く。

AI Service
  ↓
Model Gateway
  ├─ General LLM
  ├─ Domain LLM
  ├─ Local LLM
  └─ Fallback Model

ここで、

Security。

Cost。

Latency。

Task Complexity。

に応じてRoutingする。



Data Layer

ProductionではDataを正式なSystem Assetとして管理する。

Relational Data。

Document。

Vector Index。

Sensor Stream。

Audit Log。

それぞれ異なるStorageへ配置する。

SQL
 └─ authoritative state
Object Storage
 └─ documents / large files
Vector DB
 └─ semantic retrieval
Time-series / Stream
 └─ sensor data

用途によってStorageを分ける。



Authoritative State

AIが生成した内容と、正式なBusiness Stateを混同しない。

例えば、

AIが「承認可能」と出力する。

しかし正式なApproval StateはDatabaseが保持する。

AI Recommendation
     ↓
Human / Policy Decision
     ↓
SQL Authoritative State

つまり、

AI Output ≠ Authoritative State

である。



Workflow Layer

AIを業務Processへ接続する。

例えば、

Document Uploaded
     ↓
AI Analysis
     ↓
Consistency Check
     ↓
Human Review
     ↓
Approval
     ↓
Record

ここでAgentやWorkflow Engineが役割を持つ。



Agent Layer

Agentは複数Taskを接続できる。

検索する。

Toolを呼ぶ。

Draftを作る。

ReviewをRequestする。

ただし自由度を無制限にしない。

Agent
├─ search
├─ analyze
├─ draft
└─ request_approval

許可されたToolだけ使わせる。



Human Approval Layer

High-risk TaskではHuman ApprovalをArchitectureへ組み込む。

AI

Risk Classification

Human Review Required?
├─ No → Continue
└─ Yes → Review Queue

Humanを後付けではなくWorkflow Componentとして扱う。



TypeScript Interface

Human ReviewにはInterfaceが必要になる。

AI Outputだけでなく、

Evidence。

Source。

Confidence。

Difference。

History。

を表示する。

つまりUIは、

AI Result Viewer

ではなく、

Decision Interface

として設計する。



SQLとAudit

正式なState TransitionをSQLへ記録する。

draft
 ↓
review_required
 ↓
approved
 ↓
executed

さらに、

誰が。

いつ。

何を。

変更したか。

をAudit Logへ残す。



Infrastructure Layer

Production Systemを支えるのがInfrastructureである。

Cloud。

Container。

Network。

Identity。

Secret。

Database。

Monitoring。

GPU。

これらを一つのRuntime Environmentとして設計する。



Environment Separation

少なくとも、

Development
Staging
Production

を分離する。

Research ExperimentをProduction Dataへ直接接続しない。

Model変更もStagingで検証する。



CI/CDからCI/CE/CDへ

Traditional Softwareでは、

CI。

Continuous Integration。

CD。

Continuous Delivery。

がある。

AIではさらに、

CE = Continuous Evaluation

を加える。

Code / Model Change
     ↓
CI
     ↓
Continuous Evaluation
     ↓
Staging
     ↓
Controlled Deployment

AIではTestがUnit Testだけでは足りないからである。



Model Registry

Productionへ出せるModelをRegistryで管理する。

model-a
├─ experimental
├─ validated
└─ production
model-b
└─ candidate

どのModelが正式に利用可能かを明確にする。



Prompt Registry

LLM SystemではPromptも管理対象になる。

prompt-v1
prompt-v2
prompt-v3

Prompt変更によるBehavior ChangeもEvaluationする。



Knowledge Version

RAGではKnowledge BaseもVersionを持つ。

Documentが更新された結果、AI Outputが変化する可能性があるからである。

したがって、

Model Versionだけでは再現性を保証できない。



Deployment Architecture

ProductionへのReleaseは段階的に行う。

Candidate
  ↓
Staging
  ↓
Shadow
  ↓
Canary
  ↓
Limited Production
  ↓
Full Production

Riskに応じて段階数を変える。



Rollback

ReleaseにはRollbackを必ず対応させる。

Code。

Model。

Prompt。

Configuration。

Knowledge Index。

これらを旧Versionへ戻せるようにする。



Runtime Layer

Production開始後はRuntimeへ視点を移す。

何件処理しているか。

Latencyは正常か。

Error Rateは上がっていないか。

AI Qualityは落ちていないか。

Human Correctionは増えていないか。

これを観測する。



Observability

Traditional System MetricとAI Metricの両方を見る。

System
├─ CPU
├─ Memory
├─ Latency
└─ Error Rate
AI
├─ evaluation score
├─ retrieval success
├─ schema failure
├─ human rejection
└─ critical failure

System HealthとAI Qualityを分離しない。



Trace

一つのRequestをEnd-to-Endで追えるようにする。

Request

User

Agent

Retriever

Model

Human Review

Action

これがRuntime DebuggingとAuditの共通基盤になる。



Feedback Layer

ProductionでHumanが修正する。

Domain ExpertがRejectする。

Operatorが介入する。

Physical EnvironmentでTaskが失敗する。

これらをFeedback Dataとして保存する。

Runtime
 ↓
Feedback
 ↓
Evaluation Dataset
 ↓
Research

ここでLoopが閉じる。



Human Feedback

Human Feedbackには、

Correction。

Approval。

Rejection。

Escalation。

Comment。

がある。

これを単なるUI Eventとして捨てず、Research Assetへ変換する。



Environment Feedback

Physical AIでは、

Task Success。

Collision。

Sensor Failure。

Operator Intervention。

Physical Outcome。

もFeedbackになる。

SoftwareとPhysicalでFeedback Sourceが異なる。



FeedbackをそのままTrainingへ入れない

Human FeedbackやField DataをそのままModelへ学習させることは危険である。

Noise。

Bias。

Incorrect Label。

Confidential Data。

が含まれる可能性がある。

そこで、

Feedback
  ↓
Validation
  ↓
Curation
  ↓
Evaluation / Training Data

というData Quality Gateを置く。



Research Backlog

Production FailureをResearch Questionへ変える。

例えば、

Hallucinationが多い。

Retrieval Precisionが低い。

Sensor Noiseに弱い。

Human Reviewが重い。

これらをResearch Backlogへ入れる。

Operational Problem
     ↓
Generalized Technical Question
     ↓
Research Backlog

具体的な障害を一般化することが重要である。



Researchへ戻す

例えば、

「A社のDocumentで間違えた」

というCaseをそのまま研究課題にはしない。

「長文Document間のCross-document Consistencyをどう改善するか」

へ抽象化する。

これによって一つのCustomer Problemから一般的Technologyを生み出せる。



Research-to-ProductionではなくResearch-to-Research

ここまで進むと、Architecture全体は直線ではなくなる。

Research
 ↓
Production
 ↓
Reality
 ↓
Feedback
 ↓
Research

つまり本質的には、

Research-to-Production-to-Research Architecture

である。



Physical AIを含める

Physical AIまで含めると全体はさらに広がる。

Research
  ↓
Model
  ↓
Cloud
  ↓
Edge
  ↓
Sensor
  ↓
Robot
  ↓
Physical Environment
  ↓
Feedback
  ↓
Research

この中にHuman、Safety、Auditが横断Layerとして入る。



Cross-cutting Layer

全Layerに共通して必要になるものがある。

Security。

Identity。

Evaluation。

Audit。

Observability。

Governance。

これらは後付けではない。

               Security
               Evaluation
               Audit
               Human
                 ↓
Research → Domain → Production → Physical

すべてのLayerを横断する。



Trusted Core

EQUES型Architectureでは、これらをTrusted Coreとして再利用できる。

Trusted Core
├─ Identity
├─ Security
├─ Model Gateway
├─ Evaluation
├─ Audit
├─ Observability
├─ Approval
└─ Policy

その上にDomain Applicationを作る。



Domain Layer

Trusted Coreの上に、

Pharma
Energy
Physical AI

のDomain Layerを置く。

Domainごとに、

Knowledge。

Task。

Rule。

Evaluation。

を変える。

つまり、

Common Reliability + Domain Specificity

を両立する。



Language Stack

本書で扱うLanguageも、このArchitectureのRoleとして配置する。

Python
 → Research / Model / Evaluation
Rust
 → Runtime / Edge / High-performance Processing
TypeScript
 → Enterprise Interface / Workflow
SQL
 → Authoritative State / Audit / Relational Data

Languageを列挙するのではなく、System Responsibilityに対応させる。



Cloud Stack

Cloudも同様である。

Compute
Storage
Database
Queue
Identity
Monitoring
GPU

をResearch-to-Production Pipelineへ配置する。

Cloudは単なるHostingではなく、継続運用Architectureである。



Physical Stack

Physical側では、

Sensor
Edge
Perception
Planning
Safety
Control
Robot

を接続する。

ここでSoftware ArchitectureとSystems Engineeringが一つになる。



Human Stack

HumanもRoleとして明示する。

Operator
Reviewer
Approver
Domain Expert
Administrator

それぞれにPermissionとResponsibilityを与える。



Architectureの中心は境界である

Research-to-Production Architectureで最も重要なのは、Componentそのものより境界である。

ResearchとProductionの境界。

AIとRuleの境界。

ModelとBusiness Decisionの境界。

AIとHumanの境界。

DigitalとPhysicalの境界。

それぞれにInterfaceとResponsibilityを定義する。



Loose Coupling

Modelは変わる。

Cloud Providerも変わり得る。

Robot Hardwareも変わる。

そこでComponent同士を強く結合しすぎない。

Interface
 ↓
Replaceable Component

という設計にする。

Future Technology Changeへ対応しやすくなる。



Replaceability

特定Modelが終了してもSystem全体は残る。

新しいModelへ交換できる。

同じように、

Vector DB。

Cloud Service。

Sensor。

を交換できるArchitectureが望ましい。

つまり、

Architecture should outlive individual technologies.

である。



Stable CoreとAdaptive Edge

変化しにくいものをCoreへ置く。

Security。

Audit。

Identity。

Evaluation。

Business State。

変化の速いものをEdgeへ置く。

Model。

Prompt。

Agent。

Sensor Algorithm。

つまり、

Stable Core + Adaptive Edge

である。



Research SpeedとProduction Stabilityを両立する

Researcherは新しいModelを毎日試したい。

Production OperatorはSystemを毎日変えてほしくない。

両者を同じProcessへ押し込むと衝突する。

そこで、

Research Environmentでは自由にExperimentする。

Productionへ入れるときだけGateを通す。

これがArchitectureによる組織的分離である。



Two-speed System

概念的には、

Fast Loop
Research → Experiment → Evaluation
Controlled Loop
Validation → Release → Operation

という二つの速度を持つ。

そしてProduction FeedbackをFast Loopへ戻す。



EQUES型Research-to-Production Architecture

本書で扱う全体を一つにまとめると、

Research
  ↓
Python / Model / Experiment
  ↓
Domain Adaptation
  ↓
LLM / RAG / Evaluation
  ↓
Agent / Workflow
  ↓
TypeScript / Human Interface
  ↓
SQL / Authoritative State
  ↓
Cloud / Secure Runtime
  ↓
Rust / Edge
  ↓
Sensor / Robot / Physical World
  ↓
Observability / Human / Environment Feedback
  ↓
Research

となる。



研究を産業へ変えるArchitecture

このArchitectureの目的は、単にAIをDeployすることではない。

Research Capabilityを失わず。

Domain Realityへ適応し。

Production Reliabilityを獲得し。

Human Responsibilityを保持し。

Physical Worldへ安全に接続し。

現場から再び学習する。

その全体を一つのSystemとして成立させることである。



Research-to-Production Architectureとは、

研究を本番へ運ぶ道

ではない。

より正確には、

研究と本番の間を往復できる道を作ること

である。

ProductionでAIがRealityへ接触する。

そこで初めて、本当のFailure、本当のHuman Behavior、本当のDomain Constraintが見える。

それらを再びResearchへ戻せるなら、ProductionはResearchの終点ではなく次の出発点になる。

この双方向Architectureが成立したとき、AI研究は一度きりのTechnology Demoではなく、継続的に更新される産業Capabilityへ変わる。

次節では、ここまでの序章をさらに圧縮し、本書全体で実装していく**「本書の実装モデル」**を定義する。
第7節 本書の実装モデル

ここまで、研究コードと本番システム、PoCとProduction、Domain-specific AI、高信頼AI、Physical AI、Research-to-Production Architectureを順に見てきた。

ここから本書は、それらを個別の技術として学ぶのではなく、一つの産業AIシステムとして実装していく。

Python。

Rust。

TypeScript。

SQL。

Cloud。

LLM。

RAG。

Agent。

Sensor。

Robotics。

Optimization。

Quantum Computing。

これらは、それぞれ独立したTechnologyである。

しかし本書の目的はTechnology Catalogを作ることではない。

異なるTechnologyへ明確な責任を与え、研究から産業実装までをEnd-to-Endで接続することにある。

そのため、本書全体で共通して用いる実装モデルをここで定義する。



一つの最小Architecture

本書の全7章を最小化すると、次の構造になる。

Research
  ↓
Intelligence
  ↓
Domain
  ↓
Workflow
  ↓
Data / Infrastructure
  ↓
Physical
  ↓
Evaluation
  ↓
Feedback
  ↓
Next Research

これは単なる章構成ではない。

一つのAI TechnologyがResearchからRealityへ到達し、再びResearchへ戻るまでのLifecycleである。



第1層――Research

出発点はResearchである。

新しいModel。

新しいAlgorithm。

新しいOptimization Method。

新しいRobot Learning。

新しいRetrieval Method。

研究段階では、TechnologyのPotentialを検証する。

ここで重視するのはExperiment SpeedとReproducibilityである。

Paper
 ↓
Hypothesis
 ↓
Experiment
 ↓
Evaluation
 ↓
Validated Method

研究成果を、そのままProductionへ送らない。

まず再現可能なCapabilityへ変換する。



第2層――Intelligence

Researchで検証されたMethodを、再利用可能なIntelligence Componentへ変える。

本書では主としてPythonがこのLayerを担う。

Research Code
    ↓
Python Module
    ↓
Model Interface
    ↓
AI Service

Machine Learning。

Deep Learning。

LLM。

Embedding。

Evaluation。

ここでAIの知的処理能力を構築する。

第1章ではこのLayerを実装する。



第3層――Domain

General Intelligenceを産業へそのまま投入しない。

製薬。

Energy。

Enterprise。

それぞれのKnowledgeとRequirementへ適応する。

General AI
   ↓
Domain Knowledge
   ↓
Domain Data
   ↓
Domain Rules
   ↓
Domain Evaluation

第2章では、製薬AIを代表例としてこの変換を扱う。

QAIやJPharmatronそのものを複製するのではない。

その背後にある、

Domain Knowledge → LLM / RAG → Evaluation → Human Review

という一般化可能なArchitectureを実装する。



第4層――Workflow

AIが正しいOutputを返しても、それだけでは企業は動かない。

検索する。

分析する。

Draftを作る。

Toolを呼ぶ。

Humanへ確認する。

承認後に次の処理へ進む。

これらをWorkflowへ変換する。

Request
  ↓
Agent
  ↓
Tool
  ↓
AI
  ↓
Validation
  ↓
Human Approval
  ↓
Business Action

第3章ではAgentとEnterprise Integrationを扱う。

ここが、

PoC → Production

の中心になる。



第5層――Interface

HumanはAI Systemの外部に存在するのではない。

Operator。

Reviewer。

Approver。

Domain Expert。

としてArchitectureへ入る。

そこでTypeScriptを用いて、

AI Output。

Evidence。

Risk。

Approval。

History。

を操作できるInterfaceを構築する。

AI System
   ⇅
TypeScript Interface
   ⇅
Human

Interfaceは単なる画面ではない。

Human ResponsibilityをSystemへ実装する境界である。



第6層――State

AIは確率的なOutputを生成する。

しかし企業には正式なStateが必要である。

DocumentはDraftなのか。

Review中なのか。

Approvedなのか。

どのVersionがCurrentなのか。

誰が承認したのか。

そこでSQLを用いる。

AI Proposal
    ↓
Human / Policy
    ↓
State Transition
    ↓
SQL

本書では、

Generated Output ≠ Authoritative State

という原則を保持する。



第7層――Infrastructure

AIを継続運用するためにはExecution Environmentが必要になる。

Cloud。

Container。

Database。

Object Storage。

Vector Database。

Identity。

Secret Management。

Monitoring。

これらを接続する。

Application
   ↓
Cloud Runtime
   ├─ Compute
   ├─ Database
   ├─ Storage
   ├─ Identity
   └─ Observability

第4章では、この基盤をTrusted AI Infrastructureとして構築する。



第8層――Physical

AIがSoftwareの外へ出ると、

Sensor。

Camera。

LiDAR。

Edge。

Robot。

Control System。

へ接続される。

Reality
 ↓
Sensor
 ↓
Edge
 ↓
AI
 ↓
Planning
 ↓
Safety
 ↓
Robot
 ↓
Reality

第5章では、このClosed Loopを扱う。

ここではRustも重要になる。

PythonでResearchとModelを担い、RustでLow-latency RuntimeやEdge Processingを担う。

Languageを競合させるのではなく、責任を分担する。



第9層――Advanced Computing

すべての産業ProblemがLLMで解けるわけではない。

Scheduling。

Routing。

Resource Allocation。

Combinatorial Problem。

Simulation。

には、数理最適化や異なる計算手法が必要になる。

そこで第6章では、

AI
+
Mathematical Optimization
+
Classical Computing
+
Quantum Computing

を接続する。

Quantum Computingを万能な未来Technologyとして扱わない。

Classical Computingで解く領域、Hybrid Approachを検討する領域、Research段階に留まる領域を区別する。



第10層――Evaluation

SystemはProductionへ出した瞬間に完成するわけではない。

むしろそこから本当のEvaluationが始まる。

Model Quality。

Domain Accuracy。

Latency。

Failure。

Human Correction。

Physical Outcome。

を観測する。

Production
  ↓
Observation
  ↓
Evaluation
  ↓
Feedback

第7章では、このContinuous Evaluationを実装する。



第11層――Human

Humanは一つの独立Layerであると同時に、全Architectureを横断する。

Researcher
Domain Expert
Engineer
Operator
Reviewer
Approver

Humanは、

Training Dataを作る。

Evaluation Criteriaを定義する。

AI Outputを確認する。

例外を判断する。

Incidentを分析する。

次のResearch Questionを発見する。

したがって、

Human-in-the-loop

だけでは十分ではない。

本書では、

Human-in-the-Architecture

として扱う。



第12層――Feedback

Productionから生まれた情報をResearchへ戻す。

Human Correction
Domain Failure
Runtime Error
Physical Outcome
      ↓
Feedback
      ↓
Curation
      ↓
Evaluation Dataset
      ↓
Research

このFeedback Loopがなければ、Systemは時間とともに劣化する。



本書の共通実装Stack

以上をTechnology Stackへ翻訳すると、次のようになる。

Python
   Intelligence / Research / Evaluation
LLM / RAG
   Generative Intelligence / Knowledge
Agent
   Task Orchestration / Tool Use
TypeScript
   Enterprise Interface / Human Interaction
SQL
   Authoritative State / Audit
Cloud
   Production Runtime / Data Infrastructure
Rust
   High-performance Runtime / Edge
Sensor / Robotics
   Physical Interface
Optimization / Quantum
   Advanced Computation
Evaluation
   Continuous Reliability

重要なのは、すべてのProjectですべてを使うことではない。

Requirementに必要なComponentだけを選択する。



Smallest Sufficient Architecture

本書では、Technologyを増やすことを高度化とは考えない。

Promptだけで解けるなら、Agentを作らない。

SQLで十分なら、Graph Databaseを追加しない。

Cloud APIで十分なら、独自LLMをTrainingしない。

Ruleで安全に解けるなら、AIに判断させない。

つまり基本原則は、

Smallest Sufficient Architecture

である。

必要十分な最小構造から始める。



Complexity Budget

System ComplexityにはCostがある。

Componentが増えれば、

Development。

Testing。

Security。

Monitoring。

Maintenance。

が増える。

したがって、新しいTechnologyを追加するときには、

「何ができるか」

だけではなく、

そのComplexityを導入する理由があるか

を問う。



Stable Core

一方で、Domainが変わっても共通して必要になるComponentがある。

Trusted Core
├─ Identity
├─ Security
├─ Model Gateway
├─ Evaluation
├─ Audit
├─ Observability
├─ Human Approval
└─ Policy

これをStable Coreとする。



Adaptive Layer

その外側には変化の速いTechnologyを置く。

Adaptive Layer
├─ Model
├─ Prompt
├─ RAG
├─ Agent
├─ Optimization
├─ Sensor Algorithm
└─ Robot Policy

これらは交換可能にする。

つまり、

Stable Core + Adaptive Layer

である。



Domain Layer

さらにDomain固有部分を分離する。

Domain Layer
├─ Knowledge
├─ Data Schema
├─ Workflow
├─ Rules
├─ Evaluation
└─ Failure Definition

すると全体は、

Stable Core
   +
Adaptive AI
   +
Domain Layer

として構成できる。



Interface Contract

各ComponentはInterfaceで接続する。

Python ModelをRust Runtimeから利用する。

AgentをTypeScript Applicationから呼ぶ。

AI OutputをSQLへ記録する。

CloudとEdgeを接続する。

このとき重要なのは内部実装ではなくContractである。

Input Schema
Output Schema
Permission
Failure Behavior
Version

を明示する。



Replaceable Architecture

Foundation Modelは変わる。

Vector Databaseも変わる。

Cloud Serviceも変わる。

Robot Hardwareも変わる。

しかし企業のAI System全体を毎回作り直すわけにはいかない。

そこで、

Technology is replaceable; architecture persists.

という設計を採る。



Trust Boundary

本書ではSystem内に複数のTrust Boundaryを置く。

External Input
     ↓
[Validation]
LLM Output
     ↓
[Schema / Evidence Check]
Agent Action
     ↓
[Permission]
High-risk Decision
     ↓
[Human Approval]
Physical Action
     ↓
[Safety Layer]

AIが賢くなるほどBoundaryを消すのではない。

CapabilityとAuthorityを分離する。



State Transition

本書の実装では、AI Applicationを単なるQuestion Answering Systemとして作らない。

Stateを持つ。

例えば、

CREATED
  ↓
ANALYZED
  ↓
REVIEW_REQUIRED
  ↓
APPROVED
  ↓
EXECUTED
  ↓
VERIFIED

というTransitionを定義する。

AIはこのState Machineの中で働く。



Verificationを最後に置く

Actionを実行したから終わりではない。

期待した結果になったか確認する。

Plan

Execute

Observe

Verify

Physical AIでは特に重要になる。

RobotがCommandを受け取ったことと、RealityでTaskが完了したことは同じではない。



Failureを第一級Stateにする

Successだけを設計しない。

FAILED
RETRY_REQUIRED
HUMAN_REQUIRED
SAFE_STOP
ROLLBACK_REQUIRED

も正式なStateとして扱う。

Failureを例外ではなくSystem Behaviorとして実装する。



本書の共通Pipeline

ここまでを統合すると、本書全体の実装Pipelineは次のようになる。

Research
  ↓
Prototype
  ↓
Domain Adaptation
  ↓
Evaluation
  ↓
Production Candidate
  ↓
Secure Deployment
  ↓
Human / Agent Workflow
  ↓
Industrial Execution
  ↓
Runtime Observation
  ↓
Verification
  ↓
Feedback
  ↓
Next Research

このPipelineを、7章を通して段階的に構築していく。



第1章から第7章まで

第1章では、Intelligenceを作る。

第2章では、Domain Trustを作る。

第3章では、Enterprise Workflowへ接続する。

第4章では、DataとInfrastructureを作る。

第5章では、Physical Worldへ接続する。

第6章では、Advanced Computationを追加する。

第7章では、Continuous Learningを閉じる。

つまり、

Intelligence
  ↓
Domain
  ↓
Workflow
  ↓
Infrastructure
  ↓
Physical
  ↓
Advanced Computing
  ↓
Continuous Learning

という順序になる。



松尾・岩澤研究室編との境界

ここで、本書の位置も明確になる。

研究室を起点とするAI実装体系が、

AI Research
    ↓
General AI Architecture

を主として扱うなら、本書はそこから先へ進む。

AI Architecture
     ↓
Domain
     ↓
Trust
     ↓
Production
     ↓
Industry

である。

焦点は、新しいAIを発明することだけではない。

発明されたAIを、責任を持って現実の産業へ置くことにある。



EQUES型実装の最小式

第1冊で分析した企業構造を、Executable Architectureへ最後に圧縮する。

Research
  ↓
Technology
  ↓
Domain
  ↓
Implementation
  ↓
Human
  ↓
Industry
  ↓
Feedback
  ↓
Next Research

この循環をCode、Data、Infrastructure、Human Workflowとして実装する。

それが本書の目的である。



本書では、完成された一つの巨大Systemを最初から提示しない。

最小Componentを作る。

接続する。

評価する。

信頼境界を追加する。

Productionへ移す。

RealityからFeedbackを得る。

必要な部分だけを高度化する。

その反復によって、Research PrototypeをTrusted Industrial AI Systemへ成長させていく。

AI研究を産業へ移すとは、ModelをDeployすることではない。

ResearchのPotentialを、DomainのRequirementへ翻訳し、Humanが責任を持てるProduction SystemとしてRealityへ実装し、そのRealityから再び学習できる循環を構築することである。

ここで序章のArchitectureは完成した。

次の第Ⅰ部では、その最初のComponentへ入る。

研究、Machine Learning、Deep Learning、LLM、Domain Adaptation、Fine-tuning、RAG、Evaluationを担う、産業AIのIntelligence Layer。

Python / Domain AIから実装を開始する。

愛と敬意を込めてmandala

いいなと思ったら応援しよう!