O OpenSearch Vector Engine agora pode executar pesquisa vetorial por um terço do custo em domínios OpenSearch 2.17+. Agora você pode configurar índices k-NN (vetoriais) para execução no modo de disco, otimizando-os para ambientes com restrição de memória e permitindo pesquisa vetorial precisa e de baixo custo que responde em poucas centenas de milissegundos. O modo de disco oferece uma alternativa econômica ao modo de memória quando você não precisa estar próximo latência de um dígito.
Nesta postagem, você aprenderá sobre os benefícios desse novo recurso, a mecânica subjacente, histórias de sucesso de clientes e como começar.
Visão geral da pesquisa vetorial e do OpenSearch Vector Engine
A pesquisa vetorial é uma técnica que melhora a qualidade da pesquisa, permitindo a correspondência de similaridade no conteúdo que foi codificado por modelos de aprendizado de máquina (ML) em vetores (codificações numéricas). Ele permite casos de uso como pesquisa semântica, permitindo considerar o contexto e a intenção junto com palavras-chave para fornecer pesquisas mais relevantes.
O OpenSearch Vector Engine permite pesquisas de vetores em tempo actual além de bilhões de vetores, criando índices em conteúdo vetorizado. Você pode então executar pesquisas pelos Ok principais documentos em um índice que sejam mais semelhantes a um determinado vetor de consulta, que pode ser uma pergunta, palavra-chave ou conteúdo (como uma imagem, clipe de áudio ou texto) que foi codificado por o mesmo modelo de ML.
Ajustando o mecanismo de vetor OpenSearch
Os aplicativos de pesquisa têm requisitos variados em termos de velocidade, qualidade e custo. Por exemplo, os catálogos de comércio eletrônico exigem os menores tempos de resposta possíveis e pesquisa de alta qualidade para proporcionar uma experiência de compra positiva. No entanto, a otimização para obter ganhos de qualidade e desempenho de pesquisa geralmente incorre em custos na forma de memória e computação adicionais.
O equilíbrio certo entre velocidade, qualidade e custo depende dos casos de uso e das expectativas do cliente. O OpenSearch Vector Engine oferece opções de ajuste abrangentes para que você possa fazer compensações inteligentes para obter resultados ideais adaptados às suas necessidades exclusivas.
Você pode usar os seguintes controles de ajuste:
- Algoritmos e parâmetros – Isso inclui o seguinte:
- Algoritmo e parâmetros hierárquicos de mundo pequeno navegável (HNSW) como
ef_search
,ef_construct
em
- Algoritmo e parâmetros de índice de arquivo invertido (FIV) como
nlist
enprobes
- Exatos k-vizinhos mais próximos (k-NN), também conhecido como algoritmo de força bruta k-NN (BFKNN)
- Algoritmo e parâmetros hierárquicos de mundo pequeno navegável (HNSW) como
- Motores – Fb AI Similarity Search (FAISS), Lucene e Biblioteca Espacial Não Métrica (NMSLIB).
- Técnicas de compressão – Escalar (como byte e meia precisão), binário e quantização de produto
- Métricas de similaridade (distância) – Produto interno, cosseno, L1, L2 e Hamming
- Tipos de incorporação de vetores – Denso e esparso com dimensionalidade variável
- Métodos de classificação e pontuação – Vetor, híbrido (combinação de pontuações de vetor e Finest Match 25 (BM25)) e classificação em vários estágios (como codificadores cruzados e personalizadores)
Você pode ajustar uma combinação de controles de ajuste para obter um equilíbrio variável de velocidade, qualidade e custo otimizado de acordo com suas necessidades. O diagrama a seguir fornece um perfil de desempenho aproximado para configurações de amostra.
Ajuste para otimização de disco
Com o OpenSearch 2.17+, você pode configurar seus índices k-NN para serem executados no modo de disco para pesquisa vetorial de alta qualidade e baixo custo, trocando o desempenho na memória por maior latência. Se o seu caso de uso estiver satisfeito com a latência do percentil 90 (P90) na faixa de 100 a 200 milissegundos, o modo de disco é uma excelente opção para obter economia de custos e, ao mesmo tempo, manter a alta qualidade de pesquisa. O diagrama a seguir ilustra o perfil de desempenho do modo de disco entre configurações alternativas de mecanismo.
O modo de disco foi projetado para funcionar imediatamente, reduzindo seus requisitos de memória em 97% em comparação com o modo de memória, proporcionando alta qualidade de pesquisa. No entanto, você pode ajustar as taxas de compactação e amostragem para ajustar a velocidade, a qualidade e o custo.
A tabela a seguir apresenta benchmarks de desempenho para as configurações padrão do modo de disco. Referência OpenSearch (OSB) foi usado para executar os três primeiros testes, e VectorDBBench (VDBB) foi utilizado para os dois últimos. Ajuste de desempenho as melhores práticas foram aplicadas para alcançar os melhores resultados. Os testes de baixa escala (Tasb-1M e Marco-1M) foram executados em um único nó de dados r7gd.massive com uma réplica. Os outros testes foram executados em dois nós de dados r7gd.2xlarge com uma réplica. A métrica percentual de redução de custos é calculada comparando uma implantação na memória equivalente e de tamanho correto com as configurações padrão.
Esses testes foram projetados para demonstrar que o modo de disco pode fornecer alta qualidade de pesquisa com compactação de 32 vezes em uma variedade de conjuntos de dados e modelos, mantendo nossa latência alvo (abaixo de P90 200 milissegundos). Esses benchmarks não foram projetados para avaliar modelos de ML. O impacto de um modelo na qualidade da pesquisa varia de acordo com vários fatores, incluindo o conjunto de dados.
Otimizações do modo de disco nos bastidores
Quando você configura um índice k-NN para execução modo de discoo OpenSearch aplica automaticamente uma técnica de quantização, compactando vetores à medida que são carregados para criar um índice compactado. Por padrão, o modo de disco converte cada vetor de precisão whole — uma sequência de centenas a milhares de dimensões, cada uma armazenada como números de 32 bits — em vetores binários, que representam cada dimensão como um único bit. Essa conversão resulta em uma taxa de compactação de 32 vezes, permitindo que o mecanismo construa um índice 97% menor do que um índice composto por vetores de precisão whole. Um cluster do tamanho certo manterá esse índice compactado na memória.
A compactação reduz o custo, reduzindo a memória exigida pelo mecanismo vetorial, mas em troca sacrifica a precisão. O modo disco recupera a precisão e, portanto, a qualidade da pesquisa, usando um processo de pesquisa em duas etapas. A primeira fase da execução da consulta começa percorrendo com eficiência o índice compactado na memória em busca de correspondências de candidatos. A segunda fase usa esses candidatos para sobreamostrar os vetores de precisão whole correspondentes. Esses vetores de precisão whole são armazenados em disco em um formato projetado para reduzir E/S e otimizar a velocidade e eficiência de recuperação do disco. A amostra de vetores de precisão whole é então usada para aumentar e repontuar correspondências da fase um (usando k-NN exato), recuperando assim a perda de qualidade de pesquisa atribuída à compressão. A maior latência do modo disco em relação ao modo memória é atribuída a esse processo de nova pontuação, que requer acesso ao disco e computação adicional.
Sucessos iniciais do cliente
Os clientes já estão executando o mecanismo vetorial em modo de disco. Nesta seção, compartilhamos depoimentos de primeiros usuários.
A Asana está melhorando a qualidade da pesquisa para os clientes em sua plataforma de gerenciamento de trabalho, introduzindo gradualmente recursos de pesquisa semântica por meio do mecanismo vetorial do OpenSearch. Eles inicialmente otimizaram a implantação usando quantização de produtos para compactar índices em 16 vezes. Ao mudar para configurações otimizadas para disco, eles conseguiram reduzir potencialmente os custos em outros 33%, mantendo suas metas de qualidade de pesquisa e latência. Essa economia torna viável para a Asana escalar para bilhões de vetores e democratizar a pesquisa semântica em toda a sua plataforma.
O DevRev preenche a lacuna elementary nas empresas de software program, conectando diretamente as equipes de atendimento ao cliente com os desenvolvedores. Como uma plataforma centrada em IA, ela cria caminhos diretos desde o suggestions do cliente até o desenvolvimento de produtos, ajudando mais de 1.000 empresas a acelerar o crescimento com pesquisa precisa, análises rápidas e fluxos de trabalho personalizáveis. Construído em grandes modelos de linguagem (LLMs) e fluxos de geração aumentada de recuperação (RAG) executados no mecanismo vetorial do OpenSearch, o DevRev permite experiências de conversação inteligentes.
“Com o mecanismo vetorial otimizado para disco do OpenSearch, alcançamos nossas metas de qualidade de pesquisa e latência com compactação de 16x. O OpenSearch oferece economia escalonável para nossa jornada multibilionária de pesquisa vetorial.”
– Anshu Avinash, chefe de IA e pesquisa da DevRev.
Comece com o modo de disco no OpenSearch Vector Engine
Primeiro, você precisa determinar os recursos necessários para hospedar seu índice. Comece estimando a memória necessária para suportar seu índice k-NN otimizado para disco (com a taxa de compactação padrão de 32 vezes) usando a seguinte fórmula:
Required reminiscence (bytes) = 1.1 x ((vector dimension depend)/8 + 8 x m) x (vector depend)
Por exemplo, se você usar os padrões para Amazon Titan Texto V2sua contagem de dimensão vetorial é 1024. O modo de disco usa o algoritmo HNSW para construir índices, então “m” é um dos parâmetros do algoritmo e o padrão é 16. Se você construir um índice para um corpus vetorial de 1 bilhão codificado pela Amazon Titan Textual content, seus requisitos de memória são 282 GB.
Se você tiver uma carga de trabalho com alto rendimento, precisará garantir que seu domínio também tenha IOPs e CPUs suficientes. Se você seguir as práticas recomendadas de implantação, poderá usar tipos de instância otimizados para armazenamento de instâncias e desempenho de armazenamento, que geralmente fornecerão IOPs suficientes. Você deve sempre realizar testes de carga para cargas de trabalho de alto rendimento e ajustar as estimativas originais para acomodar IOPs e requisitos de CPU mais elevados.
Agora você pode implantar um domínio OpenSearch 2.17+ dimensionado de acordo com suas necessidades. Crie seu índice k-NN com o modo parâmetro definido como no discoe então ingerir seus dados. Se você já possui um índice k-NN em execução no padrão in_memory
modo, você pode convertê-lo mudando o modo para on_disk
seguido por um reindexar tarefa. Depois que o índice for reconstruído, você poderá reduzir o tamanho do seu domínio de acordo.
Conclusão
Nesta postagem, discutimos como você pode se beneficiar da execução do OpenSearch Vector Engine no modo de disco, compartilhamos histórias de sucesso de clientes e fornecemos dicas sobre como começar. Agora você está pronto para executar o OpenSearch Vector Engine por apenas um terço do custo.
Para saber mais, consulte o documentação.
Sobre os Autores
Dylan Tong é gerente de produto sênior da Amazon Internet Companies. Ele lidera as iniciativas de produtos para IA e aprendizado de máquina (ML) no OpenSearch, incluindo os recursos de banco de dados vetoriais do OpenSearch. Dylan tem décadas de experiência trabalhando diretamente com clientes e criando produtos e soluções no domínio de banco de dados, análises e IA/ML. Dylan possui bacharelado e mestrado em Ciência da Computação pela Cornell College.
Vamshi Vijay Nakkirtha é gerente de engenharia de software program e trabalha no OpenSearch Undertaking e no Amazon OpenSearch Service. Seus principais interesses incluem sistemas distribuídos.