Alibaba

Alibaba / Qwen3-Embedding-8B

Un modèle d’embedding textuel de 8 milliards de paramètres, prend en charge une longueur de contexte de 32k, couvre plus de 100 langues

Introduction à Qwen3-Embedding-8B

Le modèle Qwen3-Embedding-8B est le modèle d’embedding de texte à 8 milliards de paramètres d’Alibaba au sein de la série Qwen3 Embedding. Construit sur l’architecture dense Qwen3, il prend en charge une longueur de contexte de 32k et offre de solides capacités multilingues dans plus de 100 langues humaines et de programmation, permettant des performances efficaces dans la recherche de texte, la recherche de code et les scénarios multilingues.

Qwen3-Embedding-8B offre des performances de pointe dans les applications d’embedding de texte et occupe actuellement la première place du classement multilingue MTEB (5 juin 2025) avec un score de 70,58. Il offre également de la flexibilité grâce aux définitions de vecteurs sur toutes les dimensions et aux instructions définies par l’utilisateur, permettant aux développeurs d’adapter le modèle à des tâches, langues ou exigences d’application spécifiques.

Comment créer des embeddings avec Qwen3-Embedding-8B

Il existe deux principales façons de générer des embeddings vectoriels :

  • PyMilvus : le SDK Python pour Milvus qui intègre de manière transparente le modèle Qwen3-Embedding-8B.
  • PAI-EAS : un service géré pour déployer des modèles personnalisés comme Qwen3-Embedding-8B (pour une personnalisation avancée).

Une fois les embeddings vectoriels générés, ils peuvent être stockés dans Zilliz Cloud (un service de base de données vectorielle entièrement géré propulsé par Milvus) et utilisés pour la recherche de similarité sémantique. Voici quatre étapes clés :

Créer des embeddings via PyMilvus et les insérer dans Zilliz Cloud pour la recherche sémantique

from pymilvus.model.dense import SentenceTransformerEmbeddingFunction
from pymilvus import MilvusClient

# Load the Qwen3-Embedding-8B model
ef = SentenceTransformerEmbeddingFunction(
    "Qwen/Qwen3-Embedding-8B", trust_remote_code=True
)

docs = [
    "Artificial intelligence was founded as an academic discipline in 1956.",
    "Alan Turing was the first person to conduct substantial research in AI.",
    "Born in Maida Vale, London, Turing was raised in southern England.",
]

# Generate embeddings for documents
docs_embeddings = ef(docs)

queries = ["When was artificial intelligence founded", "Where was Alan Turing born?"]

# Generate embeddings for queries
query_embeddings = ef(queries)

# Connect to Zilliz Cloud with Public Endpoint and API Key
client = MilvusClient(uri=ZILLIZ_PUBLIC_ENDPOINT, token=ZILLIZ_API_KEY)

COLLECTION = "qwen3_embedding_8b_documents"

# Drop collection if it exists
if client.has_collection(collection_name=COLLECTION):
    client.drop_collection(collection_name=COLLECTION)

# Create collection with auto-detected dimension
client.create_collection(collection_name=COLLECTION, dimension=ef.dim, auto_id=True)

# Insert documents with embeddings
for doc, embedding in zip(docs, docs_embeddings):
    client.insert(COLLECTION, {"text": doc, "vector": embedding})

# Search for similar documents
results = client.search(
    collection_name=COLLECTION,
    data=query_embeddings,
    # consistency_level="Strong",  # Strong consistency ensures accurate results but may increase latency
    output_fields=["text"],
    limit=2,
)

# Print search results
for i, query in enumerate(queries):
    print(f"\nQuery: {query}")
    for result in results[i]:
        print(f"  - {result['entity']['text']} (distance: {result['distance']:.4f})")

Pour plus d’informations, consultez notre documentation du modèle d’intégration PyMilvus.