C.W.K.
Stream
Lesson 03 of 04 · published

10계층

~12 min · ten-layers, deduplication, identity-ladder, precision

Level 0Empty Shelf
0 XP0/35 lessons0/12 achievements
0/100 XP to next level100 XP to go0% complete
"identity 열 개, 그리고 각각이 정확히 특정 실수 하나를 막으려고 존재해."

사다리 전체를, 한 단씩

Recall 의 파이프라인엔 대략 10개 identity 계층이 있고, 유혹은 그걸 과잉 설계로 보는 거야. 아냐. 각각은 그게 막는 구체적이고 진짜인 혼동이 있어서 존재해 — 그 계층이 위 계층으로 무너지면 파이프라인이 잘못된 걸 할 특정 방식. 사다리를 일어날-수-없는-실수의 목록으로 읽어:

  • Video (video_id) — 같은 슬롯의 중복 논리 아카이브 행을 막아.
  • 관찰 미디어 (cheap_fingerprint) — 바뀐 바이트를 옛 파일로 취급하는 걸 막아.
  • 아카이브 execution (execution hash) — 같은 트랜스코드/전사 execution 을 두 번 큐잉하는 걸 막아.
  • source 콘텐츠 (source_sha256) — '같은 경로' 를 '같은 바이트' 로 혼동하는 걸 막아.
  • 오디오 proxy (source hash + proxy config) — 동일 오디오 chunk 를 다시 빌드하는 걸 막아.
  • 유료 provider 호출 (chunk hash + provider config) — 동일 증거에 두 번 결제하는 걸 막아.
  • transcript run (video + source + provider config + proxy config) — 받아들인 raw 증거를 중복하는 걸 막아.
  • release (run id + content hash) — 같은 투영된 transcript 를 중복하는 걸 막아.
  • summary (release + type + provider + model) — 동일 요약 산물을 반복하는 걸 막아.
  • title (영상의 summary id) — stale 요약 증거에서 파생된 제목을 보여주는 걸 막아.

각 계층이 자기 자리를 버는 이유

계층들이 한 hash 의 중복 사본이 아니라는 걸 봐 — 다른 granularity 에서 다른 질문에 답해. 유료 호출 identity 랑 transcript-run identity 는 비슷해 보이지만, 하나는 단일 오디오 chunk 로 범위 잡히고(그 chunk 를 두 번 결제 안 하게), 다른 하나는 영상 전체 증거로(받아들인 run 을 중복 안 하게). 그걸 무너뜨리면 chunk 단위 의도인데 영상 단위로 결제하거나, 영상 단위 의도인데 chunk 단위로 dedupe 해. 각 계층은 특정 종류의 동일성이 인식돼야 하는 정확한 granularity 야.

이건 Merkle-tree 모양 아이디어야: 다른 레벨의 identity 가 각각 아래 걸 요약해서, 어디의 변화든 전부 재확인 없이 맞는 계층에서 감지돼. 데이터 중복제거 시스템도 똑같이 해 — chunk 경계에서 hash 해서 안 바뀐 영역은 싸게 인식되고 바뀐 건 정확히 격리돼. Recall 의 10계층은 그 원리를 전사 파이프라인에 적용한 거야: '같음' 의 모든 다른 개념이 자기 granularity 에서 자기 identity 를 가져.

옮겨 쓸 규칙

정확히 10계층이 필요한 경우는 거의 없을 거야. 근데 밑의 결정은 끊임없이 마주할 거고, 가져갈 규칙이 여기 있어: 'done' 이나 '이미 존재' 체크에 손 뻗을 때마다, '어느 레벨에서 같아?' 를 물어. 같은 논리 entity? 같은 관찰 버전? 같은 정확한 바이트? 같은 설정 아래 같은 파생 출력? 그 물음의 각 '응, 근데' 는 또 다른 identity 계층이 필요하다는 힌트야. 계층 수는 그냥 네 시스템이 실제로 구별해야 하는 서로 다른 종류의 동일성 개수야 — 더도 말고, 절대 덜도 말고.

Code

identity 사다리 — 각 단이 특정 버그 하나를 죽인다·text
계층             IDENTITY                       막는 것
Video            video_id                       중복 논리 행
관찰 미디어      cheap_fingerprint              바뀐 바이트를 옛것으로
Execution        execution hash                 같은 execution 재큐잉
source 콘텐츠    source_sha256                  같은 경로 != 같은 바이트
오디오 proxy     source + proxy config          동일 오디오 재빌드
유료 호출        chunk + provider config        chunk 당 이중 결제
transcript run   video + source + config들      raw 증거 중복
release          run id + content hash          투영 중복
summary          release + type + provider+model 요약 반복
title            영상의 summary id              stale 요약발 제목

각 계층 = '같음' 의 한 granularity = 일어날 수 없는 버그 하나.

External links

Exercise

단일 '이미 처리됨' 체크를 가진 네가 아는 파이프라인을 잡고, 구별 못 하는 '같음' 의 종류를 나열해 깨뜨려봐: 같은 논리 항목인데 새 버전? 같은 버전인데 새 설정으로 재실행? 같은 설정인데 새 파생 출력? 중요한 각 구별마다, 그걸 담을 identity 를 써. 네 파이프라인이 실제로 몇 계층 필요한지 — 그리고 지금 분리돼야 할 둘을 어디서 무너뜨렸는지 세봐.
Hint
파이프라인을 단계별로 걷고, 각 단계에서 '여기서 동일하게 취급하면 실수인 게 뭐야?' 를 물어. 모든 답이 후보 identity 계층이야. 10을 노리는 게 아냐 — 파이프라인이 구별해야 하는 서로 다른 종류의 동일성만큼을 노려. 찾을 실패는 진짜 다른 두 질문이 한 플래그를 공유하는 거야.

Progress

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

댓글 0

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

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