AI 모델 SBOM 가이드¶
HuggingFace 모델의 CycloneDX ML-BOM(머신러닝 SBOM)을 생성하고 결과를 읽는 방법입니다. 모델 id만 주면 BomLens가 모델 카드 메타데이터를 네트워크로 가져옵니다. 소스 코드도, 모델 가중치 다운로드도 필요 없습니다.
동작 방식¶
AI 모델의 "구성요소 명세"는 모델 카드입니다. 식별자, 아키텍처, 태스크, 라이선스, 공급자, 데이터셋, 파일 무결성 등이 담깁니다. BomLens는 OWASP AIBOM Generator로 HuggingFace 모델 카드를 읽어 모델과 참조 데이터셋 중심의 CycloneDX 1.7 ML-BOM을 만들고, G7 최소 요소 적합성 검사(권고)를 더합니다. 모델에는 패키지 의존성이 없으므로 보안(CVE) 보고서는 생성하지 않습니다.
모델 카드는 학습 데이터셋의 이름만 적고 끝납니다. BomLens는 각 데이터셋을 HuggingFace에서 조회해 표기된 라이선스, 파생 출처, 콘텐츠 해시를 SBOM에 별도 항목으로 담고 모델과 의존 관계로 연결합니다. 읽을 수 없는 데이터셋(삭제·개명되었거나 다른 사람의 비공개 저장소)은 이름만 남기고 읽을 수 없음으로 표시하며, 라이선스를 임의로 채우지 않습니다. 학습 데이터 공개 축도 이 결과로 정해집니다. open-data가 되려면 실제로 열린 데이터셋이 하나 이상 있어야 하고, 이름만 적혀 있고 아무도 받을 수 없으면 declared-unverified로 표시됩니다.
전체 도구 흐름은 입력 형태별 파이프라인에 있습니다.
시작하기 전에¶
필요한 것은 두 가지입니다.
- Docker 엔진이 설치되어 실행 중일 것. 없다면 시작하기의 요구 사항을 먼저 보세요.
- 실행 방법 하나. 데스크톱 앱을 쓰면 명령어가 필요 없고, 명령줄로 쓰려면 시작하기에서 저장소를 내려받습니다. AI 모델 스캔에는 OWASP AIBOM Generator가 들어 있는 별도 이미지가 필요합니다. opt-in이고 네트워크(HuggingFace)에 접근하므로 기본 이미지와 분리했습니다.
이 이미지는 다운로드 기준 약 3.5GB로 기본 스캐너 이미지(약 250MB)보다 훨씬 큽니다. 회선에 따라 처음 받는 데 수십 분이 걸릴 수 있으니 시간을 두고 시작하세요. 한 번 받으면 다시 받지 않습니다.
미리 받지 않아도 됩니다. --model을 쓰면 이 이미지가 기본값이라 없을 때 알아서 받고, 웹 UI와 데스크톱 앱도 첫 AI 모델 스캔에서 받으면서 진행 상황을 보여 줍니다. 다른 태그를 쓰려면 환경변수 SBOM_AIBOM_IMAGE로 지정합니다.
실행하기¶
웹 UI에서¶
데스크톱 앱이나 평소 쓰던 웹 UI를 그대로 쓰면 됩니다. Docker에 접근할 수 있으면 AI 모델 타일이 활성화되고, aibom 이미지는 첫 스캔에서 별도 컨테이너로 받아 실행합니다. 처음 한 번은 이미지를 받느라 시작이 느립니다.
aibom 이미지로 UI 자체를 띄우면 별도 컨테이너 없이 UI 안에서 바로 처리합니다. Docker 소켓을 쓸 수 없는 환경에서 필요합니다.
SBOM_SCANNER_IMAGE=ghcr.io/sktelecom/bomlens-aibom:latest ./scripts/scan-sbom.sh --ui
# Windows: sbom-ui.bat 더블클릭 전에 SBOM_SCANNER_IMAGE를 지정
새 스캔의 소스 타일에서 AI 모델을 고르고, HuggingFace 모델 id를 org/model 형식으로 입력한 뒤(예: google-bert/bert-base-uncased, Qwen/Qwen2.5-0.5B — 컬렉션 이름이나 전체 URL이 아닌) 스캔을 실행합니다.
CLI에서¶
모델 id를 --model에 넘깁니다.
./scripts/scan-sbom.sh --project bert-base --version 1.0.0 \
--model "google-bert/bert-base-uncased" --generate-only
--model은 --target, --analyze, --git, --merge와 함께 쓸 수 없습니다. bomlens-aibom 이미지를 자동으로 받고, 고지문과 위험 보고서를 만들며, 보안 보고서는 건너뜁니다(모델에는 패키지 CVE가 없음).
비공개 모델과 게이트 모델¶
공개 모델 id는 인증 없이 해석됩니다. 비공개 저장소나 접근 승인을 받은 게이트 저장소는 read 권한을 가진 HuggingFace 액세스 토큰을 HF_TOKEN에 넣어야 합니다.
HF_TOKEN=hf_... ./scripts/scan-sbom.sh --project my-llm --version 0.9.0 \
--model "my-org/my-llm" --generate-only
HUGGING_FACE_HUB_TOKEN도 받습니다. 토큰 값은 이름만으로 컨테이너에 전달되고 명령줄 인자로는 넘어가지 않으므로 프로세스 목록에 노출되지 않으며, SBOM이나 보고서에도 기록되지 않습니다.
모델을 공개하기 전에 검토할 수 있는 방법이 여기에 있습니다. 비공개 저장소에 먼저 올려 ML-BOM을 만들고, 적합성 보고서가 알려주는 공백을 메운 다음 저장소를 공개하면 됩니다. 게이트 저장소는 토큰만으로는 부족하고 해당 계정의 접근 요청이 승인되어 있어야 합니다. 모델의 학습 데이터셋을 조회할 때도 같은 토큰을 쓰므로, 데이터가 비공개 저장소에 있는 모델도 토큰이 필요합니다.
웹 UI는 자신을 실행한 환경에서 같은 변수를 물려받으므로 HF_TOKEN=hf_... ./scripts/scan-sbom.sh --ui 형태로 시작하면 됩니다. 화면에는 토큰 입력란이 없습니다. 서버는 자격 증명을 보관하지 않으며, HTTP로 받은 토큰은 서버 로그에 남기 때문입니다.
결과 읽기¶
웹 UI에서 AI/ML SBOM은 좌측 레일에 두 섹션을 추가합니다.
모델·데이터셋 — 각 모델 카드의 식별자, 아키텍처, 태스크, 라이선스, 공급자, 무결성과 공개 4축 패널(가중치 / 아키텍처 / 학습 데이터 / 학습 과정 — 모델 카드에 문서화된 범위), 그리고 모델이 참조하는 데이터셋을 표로 보여 줍니다. 표에는 각 데이터셋의 라이선스와 콘텐츠 해시, 파생 출처가 함께 나옵니다.

