제조 생성형 AI
10

제조 AI 거버넌스와 안전

📚 심화 ⏱️ 35분 🎯 제조 AI 안전 운영 체계

1. 제조 AI 거버넌스의 중요성

제조 환경에서 AI 시스템은 물리적 안전, 제품 품질, 규제 준수에 직접적인 영향을 미칩니다. 할루시네이션(환각 현상)이나 잘못된 판단은 설비 손상, 불량품 생산, 심지어 인명 사고로 이어질 수 있어 엄격한 거버넌스 체계가 필수입니다.

⚠️ 제조 AI 사고 사례: 2023년 한 자동차 부품 공장에서 AI 기반 레시피 추천 시스템이 잘못된 열처리 온도를 제안하여 1,200개 부품이 폐기되었습니다. 사람 검토 없이 자동 적용된 것이 원인이었습니다.

1.1 제조 AI 위험 분류

위험 등급 영향 범위 예시 필요 조치
Critical 인명 안전 로봇 경로 계획, 안전 인터록 이중 검증 + 실시간 모니터링
High 주요 품질/설비 공정 파라미터 변경, 레시피 조정 사람 승인 필수
Medium 운영 효율 일정 최적화, 재고 추천 검토 후 자동 적용
Low 정보 제공 보고서 초안, 문서 검색 자동 적용 허용

1.2 EU AI Act와 제조업

EU AI Act는 2024년부터 시행되며, 제조 AI 시스템 중 상당수가 고위험(High-Risk) 범주에 포함됩니다:

EU AI Act 제조 분류
금지 AI (Title II)
행동 조작, 사회적 스코어링
고위험 AI (Annex III)
산업 기계 제어
로봇 경로 AI
PLC 생성 AI
안전 부품 검사
비전 검사 AI
품질 예측 AI
인프라 관리
에너지 AI
설비 AI
투명성 의무 AI (Title IV)
AI 생성 콘텐츠 표시, 챗봇 AI 고지
저위험 AI
자발적 행동 규범

2. LLM 할루시네이션 방지 전략

제조 환경에서 LLM의 할루시네이션은 치명적입니다. "존재하지 않는" 부품 코드, "틀린" 설정값, "가짜" 매뉴얼 정보가 생산 현장에 적용되면 큰 손실로 이어집니다.

2.1 할루시네이션 유형과 탐지

유형 제조 예시 탐지 방법
사실 왜곡 "모터 정격 전압은 220V" (실제 380V) Knowledge Base 교차 검증
존재하지 않는 정보 "부품 코드 A1234-XYZ" (존재하지 않음) 마스터 데이터 조회
논리적 오류 "온도 150°C에서 냉각 시작" (녹는점 120°C) 물리/화학 법칙 검증
맥락 혼동 A 설비 매뉴얼 내용을 B 설비에 적용 설비 ID/맥락 추적

2.2 RAG + Grounding 기반 방지 체계

hallucination_prevention.py
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}"]}

2.3 출처 명시 강제 (Grounding)

모든 AI 응답에 출처를 명시하도록 강제하여 검증 가능성을 확보합니다:

# LLM 프롬프트에 출처 명시 규칙 포함 GROUNDING_PROMPT = """ 당신은 제조 현장의 기술 질문에 답변하는 AI입니다. [출처 규칙 - 반드시 준수] 1. 모든 기술 정보에는 반드시 출처를 명시하세요. 2. 출처 형식: [출처: 문서명, 섹션] 3. Knowledge Base에 없는 정보는 "확인된 정보 없음"으로 표시 4. 추측이나 일반 지식 기반 답변은 "[추정]" 표시 5. 파라미터 수치는 반드시 출처와 함께 제공 [금지 사항] - 출처 없이 정확한 수치 제공 금지 - 마스터에 없는 부품/설비 코드 언급 금지 - 검증되지 않은 절차 안내 금지 [응답 예시] Q: SMT 라인의 적정 리플로우 온도는? A: SAC305 기준 피크 온도 235-245°C [출처: 리플로우 가이드라인 v3.2, Section 4.1] """

3. Human-in-the-Loop 체계

제조 AI에서 사람의 검토와 승인은 선택이 아닌 필수입니다. 위험 수준에 따라 적절한 검토 체계를 설계해야 합니다.

3.1 검토 레벨 설계

Human-in-the-Loop 단계별 개입
Level 0: Full Automation (정보 제공 전용)
AI 추천 → 자동 적용
예: 문서 검색, 보고서 초안, FAQ 응답
Level 1: Notify (알림 + 자동)
AI 추천 → 알림 → 자동 적용 (이의 없으면)
예: 재고 재발주, 비위험 파라미터 조정
Level 2: Approve (승인 필요)
AI 추천 → 사람 검토 → 승인 → 적용
예: 레시피 변경, 품질 판정, 예방 정비 일정
Level 3: Collaborate (공동 작업)
AI 초안 → 전문가 수정 → 2차 검토 → 승인 → 적용
예: PLC 코드 생성, 안전 인터록 변경
Level 4: Assist Only (지원 전용)
사람 작업 → AI 보조 정보 제공 (적용 권한 없음)
예: 사고 대응, 비상 설비 제어

3.2 승인 워크플로우 구현

approval_workflow.py
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

3.3 검토 UI 설계 원칙

명확한 차이 표시: AI 추천과 현재 상태의 차이를 시각적으로 강조
근거 제시: AI가 왜 이 추천을 했는지 설명과 출처 함께 표시
영향 범위: 이 변경이 적용되면 어떤 설비/공정에 영향을 주는지 명시
롤백 옵션: 적용 후에도 쉽게 이전 상태로 되돌릴 수 있음을 안내
기한 표시: 승인 요청의 유효 기간과 자동 만료 시점 명시
부분 승인: 추천 내용 중 일부만 승인할 수 있는 옵션 제공

