Sentence Transformers: multi-qa-mpnet-base-dot-v1
Sentence Transformers multi-qa-mpnet-base-dot-v1 encode les questions et les passages en vecteurs de 768 dimensions pour la recherche sémantique. Il utilise une agrégation CLS et des plongements non normalisés conçus pour un calcul de score par produit scalaire, avec une limite d’entrée de 512 sous-unités de mots.
À 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.
multi-qa-mpnet-base-dot-v1 est un modèle de Sentence Transformers conçu pour retrouver des passages textuels en réponse à une question ou à une requête. Son entraînement a utilisé environ 215 millions de paires question–réponse. Chaque entrée devient un vecteur dense de 768 dimensions, l’agrégation CLS et le calcul du score par produit scalaire définissant cette édition exacte.
Préparer une question et des passages candidats
Formulez la requête comme un besoin d’information et préparez les entrées du corpus sous forme de passages textuels lisibles. Par exemple, une question sur la modification d’une adresse de livraison peut être comparée à des paragraphes distincts couvrant les changements d’adresse, l’annulation de commande et le suivi de livraison. Gardez les conditions pertinentes dans le passage sur le changement d’adresse, notamment le fait que la commande ait déjà été expédiée ou non.
Encodez la requête et les passages avec ce même modèle. L’exemple publié le fait directement, sans préfixe de requête ou de document, et trie les passages selon leurs scores de produit scalaire. Gardez chaque vecteur attaché à son passage d’origine et à son identifiant de document, afin que le résultat classé puisse montrer le matériau réellement indexé.
Agrégation CLS et édition à produit scalaire
La recette de référence du modèle prend la représentation du premier token, ce que l’on appelle l’agrégation CLS. Son tableau technique indique explicitement que les plongements ne sont pas normalisés et désigne le produit scalaire comme fonction de score adaptée. Préservez cette recette lors de la configuration de la collection et du côté des requêtes.
Normaliser ces vecteurs en norme L2 modifie la géométrie de leurs scores. Le profil normalisé all-mpnet-base-v2 utilise une autre recette et constitue une version distincte, malgré la famille MPNet partagée et une sortie de 768 composantes. Gardez l’édition exacte et la fonction de comparaison avec la collection stockée, plutôt que de les choisir à partir de la seule longueur vectorielle.
Limite de longueur et passages plus longs
La limite d’entrée annoncée est de 512 sous-unités de mots ; les textes plus longs sont tronqués. Le fabricant précise aussi que les entrées d’entraînement n’atteignaient que 250 sous-unités de mots et que les textes plus longs peuvent moins bien fonctionner. La longueur acceptée par le tokenizer et la réserve concernant la longueur d’entraînement décrivent donc des limites pratiques différentes.
Pour un grand article d’aide, préparez des sections courtes répondant à des questions précises. Conservez un titre lorsqu’il identifie le sujet et gardez une règle avec l’exception nécessaire à sa bonne lecture. Une entrée constituée d’une page entière peut perdre les éléments ultérieurs par troncature, tandis qu’un fragment trop petit peut perdre la condition qui le rend utile.
Utiliser le classement pour la recherche et le RAG
Les vecteurs denses servent à une première étape de recherche. Renvoyez les passages candidats ayant les meilleurs scores avec leurs références sources, puis examinez s’ils répondent à la question réelle. Dans un processus RAG, fournissez ces passages comme sources à l’étape de rédaction de la réponse ; la recherche ne rédige pas elle-même la réponse.
Utilisez des questions représentatives avec des passages pertinents connus pour choisir le nombre de résultats et évaluer le classement. Incluez des exemples au vocabulaire similaire, mais d’intention différente, comme modifier une adresse ou consulter l’adresse actuelle. Interprétez les scores relativement aux candidats évalués avec le même modèle et la même configuration, plutôt que comme des probabilités calibrées de correction.
La sortie utile de cette version est un espace de plongement de questions et de passages pour la recherche sémantique. Ses vecteurs non normalisés, son agrégation CLS, son score de produit scalaire et sa réserve publiée concernant les entrées longues sont les détails à préserver lors de la préparation et de l’utilisation des résultats.
Ailoot Ultra · Embeddings POST /v1/embeddings sentence-transformers/multi-qa-mpnet-base-dot-v1
sentence-transformers/multi-qa-mpnet-base-dot-v1
sentence-transformers/multi-qa-mpnet-base-dot-v1Pour commencer
Sentence Transformers multi-qa-mpnet-base-dot-v1 encode les questions et les passages en vecteurs de 768 dimensions pour la recherche sémantique. Il utilise une agrégation CLS et des plongements non normalisés conçus pour un calcul de score par produit scalaire, avec une limite d’entrée de 512 sous-unités de mots.
- 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- Format de sortie
- json
| Champ | Type | Exigence | Valeurs et limites | Par défaut |
|---|---|---|---|---|
Champmodel | Typestring | ExigenceObligatoire | Valeurs et limites sentence-transformers/multi-qa-mpnet-base-dot-v1 | 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: 512 · 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 | Contrat512 |
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
- Non précisé Lorsque le mode rapide est sélectionné
- Mode Flex
- Non précisé Lorsque le mode flex est sélectionné
- Effort de raisonnement maximal
- Non précisé 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.00001 / 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": "sentence-transformers/multi-qa-mpnet-base-dot-v1", "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='sentence-transformers/multi-qa-mpnet-base-dot-v1',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 sentence-transformers/multi-qa-mpnet-base-dot-v1
Alias des chemins de méthode
Utilisez les chemins de méthode indiqués ci-dessus.
ID d’appel associés
FAQ · Sentence Transformers: multi-qa-mpnet-base-dot-v1
- Quelles entrées et quels résultats sont disponibles ?
POST /v1/embeddings·sentence-transformers/multi-qa-mpnet-base-dot-v1:text,token_ids→embedding- Quels champs la requête utilise-t-elle ?
POST /v1/embeddings·sentence-transformers/multi-qa-mpnet-base-dot-v1:model,input,encoding_format,provider- Quelles limites s’appliquent ?
POST /v1/embeddings·sentence-transformers/multi-qa-mpnet-base-dot-v1:input.budget.maximum:512(octets UTF8);input.min_items:1