BAAI: bge-m3
BAAI BGE-M3 prend en charge la recherche dense, lexicale creuse et multivecteur dans plus de 100 langues. Sa sortie dense compte 1024 dimensions et sa fenêtre de 8192 jetons accueille aussi bien des phrases que de longs documents, sans consigne de requête obligatoire.
À propos du modèle
Cette description présente les capacités du modèle. Les entrées, sorties et options disponibles dans Ailoot pour la méthode sélectionnée figurent ci-dessous.
BGE-M3 est le modèle multilingue de recherche d’information de BAAI, conçu autour de trois formes de polyvalence : plusieurs fonctions de recherche, plusieurs langues et différentes longueurs d’entrée. Le fabricant documente la prise en charge de plus de cent langues et d’entrées pouvant atteindre 8192 tokens. Son modèle unifié peut fournir des vecteurs denses, des poids lexicaux parcimonieux et des représentations multivecteurs ; une conception de recherche peut donc sélectionner ou combiner plusieurs types d’indices.
Trois représentations pour la recherche
Le mode dense projette un texte vers un vecteur unique de 1024 dimensions. Il permet de comparer le sens représenté par une requête et un passage. Le mode parcimonieux attribue des poids aux tokens présents dans le texte pour la correspondance lexicale. Le mode multivecteur représente un texte par plusieurs vecteurs et utilise une interaction de type ColBERT pour comparer plus finement la requête et le document.
Ces sorties jouent des rôles différents dans un index de recherche. Un vecteur dense fournit une représentation d’un passage ; une table parcimonieuse de poids des tokens conserve les signaux lexicaux ; plusieurs vecteurs offrent une structure de comparaison différente. Les exemples du producteur montrent comment renvoyer les représentations choisies et calculer des scores pour des paires de textes. Considérez la représentation et la méthode de calcul du score retenues comme des choix délibérés de la tâche de recherche.
Texte multilingue et préparation des entrées
BGE-M3 ne nécessite pas l’ajout de l’instruction de recherche utilisée par les modèles BGE antérieurs. Préparez directement la requête et les véritables passages sources. Une collection de connaissances multilingue peut conserver chaque passage dans sa langue d’origine, avec son identifiant de document et sa locale. Utilisez de vraies questions d’utilisateurs issues du mélange linguistique visé lorsque vous vérifiez les résultats.
Une tâche concrète consiste à rechercher des explications de règles, de l’aide produit ou de la documentation technique disponibles dans plusieurs langues. Conservez les noms, les numéros de modèle et les termes importants pour la question. Une représentation lexicale peut aider à préserver les correspondances sur ces termes, tandis qu’une représentation dense apporte des indices sémantiques. Le passage retrouvé doit inclure le texte et l’emplacement source qu’un lecteur peut examiner.
Documents plus longs et granularité
La fenêtre d’entrée de 8192 tokens permet au modèle de représenter aussi bien de courtes phrases que des documents plus longs. Choisissez la granularité en fonction de la réponse que la recherche doit renvoyer. Une section complète peut préserver une définition et ses exceptions ; un passage plus court peut rendre une instruction précise plus facile à trouver. Une longue fenêtre permet ces choix, mais le vecteur reste associé au matériau effectivement encodé.
Gardez chaque passage lié à son document parent et à sa version. Pour un long rapport, préservez le titre et l’explication entourant le chiffre ou la conclusion pertinente. Ne vous fiez pas au seul titre d’un résultat de recherche lorsque les éléments se trouvent dans le corps du texte. Si la source change, conservez assez de métadonnées pour mettre à jour les représentations de recherche correspondantes.
Scores hybrides et utilisation en aval
Le fabricant recommande une recherche hybride suivie d’une étape de reclassement distincte. Ses exemples calculent des scores denses, parcimonieux et multivecteurs, puis forment des combinaisons pondérées. Choisissez la combinaison en fonction des questions et du vocabulaire de la collection ; un poids montré dans un exemple n’est pas un réglage universel pour tous les corpus.
Un résultat utile est un ensemble de candidats dont les passages sources restent disponibles, avec la représentation et la méthode de classement consignées. Un reclasseur distinct peut affiner cet ensemble, et une étape séparée de génération de texte peut utiliser le contenu des passages. Les capacités parcimonieuses et multivecteurs de BGE-M3 sont des modes du modèle du producteur ; le plongement dense, la sortie lexicale et le score par paire sont des artefacts distincts, plutôt que des tableaux interchangeables.
Ailoot Ultra · Embeddings POST /v1/embeddings baai/bge-m3
baai/bge-m3Pour commencer
BAAI BGE-M3 prend en charge la recherche dense, lexicale creuse et multivecteur dans plus de 100 langues. Sa sortie dense compte 1024 dimensions et sa fenêtre de 8192 jetons accueille aussi bien des phrases que de longs documents, sans consigne de requête obligatoire.
- Entrées acceptées
- Texte · token_ids
- Résultats
- embedding
Disponible dans Ailoot · entrées et méthodes
Ailoot Ultra · Embeddings POST /v1/embeddings
- Entrée
text,token_ids- Sortie
embedding- Contexte
- 8 194 tokens
- Format de sortie
- json
| Champ | Type | Exigence | Valeurs et limites | Par défaut |
|---|---|---|---|---|
Champmodel | Typestring | ExigenceObligatoire | Valeurs et limites baai/bge-m3 | Par défaut— |
Champinput | Typestring|string[]|integer[]|integer[][] | ExigenceObligatoire | Valeurs et limites Nombre minimal d’éléments: 1 Conditions: Lot homogène non vide. Les identifiants de jetons sont des entiers positifs ou nuls. Budget d’entrée : Maximum: 8 194 · Unité de texte: octets UTF8 · Unité de jetons: éléments du tableau de jetons | Par défaut— |
Champencoding_format | Typestring | ExigenceFacultatif | Valeurs et limites float | Par défautfloat |
Champdimensions | Typeinteger | ExigenceNon pris en charge | Valeurs et limites Minimum: 1 | Par défaut— |
Champuser | Typejson_value | ExigenceFacultatif | Valeurs et limites Conditions: Le code source autorise ce champ de métadonnées JSON ; sa sémantique exacte en amont dépend du modèle. | Par défaut— |
Champsession_id | Typejson_value | ExigenceFacultatif | Valeurs et limites Conditions: Le code source autorise ce champ de métadonnées JSON ; sa sémantique exacte en amont dépend du modèle. | Par défaut— |
Champtrace | Typejson_value | ExigenceFacultatif | Valeurs et limites Conditions: Le code source autorise ce champ de métadonnées JSON ; sa sémantique exacte en amont dépend du modèle. | Par défaut— |
Champprovider | Typeobject | ExigenceFacultatif | Valeurs et limites Conditions: provider.options est refusé | Par défaut— |
Combinaisons d’éléments d’entrée
text_to_embedding
Paramètres et cycle de vie de la méthode
| Paramètre | Contrat |
|---|---|
Paramètrecontent_type | Contratapplication/json |
Paramètrerequired | Contratmodel, input |
Paramètreinput_shapes | Contratstring, string[], nonnegative_integer_token_array, nonnegative_integer_token_array[] |
Paramètreencoding_format | Contratfloat |
Paramètredimensions_override | Contratfalse |
Paramètremax_input_budget_units | Contrat8194 |
Paramètremultimodal_objects | Contratfalse |
Paramètrematerial_types | Contrattext, token_ids |
Cycle de vie : synchronous_json
Conservez tous les indices et toutes les dimensions des vecteurs.
Un nom de modèle multimodal n’autorise pas les objets image sur ce chemin précis.
Tarifs
Les tarifs n’ajoutent pas d’options de requête. Les paramètres pris en charge figurent dans la méthode sélectionnée.
- Mode rapide
- Tarif standard Lorsque le mode rapide est sélectionné
- Mode Flex
- Tarif standard Lorsque le mode flex est sélectionné
- Effort de raisonnement maximal
- Tarif standard Lorsque l’effort de raisonnement maximal utilise l’ajustement par défaut (default)
Tarifs Ailoot
Prix par configuration
| Configuration | Barème tarifaire | Coût |
|---|---|---|
| ConfigurationTarifs de base des jetons | Barème tarifaireTarif de base | Coût Entrée · Jetons en entrée $0.00004 / 1K jetons Sortie · Jetons en sortie $0 / 1K jetons Entrée · Lecture du cache — / 1K jetons Entrée · Écriture dans le cache — / 1K jetons Entrée · Écriture dans le cache, 1 h — / 1K jetons |
Ailoot réserve un montant estimé avant une requête. Après le résultat, le montant final est débité selon l’utilisation mesurée. Pour le streaming, le montant final à débiter est calculé à partir du relevé final d’utilisation. Fonctionnement de la réservation et du débit →
Exemples de requêtes
Ailoot Ultra · Embeddings
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)
Recevoir et enregistrer les résultats
Ailoot Ultra · Embeddings
json
Conserver tous les résultats terminés
Conservez chaque réponse, fichier et partie de contenu renvoyés dans leur intégralité.
Conservez chaque vecteur avec son indice. Le nombre de vecteurs doit être égal au nombre d’entrées ; les dimensions doivent être cohérentes.
Si la réponse d’origine doit être vérifiée
Aucun point de terminaison dédié aux tâches d’embedding n’est ajouté.
Champs de la réponse
| Champ | Type |
|---|---|
Champobject | Typestring |
Champmodel | Typestring |
Champdata[].index | Typeinteger |
Champdata[].embedding | Typefinite float[] |
Champusage | Typeobject |
Erreurs et étapes suivantes
| Réponse | Condition | Étape suivante |
|---|---|---|
Réponse400 · invalid_request_error | ConditionChamps obligatoires, représentation des éléments fournis ou valeur de paramètre invalides | Étape suivanteCorrigez les champs indiqués avant une nouvelle requête de création. |
Alias
Alias du modèle
Ailoot Ultra baai/bge-m3
Alias des chemins de méthode
Utilisez les chemins de méthode indiqués ci-dessus.
ID d’appel associés
FAQ · BAAI: bge-m3
- Quelles entrées et quels résultats sont disponibles ?
POST /v1/embeddings·baai/bge-m3:text,token_ids→embedding- Quels champs la requête utilise-t-elle ?
POST /v1/embeddings·baai/bge-m3:model,input,encoding_format,provider- Quelles limites s’appliquent ?
POST /v1/embeddings·baai/bge-m3:ctx:8194;input.budget.maximum:8194(octets UTF8);input.min_items:1