Osadzenia, znane również jako wektory cech, są naturalnym sposobem, w jaki sztuczna inteligencja reprezentuje każdy rodzaj danych, dzięki czemu świetnie nadają się do użycia z różnymi narzędziami i algorytmami AI. Mogą one reprezentować tekst, obrazy, a także dźwięk i wideo. Istnieje wiele opcji generowania danych wektorów cech, w tym korzystanie z otwartych modeli osadzeń tekstowych lub wywoływanie interfejsów API z usług chmurowych.
Chroma udostępnia lekki wrapper do popularnych modeli osadzeń, ułatwiając ich użycie w aplikacjach. Podczas tworzenia kolekcji w Chromie można ustawić funkcję osadzania, która automatycznie oblicza wektory tekstu podczas zapisywania i aktualizowania danych tekstowych.
Uwaga: Możesz również wybrać, by nie korzystać z funkcji osadzania z Chromy do obliczania wektorów. Można wybrać dowolny model osadzeń do wstępnego obliczania danych wektorów tekstu.
Aby uzyskać funkcję osadzania z Chromy, zaimportuj moduł embedding_functions
z chromadb.utils
.
from chromadb.utils import embedding_functions
Domyślny model: all-MiniLM-L6-v2
Domyślnie Chroma używa modelu all-MiniLM-L6-v2 z Sentence Transformers do obliczania wektorów. Ten model osadzeń może tworzyć wektory zdań i dokumentów. Funkcjonalność tego modelu osadzeń działa na lokalnej maszynie i wymaga pobrania plików modelu (co jest wykonywane automatycznie).
default_ef = embedding_functions.DefaultEmbeddingFunction()
Model Transformers
Chroma może również używać dowolnego modelu Sentence Transformers do obliczania wektorów.
sentence_transformer_ef = embedding_functions.SentenceTransformerEmbeddingFunction(model_name="all-MiniLM-L6-v2")
Możesz przekazać opcjonalny parametr model_name
, aby wybrać model Sentence Transformers, którego chcesz użyć. Domyślnie Chroma używa modelu all-MiniLM-L6-v2. Możesz wyszukać nazwy modeli na Hugging Face.
Model OpenAI
Chroma udostępnia wygodny wrapper do interfejsu osadzania OpenAI. Wymaga to wywołania interfejsu OpenAI oraz klucza API. Klucz API można uzyskać, rejestrując się na konto OpenAI.
Ta funkcja osadzania zależy od pakietu openai
dla Pythona, który można zainstalować za pomocą pip install openai
.
openai_ef = embedding_functions.OpenAIEmbeddingFunction(
api_key="TWÓJ_KLUCZ_API",
model_name="text-embedding-ada-002"
)
Aby używać modelu osadzeń OpenAI na platformach takich jak Azure, można użyć parametrów api_base
i api_type
:
openai_ef = embedding_functions.OpenAIEmbeddingFunction(
api_key="TWÓJ_KLUCZ_API",
api_base="ŚCIEŻKA_BAZY_API",
api_type="azure",
model_name="text-embedding-ada-002"
)
Własna funkcja osadzania
Możesz stworzyć własną funkcję osadzania do pracy z Chromą, implementując po prostu metody klasy bazowej EmbeddingFunction
.
from chromadb.api.types import Documents, EmbeddingFunction, Embeddings
class MyEmbeddingFunction(EmbeddingFunction):
def __call__(self, texts: Documents) -> Embeddings:
return embeddings