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

즉각적이거나, 결정론적이거나

~10 min · product-posture, cache, economics

Level 0침묵
0 XP0/36 lessons0/12 achievements
0/100 XP to next level100 XP to go0% complete
"텍스트가 바로 느껴질 만큼 빠르게 소리가 되거나, 아니면 lineage를 들여다볼 수 있는 결정론적 asset이 되거나. 절대 동전 던지기는 아니야."

출력의 두 모양

Bellows가 내놓는 결과는 딱 두 종류야. 이름 붙일 값이 있어. 서로 다른 기준을 세우거든. 하나는 즉각이야. Speak 누르면 문장이 방 안에 떨어지는데, 방금 기계가 말한 것처럼 느껴질 만큼 빨라. 다른 하나는 결정론적 Studio asset이고. 입력이 다 기록된 렌더 파일이라, 같은 프로젝트는 같은 오디오를 내고, 매 초가 어디서 왔는지 정확히 짚을 수 있어. Bellows는 그 메커니즘만 가져. 성격도, 대화 기록도, 모델 판단도 안 가져. 같은 요청이면 같은 소리가 난다는 보증만 가질 뿐이야.

즉각성은 빠른 모델이 아니라 캐시야

본능은 즉각성을 속도로 쫓는 거야. 가벼운 모델, 가까운 리전. 근데 Bellows는 기억으로 쫓아. 어떤 문장을 어떤 identity로 처음 말할 땐 유료요청이 들어. 그 뒤로 똑같이 말할 때마다는 content-addressed 캐시 히트야. provider 호출도 없고, 크레딧도 없고, 오디오는 이미 디스크에 있어. 재호출이 즉각적으로 느껴지는 건 빠른 합성이라서가 아니라, 아예 합성을 안 해서야.

증명은 두 번째 요청이야

엔진의 첫 진짜 canary가 딱 이거였어. 짧은 문장 하나 합성하고, 검증하고, 캐시하고, 재생해. 그다음 똑같은 요청을 다시 쏘고 provider 비용 0으로 돌아오는 걸 지켜봐. 그 두 번째 요청이 cache thesis 전부를 한 줄에 담아. 공짜가 아니면 cache 키가 틀린 거고, 그건 트랙 4에서 고쳐.

Code

cache thesis, 다섯 줄로·python
# Say the same sentence twice. The engine pays exactly once.
job1 = speak("Welcome back.", profile="cwk")
job2 = speak("Welcome back.", profile="cwk")   # byte-identical request

assert job1.cache_hit is False and job1.cost_credits > 0    # first:  paid
assert job2.cache_hit is True  and job2.cost_credits == 0   # second: free

# Same request identity -> same bytes on disk. Determinism you can check.
assert job1.audio_sha256 == job2.audio_sha256

External links

Exercise

같은 입력으로 한 번 넘게 부르는 유료 API를 골라. 똑같은 두 호출이 증명 가능하게 공짜가 되려면 그 'cache 키'에 뭐가 들어가야 하는지 적어봐. 그다음 불편한 질문을 던져봐. 지금 네 코드가 똑같은 입력에 실제로 두 번 결제하고 있어? 대부분의 코드가 조용히 그러거든.
Hint
출력을 바꾸는 입력을 하나도 빠짐없이 이름 붙일 수 없으면, 올바른 cache 키를 못 만들어. 그리고 틀린 키는 캐시 없는 것보다 나빠. 틀린 결과를 자신 있게 돌려주니까.

Progress

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

댓글 0

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

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