Embeddings, juga dikenal sebagai vektor fitur, adalah cara asli kecerdasan buatan merepresentasikan berbagai jenis data, sehingga sangat cocok digunakan dengan berbagai alat dan algoritma kecerdasan buatan. Mereka dapat merepresentasikan teks, gambar, serta audio dan video. Ada banyak opsi untuk menghasilkan data vektor fitur, termasuk menggunakan model embedding teks sumber terbuka atau memanggil API dari layanan cloud.
Chroma menyediakan pembungkus ringan untuk model embedding populer, membuatnya mudah digunakan dalam aplikasi Anda. Ketika membuat koleksi Chroma, Anda dapat mengatur fungsi embedding untuk secara otomatis menghitung vektor teks saat menyimpan dan memperbarui data teks.
Catatan: Anda juga dapat memilih untuk tidak menggunakan fungsi embedding terbungkus Chroma untuk menghitung vektor. Anda dapat memilih model embedding untuk memprediksi data vektor teks.
Untuk memperoleh fungsi embedding dari Chroma, impor modul embedding_functions
dari chromadb.utils
.
from chromadb.utils import embedding_functions
Model Default: all-MiniLM-L6-v2
Secara default, Chroma menggunakan model all-MiniLM-L6-v2 dari Sentence Transformers untuk menghitung vektor. Model embedding ini dapat membuat vektor kalimat dan dokumen. Fungsi dari model embedding ini berjalan pada mesin lokal dan memerlukan mengunduh file-model (yang dilakukan secara otomatis).
default_ef = embedding_functions.DefaultEmbeddingFunction()
Model Transformers
Chroma juga dapat menggunakan model Sentence Transformers lainnya untuk menghitung vektor.
sentence_transformer_ef = embedding_functions.SentenceTransformerEmbeddingFunction(model_name="all-MiniLM-L6-v2")
Anda dapat melewati parameter opsional model_name
untuk memilih model Sentence Transformers yang ingin Anda gunakan. Secara default, Chroma menggunakan all-MiniLM-L6-v2. Anda dapat mencari nama model di Hugging Face.
Model OpenAI
Chroma menyediakan pembungkus yang nyaman untuk API embedding OpenAI. Ini memerlukan pemanggilan antarmuka OpenAI dan kunci API. Anda dapat memperoleh kunci API dengan mendaftar akun OpenAI.
Fungsi embedding ini bergantung pada paket Python openai
, yang dapat diinstal menggunakan pip install openai
.
openai_ef = embedding_functions.OpenAIEmbeddingFunction(
api_key="YOUR_API_KEY",
model_name="text-embedding-ada-002"
)
Untuk menggunakan model embedding OpenAI di platform seperti Azure, Anda dapat menggunakan parameter api_base
dan api_type
:
openai_ef = embedding_functions.OpenAIEmbeddingFunction(
api_key="YOUR_API_KEY",
api_base="YOUR_API_BASE_PATH",
api_type="azure",
model_name="text-embedding-ada-002"
)
Fungsi Embedding Kustom
Anda dapat membuat fungsi embedding kustom Anda sendiri untuk bekerja dengan Chroma dengan hanya mengimplementasikan metode dari kelas dasar EmbeddingFunction
.
from chromadb.api.types import Documents, EmbeddingFunction, Embeddings
class MyEmbeddingFunction(EmbeddingFunction):
def __call__(self, texts: Documents) -> Embeddings:
return embeddings