LiquidAI: LFM2.5-Embedding-350M (free)
LiquidAI LFM2.5-Embedding-350M produit un vecteur à 1024 dimensions par texte pour la recherche multilingue et interlangue. Il cible 11 langues et des entrées courtes de 512 tokens, avec des préfixes de requête et de document distincts.
À 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.
LFM2.5-Embedding-350M est le bi-encodeur dense de LiquidAI pour la recherche multilingue et entre langues. Il produit un vecteur de 1024 dimensions pour chaque texte et vise la recherche à contexte court dans onze langues. La famille de modèles nommée 350M utilise une adaptation bidirectionnelle de LFM2.5-350M-Base ; le tableau détaillé du modèle indique environ 354 millions de paramètres pour cette édition de plongement.
Une représentation bidirectionnelle pour la recherche
Le fabricant adapte l’architecture de base afin que l’attention et les convolutions locales puissent utiliser le contexte des deux côtés d’un token. Une agrégation de type CLS transforme le texte traité en un seul vecteur dense. Son tableau de modèle décrit dix-sept couches : dix blocs de convolution, six blocs d’attention et une étape d’agrégation. Il s’agit d’un encodeur de recherche avec sa propre préparation et sa propre sortie, plutôt que de la tâche de génération textuelle du modèle de base.
Le modèle nommé séparément LFM2.5-ColBERT-350M conserve des vecteurs par token pour une interaction tardive. Cette représentation nécessite un index et une méthode de comparaison différents. Le modèle Embedding décrit ici fournit un vecteur par document ou requête, avec la similarité cosinus comme comparaison documentée.
Utiliser les bons prompts asymétriques
Préparez les requêtes de recherche avec « query: » et les passages sources avec « document: ». Le fabricant stocke ces prompts dans sa configuration et son processus de référence applique le nom de prompt correspondant. Il recommande spécifiquement le rôle approprié de chaque côté, car le modèle a été entraîné avec ces préfixes. Ce préfixe de document diffère de la convention « passage: » des modèles E5.
Une collection concrète de recherche produit peut contenir des descriptions dans les langues prises en charge. Préparez la formulation de recherche de l’utilisateur comme une requête et chaque description produit comme un document. Stockez le texte d’origine, l’identifiant du produit et la langue avec le vecteur, afin qu’un résultat de recherche puisse renvoyer l’enregistrement correspondant. Pour une collection d’assistance, conservez la règle ou l’instruction pertinente pour la question, plutôt que de la remplacer par un libellé court sans rapport.
Langues et taille des passages
L’ensemble de langues documenté est l’anglais, l’espagnol, l’allemand, le français, l’italien, le portugais, l’arabe, le suédois, le norvégien, le japonais et le coréen. Le fabricant vise explicitement la recherche au sein d’une langue et la recherche entre langues. Préparez de vraies questions issues du public visé et examinez le texte documentaire renvoyé dans ces langues.
La spécification de longueur documentaire est de 512 tokens. Divisez une longue source en passages cohérents préservant le titre, les définitions et les conditions nécessaires à un résultat retrouvé. Le préfixe de rôle et le contexte ajouté appartiennent à l’entrée préparée. Une réponse de FAQ, une explication produit ou une section ciblée d’un document technique sont des unités plus adaptées qu’un manuel entier surdimensionné.
Entraînement et mise en correspondance
Le fabricant décrit trois étapes d’entraînement : un préentraînement contrastif anglais, une distillation multilingue et entre langues, puis un ajustement avec des exemples négatifs difficiles sélectionnés. Le modèle obtenu est destiné aux catalogues produit, aux collections de FAQ et d’assistance, à la recherche de fichiers ou de notes et à la recherche de connaissances en entreprise. Il s’agit de tâches pour les représentations textuelles, plutôt que d’affirmations sur le déploiement d’une application particulière.
L’exemple du producteur normalise les vecteurs de requêtes et de documents et les classe par produit scalaire, équivalent à la similarité cosinus. Précalculez les représentations du corpus lorsque les sources sont préparées, puis encodez une requête de recherche et renvoyez les documents candidats avec leur texte et leurs identifiants. Gardez le modèle sélectionné et la convention de rôle avec l’index, afin que la comparaison numérique utilise des représentations compatibles.
Le résultat utile est un index de recherche dense et compact ou un vecteur de requête qui retrouve des sources dans l’ensemble linguistique documenté. Cette édition exacte LFM2.5 Embedding reste distincte de son modèle compagnon ColBERT, des anciens modèles de recherche LFM2 et des implémentations quantifiées extérieurement. Le texte du passage sélectionné constitue les éléments utilisés par un lecteur ou par une étape ultérieure de réponse RAG.
Ailoot Ultra · Embeddings POST /v1/embeddings liquid/lfm-2.5-embedding-350m:free
liquid/lfm-2.5-embedding-350m:free
liquid/lfm-2.5-embedding-350m:freePremiers pas
LiquidAI LFM2.5-Embedding-350M produit un vecteur à 1024 dimensions par texte pour la recherche multilingue et interlangue. Il cible 11 langues et des entrées courtes de 512 tokens, avec des préfixes de requête et de document distincts.
- 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
- 512 tokens
- Format de sortie
- json
| Champ | Type | Exigence | Valeurs et limites | Par défaut |
|---|---|---|---|---|
Champmodel | Typestring | ExigenceObligatoire | Valeurs et limites liquid/lfm-2.5-embedding-350m:free | 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 tokens: éléments du tableau de tokens | 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
- 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 tokens | Barème tarifaireTarif de base | Coût Entrée · Tokens en entrée $0 / 1K tokens Sortie · Tokens en sortie $0 / 1K tokens Entrée · Lecture du cache — / 1K tokens Entrée · Écriture dans le cache — / 1K tokens Entrée · Écriture dans le cache, 1 h — / 1K tokens |
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": "liquid/lfm-2.5-embedding-350m:free", "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='liquid/lfm-2.5-embedding-350m:free',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 contenus ou valeur de paramètre non valides | Étape suivanteCorrigez les champs indiqués avant une nouvelle requête de création. |
Alias
Alias du modèle
Ailoot Ultra liquid/lfm-2.5-embedding-350m:free
Alias des chemins de méthode
Utilisez les chemins de méthode indiqués ci-dessus.
ID d’appel associés
FAQ · LiquidAI: LFM2.5-Embedding-350M (free)
- Quelles entrées et quels résultats sont disponibles ?
POST /v1/embeddings·liquid/lfm-2.5-embedding-350m:free:text,token_ids→embedding- Quels champs la requête utilise-t-elle ?
POST /v1/embeddings·liquid/lfm-2.5-embedding-350m:free:model,input,encoding_format,provider- Quelles limites s’appliquent ?
POST /v1/embeddings·liquid/lfm-2.5-embedding-350m:free:ctx:512;input.budget.maximum:512(octets UTF8);input.min_items:1