Perguntas frequentes sobre o Oracle AI Vector Search

Tópicos de perguntas frequentes

Perguntas gerais

O que é um vetor?

Um vetor é uma representação numérica de texto, imagens, áudio ou vídeo que codifica recursos/significado semântico dos dados, em vez do conteúdo real, como as palavras ou pixels subjacentes. Um vetor é uma lista de valores numéricos, conhecidos como dimensões, com um formato especificado.

Quantas dimensões vetoriais são suportadas?

O Oracle AI Vector Search oferece suporte a vetores com até 65.535 dimensões.

Quais formatos de número são compatíveis com vetores?

O AI Vector Search é compatível com os formatos INT8, FLOAT32 e FLOAT64.

Qual é o tamanho dos vetores?

O tamanho de um vetor é o produto do número de dimensões e do tamanho de cada dimensão.

Por exemplo, um vetor com 2.048 dimensões e o formato INT8 (1 byte) tem tamanho de 2 KB. Um vetor com 1.024 dimensões e o formato FLOAT32 (4 bytes) tem tamanho de 4 KB.

Como os vetores são criados?

Os vetores são criados a partir de diferentes tipos de dados de entrada (texto, imagens, áudio, vídeo, etc.) por modelos de aprendizado profundo conhecidos como modelos de incorporação. Você pode criar vetores fora do banco de dados usando seus próprios modelos de incorporação ou serviço de incorporação ou pode criá-los dentro do banco de dados usando modelos de incorporação importados por meio da função SQL VECTOR_EMBEDDING().

Com quais modelos de incorporação o AI Vector Search funciona?

O AI Vector Search deve funcionar com qualquer modelo de incorporação válido que gere vetores com um dos formatos compatíveis e 65.535 ou menos dimensões.

Quais modelos de incorporação devo considerar usar e onde posso obtê-los?

A escolha do modelo de incorporação depende de muitos fatores, como a natureza dos dados, as métricas de desempenho que você prioriza e o custo que está disposto a pagar. Modelos de incorporação gratuitos e de código aberto, como vários transformadores de frases, podem ser encontrados no Hugging Face e em sites semelhantes. Esses modelos podem ser convertidos em ONNX para serem executados no banco de dados com o AI Vector Search. Além disso, uma fonte popular para os melhores modelos de incorporação de texto é o MTEB Leaderboard hospedado pelo Hugging Face. Você também pode ir para provedores de modelos estabelecidos, como OpenAI e Cohere.

Quais operações são compatíveis com vetores?

Existe suporte para várias operações matemáticas em vetores, mas a operação mais importante é a função SQL VECTOR_DISTANCE(), que encontra a distância matemática entre dois vetores com base na fórmula de distância selecionada. Há muitas fórmulas de distância compatíveis com o Oracle AI Vector Search, incluindo distância euclidiana, similaridade de cosseno e distância de Hamming. A escolha da função de distância é tipicamente impulsionada pelo modelo de incorporação usado para gerar os vetores.

Como os vetores são usados na pesquisa de similaridade?

Todos os tipos de vetores compartilham a mesma propriedade: quanto mais semelhantes forem as duas entidades, menor será a distância entre elas. Por exemplo, os vetores para “maçã” e “laranja” estão mais próximos do que os vetores para “maçã” e “cachorro”. Essa propriedade de vetores permite que eles sejam usados para pesquisar dados por similaridade semântica.

Como o AI Vector Search é executado usando SQL?

Existem extensões SQL simples e intuitivas que permitem que o AI Vector Search seja facilmente incorporado às suas aplicações. Como a distância vetorial é uma medida de semelhança, a AI Vector Search envolve simplesmente classificar o conjunto de vetores candidatos com base em sua distância de um vetor de pesquisa e retornar as correspondências top-K mais próximas. Por exemplo, a consulta abaixo encontra os 10 principais produtos cujas fotos correspondem mais de perto à foto de pesquisa do usuário:

SELECT product_name, product_photo
FROM Product
ORDER BY VECTOR_DISTANCE(product_photo_vector, :search_photo_vector)
FETCH FIRST 10 ROWS ONLY;

Como posso usar o AI Vector Search em consultas complexas envolvendo dados de negócios?

O AI Vector Search pode ser usado em consultas sofisticadas envolvendo filtros, junções, agregações, agrupamentos, etc. Por exemplo, a consulta a seguir pode ser usada para encontrar os 10 principais produtos correspondentes por foto para produtos fabricados no estado da Califórnia.

SELECT Product.name, Product.photo, Manufacturer.name
FROM Product p JOIN Manufacturer m ON (p.mfr_id = m.id)
WHERE Manufacturer.state = ‘CA’
ORDER BY VECTOR_DISTANCE(product_photo_vector, :search_photo_vector)
FETCH FIRST 10 ROWS ONLY;

O que são índices de vetores e como eles são diferentes dos índices de banco de dados tradicionais?

Os índices de banco de dados tradicionais são usados para acelerar pesquisas com base em valores correspondentes. Por exemplo, um índice B-tree acelera as pesquisas baseadas em valores e as varreduras de intervalos baseadas em valor. Os índices vetoriais, por outro lado, são projetados para encontrar as correspondências mais semelhantes de top-K com base na similaridade semântica, em vez de valores exatamente iguais. Por exemplo, um índice vetorial pode ser usado para encontrar as K palavras com significado mais semelhante a “maçã” em um corpus de palavras existentes. O uso de um índice vetorial resulta em uma pesquisa aproximada que troca alguma precisão de pesquisa por um desempenho até 100 vezes maior, pois evita o exame de cada vetor em uma coluna.

Quais linguagens de programação podem ser usadas para desenvolver aplicações AI Vector Search?

Além de SQL e PL/SQL, as aplicações AI Vector Search podem ser criadas em uma variedade de linguagens de programação. O AI Vector Search inclui suporte a driver nativo para vetores em linguagens populares, como Java, Python, JavaScript e C#.

Qual papel o AI Vector Search desempenha na IA generativa?

O AI Vector Search pode ser usado no conhecido fluxo de trabalho de geração aumentada de recuperação (RAG) para melhorar a precisão e a relevância contextual das conversas em linguagem natural com os grandes modelos de linguagem (LLMs) do GenAI. Com o RAG, a pergunta de um usuário é primeiro convertida em um vetor e, em seguida, mapeada para os documentos mais relevantes no banco de dados por meio do AI Vector Search. Em seguida, a pergunta do usuário e os documentos relevantes de apoio são transmitidos ao LLM para que ele possa gerar uma resposta informada com base em seu próprio conhecimento geral e no conhecimento especializado do armazenamento de vetores.

Com quais LLMs o AI Vector Search funciona?

O AI Vector Search pode ser usado para RAG com LLMs de código aberto, como Llama2 ou Llama3, bem como LLMs de provedores como OpenAI e Cohere.

O AI Vector Search é compatível com o LangChain?

O AI Vector Search é integrado ao LangChain, que é uma estrutura de código aberto muito popular para criar soluções baseadas em RAG.

Como posso dimensionar o AI Vector Search para atender às crescentes necessidades da minha aplicação?

Todos os mecanismos abrangentes de escalabilidade da Oracle, como Parallel Execution, Partitioning, RAC, Sharding e Exadata, podem ser usados para escalar o AI Vector Search para praticamente qualquer tamanho de dados e número de usuários.

Oracle Chatbot
Disconnected