Perguntas frequentes sobre o Oracle AI Vector Search

Tópicos de perguntas frequentes

Perguntas gerais

O que é um vetor?

Um vetor é uma representação matemática de texto, imagens, áudio ou vídeo que codifica os recursos ou o significado semântico dos dados em vez do conteúdo real, como as palavras ou pixels subjacentes. Um vetor consiste em uma lista de valores numéricos, conhecidos como dimensões, e pode ser usado para operações de inteligência artificial (IA).

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 e outros dados) por modelos de deep learning conhecidos como modelos de incorporação. Você pode criar vetores fora do banco de dados usando modelos de incorporação, um serviço de incorporação ou pode criá-los dentro do banco de dados usando modelos de incorporação ONNX por meio da função SQL VECTOR_EMBEDDING().

Quais formatos de dimensão são compatíveis para vetores?

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

Quantas dimensões vetoriais são suportadas?

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

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 2 kilobytes, e um vetor com 1.024 dimensões e o formato FLOAT32 (4 bytes) tem 4 kilobytes.

O AI Vector Search é compatível com vetores esparsos?

O Oracle AI Vector Search é compatível com vetores esparsos, que geralmente têm muitas dimensões, mas apenas algumas possuem valores diferentes de zero. Para um determinado documento, os valores de dimensão diferentes de zero no vetor correspondem às palavras-chave (e suas variações) que aparecem naquele documento.

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 de dimensão 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 gratuitos de incorporação de código aberto, incluindo vários transformadores de frases, podem ser encontrados no Hugging Face e em sites semelhantes. Esses modelos podem ser convertidos em ONNX para gerar incorporações no banco de dados com o AI Vector Search. Uma fonte popular para os melhores modelos de incorporação de texto é o MTEB Leaderboard hospedado pelo Hugging Face. Você também pode recorrer a provedores de modelos estabelecidos, como OpenAI e Cohere.

O AI Vector Search é compatível com modelos de incorporação de imagens?

O AI Vector Search oferece suporte a vetores gerados a partir de todos os modelos de incorporação, independentemente de os modelos serem para texto, imagens, áudio, vídeo ou outros dados. O Oracle AI Database também inclui modelos de incorporação pré-compilados ONNX para executar operações de distância baseadas em imagem com o AI Vector Search.

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

Há várias operações matemáticas compatíveis com vetores. A operação mais crítica é 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 euclidiana, euclidiana ao quadrado, similaridade por cosseno, produto escalar, Manhattan, Jaccard e Hamming. A escolha da função de distância normalmente é orientada pelo modelo de incorporação usado para gerar os vetores. No entanto, a métrica de distância padrão no Oracle AI Database 26ai é similaridade por cosseno.

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

Todos os vetores compartilham a mesma propriedade: quanto mais semelhantes forem as duas entidades, menor a distância matemática 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 similaridade, o AI Vector Search envolve classificar o conjunto de vetores candidatos com base na distância deles em relação a 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 melhor à foto de pesquisa de um 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 e outros elementos. Por exemplo, a consulta a seguir pode ser usada para encontrar os 10 principais produtos correspondentes fabricados na Califórnia com base em uma foto enviada por um usuário.

SELECT p.name, p.photo, m.name
FROM product p
JOIN manufacturer m ON (p.mfr_id = m.id)
WHERE m.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 pesquisas baseadas em valores e verificações de intervalo. 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 correspondentes. Um índice vetorial pode ser usado para encontrar as palavras top-K 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 examinar cada entrada de vetor dentro de uma coluna.

O que são índices vetoriais de gráficos vizinhos na memória?

Os índices vetoriais de gráficos vizinhos na memória são índices residentes na memória baseados em gráficos. Os vértices do gráfico representam vetores, e as arestas entre os vértices representam a similaridade entre os vetores. O Oracle AI Vector Search oferece suporte a índices vetoriais de gráficos vizinhos na memória do tipo Hierarchical Navigable Small World (HNSW). Os índices HNSW são estruturados usando princípios de redes small-world e organização hierárquica em camadas, tornando-os extremamente rápidos e precisos para pesquisas de similaridade.

O que são índices vetoriais particionados vizinhos?

O Oracle AI Vector Search oferece suporte a índices vetoriais particionados vizinhos do tipo Inverted File Flat (IVF). Índices vetoriais particionados vizinhos são índices vetoriais baseados em disco, no qual os vetores são agrupados em partições de tabela com base na similaridade. Eles são índices escaláveis eficientes com suporte transacional rápido e contínuo, permitindo equilibrar pesquisas de alta qualidade com velocidade razoável. São projetados para acomodar tamanhos de dados ilimitados, pois não dependem de memória.

O que são índices vetoriais híbridos e como eles diferem dos índices de banco de dados tradicionais?

