MLOPS / 개인 프로젝트
MED-RAG Serving Lab
버전 고정, 품질 gate, 요청 제어와 릴리스 검사를 구현했습니다. 모듈을 누르면 구현 내용과 코드가, 아래 기록을 누르면 실제 검증 결과가 열립니다.
cpu-91fe7e3fc879Windows · Python 3.12.14 · 2026.09.14실행 조건을 하나의 버전으로 고정
모델·tokenizer revision과 이미지 digest, 프롬프트·데이터·실행 코드의 hash를 하나의 manifest로 묶었습니다. 설정이나 파일이 바뀌면 같은 후보로 통과하지 못합니다.
존재하지 않는 인용과 과잉 거부 차단
MED-RAG 실험에서 드러난 실패를 합성 회귀 검사로 옮겼습니다. 출처 파일, 직접 인용, 기대 사실과 답변 가능 여부를 확인합니다. 아래에서 정상·결함 답변을 직접 비교할 수 있습니다.
요약의 pass 대신 원본을 다시 검사
저장된 pass 표시만 믿지 않고 응답과 raw 측정 기록에서 결과를 다시 계산합니다. 통과한 후보만 manifest hash 경로에 준비하고, 기존 artifact 덮어쓰기를 막았습니다.
요청 수와 응답 수명에 경계 설정
동시 요청 제한, readiness와 manifest 식별, SSE 전달, deadline과 연결 정리를 구현했습니다. 실제 게이트웨이를 로컬 합성 upstream에 연결해 429·503·504와 끊긴 스트림을 확인했습니다.
검증 과정을 다시 실행할 수 있게 기록
격리된 두 CPU 서버를 임시 포트로 실행하고, 실패 주입과 복구 확인 후 종료합니다. 요청 카운터·실행 순서·소스 hash를 JSON과 Prometheus 형식으로 저장하고 CI에서 반복합니다.
실제 로컬 HTTP + 고정 합성 응답.
모델 호출과 GPU 성능 측정은 포함하지 않습니다.
02 / QUALITY & RELEASE
후보 비교
합성 질문 12개에 고정 답변을 넣어 검사기를 검증했습니다. 셀을 누르면 질문, 답변과 실패 이유를 확인할 수 있습니다.
계약을 통과한 고정 답변
모델의 정확도 점수가 아닌 기계적 계약 검사입니다.
s01PASS가상 라온센터 자료실 운영 시간은?
검사할 답변자료실은 평일 09:00부터 17:00까지 운영합니다. [library.md]
원본 근거 보기
library.md: 가상 라온센터 자료실은 평일 09:00부터 17:00까지 운영한다.
별도 변조 검사: 요약의 값을 바꾼 후보도 생성 전에 차단했습니다.
03 / HTTP REHEARSAL
요청과 장애 기록
실제 gateway에 10개 요청을 보냈습니다. 4개 슬롯을 채운 뒤 초과 요청을 보내고, 상류 오류·응답 중단·시간 초과를 주입한 후 정상 응답을 확인했습니다.
정상 요청
정상 SSE 응답을 받고, 종료 표식과 manifest 식별자를 확인했습니다.
{
"id": "normal",
"stage": "gateway",
"at_ms": 13.46,
"http_status": 200,
"ok": true,
"error": null,
"identity_matches": true,
"expected": {
"http_status": 200,
"ok": true,
"identity_matches": true
},
"passed": true
}T+는 실행 내 이벤트 기록 순서입니다. 모델 지연이나 복구 성능 수치가 아닙니다.
04 / REPRODUCE
코드와 실행 근거
Python 3.11 이상 · 추가 패키지 없이 실행
cd med-rag-serving
python -m unittest discover -s tests -v
python -m serving_lab rehearsal --out artifacts/my-run새 출력 폴더를 지정하세요. 실행한 로컬 서버는 검증 후 종료됩니다.
검증한 소스 버전 SHA-256
0a9e0f7397d0932e…0fc8212e735cdf69…e60bc77db12fb913…73fbbec8d902e8c3…56d798da1a9e73f5…38c083130bf88080…정규화한 소스 hash · 원본 JSON에 전체 값 포함
이번에 검증한 범위
HTTP / SSE 제어, 동시 요청 제한, 장애 해제 후 정상 응답, 품질·변조 후보 차단, /metrics 카운터.
추가 실측이 필요한 범위
GPU 추론과 모델 품질, 처리량·지연 개선, Prometheus 경보 firing, 실제 서비스 배포 교체와 롤백.