milvus-logo
LFAI
Casa
  • Modelli

Jina AI

I modelli di incorporazione di Jina AI sono modelli di incorporazione del testo ad alte prestazioni in grado di tradurre gli input testuali in rappresentazioni numeriche, catturando la semantica del testo. Questi modelli eccellono in applicazioni come il reperimento di informazioni dense, la similarità semantica del testo e la comprensione multilingue.

Milvus si integra con i modelli di incorporazione di Jina AI attraverso la classe JinaEmbeddingFunction. Questa classe fornisce metodi per codificare documenti e query utilizzando i modelli di incorporamento di Jina AI e restituendo gli incorporamenti come vettori densi compatibili con l'indicizzazione di Milvus. Per utilizzare questa funzionalità, è necessario ottenere una chiave API da Jina AI.

Per utilizzare questa funzione, installare le dipendenze necessarie:

pip install --upgrade pymilvus
pip install "pymilvus[model]"

Quindi, istanziare il sito JinaEmbeddingFunction:

from pymilvus.model.dense import JinaEmbeddingFunction

jina_ef = JinaEmbeddingFunction(
    model_name="jina-embeddings-v2-base-en", # Defaults to `jina-embeddings-v2-base-en`
    api_key=JINAAI_API_KEY # Provide your Jina AI API key
)

Parametri:

  • model_name (stringa)

    Il nome del modello di incorporazione di Jina AI da utilizzare per la codifica. È possibile specificare uno qualsiasi dei nomi dei modelli di incorporamento Jina AI disponibili, ad esempio jina-embeddings-v2-base-en, jina-embeddings-v2-small-en, ecc. Se si lascia questo parametro non specificato, verrà utilizzato jina-embeddings-v2-base-en. Per un elenco dei modelli disponibili, consultare Jina Embeddings.

  • api_key (stringa)

    La chiave API per accedere all'API Jina AI.

Per creare embeddings per i documenti, utilizzare il metodo encode_documents():

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.",
]

docs_embeddings = jina_ef.encode_documents(docs)

# Print embeddings
print("Embeddings:", docs_embeddings)
# Print dimension and shape of embeddings
print("Dim:", jina_ef.dim, docs_embeddings[0].shape)

Il risultato atteso è simile al seguente:

Embeddings: [array([-4.88487840e-01, -4.28095880e-01,  4.90086500e-01, -1.63274320e-01,
        3.43437800e-01,  3.21476880e-01,  2.83173790e-02, -3.10403670e-01,
        4.76985040e-01, -1.77410420e-01, -3.84803180e-01, -2.19224200e-01,
       -2.52898000e-01,  6.62411900e-02, -8.58173100e-01,  1.05221800e+00,
...
       -2.04462400e-01,  7.14229800e-01, -1.66823000e-01,  8.72551440e-01,
        5.53560140e-01,  8.92506300e-01, -2.39408610e-01, -4.22413560e-01,
       -3.19551350e-01,  5.59153850e-01,  2.44338100e-01, -8.60452100e-01])]
Dim: 768 (768,)

Per creare embeddings per le query, utilizzare il metodo encode_queries():

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

query_embeddings = jina_ef.encode_queries(queries)

print("Embeddings:", query_embeddings)
print("Dim", jina_ef.dim, query_embeddings[0].shape)

L'output previsto è simile al seguente:

Embeddings: [array([-5.99164660e-01, -3.49827350e-01,  8.22405160e-01, -1.18632730e-01,
        5.78107540e-01,  1.09789170e-01,  2.91604200e-01, -3.29306450e-01,
        2.93779640e-01, -2.17880800e-01, -6.84535440e-01, -3.79752000e-01,
       -3.47541800e-01,  9.20846100e-02, -6.13804400e-01,  6.31312800e-01,
...
       -1.84993740e-02,  9.38629150e-01,  2.74858470e-02,  1.09396360e+00,
        3.96270750e-01,  7.44445800e-01, -1.95404050e-01, -6.08383200e-01,
       -3.75076300e-01,  3.87512200e-01,  8.11889650e-01, -3.76407620e-01])]
Dim 768 (768,)

Tradotto daDeepLogo

Tabella dei contenuti
Feedback

Questa pagina è stata utile?