임베딩 API 다국어 지원, 실무에서 어떻게 고르고 붙일까

Photo of author

By 요담

임베딩 API 다국어 다국어 임베딩 API는 한국어와 영어가 섞인 문서를 같은 벡터 공간에 올려 검색과 RAG에 쓰는 인터페이스입니다. 실무에서는 언어 커버, 입력 토큰 한도, 출력 차원, 작업 유형, 구모델 종료 일정을 함께 보고 고릅니다.

OpenAI와 Gemini는 자체 임베딩을 제공하고 Claude 계열은 Voyage AI를 안내합니다. 한도와 종료 일정을 먼저 맞춘 뒤 한국어 혼용 질의로 재현율을 확인하면 색인을 다시 짜는 일을 줄일 수 있습니다. 모델 이름과 차원은 색인 설정에 고정하고 바꾸면 재임베딩 범위를 명시합니다.

다국어 임베딩 API가 필요한 업무와 모델 선택 기준

임베딩 API 다국어 관련 화면
(사진 출처: stackoverflow.com)

다국어 임베딩 API가 필요한 업무는 사내 규정 검색, 고객 문의 RAG, 다국어 매뉴얼 시맨틱 검색처럼 같은 의미가 언어를 바꿔 들어오는 경우입니다. 지원 언어 숫자만 보지 말고 한국어와 영어가 한 질의에 섞여도 유사도가 흔들리지 않는지를 기준으로 고릅니다.

입력 한도가 짧으면 청크를 더 잘게 나눠야 하고 차원이 크면 저장 비용과 응답 지연이 함께 늘어납니다. 문서용과 질의용 작업 유형을 나눌 수 있는지, 종료가 예고된 구모델은 아닌지도 선택 전에 확인합니다. 가격표의 토큰당 단가보다 재색인 주기와 차원이 월 비용을 더 크게 좌우합니다.

파일 형식보다 청크 단위의 언어 혼용 비율을 먼저 재는 편이 안전합니다. 운영 중인 검색 로그에서 실제 혼용 질의를 뽑아 후보 모델에 같은 표본을 넣는 방식으로 비교합니다. 표본에는 짧은 한국어 질의와 영어 본문 짝을 반드시 넣습니다.

RAG·시맨틱 검색에 맞는 벡터 차원과 언어 지원

RAG와 시맨틱 검색은 벡터 차원과 언어 지원이 맞아야 재순위화 전에 후보가 남습니다. OpenAI text-embedding-3-large는 최대 3072차원이며 dimensions로 1024처럼 줄이면 저장은 줄고 정확도는 일부 낮아집니다.

끝부분을 잘라 차원을 줄여도 앞쪽 값이 개념을 유지하는 방식이라 1024차원은 크기와 품질의 타협점으로 쓰입니다. Gemini gemini-embedding-001은 기본 출력이 최대 3072차원이고 시퀀스 길이는 2048토큰입니다.

Vertex AI에서는 영어, 다국어, 코드 작업을 이 한 모델로 통합합니다. 한국어 벡터 검색을 붙일 때는 차원과 입력 한도, 축소 파라미터 이름을 한 줄에 적어둡니다. 차원이 달라도 모델이 같으면 비교가 가능하니 실험 기록을 남깁니다.

OpenAI·Gemini·Claude 계열 임베딩 성능과 언어 커버 비교

(출처: Discover AI)

OpenAI text-embedding-3-small과 large는 이전 세대보다 비용이 낮고 다국어 성능이 높습니다. 모든 임베딩 모델의 최대 입력은 8192토큰이며 dimensions는 text-embedding-3 계열에서만 지정할 수 있습니다.

Gemini의 gemini-embedding-001은 100개 이상 언어를 지원하고 최대 입력은 2048토큰이며 Gemini API의 embed_content로 호출합니다. Claude는 자체 임베딩이 없고 문서에서 Voyage AI를 안내합니다.

구분OpenAI text-embedding-3Gemini gemini-embedding-001Claude
자체 모델제공제공없음, Voyage AI 안내
최대 입력8192토큰2048토큰제공자 한도
차원 축소dimensions, 최대 3072outputDimensionality, 최대 3072제공자 설정
언어 커버다국어 성능 강화100개 이상제공자 모델

text-embedding-004는 2026년 1월 14일에 종료되었고 권장 대체는 gemini-embedding-2입니다. 공개 점수만 보지 말고 한국어 질의와 영어 본.

한국어·영어 혼용 문서에서 검색 품질을 올리는 사용법

