모두의포트폴리오
PE · FDE 직군을 위한 포트폴리오 밀키트
예전 판입니다 (1판)이 문서는 2026-08-02 에 새 판으로 개정됐습니다. 실시간 스트림 연동과 센서 파서를 전제하던 범위를 걷어내고, 현장에서 받아 온 수집 에피소드 파일을 배치로 검사해 확인 질문 요청서를 내는 CLI로 다시 썼습니다.최신 판 보기 →
경력리얼월드 · Forward Deployed ML Engineer

로봇 작업 로그에서 작업 성공·실패를 판정하고 원인을 짚는 평가 하네스 배포

리얼월드 공고에서 뽑은 세 가지 시그널.

리얼월드는 제조 현장 적용을 노리는 로보틱스 파운데이션 모델을 만드는 회사라, 로봇 작업 평가 하네스는 그 고자유도 로봇 손의 실제 작업 시퀀스가 있어야 판정을 검증한다.

01

로보틱스 파운데이션 모델

'로보틱스 파운데이션 모델 개발'. 작업 평가 하네스가 모델 현장 적용의 토대.

로보틱스파운데이션모델
02

산업 현장 즉각 적용

'제조업 등 실제 산업 현장에서 즉각 적용 가능한 AI'. 작업 성공·실패 평가가 FDE 의 핵심.

산업현장솔루션
03

고자유도 조작

'고자유도 로봇 손의 섬세한 조작'. 작업별 실패 원인 분석이 직격.

로봇조작AI

포트폴리오 요약

로봇 작업 로그·센서 데이터를 받아 작업 성공·실패를 규칙으로 판정하고 실패 원인을 근거와 함께 짚는 평가 하네스를 배포하는 1주 FDE PoC.

고객 정의

리얼월드 FDE. 로봇 작업 성패를 사람이 영상으로 확인하던 일을, 자동 평가 + 실패 원인 하네스로 현장에 배포하고 싶은 사람.

고민 지점

작업 로그에 단계·센서를 붙이면, 도구가 (a) 성공·실패를 규칙으로 판정하고 (b) 실패 원인을 근거와 함께 짚을 수 있다.

주차별 일정

1주차여기까지로 완성

작업 평가 + 실패 원인

로봇 작업 로그를 받아 성공·실패를 판정하고 실패 원인을 근거와 함께 짚는 동작하는 평가 하네스.

  1. 1일 · 로봇 작업·센서 스키마 설계 + 성공·실패·원인 판정 규칙 정의
  2. 2-3일 · 작업 로그 ingest(Python/C++) + 판정 규칙 + Docker 패키징 + Zod 검증
  3. 4일 · 성공·실패 판정 + 실패 원인 + 센서 근거 인용
  4. 5일 · 평가 대시보드성공률·실패 원인·근거 한 화면
  5. 6일 · 일부러 만든 결측·경계·미등록 작업 30종으로 판정이 안 깨지는지 점검 + 5% 사람 확인
  6. 7일 · 7일치 시연 영상 + 직접 만든 정답과 비교한 기준선여기까지가 1주차 완성품
2주차선택 성장

판정 검증

검수자 라벨과 성공·실패 판정 일치도(κ)를 재고, 오탐을 보여주는 대시보드.

  1. 8-9일 · 검수자 라벨과 성공·실패 판정 일치도 측정(Cohen’s κ) + 오탐
  2. 10-11일 · 성공 조건·실패 유형 사전 보강 + 임계 튜닝
3주차선택 성장

다작업 확장

여러 작업 유형·로봇으로 평가 하네스를 확장 배포하는 단계.

  1. 12-14일 · 여러 작업 유형·로봇으로 평가 하네스 확장
  2. 15일 · 다작업 배포 시연 + 3주 통합 영상

데모 · 측정 지표

01

작업 로그를 넣으면 성공·실패 판정과 실패 원인이 센서 근거와 함께 나오는 걸 시연한다

02

성공·실패 판정(완료 조건 규칙)이 정답과 일치하는 비율 100%

측정: 결정적 재계산, 표본: 작업 200건

03

일부러 만든 결측·경계·미등록 작업 30종을 넣어도 판정이 멈추지 않고 처리되는 걸 시연한다

정직 경계선

진짜 성능 검증은 여기서 멈춘다

위 수치는 더미데이터 자가채점이며, 실제 작업 판정 정확도는 리얼월드 현장 실데이터 + 실 검수자가 있어야 측정 가능. 이 포트폴리오는 그 검증을 바로 돌릴 수 있는 상태까지 만든다.

미리 알아둬야 할 것들

이건 고객·실데이터 없이 혼자 만든 포트폴리오라 모든 수치는 합성 데이터 자가채점이다. 면접에서 '데모 동작 + 실검증 준비 상태'로 솔직히 설명하는 게 오히려 신뢰를 준다

