국방AI 프롬프트 경진대회 · 출제안 4

설비 정비주기 예측형 — 자동채점·리더보드 설계

전처리·실행·채점까지 전체 하네스는 우리가 만들어 고정하고, 참가자는 그 안에서 LLM에 줄 행동 지침만 작성합니다.
이 문서는 자문 범위 세 축(문제·데이터셋 / 자동채점 / 리더보드)을 한눈에 정리합니다.

규모
약 1만 명 · 동시 500
참가자 작성
에이전트 행동 지침
제출 / 실행
1일 3회 / 50회
채점
정답 대조 · Macro F1
문제 · 데이터셋

예측 과제 및 데이터셋 정의

장비 유지보수 이력(합성 데이터) 1건을 보고 고장위험등급다음 정비주기 구간을 분류합니다.
참가자는 공개된 train 15행으로 규칙을 추론하고, 채점은 숨겨진 test 30행으로 이뤄집니다.

쉽게 이해하기

군 설비(발전기·전술차량·통신장비·레이더 등)는 갑자기 고장 나면 작전·훈련에 큰 차질을 줍니다. 그래서 고장 뒤 수리가 아니라 징후를 미리 읽어 예방 정비하는 것이 핵심이고, 그러려면 방대한 정비 이력을 판단해야 합니다.

이 대회는 그 판단을 LLM으로 자동화합니다. 정비 이력을 보고 ① 곧 또 고장날 위험이 얼마나 큰지, ② 다음 정비를 언제 해야 하는지를 분류하도록, 참가자가 에이전트 행동 지침을 설계하는 과제입니다.

여기서 참가자는 직접 정답을 맞히거나 코드를 짜지 않습니다. "AI에게 이렇게 판단하라"고 일러주는 설명서(프롬프트) 한 장만 씁니다 — 예컨대 "정비가 잦거나 가동시간이 길거나 최근에 고장났으면 위험을 높게 보라"처럼요. 그러면 채점 시스템이 그 설명서를 숨겨진 30건에 그대로 실행해, 정답과 얼마나 일치하는지로 점수를 매깁니다.

예: 발전기 1대의 정비 기록
  • 최근 1년 6번 정비 잦음
  • 누적 4,200시간 가동 많음
  • 20일 전에도 고장 최근
고장 위험HIGH높음
다음 정비0-3030일 안에 재정비

과제 명세

입력 · Input
id장비유형수리 시작일수리 종료일정비 조치비용정비횟수/1y가동시간직전고장 경과일
출력 · Output
risk_gradeHIGHMEDIUMLOW
cycle_range0-3031-9091-180181+
학습 예시train.csv 15행 — 입력 + 정답 공개
채점 대상test.csv 30행 — 입력·정답 비공개, 서버 보관
평가 지표두 라벨 Macro F1의 평균 (아래 채점)
정답 규칙결정론적 규칙(비공개) · 경계 케이스로 변별

train.csv 데이터 예시 · 4행

id장비수리기간(일)비용(원)최근1년 정비(회)누적가동(h)직전고장(일 전)→ 고장위험→ 다음정비
1발전기6850,00064,20020HIGH0-30
2통신장비2120,00011,500140LOW181+
3전술차량4430,00033,10060MEDIUM31-90
4레이더3900,00032,60075MEDIUM91-180

① 고장 위험 등급 · risk_grade

가까운 시일 내 다시 고장 날 가능성을 세 단계로.
정비가 잦고 오래 가동됐거나 최근 고장났을수록 높음.

HIGH정비 ≥ 5회 또는 가동 ≥ 4000h 또는 직전고장 ≤ 30일
MEDIUMHIGH·LOW 어디에도 해당하지 않음
LOW정비 ≤ 2회 그리고 가동 < 2000h 그리고 직전고장 > 90일

② 다음 정비 시점 · cycle_range

다음 정비까지 두어도 되는 기간을 네 구간으로.
위험이 클수록 더 빨리 정비해야 함.

0-3030일 이내 재정비 · risk=HIGH
31-901~3개월 · MEDIUM & 가동 ≥ 3000h
91-1803~6개월 · MEDIUM & 가동 < 3000h
181+6개월 초과 · risk=LOW
자동채점 · 하네스

자동채점 하네스 구조

프롬프트 입력·모델 호출·파싱·채점까지 결정론적 배관은 우리가 구축해 고정합니다.
참가자는 LLM에 줄 행동 지침만 작성하며, 전처리·피처 유도·추론·분류를 모두 그 지침으로 지시합니다.
우리가 전처리 로직을 짜서 잠그는 게 아니라, 참가자가 프롬프트로 분석할 수 있는 판을 고정하는 것입니다.

1프롬프트 입력 test 레코드를 raw JSON으로 프롬프트에 입력 — 파생값은 만들지 않음고정
2LLM 에이전트 호출 행동 지침이 전처리·추론·분류를 모두 지시 · gpt-4.1-nano 스냅샷 고정 · temperature 0 · seed 고정 · 행당 1회참가자 작성
3출력 파싱 · 검증 마지막 줄의 `risk_grade, cycle_range`만 계약 파싱 · 형식 위반·허용값 밖은 행 0점고정
4정답 대조 · 채점 Macro F1 · 간결성 · 통합 산식 · 원출력 저장고정

