본문 바로가기
C.W.K.
Lesson 02 of 05 · published

소유가 실제로 의미하는 것

~13 min · ownership, digest, license, offline

Level 0Kindling
0 XP0/32 lessons0/10 achievements
0/100 XP to next level100 XP to go0% complete

네 조건, 하나도 선택이 아니다

바이트가 드라이브에 있다고 하자. 끝일까? 아직 아니야 — 익명 블롭들이 담긴 폴더는 소유가 아니라 정체불명의 물건들에 대한 보관이거든. 이 퀘스트는 엄격하고 운영적인 정의를 써. 다음 네 조건이 동시에 성립할 때 모델을 소유한다고 말해:

  1. 바이트를 손에 쥘 것. 실제 텐서 파일이 네가 통제하는 저장소에 존재할 것 — 런타임이 언제 지워버릴지 모르는 캐시도, 컨테이너 사용자 소유의 폴더도, "마음 내키면 동기화해 주는" 클라우드 드라이브도 아니고.
  2. 다이제스트가 검증될 것. 저자가 공개한 암호학적 다이제스트에 파일들을 대조했거나(아니면 수집 시점에 직접 계산해서 기록했거나). 이제 그 사본은 비슷하게 생긴 게 아니라 그 아티팩트임을 증명할 수 있어.
  3. 라이선스를 읽었을 것. 그 아티팩트를 다스리는 라이선스가 뭔지, 뭘 허용하는지 알 것 — 연구 전용, 조건부 상업, 진짜 개방. 라이선스를 안 읽은 아티팩트는 가격을 매겨 본 적 없는 부채야.
  4. 오프라인 접근. 네트워크를 뽑은 상태에서 네 저장소에서 로드된 모델까지 갈 수 있을 것. 그 경로 어디서든 집에 전화를 걸면, 소유한 건 모델이 아니라 의존성이야.

각 조건은 그 부재에 기록된 실패 모드가 존재해서야. 검증 안 된 바이트: 그래도 로드는 되며 출력을 조용히 degrade시키는, 손상되거나 변조된 전송물. 안 읽은 라이선스: 법적으로 정당화할 수 없는 다운스트림 사용. 네트워크 의존: 이전 레슨의 대출이 config 파일을 통해 밀반입된 것.

보관과 소유

사람들이 헷갈리는 세 역할을 가르는 게 도움이 돼. 세입자는 남의 인프라를 통해 모델에 닿고 아무것도 쥐고 있지 않아. 보관자는 바이트를 쥐고 있지만 보증할 수 없어 — model_final (2).bin 파일들로 가득한 다운로드 폴더가 그 상태지. 소유자는 바이트를 쥐고, 보증할 수 있고, 조건을 알고, 어둠 속에서도 쓸 수 있어. 세입자에서 보관자로의 도약은 다운로드야. 보관자에서 소유자로의 도약은 검증과 기록이고 — 훨씬 싼데 만성적으로 건너뛰어지지.

이게 이후 트랙들이 다이제스트와 메타데이트에 그렇게 많은 시간을 쓰는 이유야. 그건 관료적인 치장이 아니라 두 번째와 세 번째 역할 사이의 차이 전부거든. 그리고 이 정의가 포함하지 않는 것도 봐: 모델을 돌려 보는 것, 모델을 좋아하는 것, 만든 이와 관계를 맺는 것. 소유는 아티팩트와 네 저장소에 관한 거고, 다른 아무것도 아니야.

가장 싼 검증 시점은 첫 번째다. 수집 중에 다이제스트를 계산하는 건 명령 하나짜리 비용이야. 드라이브를 섞은 뒤에 그걸 없이 재구성하는 건 몇 시간이 들고 추측으로 끝나.

오늘 돌릴 수 있는 체크리스트

정의를 물리적 점검으로 바꿔 봐. 신경 쓰는 모델 하나에 대해 네 칸을 채워: 바이트가 어디 사는지, 어떤 다이제스트가 그걸 증명하는지, 어떤 라이선스가 다스리는지, 뭐가 오프라인으로 로드되는지. 못 채우는 칸 하나하나가 정확히 다음 액션이야 — 그리고 각 칸에는 이 퀘스트의 전용 트랙이 있지.

Code

아티팩트 하나에 대한 네 조건 현장 점검·bash
# 1) 바이트를 쥐었는가 — 진짜 파일을 찾기, 바로가기가 아니라
ls -lah ~/models/flux/ 2>/dev/null

# 2) 다이제스트 검증 — 수집 시점에 지문 기록하기
shasum -a 256 ~/models/flux/*.safetensors > ~/models/flux/SHA256SUMS
cat ~/models/SHA256SUMS 2>/dev/null || cat ~/models/flux/SHA256SUMS

# 3) 라이선스를 읽었는가 — 카드를 바이트와 함께 두기
#    (모델 카드를 텐서와 같은 디렉토리로 복사)
ls ~/models/flux/README.md 2>/dev/null || echo "license: UNKNOWN — 액션 아이템"

# 4) 오프라인 접근 — 플러그를 뽑고 로컬 파일에서 로드하기
#    예: python -c "from safetensors import safe_open; ..."
#    Wi-Fi 끈 상태로 되면 네 번째 조건 성립.

External links

Exercise

이미 갖고 있는 아티팩트 하나로 네 조건 현장 점검을 돌려 봐. 조건마다 한 줄로 네 답을 적고 각각 PASS 또는 공백으로 표시해. 공백이 PASS보다 많으면 그 측정 자체가 이 연습거야 — 이 퀘스트의 어떤 트랙이 네 것인지 정확히 알게 됐으니까.
Hint
조건 2는 대부분에게 조용히 실패해: 파일은 있는데 기록된 다이제스트가 없는 거지. 2번 줄이 공백이면 지금 SHA-256을 계산해서 파일 옆에 저장해 — 무결성 트랙에서 다시 쓸 거야.

Progress

Progress is local-only — sign in to sync across devices.
이 페이지에서 버그를 발견하셨거나 피드백이 있으세요?문제 신고

댓글 0

🔔 답글 알림 (로그인 필요)
로그인 — 댓글을 남기려면 로그인해 주세요.

아직 댓글이 없어요. 첫 댓글을 남겨보세요.