Présentation des modèles

LiquidAI a publié deux modèles de décision, d1-3B et d1-omni-600M, destinés à l’inférence sur des appareils en périphérie. Le modèle d1-3B compte 3 milliards de paramètres et accepte texte et images, tandis que d1-omni-600M, avec 600 millions de paramètres, gère texte + image ou texte + audio. Les deux modèles sont classés comme les meilleurs sous 10 B paramètres sur le Decision Index 0.2.1, d1-3B obtenant 48,57 contre 47,11 pour le modèle Decider 35B‑A3B.

Architecture et entraînement

d1-3B repose sur le backbone LFM2.5‑VL‑3B, un Vision‑Language Model décodateur‑seul. Cette architecture conserve la capacité de traitement d’images du modèle de base, ce qui explique la compatibilité avec les entrées visuelles sans modification supplémentaire. En revanche, d1-omni-600M utilise LFM2.5‑Encoder‑350M, un encodeur bidirectionnel auquel sont ajoutés des modules de vision et d’audio. Cette conception permet de choisir entre deux paires d’entrées (texte + image ou texte + audio) mais, à ce stade, aucune métrique publique n’est fournie pour les benchmarks vision/audio, le jeu de décision incluant uniquement une partition privée.

Performances sur les benchmarks

Les évaluations couvrent sept jeux de données publics. d1-3B atteint une moyenne de 82,9, dépassant Decider 4B (81,1). Sur SQuAD 2.0, il obtient 74,0 points, alors que d1-omni-600M atteint 83,3, le meilleur du tableau. Sur le jeu Civil Comments, d1-3B obtient 95,8 contre 93,3 pour Decider 2B. Le modèle omni, avec seulement un quart des paramètres de Decider 2B, réalise 78,4 de moyenne, supérieur à Decider 2B (77,1). Ces résultats montrent que la réduction de taille n’entraîne pas une perte proportionnelle de qualité, probablement grâce à la spécialisation du backbone et à l’entraînement multitâche.

Vitesse d’inférence sur le edge

Les mesures de latence, réalisées en partenariat avec NVIDIA, indiquent que d1-3B répond à une requête en 16 ms sur Jetson AGX Thor, 26 ms sur Jetson AGX Orin 64 GB et 50 ms sur Jetson Orin Nano. Le traitement de trois questions simultanées augmente le temps à 20 ms, 35 ms et 73 ms respectivement, soit un facteur de 1,3, ce qui confirme l’efficacité du traitement en lot sans padding. Sur GPU RTX 4090, la latence chute à 8 ms pour le texte et 17 ms pour une image 384 px, démontrant la compatibilité avec les accélérateurs classiques. Aucun chiffre de vitesse n’est fourni pour d1-omni-600M, le modèle restant en phase de recherche.

import io, urllib.request, torch
from PIL import Image
from transformers import AutoModel

device = "cuda" if torch.cuda.is_available() else "cpu"
model = AutoModel.from_pretrained(
    "LiquidAI/d1-3B",
    trust_remote_code=True,
    dtype=torch.float32 if device == "cpu" else torch.bfloat16,
).to(device)

questions = {"refund": {"type": "noul", "instructions": "Is the customer asking for a refund?"}}
print(model.system_one("I was charged twice this month, please refund one of them.", questions))

url = "http://images.cocodataset.org/val2017/000000039769.jpg"
photo = Image.open(io.BytesIO(urllib.request.urlopen(url).read()))
print(model.system_one(None, {"cats": {"type": "choice", "instructions": "How many cats are there?"}} , images=[photo]))