적합성 — AI 모델 SBOM에서는 이 섹션에 G7 최소 요소 검사(모두 권고)가 기본 형식 적합성 검사와 함께 더해지고, G7 7개 클러스터별로 묶입니다. 각 항목은 무엇인지와 어떻게 충족하는지를 안내합니다. 숫자와 배지가 뜻하는 바는 다음 절에서 설명합니다.

같은 데이터는 산출물에도 있습니다. ML-BOM(_bom.json, CycloneDX 1.7)과 적합성 보고서(_conformance.*)입니다.
적합성 보고서 읽는 법¶
G7 블록의 머리에는 "N / 41 충족" 같은 수치가 옵니다. 분모는 자동 출처가 있는 검사만 셉니다. 51개 중 41개이므로, 이 숫자는 도구가 스스로 확인할 수 있었던 범위를 말합니다. 사람 검토 전용 10개는 그 옆에 "검토 필요" 건수로 따로 표시되고, 자동 검사 중 채워지지 않은 것은 권고 건수로 잡힙니다.
각 검사의 상태는 세 가지입니다. 충족(pass)은 해당 요소가 ML-BOM에 있다는 뜻입니다. 권고(warn)는 없거나 확인하지 못했다는 뜻이고, 검토 전용 10개 요소는 항상 이 상태로 사람 검토가 필요하다는 표시와 함께 나타납니다. 실패(fail)는 G7 검사에서는 사실상 나오지 않습니다. G7 요소는 전부 권고라서 하나가 비어도 SBOM 전체 판정을 실패로 만들지 않으며, 전체 실패 판정은 기본 형식 검사(필수 CycloneDX 검사)에서만 나옵니다.
각 행의 출처 배지는 충족된 값이 어디서 오는지를 말합니다.
- 자동 확인(22건) — ML-BOM 필드에서 직접 읽습니다.
- 신호 추정(15건) — 전용 필드 하나가 아니라 BOM 안의 신호로 도출합니다.
- 선언 필요(4건) — 사람이나 매니페스트가 값을 제공했을 때만 채워집니다.
- 검토 필요(10건) — 자동 출처가 없어 사람이 직접 확인해야 합니다. 같은 결과가 세 가지 형식으로 나옵니다. 기계용
{Project}_{Version}_conformance.json(CI 게이트, 비교용), 표 형태의_conformance.md, 시각화한_conformance.html입니다. 각 형식에는 규제 크로스워크도 함께 담기며, JSON에서는 매핑된 검사가 하나 이상 평가됐을 때만regulatoryCrosswalk객체로 나타납니다.
보고서는 무엇이 비었는지에 더해 어떻게 채우는지도 보여 줍니다. 자동 출처가 있는데 비어 있는 요소마다 CycloneDX 조각과 공식 문서 링크가 따라붙습니다. HTML에서는 해당 행의 "근거 · 채우는 방법" 칸을 펼치면 나오고, Markdown에서는 "How to fill the gaps" 절에 모여 나옵니다. 이미 통과한 요소와 검토 전용 요소는 제외되므로, 문서화가 충실한 모델에서는 아무것도 나오지 않습니다.
실제 사례¶
한 번 돌려 보면 나머지를 읽기가 쉬워집니다. FINAL-Bench/Aether-7B-5Attn은 허깅페이스에 Apache-2.0으로 공개된 파운데이션 모델로, 가중치와 구조, 학습 데이터, 학습 과정을 모두 공개했습니다. 문서화가 충실한 모델 카드가 어떤 결과를 내는지 보여 주는 예입니다.
./scripts/scan-sbom.sh --project Aether-7B-5Attn --version 1.0 \
--model "FINAL-Bench/Aether-7B-5Attn" --generate-only
이 스캔은 result=pass에 G7 요소 41개 중 33개 충족으로 나옵니다. Models 클러스터 14개 항목이 모두 통과하고, 공개성 패널은 네 축 전부 열림으로 표시됩니다.
| 축 | 값 |
|---|---|
| 가중치 | open-weight |
| 구조 | open-architecture |
| 학습 데이터 | open-data |
| 학습 과정 | open-training |
모델 카드가 데이터셋을 명시하므로, BomLens는 학습에 쓰인 7종(FineWeb-Edu, SmolLM 코퍼스, FineMath, open-web-math, OpenCoder 코드 코퍼스, HAERAE-HUB의 한국어 두 종)을 하나씩 조회해 각 데이터셋이 밝힌 내용을 기록합니다. 데이터셋 속성 10개 중 8개가 충족으로 나옵니다. 남는 두 개는 데이터의 통계 속성과 개인정보·저작물 포함 여부인데, 저장소를 읽어서는 알 수 없는 항목이라 보고서는 추측하지 않고 사람에게 확인을 요청합니다.
조회를 하기 때문에 드러나는 것이 다음 대목입니다. 7종 중 세 종만 라이선스를 밝히고 있습니다. FineWeb-Edu 계열은 odc-by, OpenCoder 코퍼스는 MIT입니다. 나머지 세 종(HAERAE-HUB 두 종과 open-web-math)은 라이선스 표기가 없습니다. 데이터셋 이름만 세었다면 이 모델의 학습 데이터는 완전히 공개된 것으로 읽혔을 것입니다. 실제로 조회해 보면, Apache-2.0으로 공개된 모델의 학습 자료 일부가 라이선스 미표기 상태라는 사실이 드러납니다. 도구가 판단할 일은 아니지만 공개 전에 검토자가 알아야 할 사실이며, 데이터셋을 하나씩 열어 봐야만 보입니다.
이 스캔이 낸 보고서를 그대로 열어 볼 수 있습니다. 베이스 모델의 적합성 보고서이며, AI 준수 개요가 담던 클러스터별 충족 현황과 검토 대상 라이선스가 이 보고서 맨 위에 함께 나옵니다. 한국어 보고서는 --lang ko로 생성합니다.
다음 단계¶
보고서가 나왔다고 검토가 끝난 것은 아닙니다. 도구가 채울 수 있는 항목과 사람이 판단해야 하는 항목이 나뉩니다.
- 자동 출처가 있는데 비어 있는 항목을 모델 카드에 채우고 다시 스캔합니다. 채우는 형태는 보고서의 해당 행에서 확인할 수 있습니다.
- 검토 전용 10개 요소를 사람이 확인합니다. 학습 데이터의 민감도나 의도한 적용 분야처럼 모델 카드의 어떤 필드로도 증명되지 않는 것들입니다.
- 학습 데이터셋 라이선스와 개인정보처럼 이 도구가 보지 않는 사안을 별도로 확인합니다.
사내에서 AI 모델을 공개하기 위해 쓰신다면, 승인 절차와 공개 전 점검 항목은 SK텔레콤 오픈소스 가이드의 AI 모델 공개에 있습니다.
G7 체크리스트란¶
"G7 Software Bill of Materials for AI — Minimum Elements"는 2026년 5월 G7 차원에서 발행된 지침으로, 독일 BSI와 이탈리아 ACN이 주도했습니다. AI 모델의 SBOM이 갖춰야 할 최소 요소 50개를 7개 클러스터로 정의합니다. 누가 만든 모델인지, 무엇인지, 어떤 데이터로 학습했는지, 어떻게 보호되는지, 성능은 어떤지를 다룹니다. 법적 구속력이 있는 규정이 아니라 권고입니다.
그래도 규제와 무관하지 않습니다. EU 인공지능법(AI Act)의 고위험·투명성 의무가 2026년 8월 2일부터 적용되고, Annex IV가 요구하는 기술 문서는 G7 클러스터와 상당 부분 겹칩니다. BomLens가 어느 쪽의 준수를 보증하는 것은 아닙니다. 적합성 보고서가 주는 것은 가시성입니다. 모델 문서가 이미 다루는 요소와 사람이 채워야 할 요소를 항목별로 보여주므로, 준수 판정이 아니라 준비를 돕는 구체적인 방법이 됩니다.
BomLens는 50개 요소를 51개 검사로 보여줍니다. 모델 개방성(가중치, 아키텍처, 학습 데이터, 학습 과정의 공개 여부)은 G7 원문에서 Model license 요소의 한 측면이지만, 따로 볼 가치가 있어 별도 행으로 노출합니다.
| 클러스터 | 검사 수 | 그중 사람 검토 |
|---|---|---|
| 메타데이터 | 10 | 0 |
| 시스템 속성 | 9 | 4 |
| 모델 | 14 | 0 |
| 데이터셋 속성 | 10 | 2 |
| 인프라 | 2 | 0 |
| 보안 속성 | 4 | 3 |
| 핵심 성과 지표 | 2 | 1 |
10개 요소는 자동으로 확인할 출처가 없습니다. 의도된 적용 분야나 데이터셋 민감도처럼 모델 카드의 어떤 필드로도 증명할 수 없는 것들입니다. BomLens는 이를 추측하는 대신 사람 검토가 필요하다고 표시합니다.
규제 크로스워크¶
적합성 보고서는 규제와 대응되는 검사마다 그 검사가 어느 문서화 의무와 닿는지를 연결해 줍니다. 검토자가 던지는 질문에 답하기 위한 것입니다. 어떤 검사가 미달일 때, 그 공백이 어느 규제 요구와 관련되는가? 참고 규정은 검사 표에서 해당 요구사항 행 아래에 붙고, 상세 위의 크로스워크 절이 프레임워크마다 한 행씩, 매핑된 검사 중 충족, 공백, 검토 필요가 몇 건인지 집계해 보여 줍니다.
AI 여부와 관계없이 분석하는 모든 SBOM에는 두 가지 프레임워크가 매핑됩니다.
- EU 사이버복원력법(CRA) — CRA 준수를 위해 작성된 독일 기술지침이자 공개된 것 중 가장 상세한 SBOM 필드 명세인 BSI TR-03183-2를 통해 연결합니다(CRA 본문은 데이터 필드를 지정하지 않습니다). TR-03183-2는 국가 지침이며, 구속력 있는 문구를 담을 유럽 조화 표준은 아직 초안 단계입니다.
- NTIA 최소 요소 — 미국 행정명령 14028(2021)에 따라 발표된 SBOM 데이터 필드 7가지. 이후 연방 차원의 SBOM 수집 의무는 기관별 위험 기반 판단으로 축소되었지만, 개별 기관이 요구하는 실무 기준으로는 여전히 유효합니다.
AI SBOM에는 G7 요소에 대응하는 두 가지 프레임워크가 더해집니다.
- EU 인공지능법(AI Act) — Annex IV 기술문서 항목(Regulation (EU) 2024/1689, Article 11(1)).
- AI 기본법(한국) — 투명성(제31조), 안전성과 위험관리(제32조), 고영향 인공지능(제33·34조), 영향평가(제35조) 조항. 이 법은 기본법 성격이라 매핑이 EU 쪽보다 성깁니다.
크로스워크는 준수 판정이 아니라 준비를 돕는 자료입니다. BomLens는 어느 규제의 준수도 인증하지 않으며, 보고서 안에도 그 문구를 명시합니다. 각 매핑에는 그 연결의 해석 근거를 함께 담아 사람이 판단할 수 있게 했고, 크로스워크가 검사 상태나 전체 판정을 바꾸지는 않습니다. 검사가 이미 낸 결과를 규제별로 다시 묶을 뿐입니다.
매핑은 검사 id를 키로 삼아 docker/lib/regulation-crosswalk.json에 있습니다. AI 검사는 G7 요소 id, 기본 형식 검사는 일반 CycloneDX 검사 id를 씁니다. 의도적으로 보수적으로 잡아, 근거가 분명한 검사만 매핑합니다(현재 38개). 검사 이름이 바뀌어도 크로스워크가 조용히 어긋나지 않도록, 매핑된 모든 id를 레지스트리와 대조하는 테스트를 둡니다.
AI 준수 개요¶
AI SBOM에서는 BomLens가 한 장짜리 AI 준수 개요(_ai-profile.{json,md,html})도 만듭니다. 원래는 여러 산출물에 흩어져 있던 것을 한곳에 모읍니다. 클러스터별 G7 상태, 규제 크로스워크, 그리고 라이선스가 검토 대상으로 표시된 컴포넌트(AI 행동제약이나 비상업 라이선스)입니다. 스캔을 새로 돌리지 않고 준수 판정도 하지 않습니다. 파이프라인이 이미 만든 결과를 다시 묶어, 검토자가 전체 그림을 한눈에 읽게 할 뿐입니다. AI 모델(--model)과 공급사 SBOM(--analyze) 경로에서 생성되며, 일반(비AI) SBOM에서는 아무것도 만들지 않습니다.
모델 위험 판정¶
AI 준수 개요에는 모델별 사용 가능성 판정도 담깁니다. 개발팀이 가장 먼저 묻는 질문, 즉 이 모델을 써도 되는지, 조건은 무엇인지에 답하기 위한 것입니다. 각 모델과 데이터셋 항목은 파이프라인이 근거를 가진 축에 대해 평가되어 네 가지 판정 중 하나를 받습니다.
| 판정 | 의미 |
|---|---|
| 제약 신호 없음(ok) | 알려진 무제약 신호만 있는 경우. 예를 들어 허용적 라이선스입니다. |
| 조건부 사용(conditional) | 제시된 조건을 지키면 사용할 수 있는 경우. 예를 들어 Llama 커뮤니티 라이선스의 사용자 수 조건과 명칭 규칙, 카피레프트 라이선스의 고지 의무입니다. |
| 주의(caution) | 알려진 차단 신호가 있는 경우. 예를 들어 비상업 라이선스나 연구 목적 한정 라이선스입니다. |
| 검토 필요(review) | 도구가 판정할 수 없는 경우. 등록되지 않은 라이선스, 라이선스 누락, 읽을 수 없는 데이터셋 등이며 사람이 확인해야 합니다. |
파일 보안 축은 Hugging Face가 모든 저장소에 자체 실행하는 스캔 결과를 읽습니다. 악성코드는 ClamAV로, 로드 시 코드가 실행될 수 있는 pickle import는 picklescan으로 파일마다 검사한 결과입니다. BomLens는 파일을 하나도 내려받지 않고 메타데이터 API로 이 결과를 읽어, 가장 나쁜 상태와 문제 파일 이름을 기록하고, 가중치가 pickle 계열 형식(로드 시 코드 실행 가능)인지 safetensors 같은 안전한 형식인지도 함께 남깁니다. 스캔이 아직 끝나지 않은 모델은 안전이 아니라 검토 필요로 읽습니다. 조회를 건너뛰려면 ENRICH_HF_SECURITY=false로 설정합니다.
라이선스 판정은 Hugging Face 라이선스 태그 전체 목록을 담은 등록부(docker/lib/ai-risk-knowledge.json)에서 나옵니다. 각 항목은 상업 이용·재배포·파생 허용 여부, 적용되는 조건, 라이선스 원문 링크를 기록하고, 개요 보고서는 판정 옆에 요약과 조건을 함께 인쇄해 근거가 판정과 같이 다니게 합니다. 등록부에 없는 라이선스는 추측하지 않고 검토 필요로 내려갑니다. 모델의 종합 판정은 평가된 축 가운데 가장 나쁜 판정을 따르고, 아무것도 평가하지 않은 축은 안전으로 읽히는 대신 미평가로 표시됩니다.
라이선스 판정을 더 깊게 만드는 검사가 두 가지 있습니다. other로 표시된 모델은 저장소의 LICENSE 파일(작은 텍스트 파일 하나로, 가중치는 여전히 내려받지 않습니다)을 읽어 비상업·연구 한정·파생 금지 같은 제한 문구를 찾습니다. 문구가 발견되면 해당 문장을 판정 옆에 그대로 인용하므로, 보고서가 "미분류"라고만 말하는 대신 "이 문장 때문에 검토가 필요하다"고 말합니다. 문구가 발견되지 않아도 판정은 검토 필요로 유지됩니다. 패턴에 안 걸렸다는 것이 제한이 없다는 증거는 아니기 때문입니다. 파인튜닝 모델은 선언된 base_model 체인을 최대 다섯 단계까지 따라가며 라이선스를 비교합니다. 조건이 파생물에 승계되는 라이선스(Llama, Gemma, RAIL 계열, 비상업 CC)를 가진 상위 모델이 있는데 모델 자신은 다른 라이선스를 표시하고 있으면 불일치를 주의로 표시합니다. 허브에서 흔한 오표기이며, 태그만 보는 검사로는 잡을 수 없는 부분입니다.
데이터셋 축은 참조된 데이터셋들을 모델 판정으로 끌어올립니다. 각 데이터셋 항목은 자체 라이선스와 함께, 제작자가 스스로 붙인 위험 표시로 판정됩니다. pii(개인식별정보)나 not-for-all-audiences 같은 태그, 그리고 접근 제한(gated·비공개 저장소)이 그 대상입니다. 모델은 데이터셋 중 가장 나쁜 판정을 따르고, 해당 데이터셋 이름을 함께 보여 줍니다. 이 표시는 제작자의 자기 신고이므로 없다고 해서 안전하다는 뜻이 아니며, 판정을 올리는 데만 쓰이고 내리는 데는 쓰이지 않습니다.
판정은 실제 사용 형태에 맞출 수 있습니다. --usage에 internal(내부 검토와 연구), product(제품이나 서비스 탑재), redistribute(파인튜닝 후 재배포), outputs-only(산출물만 이용) 중 하나를 주면, 그 사용 형태에 적용되는 라이선스 조건만으로 판정합니다. 예를 들어 비상업 라이선스 모델은 내부 연구용이면 조건부 사용, 제품 탑재면 주의로 갈립니다. 보고서에는 어떤 사용 형태 기준으로 판정했는지 항상 표시되며, --usage가 없으면 전체 조건 기준으로 판정합니다.
./scripts/scan-sbom.sh --project my-llm --version 1.0 \
--model "meta-llama/Llama-3.3-70B-Instruct" --usage product --generate-only
이 판정은 법적 자문이 아닌 안내이며, 판정을 인쇄하는 모든 보고서에 그 문구가 함께 실립니다. 검토자에게 필요한 것, 곧 조건과 출처와 미확인 사항을 한곳에 모아 주고, 최종 판단은 근거를 갖춘 사람이 내리게 합니다.
한계¶
- 읽을 수 없는 모델은 SBOM을 아예 만들지 않습니다. 조회에 실패하면 생성기가 카드를 일반적인 기본값으로 채우기 때문에, BomLens는 생성기 로그를 확인해 실행을 중단합니다. 통과처럼 읽히는 껍데기 명세를 돌려주지 않기 위해서입니다.
- 결과는 HuggingFace 모델 카드만큼만 충실합니다. 카드가 빈약하면 ML-BOM도 빈약하고, G7 검사도 카드에 문서화된 범위를 반영할 뿐 모델 자체를 감사하지는 않습니다.
- 데이터셋 항목은 그 데이터셋이 스스로 밝힌 내용을 기록합니다. 표기된 라이선스가 타당한지, 파생 데이터셋이 원본 라이선스와 양립하는지는 보고서가 판단하지 않고 검토자에게 남깁니다.
- 복합 SPDX 라이선스 표현식(
MIT OR Apache-2.0)은 선택지를 해석하지 않고 전체를 하나로 판정하므로, 어느 한쪽만으로는ok가 될 이중 라이선스 모델이review로 나올 수 있습니다. 방향은 의도적으로 보수적이어서 위험을 낮게 잡지는 않지만 과하게 표시할 수 있습니다. 보고서에 표현식 원문을 그대로 적어 검토자가 확인할 수 있게 합니다. - 적합성 보고서는 EU 인공지능법을 비롯한 어떤 규제의 준수도 인증하지 않습니다. 문서화 공백을 드러내 사람이 메울 수 있게 할 뿐입니다.
- 메타데이터를 네트워크로 가져오므로 오프라인 사용은 지원하지 않습니다. 비공개 모델과 게이트 모델에는
HF_TOKEN이 필요합니다(비공개 모델과 게이트 모델 참고). - 모델 id는
org/model형식이어야 합니다. 컬렉션 이름이나 전체 URL은 해석되지 않습니다. ---
관련 문서: 입력 형태별 파이프라인 | 웹 UI 레퍼런스 | CLI 레퍼런스