I embedding, noto anche come vettori delle caratteristiche, è il modo nativo con cui l'intelligenza artificiale rappresenta qualsiasi tipo di dati, rendendoli adatti all'uso con vari strumenti e algoritmi di intelligenza artificiale. Possono rappresentare testi, immagini, nonché audio e video. Ci sono molte opzioni per generare dati vettoriali delle caratteristiche, tra cui l'utilizzo di modelli di embedding di testo open source o chiamare le API dei servizi cloud.
Chroma fornisce un wrapper leggero per i modelli di embedding popolari, semplificandone l'utilizzo nelle tue applicazioni. Quando crei una collezione in Chroma, puoi impostare una funzione di embedding che calcolerà automaticamente i vettori di testo durante il salvataggio e l'aggiornamento dei dati di testo.
Nota: Puoi anche scegliere di non utilizzare la funzione di embedding incapsulata di Chroma per calcolare i vettori. Puoi selezionare qualsiasi modello di embedding per precalcolare i dati vettoriali di testo.
Per ottenere la funzione di embedding da Chroma, importa il modulo embedding_functions
da chromadb.utils
.
from chromadb.utils import embedding_functions
Modello predefinito: all-MiniLM-L6-v2
Per impostazione predefinita, Chroma utilizza il modello all-MiniLM-L6-v2 di Sentence Transformers per calcolare i vettori. Questo modello di embedding può creare vettori di frase e documento. La funzionalità di questo modello di embedding viene eseguita sulla macchina locale e richiede il download dei file del modello (che avviene automaticamente).
default_ef = embedding_functions.DefaultEmbeddingFunction()
Modello Transformers
Chroma può anche utilizzare qualsiasi modello di Sentence Transformers per calcolare i vettori.
sentence_transformer_ef = embedding_functions.SentenceTransformerEmbeddingFunction(model_name="all-MiniLM-L6-v2")
Puoi passare un parametro opzionale model_name
per scegliere il modello di Sentence Transformers che desideri utilizzare. Per impostazione predefinita, Chroma utilizza all-MiniLM-L6-v2. Puoi cercare i nomi dei modelli su Hugging Face.
Modello OpenAI
Chroma fornisce un pratico wrapper per l'API di embedding di OpenAI. Questo richiede la chiamata all'interfaccia di OpenAI e una chiave API. Puoi ottenere una chiave API registrandoti per un account OpenAI.
Questa funzione di embedding dipende dal pacchetto Python openai
, che può essere installato utilizzando pip install openai
.
openai_ef = embedding_functions.OpenAIEmbeddingFunction(
api_key="LA_TUA_CHIAVE_API",
model_name="text-embedding-ada-002"
)
Per utilizzare il modello di embedding OpenAI su piattaforme come Azure, puoi utilizzare i parametri api_base
e api_type
:
openai_ef = embedding_functions.OpenAIEmbeddingFunction(
api_key="LA_TUA_CHIAVE_API",
api_base="IL_TUO_PERCORSO_BASE_API",
api_type="azure",
model_name="text-embedding-ada-002"
)
Funzione di embedding personalizzata
Puoi creare la tua funzione di embedding per lavorare con Chroma semplicemente implementando i metodi della classe base EmbeddingFunction
.
from chromadb.api.types import Documents, EmbeddingFunction, Embeddings
class MyEmbeddingFunction(EmbeddingFunction):
def __call__(self, texts: Documents) -> Embeddings:
return embeddings