서버 없이 7MB로 구현하는 시맨틱 검색

제목: 7MB로 브라우저에서 실행하는 임베딩 모델, TERNLIGHT
의미 기반 검색을 구현하려면 모델 서버와 API부터 준비해야 한다고 생각하기 쉬워요. TERNLIGHT는 단 7MB 패키지로 CPU에서 텍스트 임베딩을 생성하며 이런 구조를 더 단순하게 바꿉니다.
1. TERNLIGHT, 서버가 필요 없는 임베딩 모델
TERNLIGHT는 텍스트를 의미를 나타내는 숫자 벡터로 변환하는 임베딩 모델이에요. API를 호출하지 않고 브라우저나 로컬 CPU에서 직접 실행할 수 있다는 점이 핵심입니다.
기본 패키지는 엔진과 가중치까지 포함해 약 7MB이며, 더 작은 mini 모델은 약 5MB예요. 별도의 GPU나 모델 다운로드 과정도 필요하지 않습니다.
임베딩 한 건을 생성하는 데 걸리는 시간은 약 5ms로 안내돼 있어요. 네트워크 왕복 시간이 없으므로 문서 검색이나 자동완성처럼 즉각적인 반응이 필요한 기능에 유리합니다.

2. 로컬 임베딩이 중요한 이유
로컬 실행의 가장 큰 장점은 데이터가 사용자 기기를 떠나지 않는다는 것이에요. 검색어를 외부 서버로 전송하지 않기 때문에 개인정보나 사내 문서처럼 민감한 텍스트를 다루는 상황에서 활용하기 좋습니다.
서버와 API가 없다는 것은 운영 구조도 간단해진다는 의미예요. 별도의 추론 서버를 배포하거나 사용량에 따라 API 비용과 장애 대응을 고민할 필요가 줄어듭니다.
첫 로딩 후 패키지가 캐시되면 추가 네트워크 연결 없이 재사용할 수도 있어요. 오프라인 문서 검색, 데스크톱 앱, 브라우저 확장 프로그램처럼 연결 상태가 일정하지 않은 환경에서도 의미가 있습니다.
3. 세 줄로 구현하는 시맨틱 검색
TERNLIGHT는 하나의 npm 패키지로 제공되며, 설치 후 바로 임베딩과 유사도 검색을 사용할 수 있어요. 모델 파일을 따로 내려받거나 서버 주소와 API 키를 설정할 필요가 없습니다.
npm install @ternlight/base
import { embed, similar } from '@ternlight/base';
similar('easy weeknight dinner ideas', recipes, { topK: 3 });
similar()에 질문과 검색 대상 목록을 전달하면 의미가 가까운 결과를 순서대로 반환해요. 단순히 동일한 단어가 포함됐는지를 찾는 키워드 검색과 달리, 표현이 달라도 의도가 비슷한 문서를 발견하는 데 유용합니다.
예를 들어 사용자가 “간단한 평일 저녁 메뉴”라고 검색해도 “퇴근 후 빠르게 만드는 파스타” 같은 콘텐츠를 연결할 수 있어요. 레시피 검색뿐 아니라 FAQ, 제품 도움말, 개인 메모 검색에도 같은 구조를 적용할 수 있습니다.
4. base와 mini 모델의 활용 차이
기본 모델은 약 7MB, @ternlight/mini는 약 5MB로 제공돼요. 두 모델 모두 CPU에서 실행되므로 서비스 환경과 초기 로딩 크기를 기준으로 선택할 수 있습니다.
@ternlight/base: 패키지 크기보다 기본 모델 활용을 우선하는 일반적인 시맨틱 검색에 적합해요.@ternlight/mini: 모바일 브라우저나 문서 사이트처럼 초기 다운로드 크기가 중요한 환경에 유용해요.
공식 예시에서는 mini 모델로 React 문서를 브라우저 안에서 검색합니다. “컴포넌트 간 상태 공유”, “리렌더링 건너뛰기” 같은 자연어 질문을 입력하면 관련 문서 조각을 로컬에서 찾아주는 방식이에요.

5. 작은 용량을 가능하게 한 모델 구조
TERNLIGHT는 선형 계층의 가중치에 ternary BitLinear 방식을 적용한 Transformer 기반 모델이에요. Ternary(삼진) 가중치는 제한된 값으로 가중치를 표현해 일반적인 고정밀도 모델보다 저장 공간을 줄이는 접근입니다.
이러한 구조 덕분에 엔진과 가중치를 작은 npm 패키지 안에 함께 담을 수 있어요. 설치 후 별도의 모델 다운로드가 필요 없다는 사용 경험도 여기에서 나옵니다.
다만 실제 검색 품질과 처리량은 문서 수, 입력 길이, 사용자 기기의 CPU 성능에 따라 달라질 수 있어요. 서비스에 적용하기 전에는 대표 질문과 문서로 정확도, 초기 로딩 시간, 메모리 사용량을 함께 확인하는 것이 좋습니다.
마무리하며
TERNLIGHT의 강점은 7MB 모델, 약 5ms 임베딩, CPU 전용 실행, 제로 네트워크 검색으로 요약할 수 있어요. 복잡한 AI 인프라 없이도 웹 애플리케이션에 의미 기반 검색을 추가할 수 있다는 점이 인상적입니다.
FAQ나 기술 문서처럼 규모가 명확한 데이터부터 작은 프로토타입을 만들어 보세요. npm install @ternlight/base로 시작해 실제 사용자 질문에서 키워드 검색보다 나은 결과를 제공하는지 검증해보면 좋겠습니다.