4. 규제 대응 전략

제조업은 다양한 규제 기관의 요구사항을 준수해야 합니다. AI 시스템 도입 시 기존 규제와 새로운 AI 규제를 모두 고려해야 합니다.

4.1 산업별 규제 요구사항

산업 주요 규제 AI 관련 요구사항
제약 FDA 21 CFR Part 11, GMP 데이터 무결성, 변경 이력, 전자 서명
자동차 IATF 16949, ISO 26262 기능 안전, FMEA 문서화
식품 FSSC 22000, HACCP 위해 요소 분석, 추적성
항공우주 AS9100, DO-178C 소프트웨어 검증, 변경 관리
에너지 IEC 62443, NERC CIP 사이버 보안, 접근 통제

4.2 FDA 21 CFR Part 11 대응

제약 산업에서 AI 시스템은 다음 요구사항을 충족해야 합니다:

fda_compliance.py
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

4.3 ISO 26262 기능 안전 대응

자동차 산업에서 AI 기반 의사결정은 ASIL(Automotive Safety Integrity Level)에 따라 관리되어야 합니다:

⚠️ ASIL D 적용 시스템: 브레이크, 조향 관련 AI 시스템은 가장 높은 ASIL D 등급이 적용됩니다. 단일 AI 모델만으로는 안전 요구사항을 충족할 수 없으며, 독립적 검증 경로가 필수입니다.

ASIL 등급 AI 적용 가능 영역 요구사항
ASIL A 편의 기능, 인포테인먼트 기본 테스트, 문서화
ASIL B 경고 시스템, 진단 + 코드 리뷰, FMEA
ASIL C 보조 제어 시스템 + 독립 검증, 정형 기법
ASIL D 안전 필수 시스템 + 이중화, 독립 경로, 하드웨어 인터록

5. AI 모니터링과 드리프트 관리

배포된 AI 시스템은 시간이 지나면서 성능이 저하될 수 있습니다. 지속적인 모니터링과 드리프트 탐지가 필수입니다.

5.1 드리프트 유형

제조 AI 드리프트 유형
Data Drift (데이터 분포 변화)
원인: 새 원자재, 계절 변화, 설비 노화
탐지: KS-test, PSI, Wasserstein 거리
Concept Drift (관계 변화)
원인: 공정 변경, 품질 기준 변화, 신제품
탐지: 예측 오차 모니터링, 잔차 분석
Label Drift (라벨/기준 변화)
원인: 검사 기준 변경, 새 불량 유형 정의
탐지: 라벨 분포 모니터링, 혼동 행렬 변화
Upstream Data Drift (상류 데이터 변화)
원인: 센서 교체, 데이터 파이프라인 변경
탐지: 스키마 검증, 단위/범위 체크

5.2 모니터링 시스템 구현

ai_monitoring.py
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

5.3 자동 재학습 정책

💡 재학습 트리거 조건:
1) PSI > 0.25 (심각한 데이터 드리프트)
2) 주요 메트릭 10% 이상 하락 지속 3일
3) 새 제품/공정 추가 시 (라벨 드리프트)
4) 정기 재학습 주기 (월간/분기별)

6. AI 거버넌스 체크리스트

제조 AI 시스템 도입 전 점검해야 할 핵심 항목들입니다.

6.1 배포 전 체크리스트

위험 평가: AI 시스템의 위험 등급이 분류되고 문서화되었는가?
검증 완료: IQ/OQ/PQ 또는 동등한 검증이 완료되었는가?
할루시네이션 방지: Grounding, 출처 검증, 마스터 데이터 연동이 구현되었는가?
승인 워크플로우: 위험 수준에 맞는 Human-in-the-Loop 체계가 구축되었는가?
감사 로그: 모든 AI 결정이 변경 불가능한 로그에 기록되는가?
롤백 계획: AI 시스템 장애 시 수동 운영으로 전환 절차가 있는가?
교육 완료: 운영자/관리자가 AI 시스템 사용법과 한계를 이해하는가?

6.2 운영 단계 체크리스트

드리프트 모니터링: 데이터/성능 드리프트가 실시간 모니터링되는가?
정기 검토: 월간/분기별 AI 성능 리뷰가 수행되는가?
피드백 수집: 현장 작업자의 AI 판단에 대한 피드백이 수집되는가?
인시던트 대응: AI 오작동 시 대응 절차와 담당자가 명확한가?
버전 관리: 모델 버전과 프롬프트 변경이 추적되는가?

📋 거버넌스 문서화: 위 체크리스트 항목들은 단순 점검을 넘어 공식 문서로 관리되어야 합니다. EU AI Act, FDA 등 규제 기관은 AI 시스템의 전체 생명주기에 걸친 문서화를 요구합니다.

7. Chapter 3 요약

이번 챕터에서는 제조 생성형 AI의 핵심 기술과 실전 활용법을 학습했습니다.

📌 핵심 정리:

주제 핵심 내용
RAG 시스템 벡터 DB 기반 문서 검색, 하이브리드 검색, 다국어 지원
PLC 코드 생성 자연어→ST/래더 변환, 프롬프트 엔지니어링, 코드 검증
레시피 최적화 LLM + Bayesian Optimization, DOE 자동화
이상 설명 AI XAI + LLM 통합, SHAP/LIME 해석, 조치 가이드
음성 인터페이스 STT/TTS 통합, 소음 환경 최적화, 다국어 지원
품질 보고서 NCR 자동 생성, 규정 준수 문서화, 템플릿 기반
멀티모달 AI 이미지+텍스트 통합 분석, 결함 설명 생성
거버넌스 할루시네이션 방지, HITL 체계, 규제 대응