Os índices vetoriais híbridos permitem aos usuários indexar e consultar facilmente seus documentos usando uma combinação de pesquisa de texto completo e pesquisa vetorial semântica para obter resultados de maior qualidade. Eles oferecem suporte a uma API de consulta unificada que permite aos usuários executar consultas textuais, consultas de similaridade vetorial ou consultas híbridas que aproveitam ambas as abordagens.

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 várias 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 geralmente faz parte de um fluxo de trabalho de geração aumentada de recuperação (RAG). Ele fornece entradas adicionais necessárias para ajustar a resposta de um modelo de linguagem grande (LLM) do GenAI.

Quando combinado com o RAG, a pergunta do usuário é primeiro convertida em um vetor e depois 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, que gera uma resposta informada com base em seu conhecimento geral e no conhecimento especializado do banco de dados.

Com quais LLMs o AI Vector Search funciona?

O AI Vector Search pode ser usado para geração aumentada de recuperação com qualquer LLM, incluindo modelos de código aberto, como Llama3 e Mistral, bem como modelos proprietários de provedores como OpenAI e Cohere. Além disso, APIs PL/SQL especializadas estão disponíveis para integração perfeita entre o AI Vector Search e os LLMs para RAG.

O AI Vector Search é compatível com estruturas e cadeias de integração de IA?

O AI Vector Search é integrado ao LangChain e ao LlamaIndex. Essas estruturas podem ajudar a integrar dados públicos e privados para aplicações de grandes modelos de linguagem.

Quais são os benefícios da geração aumentada de recuperação (RAG)?

A geração aumentada de recuperação (RAG) desempenha um papel fundamental na IA generativa (GenAI), oferecendo vantagens significativas para as aplicações GenAI. A seguir estão apenas três motivos eloquentes pelos quais é fundamental integrar o RAG à configuração da GenAI:

  1. Minimize as alucinações: grandes modelos de linguagem (LLMs) podem gerar respostas imprecisas ou irrelevantes se não tiverem treinamento substancial em prompts. O retreinamento de grandes modelos de linguagem para alinhá-los às respostas desejadas geralmente gera custos substanciais.
  2. Proteja a confidencialidade: os LLMs são treinados com base em informações publicamente disponíveis na internet. Eles não têm acesso aos dados específicos da sua empresa. Você provavelmente não quer enviar informações específicas da sua empresa pela internet, pois isso fornecerá informações privadas a terceiros. Em vez disso, considere manter os dados da sua empresa dentro do seu domínio usando LLMs locais dentro do seu data center ou tenancy na nuvem.
  3. Informações atualizadas: os LLMs são treinados até uma data específica. Eventos ou fatos mais recentes são desconhecidos. Usando o RAG, o LLM pode fornecer respostas baseadas em informações atualizadas de um banco de dados de vetores fornecido via prompt. Isso significa que o LLM tem o benefício dos dados mais recentes da sua empresa sem precisar treiná-lo com base em seus dados.

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

Os amplos mecanismos de escalabilidade da Oracle – como execução paralela, particionamento, Real Application Clusters (Oracle RAC), sharding e Exadata – podem ampliar o AI Vector Search para praticamente qualquer tamanho de dados e número de usuários.

Há algum benefício em executar o AI Vector Search no Oracle Exadata?

Os amplos mecanismos de escalabilidade da Oracle – como execução paralela, particionamento, Oracle Real Application Clusters (Oracle RAC), sharding e Exadata – podem ampliar o AI Vector Search para praticamente qualquer tamanho de dados e número de usuários. O Oracle Exadata também inclui o AI Smart Scan, que transfere as operações de consulta do AI Vector Search para os Exadata Storage Servers para obter um desempenho de consulta incomparável.

Como a Oracle fornece segurança de dados para vetores?

O Oracle AI Vector Search integra-se perfeitamente aos recursos de segurança de banco de dados líderes do setor da Oracle para reduzir riscos e simplificar a conformidade. As organizações podem proteger seus dados vetoriais aproveitando ferramentas robustas, como criptografia, mascaramento de dados, controles de acesso de usuários privilegiados, monitoramento de atividades e auditoria, aproveitando ao máximo os recursos avançados de pesquisa de IA. Recursos no banco de dados, como o Database Vault e o Virtual Private Database, ajudam a proteger dados vetoriais e garantem que somente usuários com os privilégios adequados possam acessá-los.

Isso significa que o Oracle AI Vector Search pode reduzir significativamente a pegada da infraestrutura vetorial de uma empresa. Um único Oracle AI Database pode atender às necessidades de muitos usuários diferentes com diferentes permissões de acesso e autorização sem precisar duplicar dados ou incorrer em qualquer sobrecarga de gerenciamento adicional, como geralmente acontece com outros bancos de dados vetoriais.

Como a Oracle fornece recursos de alta disponibilidade e recuperação de desastres para vetores?

Os vetores no Oracle AI Database são tipos de dados de banco de dados de primeira classe. Isso significa que os vetores herdam implicitamente todos os recursos e capacidades inovadores que fazem da Oracle o principal banco de dados empresarial do mundo. A alta disponibilidade (HA) é fornecida pela execução de pesquisas de similaridade no Oracle RAC ou Oracle Globally Distributed Database (sharding). O Data Guard, o Active Data Guard e o Oracle GoldenGate podem fornecer recuperação de desastres automaticamente.