Einbettungen, auch als Merkmalsvektoren bekannt, sind die natürliche Art und Weise, wie künstliche Intelligenz jegliche Art von Daten darstellt, was sie für den Einsatz in verschiedenen KI-Werkzeugen und Algorithmen geeignet macht. Sie können Texte, Bilder sowie Audio- und Videodaten darstellen. Es gibt viele Möglichkeiten, Merkmalsvektordaten zu generieren, einschließlich der Verwendung von Open-Source-Texteinbettungsmodellen oder dem Aufruf von APIs von Cloud-Services.
Chroma bietet eine leichtgewichtige Umhüllung für beliebte Einbettungsmodelle, die es einfach macht, sie in Ihren Anwendungen zu verwenden. Beim Erstellen einer Chroma-Sammlung können Sie eine Einbettungsfunktion festlegen, die automatisch Textvektoren berechnet, wenn Textdaten gespeichert und aktualisiert werden.
Hinweis: Sie können auch wählen, die umschlossene Einbettungsfunktion von Chroma nicht zu verwenden, um Vektoren zu berechnen. Sie können ein beliebiges Einbettungsmodell auswählen, um Textvektordaten vorab zu berechnen.
Um die Einbettungsfunktion von Chroma zu erhalten, importieren Sie das Modul embedding_functions
aus chromadb.utils
.
from chromadb.utils import embedding_functions
Standardmodell: all-MiniLM-L6-v2
Standardmäßig verwendet Chroma das all-MiniLM-L6-v2-Modell von Sentence Transformers zur Berechnung von Vektoren. Dieses Einbettungsmodell kann Satz- und Dokumentenvektoren erstellen. Die Funktionalität dieses Einbettungsmodells läuft auf dem lokalen Rechner und erfordert das Herunterladen der Modelldateien (was automatisch erfolgt).
default_ef = embedding_functions.DefaultEmbeddingFunction()
Transformers-Modell
Chroma kann auch jedes Sentence Transformers-Modell verwenden, um Vektoren zu berechnen.
sentence_transformer_ef = embedding_functions.SentenceTransformerEmbeddingFunction(model_name="all-MiniLM-L6-v2")
Sie können einen optionalen model_name
-Parameter übergeben, um das Sentence Transformers-Modell auszuwählen, das Sie verwenden möchten. Standardmäßig verwendet Chroma all-MiniLM-L6-v2. Sie können nach Modellnamen auf Hugging Face suchen.
OpenAI-Modell
Chroma bietet eine praktische Umhüllung für die Einbettungs-API von OpenAI. Dies erfordert den Aufruf der OpenAI-Schnittstelle und einen API-Schlüssel. Sie können einen API-Schlüssel erhalten, indem Sie sich für ein OpenAI-Konto registrieren.
Diese Einbettungsfunktion ist abhängig vom Python-Paket openai
, das mit pip install openai
installiert werden kann.
openai_ef = embedding_functions.OpenAIEmbeddingFunction(
api_key="IHR_API-SCHLÜSSEL",
model_name="text-embedding-ada-002"
)
Um das OpenAI-Einbettungsmodell auf Plattformen wie Azure zu verwenden, können Sie die Parameter api_base
und api_type
verwenden:
openai_ef = embedding_functions.OpenAIEmbeddingFunction(
api_key="IHR_API-SCHLÜSSEL",
api_base="IHR_API-BASISPFADE",
api_type="azure",
model_name="text-embedding-ada-002"
)
Benutzerdefinierte Einbettungsfunktion
Sie können Ihre eigene Einbettungsfunktion erstellen, um mit Chroma zu arbeiten, indem Sie einfach die Methoden der Basisklasse EmbeddingFunction
implementieren.
from chromadb.api.types import Documents, EmbeddingFunction, Embeddings
class MyEmbeddingFunction(EmbeddingFunction):
def __call__(self, texts: Documents) -> Embeddings:
return embeddings