BAAI: bge-m3
BAAI BGE-M3는 100개가 넘는 언어에서 밀집 검색, 희소 어휘 검색, 다중 벡터 검색을 지원합니다. 밀집 출력은 1024차원이며 8192토큰 윈도는 별도의 필수 질의 지시 없이 문장부터 긴 문서까지 수용합니다.
모델 소개
이 설명은 모델의 기능을 다룹니다. Ailoot에서 사용할 수 있는 입력, 출력 및 옵션은 아래에 선택한 메서드별로 표시됩니다.
BGE-M3는 여러 검색 기능, 여러 언어, 다양한 입력 길이라는 세 가지 범용성을 중심으로 설계된 BAAI의 다국어 검색 모델입니다. 제조사는 100개가 넘는 언어와 최대 8192토큰의 입력을 지원한다고 설명합니다. 하나로 통합된 모델이 밀집 벡터, 희소 어휘 가중치, 다중 벡터 표현을 제공하므로, 검색 설계에서 여러 종류의 근거를 선택하거나 결합할 수 있습니다.
검색을 위한 세 가지 표현
밀집 모드는 텍스트를 1024차원 벡터 하나로 매핑합니다. 이를 통해 질의와 지문이 나타내는 의미를 비교할 수 있습니다. 희소 모드는 어휘 매칭을 위해 텍스트에 등장하는 토큰에 가중치를 부여합니다. 다중 벡터 모드는 텍스트를 여러 벡터로 표현하고, ColBERT 방식의 상호작용으로 질의와 문서를 더 세밀한 수준에서 비교합니다.
검색 색인에서 이 출력들은 역할이 다릅니다. 밀집 벡터는 지문 하나의 표현을 제공하고, 희소 토큰 가중치 맵은 어휘 신호를 유지하며, 여러 벡터는 다른 비교 구조를 제공합니다. 제조사의 예제는 선택한 표현을 반환하고 텍스트 쌍의 점수를 계산하는 방법을 보여줍니다. 선택한 표현과 점수 계산 방식을 검색 작업의 의도적인 구성 요소로 다루세요.
다국어 텍스트와 입력 준비
BGE-M3에는 이전 BGE 모델에서 사용하던 검색 지시문을 추가할 필요가 없습니다. 질의와 실제 원문 지문을 직접 준비하세요. 다국어 지식 컬렉션은 각 지문을 원래 언어 그대로 보관하고, 문서 식별자와 로캘을 연결할 수 있습니다. 결과를 확인할 때에는 대상 언어 구성에서 실제 사용자가 하는 질문을 사용하세요.
실제 작업의 예로는 여러 언어로 보관된 정책 설명, 제품 도움말 또는 기술 문서를 검색하는 경우가 있습니다. 질문에 중요한 이름, 모델 번호, 용어를 유지하세요. 어휘 표현은 이러한 용어의 일치 신호를 보존하는 데 도움이 되고, 밀집 표현은 의미적 근거를 제공합니다. 검색된 지문에는 독자가 살펴볼 수 있는 텍스트와 출처 위치가 포함되어야 합니다.
긴 문서와 검색 단위
8192토큰 입력 범위를 통해 짧은 문장부터 긴 문서까지 표현할 수 있습니다. 검색이 반환해야 하는 답을 중심으로 단위를 선택하세요. 완전한 섹션은 정의와 예외를 보존할 수 있고, 더 짧은 지문은 특정 지시를 찾기 쉽게 해줍니다. 긴 입력 범위는 이러한 선택을 가능하게 하지만, 벡터는 실제로 인코딩한 자료와 연결된다는 점은 변하지 않습니다.
각 지문을 상위 문서 및 버전과 연결해 두세요. 긴 보고서에서는 관련 수치나 결론의 제목과 주변 설명을 보존하세요. 근거가 본문에 있는 경우 검색 결과의 제목에만 의존하지 마세요. 원문이 바뀌면 해당 검색 표현을 갱신할 수 있을 만큼의 메타데이터를 유지하세요.
하이브리드 점수와 후속 활용
제조사는 하이브리드 검색 후 별도의 리랭킹 단계를 수행할 것을 권장합니다. 예제에서는 밀집, 희소, 다중 벡터 점수를 계산하고 가중 조합을 만듭니다. 컬렉션의 질문과 어휘를 기준으로 조합을 선택하세요. 예제에 표시된 가중치가 모든 코퍼스에 보편적으로 적용되는 설정은 아닙니다.
유용한 결과는 원문 지문을 계속 사용할 수 있고, 표현 방식과 순위 산정 방법이 기록된 후보 집합입니다. 별도의 리랭커로 집합을 정교화하고, 별도의 텍스트 생성 단계에서 지문 내용을 사용할 수 있습니다. BGE-M3의 희소 및 다중 벡터 기능은 제조사 모델의 모드입니다. 밀집 임베딩, 어휘 출력, 쌍 점수는 서로 바꿔 쓸 수 있는 배열이 아니라 서로 다른 산출물입니다.
Ailoot Ultra · 임베딩 POST /v1/embeddings baai/bge-m3
baai/bge-m3시작하기
BAAI BGE-M3는 100개가 넘는 언어에서 밀집 검색, 희소 어휘 검색, 다중 벡터 검색을 지원합니다. 밀집 출력은 1024차원이며 8192토큰 윈도는 별도의 필수 질의 지시 없이 문장부터 긴 문서까지 수용합니다.
- 허용 입력
- 텍스트 · token_ids
- 결과
- embedding
Ailoot에서 사용 가능 · 입력 및 메서드
Ailoot Ultra · 임베딩 POST /v1/embeddings
- 입력
text,token_ids- 출력
embedding- 컨텍스트
- 8,194 tokens
- 출력 형식
- json
| 필드 | 유형 | 요건 | 값과 한도 | 기본값 |
|---|---|---|---|---|
필드model | 유형string | 요건필수 | 값과 한도 baai/bge-m3 | 기본값— |
필드input | 유형string|string[]|integer[]|integer[][] | 요건필수 | 값과 한도 최소 항목 수: 1 조건: 비어 있지 않은 동일 형식의 배치입니다. 토큰 ID는 0 이상의 정수입니다. 입력 허용량: 최댓값: 8,194 · 텍스트 단위: UTF8 바이트 · 토큰 단위: 토큰 배열 요소 | 기본값— |
필드encoding_format | 유형string | 요건선택 사항 | 값과 한도 float | 기본값float |
필드dimensions | 유형integer | 요건지원되지 않음 | 값과 한도 최솟값: 1 | 기본값— |
필드user | 유형json_value | 요건선택 사항 | 값과 한도 조건: 원본에서 이 JSON 메타데이터 필드를 허용하며, 정확한 업스트림 동작은 모델별로 다릅니다. | 기본값— |
필드session_id | 유형json_value | 요건선택 사항 | 값과 한도 조건: 원본에서 이 JSON 메타데이터 필드를 허용하며, 정확한 업스트림 동작은 모델별로 다릅니다. | 기본값— |
필드trace | 유형json_value | 요건선택 사항 | 값과 한도 조건: 원본에서 이 JSON 메타데이터 필드를 허용하며, 정확한 업스트림 동작은 모델별로 다릅니다. | 기본값— |
필드provider | 유형object | 요건선택 사항 | 값과 한도 조건: provider.options가 거부됨 | 기본값— |
입력 자료 조합
text_to_embedding
메서드 매개변수와 수명 주기
| 매개변수 | 명세 |
|---|---|
매개변수content_type | 명세application/json |
매개변수required | 명세model, input |
매개변수input_shapes | 명세string, string[], nonnegative_integer_token_array, nonnegative_integer_token_array[] |
매개변수encoding_format | 명세float |
매개변수dimensions_override | 명세false |
매개변수max_input_budget_units | 명세8194 |
매개변수multimodal_objects | 명세false |
매개변수material_types | 명세text, token_ids |
수명 주기: synchronous_json
모든 벡터의 인덱스와 차원을 보관하세요.
모델 이름이 멀티모달이어도 이 특정 경로에서 이미지 객체를 사용할 수 있는 것은 아닙니다.
요금
요금 정보는 요청 옵션을 추가하지 않습니다. 지원되는 매개변수는 선택한 메서드에 표시됩니다.
- 빠른 모드
- 표준 요금 빠른 모드를 선택한 경우
- Flex 모드
- 표준 요금 flex 모드를 선택한 경우
- 최대 추론 수준
- 표준 요금 최대 추론 수준에 default 조정값을 적용하는 경우
Ailoot 요금
설정별 가격
| 설정 | 요금표 | 요금 |
|---|---|---|
| 설정토큰의 기본 단가 | 요금표기본 요금 | 요금 입력 · 입력 토큰 $0.00004 / 1K 토큰 출력 · 출력 토큰 $0 / 1K 토큰 입력 · 캐시 읽기 — / 1K 토큰 입력 · 캐시 쓰기 — / 1K 토큰 입력 · 캐시 쓰기, 1시간 — / 1K 토큰 |
Ailoot는 요청 전에 예상 금액을 미리 확보합니다. 결과를 받은 뒤 측정된 사용량을 기준으로 최종 요금을 정산합니다. 스트리밍 정산에는 최종 사용량 기록을 사용합니다. 금액 확보와 정산 방식 →
요청 예제
Ailoot Ultra · 임베딩
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p=json.loads('{"model": "baai/bge-m3", "input": ["First document", "Second document"]}')
Path("request.json").write_text(json.dumps(p,ensure_ascii=False))
PY_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/embeddings \
-H "Authorization: Bearer $AILOOT_API_KEY" -H 'Content-Type: application/json' \
--data-binary @request.json -D response-headers.txt -o result.json
python3 - <<'PY_RESULT'
import json
from pathlib import Path
r=json.loads(Path("result.json").read_text())
for x in r.get("data",[]): print(json.dumps({"index":x.get("index"),"embedding":x.get("embedding")}))
PY_RESULT
from openai import OpenAI
import os
client=OpenAI(base_url="https://api.ailoot.ai/v1",api_key=os.environ["AILOOT_API_KEY"],max_retries=0)
result=client.embeddings.create(model='baai/bge-m3',input=["First document","Second document"])
print(result)
for item in result.data:print(item.index,item.embedding)
결과 수신 및 저장
Ailoot Ultra · 임베딩
json
완료된 결과 모두 보관
반환된 완전한 응답, 파일, 콘텐츠 부분을 모두 보관하세요.
모든 벡터를 인덱스와 함께 보관하세요. 벡터 수는 입력 수와 같아야 하며 차원은 일관되어야 합니다.
원래 응답을 확인해야 할 경우
임베딩 작업 엔드포인트는 추가되지 않습니다.
응답 필드
| 필드 | 유형 |
|---|---|
필드object | 유형string |
필드model | 유형string |
필드data[].index | 유형integer |
필드data[].embedding | 유형finite float[] |
필드usage | 유형object |
오류와 다음 단계
| 응답 | 조건 | 다음 단계 |
|---|---|---|
응답400 · invalid_request_error | 조건필수 필드, 자료 표현 방식 또는 파라미터 값이 올바르지 않음 | 다음 단계새 생성 요청 전에 표시된 필드를 수정하세요. |
별칭
모델 별칭
Ailoot Ultra baai/bge-m3
메서드 경로 별칭
위에 표시된 메서드 경로를 사용하세요.
관련 호출용 ID
FAQ · BAAI: bge-m3
- 어떤 입력과 결과를 사용할 수 있나요?
POST /v1/embeddings·baai/bge-m3:text,token_ids→embedding- 요청은 어떤 필드를 사용하나요?
POST /v1/embeddings·baai/bge-m3:model,input,encoding_format,provider- 어떤 제한이 적용되나요?
POST /v1/embeddings·baai/bge-m3:ctx:8194;input.budget.maximum:8194(UTF8 바이트);input.min_items:1