한국어와 영어가 한 문서에 섞이면 청크를 언어별로 억지로 나누기보다 표제와 본문이 한 의미를 이루는 단위로 자릅니다. 질의도 실제 사용자가 쓰는 혼용 문장으로 임베딩해야 한국어 벡터 검색의 상위 결과가 빠지지 않습니다.

작업 유형을 지정할 수 있으면 문서에는 RETRIEVAL_DOCUMENT를 맞추고 질의에는 검색 질의 유형을 씁니다. 색인과 질의는 같은 모델과 같은 차원으로 맞춰야 유사도 값이 어긋나지 않습니다.

약어와 제품명은 번역하지 않고 원문 표기를 유지합니다. 리랭커를 붙이더라도 1차 후보가 빠지면 되돌리기 어려우니 혼용 표본의 상위 재현율을 먼저 확인합니다. 청크 경계가 문장을 자르면 혼용 문맥이 끊기므로 문장 단위로 맞춥니다.

질의 앞에 번역기를 두면 사용자가 실제 쓰는 표현과 멀어질 수 있습니다. 원문 질의와 번역 질의를 같은 표본에서 비교해 더 높은 쪽만 채택합니다.

비용·토큰·지연을 줄이는 임베딩 API 연동 팁

비용은 토큰 수와 호출 횟수, 저장 차원에 비례하므로 같은 본문을 반복 임베딩하지 않는 설계가 먼저입니다. OpenAI는 dimensions로 벡터 길이를 줄일 수 있고 Gemini는 outputDimensionality로 뒤쪽 값을 잘라 차원을 줄입니다.

입력이 8192토큰 또는 2048토큰에서 끊기면 청크를 한도에 맞춰 다시 나눠야 지연과 실패가 줄어듭니다. 모델명, 차원, 전처리 규칙이 바뀔 때만 재임베딩을 돌리고 그 전에는 저장된 벡터를 재사용합니다.

차원은 재현율이 떨어진 구간을 확인한 뒤에 단계적으로 줄입니다. 야간 배치로 대량 색인을 몰아 넣으면 피크 지연을 업무 시간 밖으로 옮깁니다. 빈 문자열과 중복 본문은 호출 전에 걸러 토큰을 아낍니다.

개발과 운영에서 같은 문서를 따로 임베딩하지 말고 산출 벡터를 재사용합니다. 호출 로그에 토큰 수와 지연을 남겨 월 비용을 모델별로 나눕니다.

배치 호출과 캐시로 반복 임베딩 줄이기

같은 문서를 요청마다 다시 임베딩하지 않도록 본문 해시와 모델명, 차원, 작업 유형을 키로 캐시합니다. 배치 호출로 여러 청크를 한 요청에 넣으면 왕복 지연이 줄고 과금 단위도 예측하기 쉬워집니다.

변경된 청크만 다시 계산하면 전체 코퍼스를 매번 돌릴 필요가 없습니다. 캐시 무효화는 본문 수정 시각을 기준으로 두고 모델 교체 시에는 키를 바꿔 구벡터와 신벡터가 섞이지 않게 합니다.

실패 재시도는 청크 단위로 끊어 중복 과금을 막습니다. 동일 해시가 맞으면 API를 건너뛰고 저장된 벡터만 검색 인덱스에 넣습니다. 배치 크기는 한도 오류가 나기 직전 크기를 기록해 고정합니다.

캐시 저장소는 검색 인덱스와 분리해 롤백이 쉽게 합니다. 히트율을 주 단위로 보면 반복 임베딩이 줄었는지 바로 확인할 수 있습니다.

다국어 임베딩 API 도입 체크리스트와 정리

도입 전에는 지원 언어, 입력 토큰, 차원 축소, 작업 유형, 구모델 종료 일정을 한곳에 적습니다. OpenAI는 8192토큰과 dimensions, Gemini는 2048토큰과 outputDimensionality, Claude 계열은 Voyage AI 연동을 전제로 설계합니다.

한국어와 영어가 섞인 질의 세트로 재현율을 측정한 뒤에야 차원을 줄입니다. 이 순서를 지키면 다국어 임베딩 API를 검색과 RAG에 안정적으로 붙일 수 있고 재색인 범위도 예측 가능합니다.

운영 중에는 모델 종료 공지를 주기적으로 확인해 구버전 호출을 남기지 않습니다. 차원과 전처리를 바꾼 날짜를 색인 메타에 남겨 두면 장애 때 롤백 지점을 찾기 쉽습니다. 체크가 끝나면 표본 질의와 허용 재현율, 사용 모델명을 운영 문서에 고정합니다.

요담

글쓴이

요담

AI를 실무에 활용할 수 있도록 도움드리는 요담입니다.