Core ML은 Apple의 온디바이스 머신러닝 실행 프레임워크. 학습된 모델을 앱 번들에 포함하고 디바이스 내부에서 빠르게 추론하는 구조
- 로컬 추론 중심 구조
- 모델 번들 포함 방식
- 네트워크 비의존형 분류 작업 처리 구조
- 생성형 모델이 아닌 분류형 및 점수형 추론에 강한 실행 계층
- 모델별 런타임 차이를 허용하는 실행 구조
- 회고 발화를 먼저 기계적으로 분류할 1차 분류 계층 필요성
- 감정 분석을 규칙보다 안정적으로 점수화할 필요성
- 생성형 모델 호출 이전에 lightweight 분류 단계를 둘 필요성
- 4L 분류용 1차 classifier 역할
- 감정 분석용 score predictor 역할
- 생성형 Foundation Model 앞단의 deterministic 분석 계층 역할
Resources/FourLClassifier.mlmodelResources/MLModels/SentimentAnalysis/HowRUInt8.mlpackageServices/Report/FourLService.swiftServices/SentimentAnalysis/RetrospectiveSentimentAnalyzer.swiftServices/SentimentAnalysis/HowRUTokenizer.swift
- 회고 발화를
Liked,Learned,Lacked,Longed for관점으로 분류하는 모델 - 앱 번들에는
.mlmodel자산으로 포함 - 실제 추론은
FourLService에서NaturalLanguage의NLModel로 로드해 사용 - 문장 chunk 단위 분류 방식
- 회고 전사문의 감정 score 계산용 모델
RetrospectiveSentimentAnalyzer에서 generated Core ML class로 로드해 사용MLModelConfiguration의.cpuOnly설정 기반 실행- 세그먼트 단위 감정 score 추론 구조
- 사용자 입력 수집
SentenceChunkerService를 통한 의미 단위 분리FourLService에서 문장별 4L 분류- primary label, secondary label, fourL total confidence 계산
- Foundation Model 검토 단계로 결과 전달
- 회고 전사문 수집
- 세그먼트 단위 분리
HowRUTokenizer를 통한 모델 입력 변환HowRUInt8추론 수행- positive/negative percentage 및 keyword 집계
- 모델 실패 시 lexical fallback score 계산
- Core ML의 기계적 1차 분류
- Foundation Models의 자연어 생성과 해석 보강
- 두 계층을 섞지 않고 단계별 책임 분리
- 모델 로드 실패 시 앱 전체 중단 방지
- 감정 분석 모델 실패 시 lexical fallback 사용 구조
- 4L 분류 모델 미존재 시 empty fallback 경로 제공
- 4L 분류 모델은
NLModel기반 경량 분류 구조 - 감정 분석 모델은 generated Core ML class 기반 직접 추론 구조
- 같은 모델 자산 계층 안에서도 사용 방식이 다름을 고려한 서비스 분리 구조
- 긴 사용자 발화를 그대로 분류하지 않는 방식
- chunk 단위 분리 후 개별 분류 수행 구조
- 세그먼트 단위 감정 분석을 통한 부분 감정 반영 구조
- 모델 품질 자체는 학습 데이터 품질의 영향
- 분류 confidence가 높아도 사용자 맥락 전체를 설명하지는 못하는 한계
- Core ML만으로 자연스러운 질문 생성 불가능
Core ML은 이 앱에서 회고 내용을 먼저 구조화하고 수치화하는 1차 분석 엔진 역할과 감정 score 산출 엔진 역할