콘텐츠로 이동
Text 문서0.2

시작과 메모리

최신 안정판 Text 0.2.1 릴리스 기준

언어 모델, 토크나이저 사전, Aho-Corasick automaton은 초기화 비용을 시작 시점과 요청 시점 사이에서 다르게 배치한다. 수명을 명시하고 실제 배포 환경에서 측정해야 한다.

자원초기화 선택권장 소유자
Lingua 감지기지원 언어, preload·lazy, 정확도 mode애플리케이션 singleton
한국어 프로세서 사전패키지 데이터와 검증된 런타임 업데이트공유 프로세서 정책
일본어 금칙어 사전첫 호출 지연 로딩과 런타임 업데이트공유 프로세서 정책
사용자 CharArraySet리소스 집합과 reload 버전애플리케이션 사전 서비스
Aho-Corasick automaton키워드 snapshot과 검색 옵션불변 애플리케이션 snapshot

Lingua 모델을 미리 읽으면 이후 호출을 예측하기 쉽지만 시작 시간과 초기 메모리가 늘어난다. 지연 로딩은 초기 비용을 줄이는 대신 특정 언어의 첫 요청으로 비용을 옮긴다. 어느 방식을 고르든 지원 언어 집합을 실제 제품 범위로 줄이는 일이 중요하다.

일본어 금칙어도 첫 접근에 사전을 읽는다. 첫 요청부터 일정한 지연 시간을 약속한다면 readiness 전에 해당 호출을 실행한다.

검색 snapshot을 요청 밖에서 만들기

섹션 제목: “검색 snapshot을 요청 밖에서 만들기”

키워드 버전을 읽고 검증한 다음 automaton을 구성해 불변 결과를 공개한다. 업데이트할 때는 새 snapshot을 완성한 뒤 애플리케이션 소유권을 원자적으로 바꾼다. 공유 builder를 바꾸거나 같은 키워드를 요청마다 다시 만들지 않는다.

라이브러리 상한보다 작은 제한

섹션 제목: “라이브러리 상한보다 작은 제한”

요청 모델 상한은 100_000자지만 서비스 지연 목표에 따라 더 작게 제한할 수 있다. 짧은 입력, 중앙값, 상한 근처 입력을 나눠 측정한다. 원문 대신 문자 길이, 연산, 언어 route, 경과 시간을 기록한다.

  1. 설정된 감지기를 구성한다.
  2. lazy mode라면 서비스에서 사용할 언어 모델을 호출한다.
  3. 트래픽에 제공할 한국어·일본어 연산을 실행한다.
  4. 필수 금칙어와 사용자 사전을 읽는다.
  5. 운영 크기의 automaton을 빌드한다.
  6. snapshot 준비 뒤 시작 시간과 메모리를 기록한다.

필수 리소스를 읽지 못하면 readiness를 실패시킨다. 트래픽을 받은 뒤 요청마다 같은 초기화 오류를 반복해서는 안 된다.

자원 버전, 지원 언어 수, 사전 항목 수, automaton 키워드 수, 입력 길이 구간, 일치 수, 정제된 오류 분류가 유용하다. metric이나 exception label에 제출 원문을 넣지 않는다.

런타임 경계, 입력 안전성, 실패 계약을 함께 읽자.