MPK 계약
MPK는 컴파일된 모델 아카이 브에 포함된 추론 계약입니다. 이는 경로 계획 프로그램과 후속 추출기가 읽는 mpk.json 또는 *_mpk.json이라는 JSON 파일입니다. 모델 아카이브 자체는 Model를 통해 로드되는 일반적인 .tar.gz 파일입니다.
이 페이지에서는 다음 두 가지 사항을 분리합니다.
- 아카이브 — 바이너리, 구성, 가중치 및 MPK 계약 JSON을 포함하는
.tar.gz배포 단위입니다. - 계약 — 추론 라우팅의 근거가 되는
*_mpk.jsonJSON 문서입니다.
바이트 수준의 계약 및 보안 규칙은 MPK 계약 (참여자 정보)를 참조하십시오.
단일 .tar.gz 아카이브를 사용하는 이유
Modalix의 모델은 많은 구성 요소(컴파일된 MLA 그래프, CVU 커널, 구성, 가중치)를 가지고 있습니다. 이러한 구성 요소를 하나의 서명된 .tar.gz 아카이브로 묶으면 다음과 같은 이점이 있습니다.
- 원자성 — 전체 모델이 로드되거나 전혀 로드되지 않습니다.
- 버전 관리 — MPK 계약은 자체 스키마 버전을 선언합니다. 호환되지 않는 계약은 초기에 거부됩니다.
- 출처 — 단일 아티팩트를 체크섬하고, 서명하고, 배포합니다.
- 재현성 — 동일한 아카이 브와 MPK 계약이 주어지면 프레임워크의 계획 프로그램은 동일한 라우팅 결정을 내립니다.
MPK 계약은 유일한 권한 있는 JSON입니다.
모델 아카이브에는 다른 JSON 파일이 포함될 수 있습니다. 프레임워크는 mpk.json 또는 *_mpk.json만 추론 계약으로 처리합니다. 아카이브의 다른 JSON에서 모델 토폴로지를 추론하지 마십시오. 계약은 "MPK 계약에 없으면 존재하지 않는 것"입니다.
이 규칙은 프레임워크의 계획 프로그램을 결정적으로 유지합니다.
모델 아카이브 로드
애플리케이션은 아카이브 로더 API를 직접 호출하지 않습니다. .tar.gz 경로를 사용하여 Model을 구성합니다. Model은 아카이브 검증을 수행하고, 안전한 콘텐츠를 내부 레이아웃으로 추출하고, MPK 계약을 구문 분석하고, 경로 계획을 실행합니다.
정확한 소문자 .tar.gz 모델 아카이브만 허용됩니다. .mpk, .tgz, .tar 및 일반 .gz 파일은 아카이브 검사 전에 거부됩니다.
보안 방어
모델 아카이브는 시스템 외부에서 제공되므로 로드는 실패 시 닫힘으로 설정됩니다. 허용되는 모든 아카이브는 엄격한 매트릭스를 통과합니다.
- 확장자 허용 목록 —
.tar.gz만 허용됩니다. - 크기 제한 — 아카이브, 항목 및 전체 JSON 바이트 제한.
- 항목 수 제한 — zip 폭탄 스타일의 압축 파일을 방지합니다.
- JSON 깊이 제한 — 파서 스택 부족을 방지합니다.
- 경로 탐색 방지 — 정규화된 경로에서 절대 경로 및
..세그먼트를 거부합니다. - UTF-8 검증 — 항목 경로는 유효한 UTF-8이어야 합니다.
- 유니코드 혼동 문자 거부 — 시각적으로 혼동을 일으킬 수 있는 경로 문자를 거부합니다.
- 파일 유형 허용 목록 — 알려진 파일 유형만 추출합니다.
- JSON 중복 키 거부 — 모든 깊이에서 중복 키를 거부합니다.
- 스키마 검증 — 계약 및 로더 측 메타데이터는 지원되는 스키마와 일치해야 합니다.
- 필수 섹션 검증 — 추론 계약 및 모델 바이너리가 존재해야 합니다.
- 커널 허용 목록 — 참조된 커널은 프레임워크의 알려진 세트에 포함되어야 합니다.
상위 계층은 오류를 구조화된 io.* 또는 mpk.* 오류 코드를 사용하여 NeatError로 보고합니다.
관련 유형
Model—.tar.gz모델 아카이브를 로드하고 경로 조각을 노출하는 공개 진입점입니다.MpkContract및 관련 내부 구조체 —mpk.json/*_mpk.json에서 파싱된 추론 계약입니다.
추가 정보
- MPK 계약 (참여자 정보) — 바이트 수준 규칙 및 필드 의미.
- "MPK 계약" — 디자인 심층 분석의 §0.16, §15.
- "모델 아카이브 보안 매트릭스" — 디자인 심층 분석의 §91.