Skip to content

← 글 목록

예제 시리즈 · ⑤ / ⑧

Laya 실전 ⑤: 세 체크포인트와 마이크로초 라우팅

Laya에는 서로 다른 인코더·창·학습을 가진 체크포인트 세 개가 있습니다. "뭘 써야 하지"에 답하기 전에, 예제 20이 극명한 비교를 보여줍니다: 같은 영어 티켓과 힌디어 티켓에 같은 세 질문을 던지는 실험입니다.

예제 20–24약 5분 읽기

세 체크포인트의 정체 (예제 20)

🇬🇧 english

421M, ModernBERT-large, 512 토큰. 영어 전용.

🌐 multilingual

322M, mmBERT-base, 1024 토큰. 100개 이상 언어를 하나의 모델로.

🧩 typed-decisions

421M, ModernBERT-large, 1024 토큰. 네 가지 특정 워크플로에 파인튜닝한 전문가 (일반 성능 업그레이드가 아님).

영어 티켓에서는 셋 다 billing으로 같은 답을 내지만, 파인튜닝 체크포인트가 가장 덜 확신합니다(예제 출력의 confidence 비교). 진짜 분기점은 힌디어입니다. english는 라벨을 내기만 합니다 — 거의 랜덤한 확률이 confidence라는 옷까지 입고 반환된 것에 불과합니다. 이것이 라우팅이 존재하는 이유 그 자체입니다.

규칙은 단순합니다: 영어는 english, 그 외에는 (라틴 문자든 아니든) multilingual, typed-decisions는 자기 워크플로 스키마를 명시적으로 골랐을 때만.

라우팅은 모델을 돌리지 않는다 (예제 21)

router.route(state)는 체크포인트 선택 그 자체입니다: 가중치를 하나도 빌드하지 않고 순전파도 없습니다. 순수 파이썬 문자 체계·언어 탐지라 호출당 중앙값이 마이크로초 단위이고, 각 결정의 근거 문자열(reason)까지 함께 돌려줍니다. 힌디어·일본어·아랍어·태국어·한국어·러시아어 샘플이 모두 multilingual로 가고, 라틴 문자는 언어 추정(best-effort)이 언어 힌트를 덧붙이며, "글자가 없는 입력"까지도 처리됩니다. model="english" 같은 명시적 지정은 탐지에 우선합니다. 10개 케이스 전체의 라우팅 총합이 1밀리초 안쪽이고 라우터는 제로 체크포인트를 유지합니다 — LLM으로 답하기로 정해진 요청에 미리 적용해도 남는 비용입니다.

라우팅 + 답변 한 번에 (예제 22)

router.predict(state, questions)는 route()를 한 다음 선택된 체크포인트에서 순전파 한 번입니다. 같은 중복 결제 클레임을 영어·힌디어·독일어로 보내면 영어는 laya가, 나머지는 laya-multilingual이 읽고, 결과는 왜 그 체크포인트를 골랐는지 기록하는 routing 블록을 실어옵니다. max_loaded=1로 잡은 라우터는 힌디어 티켓이 등장하는 순간 multilingual을 빌드하는 장면까지 그대로 드러납니다 (router.loaded).

가중치는 어디서 오는가 (예제 23)

models/에 로컬 사본이 있으면 코드를 절대 안 고치고 완전 오프라인으로 동작합니다(네트워크 접근 없음, 토큰 불필요). 없으면 같은 코드가 허브 번들(convaiinnovations/laya, 체크포인트별 subfolder)로 폴백하고 첫 사용 때 HF_HOME으로 내려받습니다. verify/checkpoints.json 매니페스트와 바이트 크기 대조를 붙여두면 로컬 사본의 무결성을 확인할 수 있습니다.

메모리에 무엇을 남겨두나 (예제 24)

콜드 빌드는 초 단위, 라우팅은 마이크로초 단위 — 그래서 서버는 프리로드합니다. Router는 기본적으로 max_loaded=2(라이브러리에서 직접 읽은 값)로 LRU 상주를 관리하고, 예제 24는 max_loaded=1로 못 박아 언어 전환이 체크포인트를 쫓아내는 장면을 드러냅니다: 힌디어가 들어오면 english가 eviction되고, 되돌아오면 421M 재빌드(재현 측정 기준 수 초)를 치릅니다. 이미 만들어둔 에이전트를 그대로 받아 쓰는 attach(), 명시적 unload(), r.loaded라는 상주 상태 뷰까지 — 메모리 정책이 전부 관찰 가능합니다.

다음 편: 바로 쓸 수 있는 내장 프리셋 — 이메일, 트리아주, 가드레일, 모더레이션, 모델 라우터 (예제 25–29).

오픈소스를 한국어로 읽고 배웁니다.