Participant guide
의료영상 모델을 Docker로 제출하면 어떻게 채점되나요?
Orcaton은 참가자 모델에 숨겨진 정답을 내려주지 않습니다. 운영자가 승인한 격리 실행기가 고정된 컨테이너를 불러와 읽기 전용 입력을 제공하고, 결과물 또는 API 응답만 같은 evaluator 버전으로 채점합니다.
- 1
Build
linux/amd64 이미지
- 2
Test
공개 샘플로 확인
- 3
Push
승인 registry에 게시
- 4
Submit
digest와 provenance 제출
- 5
Score
숨겨진 데이터로 격리 채점
먼저 과제의 제출 방식을 확인합니다
Artifact output
구현됨 · 승인된 runner에서 개방컨테이너가 /input을 읽고 /output/submission.zip 하나를 만든 뒤 종료합니다. 분할, 검출, 분류, 회귀, 예후, 정합, 재구성, 합성 과제에 적합합니다.
Live API service
정적 사전검사만 개방루닛 Conquer Health처럼 컨테이너가 0.0.0.0:8000에서 실행되고 evaluator가 요청을 보내는 선택형 계약입니다. 대화형·순차 추론 과제용이며, 현재는 제출 전 정적 계약검사까지만 열려 있습니다.
Task별 MONAI 예제 이미지
예제들은 하나의 고정 MONAI/Torch 기반 레이어를 공유하지만 task별로 별도 이미지로 빌드됩니다. 해당 대회의 evaluation kind와 같은 이미지를 골라 입력 처리와 출력 파일명부터 확인합니다.
| Task | Build arg | Output | Local image |
|---|---|---|---|
| Segmentation | segmentation | labels/*.nii.gz | orcaton/monai-example-segmentation:local |
| Classification | classification | predictions.csv | orcaton/monai-example-classification:local |
| Ordinal grading | ordinal_grading | predictions.csv | orcaton/monai-example-ordinal_grading:local |
| Detection | detection | detections.json | orcaton/monai-example-detection:local |
| Regression | regression | predictions.csv | orcaton/monai-example-regression:local |
| Prognosis | prognosis | predictions.csv | orcaton/monai-example-prognosis:local |
| Registration | registration | landmarks.csv | orcaton/monai-example-registration:local |
| Reconstruction | reconstruction | images/*.nii.gz | orcaton/monai-example-reconstruction:local |
| Synthesis | synthesis | images/*.nii.gz | orcaton/monai-example-synthesis:local |
GPU 검증 전에는 local build tag만 안내합니다. 실제 제출에는 검증 후 registry가 반환한 immutable @sha256:… reference만 사용합니다.
1. Artifact 모델 이미지를 만듭니다
저장소의 examples/secure-model-suite는 9개 영상 과제 공통 예제입니다. 실제 과제의 starter kit과 출력 구조를 우선합니다.
docker build --platform linux/amd64 \
--build-arg TASK=segmentation \
-t ghcr.io/YOUR_ORG/YOUR_MODEL:v1 .태그는 빌드할 때 편의를 위한 이름일 뿐입니다. 최종 제출에는 변경 가능한 :v1 태그가 아니라 @sha256:… digest를 사용합니다.
2. 공개 샘플로 로컬 계약을 검사합니다
mkdir -p sample-input output
docker run --rm --network none --read-only \
--cap-drop ALL --security-opt no-new-privileges \
-v "$PWD/sample-input:/input:ro" \
-v "$PWD/output:/output" \
ghcr.io/YOUR_ORG/YOUR_MODEL:v1
unzip -l output/submission.zip/input은 읽기 전용이고 네트워크는 없습니다. 모델 가중치와 필요한 라이브러리는 이미지 안에 포함해야 하며, 토큰·클라우드 키·환자데이터를 이미지에 넣으면 안 됩니다.
Code Doctor로 제출 전에 점검합니다
제출 화면의 Code Doctor에 Dockerfile, 의존성 목록과 공개·합성 샘플에서 나온 오류 로그만 붙여 넣을 수 있습니다. 실제 의료데이터, 환자 식별정보, 숨겨진 입력·정답, 예측 결과는 입력하지 않습니다.
- 기본 점검은 Orcaton 서버에서 규칙 기반으로 실행되며 원문을 저장하지 않습니다.
- 운영자가 AI 진단 옵션을 계약·설정한 경우에도 참가자가 매번 동의해야 하며, 로컬 비식별화가 먼저 수행됩니다.
- 비밀정보, DICOM UID 또는 의료 메타데이터 흔적이 발견되면 외부 AI 호출을 차단합니다.
- Code Doctor의 조언은 수정 안내일 뿐입니다. 격리 실행기의 계약·보안 검사와 고정 evaluator만 제출 승인과 점수를 결정합니다.
Autoresearch로 실험 근거를 함께 남깁니다
선택형 로컬 연구 보조 스킬은 승인된 데이터 분석, 공개 방법 조사, paired-seed 실험, 하위집단 악화 검사와 최종 보고서 작성을 한 흐름으로 묶습니다. 참가자의 Codex·Claude 자격증명이나 숨은 시험데이터를 Orcaton으로 보내지 않습니다.
Autoresearch 사용법과 완료 기준 보기·Orcaton Autoresearch v1 다운로드·SHA-256
압축을 참가자 프로젝트가 사용하는 로컬 에이전트의 스킬 디렉터리에 풀고 SKILL.md의 단일 CLI 명령을 실행합니다. 이 도구의 결과는 개발 근거이며 공식 점수는 고정된 Orcaton 평가기만 결정합니다. 업로드는 참가자가 산출물과 manifest를 검토한 뒤 별도로 수행합니다.
3. Registry에 올리고 고정 digest를 얻습니다
docker push ghcr.io/YOUR_ORG/YOUR_MODEL:v1
docker inspect --format='{{index .RepoDigests 0}}' \
ghcr.io/YOUR_ORG/YOUR_MODEL:v1
git rev-parse HEAD대회가 허용한 registry만 사용할 수 있습니다. private image라면 참가자가 credential을 제출하는 대신 운영자가 별도 읽기 권한을 구성합니다.
4. Orcaton 제출 화면에 입력합니다
- Artifact output: OCI digest를 입력하고 사전검사를 통과한 뒤 제출합니다.
- Live API service: digest, HTTPS Git URL, branch, 40자 commit SHA, 선언 모델명을 입력합니다.
- mutable tag, 허용되지 않은 registry, 축약 SHA와 불완전한 계약은 제출 슬롯을 쓰기 전에 거절됩니다.
5. 채점기는 무엇을 하나요?
- 제출 digest와 registry 정책을 다시 확인합니다.
- 전용 실행기에서 네트워크·권한·CPU·RAM·PID·시간 제한을 적용합니다.
- 숨겨진 입력은 읽기 전용으로, 출력 공간만 쓰기 가능하게 연결합니다.
- 결과 ZIP 또는 API 응답을 고정 evaluator와 숨겨진 정답으로 채점합니다.
- 점수, evaluator 버전과 운영 감사정보를 기록하고 임시 입력·컨테이너를 제거합니다.
실제 의료데이터와 유료 GPU 실행은 사용 권한·비식별화·격리 호스트·보안 리허설 승인이 끝난 대회에서만 엽니다.
Live API 컨테이너의 최소 계약
Dockerfile: 저장소 루트- 추가 실행 인자 없이 부팅
0.0.0.0:8000에 bindGET /v1/modelsPOST /v1/chat/completions- 선언한 모델명과 응답 모델명 일치
바로 실행 가능한 최소 예제는 examples/live-service-openai-compatible에 있으며 의료모델이 아닌 계약 검사용 서버입니다.