Jina AI

Jina AI / jina-embeddings-v2-small-en

Un modèle d'intégration monolingue anglais pour une longueur de séquence allant jusqu'à 8192 tokens ; la plus petite variante de la famille Jina Embeddings v2.

Introduction aux modèles Jina Embedding v2

Les modèles Jina Embeddings v2 sont conçus pour traiter de longs documents avec une taille d'entrée maximale étendue à 8 192 tokens. En octobre 2024, Jina AI Embedding V2 dispose des variantes suivantes, chacune répondant à des besoins d'intégration différents :

Introduction à jina-embeddings-v2-small-fr

jina-embeddings-v2-small-fr est un modèle d'intégration monolingue anglais conçu pour une longueur de séquence allant jusqu'à 8192 tokens. Il s'agit de la plus petite variante de la famille Jina Embeddings v2, qui a été entraînée avec 33 millions de paramètres et génère des embeddings à 512 dimensions.

Comparaison de jina-embeddings-v2-small-en avec d'autres modèles d'intégration Jina.

| Modèle d'intégration - Taille des paramètres - Dimension d'intégration - Texte - Taille des paramètres - Dimension d'intégration - Texte - Taille des paramètres - Dimension d'intégration - Dimension d'intégration | ---------------------------- | -------------- | --------------------------------------- | ----------------------------------------------------------- | | Jina-embeddings-v3](https://zilliz.com/ai-models/jina-embeddings-v3) | 570M | taille d'incorporation flexible (par défaut : 1024) | incorporation de texte multilingue ; supporte 94 langues au total. | jina-embeddings-v2-small-fr | 33M | 512 | Embarquements monolingues en anglais | jina-embeddings-v2-base-fr | 137M | 768 | Embarquements monolingues en anglais | jina-embeddings-v2-base-fr | jina-embeddings-v2-base-zh | 161M | 768 | Embarquements bilingues chinois-anglais | jina-embeddings-v2-base-de | 161M | 768 | Embarquements bilingues allemand-anglais | jina-embeddings-v2-base-de | 161M | 768 | Embarquements bilingues allemand-anglais | jina-embeddings-v2-base-code | 161M | 768 | Anglais et langages de programmation |

Comment créer des embeddings avec jina-embeddings-v2-small-en

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

  • PyMilvus](https://github.com/milvus-io/pymilvus) : le SDK Python pour Milvus qui intègre de manière transparente le modèle jina-embeddings-v2-small-en.
  • Bibliothèque SentenceTransformer : la bibliothèque Python sentence-transformer.

Une fois que les embeddings vectoriels sont générés, ils peuvent être stockés dans [Zilliz Cloud] (https://zilliz.com/cloud) (un service de base de données vectorielles entièrement géré par Milvus) et utilisés pour [la recherche de similarité sémantique] (https://zilliz.com/glossary/semantic-search). Voici les quatre étapes clés :

  • S'inscrire pour un compte Zilliz Cloud gratuit.
  • Configurez un cluster sans serveur (https://docs.zilliz.com/docs/create-cluster#set-up-a-free-cluster) et obtenez le point de terminaison public et la clé API (https://docs.zilliz.com/docs/on-zilliz-cloud-console#free-cluster-details).
  • Créez une collection de vecteurs et insérez vos embeddings vectoriels.
  • Exécutez une recherche sémantique sur les encastrements stockés.

Créer des embeddings via PyMilvus

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

ef = SentenceTransformerEmbeddingFunction("jinaai/jina-embeddings-v2-small-fr", trust_remote_code=True)

docs = [
   "L'intelligence artificielle a été fondée en tant que discipline universitaire en 1956",
   "Alan Turing a été la première personne à mener des recherches substantielles sur l'intelligence artificielle,
   "Né à Maida Vale, Londres, Turing a grandi dans le sud de l'Angleterre."
]
# Générer des embeddings pour les documents
docs_embeddings = ef(docs)

queries = ["Quand l'intelligence artificielle a-t-elle été créée",
          "Où est né Alan Turing ?"]
# Génère des embeddings pour les requêtes
query_embeddings = ef(queries)

# Se connecter au nuage Zilliz avec le point de terminaison public et la clé API
client = MilvusClient(
    uri=ZILLIZ_PUBLIC_ENDPOINT,
    token=ZILLIZ_API_KEY)

COLLECTION = "documents"
if client.has_collection(collection_name=COLLECTION) :
    client.drop_collection(nom_de_la_collection=COLLECTION)
client.create_collection(
    nom_de_la_collection=COLLECTION,
    dimension=ef.dim,
    auto_id=True)

for doc, embedding in zip(docs, docs_embeddings) :
    client.insert(COLLECTION, {"text" : doc, "vector" : embedding})
    
results = client.search(
    nom_de_la_collection=COLLECTION,
    data=query_embeddings,
    niveau de cohérence="Fort",
    output_fields=["text"])

Pour plus d'informations, consultez notre [documentation PyMilvus Embedding Model] (https://milvus.io/docs/embeddings.md).

Créer des embeddings via le transformateur de phrases

from sentence_transformers import SentenceTransformer
from pymilvus import MilvusClient

model = SentenceTransformer("jinaai/jina-embeddings-v2-small-en", trust_remote_code=True)

docs = [
   "L'intelligence artificielle a été fondée en tant que discipline universitaire en 1956",
   "Alan Turing a été la première personne à mener des recherches substantielles sur l'intelligence artificielle,
   "Né à Maida Vale, Londres, Turing a grandi dans le sud de l'Angleterre."
]
# Générer des embeddings pour les documents
docs_embeddings = model.encode(docs, normalize_embeddings=True)

queries = ["query : Quand l'intelligence artificielle a-t-elle été fondée ?
           "requête : Wo wurde Alan Turing geboren ?" ]
# Générer des embeddings pour les requêtes
query_embeddings = model.encode(queries, normalize_embeddings=True)

# Se connecter au nuage Zilliz avec le point de terminaison public et la clé API
client = MilvusClient(
    uri=ZILLIZ_PUBLIC_ENDPOINT,
    token=ZILLIZ_API_KEY)

COLLECTION = "documents"
if client.has_collection(collection_name=COLLECTION) :
    client.drop_collection(nom_de_la_collection=COLLECTION)
client.create_collection(
    nom_de_la_collection=COLLECTION,
    dimension=512,
    auto_id=True)

pour doc, embedding dans zip(docs, docs_embeddings) :
    client.insert(COLLECTION, {"text" : doc, "vector" : embedding})
    
results = client.search(
    nom_de_la_collection=COLLECTION,
    data=query_embeddings,
    niveau de cohérence="Fort",
    output_fields=["text"])

Reportez-vous à [Hugging Face documentation] (https://huggingface.co/jinaai/jina-embeddings-v2-small-en) pour plus de détails.