제조 환경에서 AI 시스템은 물리적 안전, 제품 품질, 규제 준수에 직접적인 영향을 미칩니다. 할루시네이션(환각 현상)이나 잘못된 판단은 설비 손상, 불량품 생산, 심지어 인명 사고로 이어질 수 있어 엄격한 거버넌스 체계가 필수입니다.
⚠️ 제조 AI 사고 사례: 2023년 한 자동차 부품 공장에서 AI 기반 레시피 추천 시스템이 잘못된 열처리 온도를 제안하여 1,200개 부품이 폐기되었습니다. 사람 검토 없이 자동 적용된 것이 원인이었습니다.
| 위험 등급 | 영향 범위 | 예시 | 필요 조치 |
|---|---|---|---|
| Critical | 인명 안전 | 로봇 경로 계획, 안전 인터록 | 이중 검증 + 실시간 모니터링 |
| High | 주요 품질/설비 | 공정 파라미터 변경, 레시피 조정 | 사람 승인 필수 |
| Medium | 운영 효율 | 일정 최적화, 재고 추천 | 검토 후 자동 적용 |
| Low | 정보 제공 | 보고서 초안, 문서 검색 | 자동 적용 허용 |
EU AI Act는 2024년부터 시행되며, 제조 AI 시스템 중 상당수가 고위험(High-Risk) 범주에 포함됩니다:
제조 환경에서 LLM의 할루시네이션은 치명적입니다. "존재하지 않는" 부품 코드, "틀린" 설정값, "가짜" 매뉴얼 정보가 생산 현장에 적용되면 큰 손실로 이어집니다.
| 유형 | 제조 예시 | 탐지 방법 |
|---|---|---|
| 사실 왜곡 | "모터 정격 전압은 220V" (실제 380V) | Knowledge Base 교차 검증 |
| 존재하지 않는 정보 | "부품 코드 A1234-XYZ" (존재하지 않음) | 마스터 데이터 조회 |
| 논리적 오류 | "온도 150°C에서 냉각 시작" (녹는점 120°C) | 물리/화학 법칙 검증 |
| 맥락 혼동 | A 설비 매뉴얼 내용을 B 설비에 적용 | 설비 ID/맥락 추적 |
import json
from dataclasses import dataclass
from typing import List, Dict, Optional
@dataclass
class VerificationResult:
# 검증 결과 데이터 클래스
is_verified: bool
confidence: float
sources: List[str]
warnings: List[str]
blocked_content: Optional[str] = None
class ManufacturingAIGuardrail:
"""제조 AI 할루시네이션 방지 가드레일"""
def __init__(self, kb_client, master_data_client):
self.kb = kb_client # Knowledge Base
self.master = master_data_client # 마스터 데이터
# 검증 규칙 정의
self.validation_rules = {
"part_code": self._validate_part_code,
"parameter_value": self._validate_parameter,
"equipment_spec": self._validate_equipment_spec,
"procedure": self._validate_procedure
}
def verify_response(
self,
llm_response: str,
context: Dict,
risk_level: str = "medium"
) -> VerificationResult:
"""LLM 응답 검증"""
warnings = []
sources = []
blocked = None
# 1. 엔티티 추출
entities = self._extract_entities(llm_response)
# 2. 각 엔티티 타입별 검증
for entity_type, values in entities.items():
if entity_type in self.validation_rules:
for value in values:
result = self.validation_rules[entity_type](
value, context
)
if not result["valid"]:
if risk_level == "critical":
# Critical 수준: 검증 실패 시 차단
blocked = f"검증 실패: {entity_type}={value}"
return VerificationResult(
is_verified=False,
confidence=0.0,
sources=[],
warnings=[],
blocked_content=blocked
)
else:
warnings.append(result["message"])
else:
sources.extend(result.get("sources", []))
# 3. 신뢰도 계산
confidence = self._calculate_confidence(
llm_response, sources, warnings
)
return VerificationResult(
is_verified=confidence >= 0.8,
confidence=confidence,
sources=sources,
warnings=warnings
)
def _validate_part_code(
self, code: str, context: Dict
) -> Dict:
"""부품 코드 마스터 데이터 검증"""
part = self.master.get_part(code)
if not part:
return {
"valid": False,
"message": f"부품 코드 '{code}' 마스터에 없음"
}
# 설비 호환성 확인
equipment_id = context.get("equipment_id")
if equipment_id and equipment_id not in part.compatible:
return {
"valid": False,
"message": f"'{code}'는 설비와 호환 안됨"
}
return {"valid": True, "sources": [f"master:parts:{code}"]}
모든 AI 응답에 출처를 명시하도록 강제하여 검증 가능성을 확보합니다:
# LLM 프롬프트에 출처 명시 규칙 포함
GROUNDING_PROMPT = """
당신은 제조 현장의 기술 질문에 답변하는 AI입니다.
[출처 규칙 - 반드시 준수]
1. 모든 기술 정보에는 반드시 출처를 명시하세요.
2. 출처 형식: [출처: 문서명, 섹션]
3. Knowledge Base에 없는 정보는 "확인된 정보 없음"으로 표시
4. 추측이나 일반 지식 기반 답변은 "[추정]" 표시
5. 파라미터 수치는 반드시 출처와 함께 제공
[금지 사항]
- 출처 없이 정확한 수치 제공 금지
- 마스터에 없는 부품/설비 코드 언급 금지
- 검증되지 않은 절차 안내 금지
[응답 예시]
Q: SMT 라인의 적정 리플로우 온도는?
A: SAC305 기준 피크 온도 235-245°C
[출처: 리플로우 가이드라인 v3.2, Section 4.1]
"""
제조 AI에서 사람의 검토와 승인은 선택이 아닌 필수입니다. 위험 수준에 따라 적절한 검토 체계를 설계해야 합니다.
from enum import Enum
from dataclasses import dataclass
from datetime import datetime, timedelta
class ApprovalLevel(Enum):
AUTO = 0
NOTIFY = 1
APPROVE = 2
COLLABORATE = 3
ASSIST_ONLY = 4
@dataclass
class ApprovalRequest:
request_id: str
ai_recommendation: str
context: Dict
risk_level: str
approval_level: ApprovalLevel
created_at: datetime
expires_at: datetime
status: str = "pending"
class ManufacturingApprovalSystem:
"""제조 AI 승인 워크플로우 시스템"""
def __init__(self, notification_service, audit_logger):
self.notifications = notification_service
self.audit = audit_logger
# 작업 유형별 승인 레벨 매핑
self.approval_rules = {
"recipe_change": ApprovalLevel.APPROVE,
"plc_code_deploy": ApprovalLevel.COLLABORATE,
"safety_interlock": ApprovalLevel.COLLABORATE,
"quality_decision": ApprovalLevel.APPROVE,
"maintenance_schedule": ApprovalLevel.APPROVE,
"inventory_reorder": ApprovalLevel.NOTIFY,
"report_generation": ApprovalLevel.AUTO,
"document_search": ApprovalLevel.AUTO,
"emergency_response": ApprovalLevel.ASSIST_ONLY,
}
async def submit_for_approval(
self,
action_type: str,
ai_recommendation: str,
context: Dict
) -> ApprovalRequest:
"""AI 추천 승인 요청"""
level = self.approval_rules.get(
action_type,
ApprovalLevel.APPROVE # 기본값: 승인 필요
)
request = ApprovalRequest(
request_id=self._generate_id(),
ai_recommendation=ai_recommendation,
context=context,
risk_level=context.get("risk_level", "medium"),
approval_level=level,
created_at=datetime.now(),
expires_at=datetime.now() + timedelta(hours=24)
)
# 레벨별 처리
if level == ApprovalLevel.AUTO:
await self._auto_approve(request)
elif level == ApprovalLevel.NOTIFY:
await self.notifications.send(
recipients=self._get_reviewers(context),
message=f"AI 추천 적용 예정: {ai_recommendation}"
)
elif level in [ApprovalLevel.APPROVE, ApprovalLevel.COLLABORATE]:
await self.notifications.send_urgent(
recipients=self._get_approvers(context, level),
message=f"승인 필요: {action_type}"
)
# 감사 로그 기록
self.audit.log_approval_request(request)
return request
제조업은 다양한 규제 기관의 요구사항을 준수해야 합니다. AI 시스템 도입 시 기존 규제와 새로운 AI 규제를 모두 고려해야 합니다.
| 산업 | 주요 규제 | AI 관련 요구사항 |
|---|---|---|
| 제약 | FDA 21 CFR Part 11, GMP | 데이터 무결성, 변경 이력, 전자 서명 |
| 자동차 | IATF 16949, ISO 26262 | 기능 안전, FMEA 문서화 |
| 식품 | FSSC 22000, HACCP | 위해 요소 분석, 추적성 |
| 항공우주 | AS9100, DO-178C | 소프트웨어 검증, 변경 관리 |
| 에너지 | IEC 62443, NERC CIP | 사이버 보안, 접근 통제 |
제약 산업에서 AI 시스템은 다음 요구사항을 충족해야 합니다:
class FDACompliantAISystem:
"""FDA 21 CFR Part 11 준수 AI 시스템"""
def record_ai_decision(
self,
decision_type: str,
input_data: Dict,
ai_output: Dict,
model_info: Dict
) -> str:
"""AI 결정 감사 기록 (변경 불가)"""
record = {
"record_id": self._generate_uuid(),
"timestamp": datetime.utcnow().isoformat(),
"decision_type": decision_type,
# 입력 데이터 (해시로 무결성 보장)
"input_hash": self._hash_data(input_data),
"input_snapshot": input_data,
# AI 출력
"ai_output": ai_output,
"ai_confidence": ai_output.get("confidence"),
# 모델 정보 (재현 가능성)
"model_id": model_info["id"],
"model_version": model_info["version"],
"model_hash": model_info["checksum"],
}
# 불변 감사 로그에 저장
self.audit.append(record)
return record["record_id"]
def validate_model_for_deployment(self, model_id: str) -> Dict:
"""모델 배포 전 검증 (CSV 요구사항)"""
validation_report = {
"model_id": model_id,
"validation_date": datetime.utcnow().isoformat(),
"checks": [
{"phase": "IQ", "items": ["무결성", "의존성", "환경"]},
{"phase": "OQ", "items": ["표준테스트", "경계값"]},
{"phase": "PQ", "items": ["실데이터", "정확도"]},
]
}
return validation_report
자동차 산업에서 AI 기반 의사결정은 ASIL(Automotive Safety Integrity Level)에 따라 관리되어야 합니다:
⚠️ ASIL D 적용 시스템: 브레이크, 조향 관련 AI 시스템은 가장 높은 ASIL D 등급이 적용됩니다. 단일 AI 모델만으로는 안전 요구사항을 충족할 수 없으며, 독립적 검증 경로가 필수입니다.
| ASIL 등급 | AI 적용 가능 영역 | 요구사항 |
|---|---|---|
| ASIL A | 편의 기능, 인포테인먼트 | 기본 테스트, 문서화 |
| ASIL B | 경고 시스템, 진단 | + 코드 리뷰, FMEA |
| ASIL C | 보조 제어 시스템 | + 독립 검증, 정형 기법 |
| ASIL D | 안전 필수 시스템 | + 이중화, 독립 경로, 하드웨어 인터록 |
배포된 AI 시스템은 시간이 지나면서 성능이 저하될 수 있습니다. 지속적인 모니터링과 드리프트 탐지가 필수입니다.
from scipy import stats
import numpy as np
class ManufacturingAIMonitor:
"""제조 AI 실시간 모니터링"""
def __init__(self, baseline_stats, alert_service):
self.baseline = baseline_stats
self.alerts = alert_service
self.drift_thresholds = {
"psi": 0.2, # PSI > 0.2 = 유의미한 변화
"ks_pvalue": 0.05, # p-value < 0.05 = 분포 다름
"accuracy_drop": 0.05 # 정확도 5% 이상 하락
}
def check_data_drift(
self,
feature_name: str,
current_data: np.ndarray
) -> Dict:
"""데이터 드리프트 탐지"""
baseline_data = self.baseline.get_feature(feature_name)
# KS 검정
ks_stat, ks_pvalue = stats.ks_2samp(
baseline_data, current_data
)
# PSI 계산
psi = self._calculate_psi(baseline_data, current_data)
# 드리프트 판정
is_drifted = (
psi > self.drift_thresholds["psi"] or
ks_pvalue < self.drift_thresholds["ks_pvalue"]
)
result = {
"feature": feature_name,
"is_drifted": is_drifted,
"psi": psi,
"ks_pvalue": ks_pvalue,
}
if is_drifted:
self.alerts.send_drift_alert(result)
return result
💡 재학습 트리거 조건:
1) PSI > 0.25 (심각한 데이터 드리프트)
2) 주요 메트릭 10% 이상 하락 지속 3일
3) 새 제품/공정 추가 시 (라벨 드리프트)
4) 정기 재학습 주기 (월간/분기별)
제조 AI 시스템 도입 전 점검해야 할 핵심 항목들입니다.
📋 거버넌스 문서화: 위 체크리스트 항목들은 단순 점검을 넘어 공식 문서로 관리되어야 합니다. EU AI Act, FDA 등 규제 기관은 AI 시스템의 전체 생명주기에 걸친 문서화를 요구합니다.
이번 챕터에서는 제조 생성형 AI의 핵심 기술과 실전 활용법을 학습했습니다.
📌 핵심 정리:
| 주제 | 핵심 내용 |
|---|---|
| RAG 시스템 | 벡터 DB 기반 문서 검색, 하이브리드 검색, 다국어 지원 |
| PLC 코드 생성 | 자연어→ST/래더 변환, 프롬프트 엔지니어링, 코드 검증 |
| 레시피 최적화 | LLM + Bayesian Optimization, DOE 자동화 |
| 이상 설명 AI | XAI + LLM 통합, SHAP/LIME 해석, 조치 가이드 |
| 음성 인터페이스 | STT/TTS 통합, 소음 환경 최적화, 다국어 지원 |
| 품질 보고서 | NCR 자동 생성, 규정 준수 문서화, 템플릿 기반 |
| 멀티모달 AI | 이미지+텍스트 통합 분석, 결함 설명 생성 |
| 거버넌스 | 할루시네이션 방지, HITL 체계, 규제 대응 |