정답을 내가 만들었으니 잘 맞는 게 당연. 그래서 결측·경계·미등록·표기 흔들림 케이스를 더미에 일부러 섞어 쉬운 문제만 푸는 게 아님을 보여준다

도메인 갭: 더미 작업과 실제 물리 환경(마찰·조도)이 달라 '데모 조건'임을 명시한다

실제 도입 시 달라지는 것: 실 로봇·작업 분포가 더미와 다르므로 성공 조건을 실현장으로 맞춰야 한다(도입 단계 과제)

더미 데이터

① 인라인 샘플 · ② seed.json 다운로드 · ③ 증강 프롬프트. 세 층 모두 동일한 schema 에서 파생.

robot_tasksTABLE· 12 rows

로봇 작업 로그·센서를 평가 입력으로 쓴다

② robot_tasks.seed.json 다운로드
① 인라인 샘플 (프리뷰 5 / 12)
task_idtask_rawtask_keygrip_forcecompletederror_codeduration_s
TK900A작업(구)————3
TK901작업0tk00falseE_SLIP10
TK902완벽작업tk28true—1.5
TK903미등록작업—99—XXXX0.1
TK000작업0tk05false—2
③ 증강 프롬프트 (본인 LLM 에 붙여서 N 배 늘리기)
z.object({ task_id: z.string(), task_raw: z.string(), task_key: z.string().nullable(), grip_force: z.number().nullable(), completed: z.boolean().nullable(), error_code: z.string().nullable(), duration_s: z.number() }). 쉬운 데이터만 만들지 말 것. 다음 하드 케이스를 의도적으로 섞어라: grip_force/completed null(센서 누락), grip 0(파지 실패)·극단, error_code 미정의(XXXX), task_key null 미등록, task_raw 표기 흔들림. 형식 깨뜨리기 시도 3건도 별도로.
schema (3 층의 단일 출처)
z.object({ task_id: z.string(), task_raw: z.string(), task_key: z.string().nullable(), grip_force: z.number().nullable(), completed: z.boolean().nullable(), error_code: z.string().nullable(), duration_s: z.number() })

기술 상세 · 아키텍처·운영·출력 스키마

기술 스택 매핑
Python작업 로그 ingest + 판정 규칙 + eval
C++실시간 센서 로그 파서
Docker평가 하네스 컨테이너 배포
ROS로봇 작업·센서 토픽 연동
REST평가 API(`POST /eval-task`)
gRPC실시간 작업 스트림 연동
LLM 선택
model
규칙 기반 성공·실패 판정 + Claude Sonnet(실패 원인 설명)
prompt
few-shot 3 + 센서 근거 인용 강제 + 원인 schema 강제 + 단정 가드
rationale
성공·실패는 결정적 규칙(완료 조건), 실패 원인 설명만 LLM.
결정 게이트
1주차 끝1주차 완성품이 자동으로 도는가. 여기까지가 그 자체로 제출 가능한 완성품.

✓ pass → 그대로 멈춰도 완성품. 더 키우려면 2주차(판정 검증)로.

2주차 끝판정 검증 결과가 나오는가.

✓ pass → 여기서 멈춰도 완결. 더 키우려면 3주차(다작업 확장)로.

재사용 레이어 · 코어 70% / 도메인 30%
core (재사용 가능)
  • 작업 로그 ingest + 성공·실패 규칙 엔진
  • 실패 원인 생성기 + 센서 근거 부착
  • 평가 하네스 + Zod 검증
  • 평가 대시보드
  • 5% 인간 spot-check 샘플러
domain (교체 대상)
  • 로봇 작업·센서 스키마
  • 작업 성공 조건·실패 유형 사전
  • 작업 표기 정규화
출력 스키마 · task_output

작업 평가 + 실패 원인

schema (JSON Schema)
z.object({ task_id: z.string(), result: z.enum(['success','fail','review']), cause: z.string().nullable(), evidence: z.object({ field: z.string(), value: z.number() }).nullable() })
모범 출력 (3)
[
  {
    "task_id": "TK901",
    "result": "fail",
    "cause": "파지력 0. 미끄러짐(E_SLIP)",
    "evidence": {
      "field": "grip_force",
      "value": 0
    }
  },
  {
    "task_id": "TK002",
    "result": "success",
    "cause": null,
    "evidence": {
      "field": "duration_s",
      "value": 1.5
    }
  },
  {
    "task_id": "TK900",
    "result": "review",
    "cause": "센서 결측. 확인 필요",
    "evidence": null
  }
]
검증 노트 (자동 vs 수동)

result(완료 조건)·evidence 정합성은 자동 검증, cause 타당성은 로봇 엔지니어/judge 검증.