Os embeddings, também conhecidos como vetores de características, são a maneira nativa como a inteligência artificial representa qualquer tipo de dado, tornando-os bem adequados para uso com várias ferramentas e algoritmos de IA. Eles podem representar texto, imagens, bem como áudio e vídeo. Existem muitas opções para gerar dados de vetores de características, incluindo o uso de modelos de incorporação de texto de código aberto ou chamando APIs de serviços de nuvem.
Chroma fornece um invólucro leve para modelos de incorporação populares, tornando fácil usá-los em suas aplicações. Ao criar uma coleção Chroma, você pode definir uma função de incorporação que calculará automaticamente vetores de texto ao salvar e atualizar dados de texto.
Nota: Você também pode optar por não usar a função de incorporação encapsulada do Chroma para calcular vetores. Você pode selecionar qualquer modelo de incorporação para pré-calcular dados de vetor de texto.
Para obter a função de incorporação do Chroma, importe o módulo embedding_functions
de chromadb.utils
.
from chromadb.utils import embedding_functions
Modelo Padrão: all-MiniLM-L6-v2
Por padrão, o Chroma usa o modelo all-MiniLM-L6-v2 do Sentence Transformers para calcular vetores. Este modelo de incorporação pode criar vetores de sentenças e documentos. A funcionalidade deste modelo de incorporação é executada na máquina local e requer o download dos arquivos do modelo (o que é feito automaticamente).
default_ef = embedding_functions.DefaultEmbeddingFunction()
Modelo Transformers
O Chroma também pode usar qualquer modelo Sentence Transformers para calcular vetores.
sentence_transformer_ef = embedding_functions.SentenceTransformerEmbeddingFunction(model_name="all-MiniLM-L6-v2")
Você pode passar um parâmetro opcional model_name
para escolher o modelo Sentence Transformers que deseja usar. Por padrão, o Chroma usa all-MiniLM-L6-v2. Você pode pesquisar nomes de modelo na Hugging Face.
Modelo OpenAI
O Chroma fornece um invólucro conveniente para a API de incorporação da OpenAI. Isso requer chamar a interface da OpenAI e uma chave de API. Você pode obter uma chave de API registrando-se para uma conta na OpenAI.
Esta função de incorporação depende do pacote openai
para Python, que pode ser instalado usando pip install openai
.
openai_ef = embedding_functions.OpenAIEmbeddingFunction(
api_key="YOUR_API_KEY",
model_name="text-embedding-ada-002"
)
Para usar o modelo de incorporação da OpenAI em plataformas como Azure, você pode usar os parâmetros api_base
e 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"
)
Função de Incorporação Personalizada
Você pode criar sua própria função de incorporação para trabalhar com o Chroma simplesmente implementando os métodos da classe base EmbeddingFunction
.
from chromadb.api.types import Documents, EmbeddingFunction, Embeddings
class MyEmbeddingFunction(EmbeddingFunction):
def __call__(self, texts: Documents) -> Embeddings:
return embeddings