본문 바로가기

IT & AI

브라우저 안에서 끝나는 7MB 임베딩 모델, Ternlight

728x90

브라우저 안에서 끝나는 7MB 임베딩 모델, Ternlight

AI 뉴스 썸네일
AI 뉴스 썸네일

검색창에 문장을 입력할 때마다 서버로 질의를 보내지 않아도 의미 검색을 만들 수 있다면 구조가 꽤 달라져요. Ternlight는 임베딩 모델, 토크나이저, 실행 엔진을 하나의 WebAssembly 번들로 묶어 브라우저와 에지 런타임에서 바로 돌리는 프로젝트예요.

728x90

핵심 요약

구분핵심왜 볼 만한가요
브라우저 AI5~7MB WASM 번들로 텍스트 임베딩을 만들어요작은 웹앱에도 의미 검색을 넣을 여지가 생겨요
프라이버시질의와 문서가 기기 밖으로 나가지 않아요FAQ, 개인 노트, 사내 문서 검색에서 민감한 입력을 줄일 수 있어요
개발 흐름`embed`, `similar` 같은 API로 바로 검색을 붙여요별도 추론 서버나 모델 다운로드 단계를 줄일 수 있어요

1. 의미 검색을 서버 밖으로 꺼내는 작은 모델

Ternlight는 텍스트를 384차원 벡터로 바꾸고, 코사인 유사도로 문장 사이의 관련성을 계산하는 임베딩 도구예요. 특징은 실행 위치예요. 서버 API를 호출하지 않고 브라우저, Node, Cloudflare Workers, Vercel Edge, Deno, Bun 같은 환경에서 같은 API로 돌아가요. 공식 데모는 React 문서 약 2천 개를 기기 안에서 검색하는 흐름을 보여줘요. 1

패키지는 두 가지로 나뉘어요. `@ternlight/base`는 gzip 기준 약 7.2MB이고 임베딩 1개가 p50 기준 약 5.1ms로 측정됐어요. `@ternlight/mini`는 약 5.0MB이고 p50 기준 약 2.5ms를 내세워요. 둘 다 CPU에서 돌아가고, 엔진과 모델 가중치와 BERT 토크나이저를 단일 `.wasm` 파일에 넣는 구조예요. 2

7MB라는 숫자가 중요한 이유

웹에서 의미 검색을 붙이려면 보통 세 가지 비용을 떠올려요. 모델을 어디서 실행할지, 문서와 질의를 서버로 보내도 되는지, 응답 시간이 검색 경험을 해치지 않는지예요. Ternlight는 이 셋을 모두 클라이언트 쪽으로 당겨요.

이 접근이 모든 검색 문제를 풀지는 않아요. 입력 길이는 128토큰 안팎이고, 큰 코퍼스에서는 색인 구조와 캐싱이 따로 필요해요. 그래도 정적 사이트 문서 검색, 브라우저 확장, 개인 노트, 작은 사내 지식 베이스처럼 데이터가 제한된 곳에서는 서버 없는 의미 검색을 현실적인 선택지로 만들 수 있어요.

삼진 가중치와 WASM SIMD로 크기를 줄였어요

Ternlight는 `all-MiniLM-L6` 계열 모델에서 증류한 뒤 BitNet b1.58 스타일의 양자화 인지 학습을 적용했다고 설명해요. 가중치를 `-1`, `0`, `+1`에 가깝게 쓰는 삼진 구조를 택하면 추론이 곱셈보다 덧셈과 뺄셈 중심으로 단순해져요. 여기에 Rust로 작성한 WASM SIMD 엔진을 붙여 CPU 벡터 명령어를 활용해요. 3

개발자에게는 설치와 호출 방식이 단순한 편이에요. `@ternlight/base`를 설치한 뒤 `embed`, `cosineSim`, `similar`를 가져와 문장 임베딩과 최근접 검색을 구성할 수 있어요. 별도 모델 다운로드나 postinstall 단계가 없다는 점도 배포 사고를 줄이는 쪽에 가까워요.

좋은 사용처와 조심할 지점이 나뉘어요

가장 잘 맞는 곳은 검색어와 문서가 짧고, 사용자가 바로 결과를 기대하는 화면이에요. 예를 들면 정적 문서 사이트, 앱 안 도움말, 개인 노트, 오프라인 우선 데스크톱 앱, 브라우저 확장 같은 경우예요. 질의가 외부로 나가지 않기 때문에 프라이버시 설명도 쉬워져요.

반대로 대규모 검색 품질을 기대하면 별도 평가가 필요해요. Hacker News 댓글에서도 실제 CPU, 브라우저, SIMD 경로에 따라 처리량 차이가 날 수 있다는 반응이 나왔어요. 데모 페이지를 열자마자 CPU 사용량이 커졌다는 의견도 있어요. 작은 모델을 클라이언트에 넣는 방식은 편하지만, 초기 로딩과 팬 소음, 배터리 사용량까지 제품 경험에 들어간다는 뜻이에요. 4

왜 중요한가요

지난 1~2년 동안 AI 기능은 주로 서버 API와 연결돼 있었어요. 임베딩도 마찬가지였고, 검색창 하나를 만들 때도 외부 모델 호출, 벡터 DB, 백엔드 색인 흐름을 함께 생각해야 했어요. Ternlight 같은 프로젝트는 그 일부를 프런트엔드 번들 안으로 가져와요. 3

이 변화는 거창한 챗봇보다 검색 UX에서 먼저 체감될 수 있어요. 사용자가 타이핑하는 순간 의미 기반 후보를 바로 보여주고, 개인 문서나 로컬 데이터는 밖으로 보내지 않는 구조예요. 정적 사이트와 로컬 앱을 만드는 개발자에게는 서버 비용을 줄이는 선택지고, 제품 기획자에게는 개인정보를 덜 옮기면서 검색 품질을 올리는 설계 옵션이에요. 2

다만 7MB 모델은 공짜가 아니에요. 첫 로딩, 캐시 전략, 모바일 CPU, 언어별 품질, 검색 대상 문서 수를 같이 봐야 해요. Ternlight가 흥미로운 지점은 이 제약을 숨기지 않고, 작은 번들 하나로 실험할 수 있는 경계선을 보여준다는 데 있어요. 4

참고 자료

  1. Ternlight - 브라우저(WASM)에서 실행되는 7MB 임베딩 모델 — GeekNews
  2. Ternlight demo — Ternlight
  3. soycaporal/ternlight — GitHub
  4. Hacker News discussion — Hacker News
728x90