참가자가 통제하는 변수는 2단계 행동 지침 하나뿐입니다. 예컨대 "수리기간 = 종료일 − 시작일을 먼저 구하고 가동시간을 정규화한 뒤 분류하라"처럼 전처리 로직까지 지침에 담으면 모델이 그 지시를 프롬프트 문맥 안에서 그대로 수행합니다. 프롬프트 입력·출력 계약·채점 산식은 하네스가 강제하고 모델 스냅샷·seed·temperature를 고정하므로, 같은 지침은 언제 재실행해도 같은 점수로 재현됩니다. 정답셋과 API 키는 채점 워커에만 격리되어, 정답을 하드코딩하거나 채점을 우회할 경로가 구조적으로 없습니다. (전처리를 별도 LLM 호출로 분리하는 다단계 파이프라인은 2차 PBL 대회의 확장 옵션입니다.)

채점 지표

평가 지표 및 배점 체계

정확도(Macro F1)와 간결성(행동 지침 글자 수)을 단일 가중식으로 통합합니다. 총 100점.

100점 구성

과제 수행 정확도 40.5 + 간결성 4.545
온라인 수강률 VOD 3개 각 30%↑25
결과값 유효성 답변 파싱·허용값10
제출형식 준수 출력 계약 준수10
보안 적합성 개인정보·금지어10

정확도가 0.9 가중 → 오답은 자동으로 저득점, 별도 게이트 불필요.

① 정확도 · Macro F1
F1c = 2·Pc·Rc / (Pc + Rc) MacroF1 = (1/|C|) · Σc F1c 평균F1 = ( F1risk + F1cycle ) / 2
  • 정밀도 P모델이 A라고 답한 것 중 실제로 A였던 비율
  • 재현율 R실제 A 중 모델이 A로 맞힌 비율
  • F1정밀도·재현율을 합친 값 (조화평균)
  • Macro F1등급마다 F1을 구해 평균 — 드문 등급도 공평
  • 평균 F1두 라벨(위험·주기) F1의 평균 → 정확도
② 간결성 · 행동 지침 글자 수 L
간결성 = clip( (C_max − L) / (C_maxC_min), 0, 1 ) 단, C_min = 200, C_max = 3000
  • L행동 지침 글자 수 (입력 {{input}} 제외 · 폼 실시간 카운터)
  • 200자 이하1점 (만점)
  • 3000자0점 (하드 캡)
  • 의미좋은 지침일수록 군더더기가 적다는 가정
③ 통합 · 총점 (90/10 가중)
과제수행 = 45 · ( 0.9·평균F1 + 0.1·간결성 ) 총점 = 과제수행 + 25·VOD + 10·유효 + 10·형식 + 10·보안
  • 과제수행정답 90% + 간결성 10% → 45점
  • + 나머지수강률 25 · 유효 10 · 형식 10 · 보안 10
  • 핵심정답이 압도적 비중이라 오답은 자동으로 하위권
참가자 대시보드

참가자 제출·검증 환경

코딩 테스트처럼 행동 지침을 작성해 [샘플 실행](공개 train)으로 검증하고 [제출]합니다 · 실행 50회 / 제출 3회 (1일).

agent_instructions.txt 미리보기 47/50 · 제출 2/3
1
2
3
4
5
너는 국방 설비 정비 분석가다.
아래 정비 이력을 보고 고장위험등급과
다음 정비주기를 판단하라.
입력: {{input}}
출력: `위험, 주기` 한 줄 (예: HIGH, 0-30)
100 / 3000자 ▶ 샘플 실행 제출 →
샘플 테스트 · 공개 train 5행 (공식 채점 아님)
#입력 (요약)기대 정답에이전트 출력판정
1발전기 · 정비6 · 4,200hHIGH, 0-30HIGH, 0-30통과
2통신장비 · 정비1 · 1,500hLOW, 181+LOW, 181+통과
3전술차량 · 정비3 · 3,100hMEDIUM, 31-90MEDIUM, 31-90통과
4레이더 · 정비3 · 2,600hMEDIUM, 91-180MEDIUM, 91-180통과
5화포 · 정비4 · 3,300hMEDIUM, 31-90MEDIUM, 0-30실패
추정 정확도 4 / 5 · 평균 F1 ≈ 0.80 — 숨겨진 test 채점과 다를 수 있음

[샘플 실행]은 정답이 공개된 train으로 즉시 결과를 보여주고, [제출]만 숨겨진 test 30행으로 공식 채점됩니다.

리더보드

리더보드 운영 및 순위 산정

참가자는 자기 순위와 상위 몇 %인지 분포와 함께 확인합니다. 실시간이 아닌 매일 자정 배치로 갱신합니다.

리더보드 (예시 · 자정 스냅샷)

순위참가자소속총점제출최종 제출
1이○준공군 제1전투비행단97.23/307-28 22:10
2박○서수도방위사령부95.83/307-27 19:44
3최○민해군 제2함대94.12/307-28 09:03
1,187홍길동 본인육군훈련소91.33/307-28 14:22
1,188정○우제7군단91.22/307-28 11:57
마스킹 참가자명 일부 가림
총점 여러 제출 중 최고점 자동 선택
동점 수강률 → 제출시간 → 유효성 순
소속 공개 여부 토글
내 위치 · 홍길동
1,187등
9,842명 중 · 상위 12% · 91.3점

▲ 내 점수 91.3 — 90–100 구간 (상위 12%)

대회 초반

구간만 표시

상위·중위·하위 n%로만 노출해 초기 과열·이탈을 방지합니다.

진행 중

매일 자정 갱신

실시간이 아닌 자정 배치로 순위를 갱신해 역추적을 차단합니다.

마지막 날

실제 등수 공개

Public 기준 실등수를 열어 최종 스퍼트 동기를 부여합니다.

마감 후

Private 최종 순위

숨겨둔 정답셋으로 재채점 → 게이밍 무력화, 수상 후보 확정.