paint-brush
Compreendendo incorporações de vetores para pesquisa com tecnologia de IApor@picocreator
2,266 leituras
2,266 leituras

Compreendendo incorporações de vetores para pesquisa com tecnologia de IA

por picocreator7m2023/01/28
Read on Terminal Reader

Muito longo; Para ler

As incorporações podem ser usadas para pesquisa ou outras tarefas, como resposta a perguntas, classificação de texto e geração de texto. Um vetor de incorporação representa a compreensão resumida do modelo de IA sobre o texto. Isso pode ser considerado um "resumo de N palavras" escrito em uma linguagem que somente a IA pode entender. Este é um grande salto além das simples pesquisas de palavras-chave dos mecanismos de pesquisa clássicos.
featured image - Compreendendo incorporações de vetores para pesquisa com tecnologia de IA
picocreator HackerNoon profile picture
0-item
1-item

E diga adeus à pesquisa baseada em palavras-chave


Enquanto GPT 3+ ou ChatGPT, a engenharia de prompt é mais fácil de entender intuitivamente. Com muitos guias e exemplos disponíveis na web e nas redes sociais. Tal como



As incorporações requerem programação e são menos compreendidas devido a vários comportamentos contra-intuitivos sobre como funcionam. Mas, é uma ferramenta extremamente poderosa para pesquisa, ou para ser usada em conjunto com modelos baseados em texto existentes, para vários outros casos de uso possíveis.


As incorporações são indiscutivelmente uma ferramenta igualmente poderosa, dentro do kit de ferramentas de IA, para modelos de instrução. Devido à sua capacidade de lidar com pesquisas em diferentes palavras e frases, ou mesmo idiomas inteiros. Com foco na busca do documento relevante, para qualquer consulta.


Por exemplo, ele pode ser usado para pesquisar e responder a partir de uma documentação baseada em inglês. Em inglês ...

Perguntando ao nosso bot de perguntas e respostas em inglês

Ou japonês...

Fazendo a mesma pergunta em japonês, observe que nossos documentos estão apenas em inglês

Ou qualquer outro idioma compatível com o modelo de IA.


A incorporação de vetores pode ser usada para pesquisa ou outras tarefas, como resposta a perguntas, classificação de texto e geração de texto.


Observe que este artigo se concentra no aspecto da pesquisa, o processo de resposta está em um artigo de acompanhamento.


O que é uma incorporação vetorial?

Para gerar uma incorporação vetorial, será usado um modelo de IA de incorporação, que converte qualquer texto (um documento grande, uma frase ou mesmo uma palavra) em uma "matriz de dimensão N", chamada de vetor.


Por exemplo, uma frase como How do I write a UI test script with Uilicious?


Pode ser convertido em uma matriz (chamada de vetor) por meio do modelo OpenAI text-embedding-ada-002 : [0.010046141, -0.009800113, 0.014761676, -0.022538893, ... an a 1000+ numbers]


Esse vetor representa a compreensão resumida do modelo de IA sobre o texto. Isso pode ser considerado um "resumo de N palavras" escrito em uma linguagem que somente a IA pode entender.

Onde os documentos relacionados terão uma distância próxima um do outro, com base no entendimento do documento pela IA (e não apenas em seu texto).


Este é um grande salto além das simples pesquisas de palavras-chave dos mecanismos de pesquisa clássicos, pois pode lidar com variações na estrutura da frase e no idioma (desde que o modelo de IA seja treinado para entender o referido idioma).


Tome o seguinte como um exemplo hipotético, simplificado de forma imprecisa no espaço de 2 dimensões para que seja mais fácil de entender:



Que pode ser apresentado visualmente como o seguinte no espaço 2D.


Por exemplo, D1,2,3 são todos os documentos relacionados a como usar o Uilicious de várias maneiras e são agrupados em um cluster


D4 e D5, sendo simplesmente links e não tendo nenhum valor inerente além disso, são agrupados separadamente em outro cluster.


Além disso, D1 e D2 são ainda mais agrupados, pois tratam de comandos de teste Uilicious, usando nossa própria linguagem de teste baseada em JavaScript.


Enquanto o D3 é agrupado separadamente, pois se refere ao uso direto do protocolo do driver da Web em nossa infraestrutura, que se destina a um caso de uso e público diferentes.


Da mesma forma, para Q1 e Q2, apesar das diferenças drásticas na estrutura da frase e no idioma, porque é essencialmente a mesma pergunta, as duas perguntas são agrupadas.


Além disso, embora a pergunta possa ser tecnicamente interpretada de ambas as maneiras (usando o script de teste Uilicious ou o protocolo do webdriver), porque a pergunta implica o uso do script de teste Uilicious sobre o webdriver, sua localização é "mais próxima" de D1 e D2 e mais distante de D3.


Dessa forma, apesar de haver grandes sobreposições nas palavras-chave, essas nuances nos agrupamentos são capturadas pela IA codificada nas incorporações. Destacando sua diferença distinta para a pesquisa de palavras-chave


Na realidade, no entanto, em vez de uma matriz simplificada de 2 dimensões que é fácil para os humanos entenderem, uma incorporação pode facilmente ser uma matriz de mais de 1.000 dimensões. Essa matriz é exclusiva para o modelo de IA específico usado e não pode ser misturada com as incorporações de outro modelo de IA.



Notas matemáticas: matemática N-dimensão não é compatível com matemática 2/3D

Embora os exemplos simplificados de 2 dimensões sejam bons para entender o conceito de alto nível de agrupamento relativamente a uma pergunta (ou um ponto de vista), eles não representam com precisão as N-dimensões.


Devido à complicada matemática da dimensão N, você pode ter situações em que A pode estar próximo de B, B pode estar próximo de C, mas A e C podem ser considerados distantes um do outro. O que é uma pegadinha extremamente contra-intuitiva.


Tais distâncias só são úteis quando usadas em relação ao mesmo ponto e as fórmulas usadas. Que pode ser calculado usando


  • Distância euclidiana : também conhecido como Teorema de Pitágoras em esteróides, é a métrica de distância mais comum usada e é a distância em linha reta entre dois pontos na esfera N.
  • Similaridade de Cosseno : é uma medida da distância angular entre dois pontos em uma N-esfera, e é útil para medir a similaridade de documentos ou outros vetores.
  • Distância de Manhattan ou Hamming : essas duas métricas são usadas para medir as diferenças entre dois vetores e são úteis para medir a "distância de edição" entre duas strings.


Embora a eficácia de cada fórmula tenha seus respectivos prós e contras, para diferentes casos de uso. Para pesquisa textual, é geralmente aceito que a distância euclidiana "funciona melhor" na maioria dos casos e "boa o suficiente" para casos em que outros métodos se destacam.


Tudo isso é usado de fato para reduzir N-Dimensões, a uma única dimensão (distância), em relação a um único ponto. Como resultado, os agrupamentos podem / podem mudar drasticamente, dependendo da pergunta feita.


Essa natureza "relativa" das distâncias torna ineficazes os índices clássicos de pesquisa em bancos de dados.

Se isso não fizer sentido, é assim que o espaço de 4 dimensões é visualizado corretamente com as N-Esferas matemáticas.


Agora imagine 1.000 dimensões? Sim, não faz sentido.


Portanto, sem atrapalhar esse tópico com um artigo de doutorado, resumirei isso como apenas confiar nos professores de matemática.


Tudo o que precisamos entender é que, em geral, quanto mais próxima a distância entre dois pontos de incorporação de vetores, maior a probabilidade de eles serem relevantes um para o outro.

Do ponto de vista de implementação prática. Comece usando a distância euclidiana primeiro. Antes de considerar o uso de outras fórmulas que são ajustadas para obter melhores resultados por meio de tentativa e erro para o seu caso de uso (não recomendado).



Pesquisando embeddings com um banco de dados vetorial

Assim, como podemos converter vários documentos em embeddings, agora podemos armazenar em um banco de dados e realizar uma pesquisa com ele.


No entanto, ao contrário de uma pesquisa de banco de dados SQL com texto, tanto a pesquisa quanto os dados que estão sendo pesquisados são a própria incorporação do vetor. Isso significa que os índices de pesquisa de banco de dados tradicionais são ineficazes quando se trata de pesquisar embeddings.


Podemos ter todos os seus documentos incorporados, pré-computados e armazenados em um banco de dados de pesquisa vetorial. Que pode então ser usado para fornecer uma lista de correspondências, classificadas pela distância mais próxima.


Isso pode ser feito usando bancos de dados de vetores existentes, como

  • REDIS : um banco de dados popular de código aberto que pode ser usado para armazenar incorporações de vetores e pesquisá-los com eficiência.
  • Annoy : uma biblioteca criada pelo Spotify que usa um algoritmo otimizado para pesquisar embeddings rapidamente.
  • FAISS : uma biblioteca criada pelo Facebook que fornece algoritmos de busca eficientes para grandes conjuntos de dados.

Uma coisa importante a observar, a pesquisa vetorial "tecnologia de banco de dados" é relativamente nova. Onde a grande maioria dos bancos de dados de pesquisa vetorial foram projetados para casos de uso encontrados em empresas como Facebook, Spotify ou Google, com conjuntos de registros no tamanho de milhões ou bilhões. E pode não ser otimizado para pequenos conjuntos de dados.


Este será um campo em constante mudança nos próximos anos, aqui está uma 'lista incrível' do github para ajudar a rastrear e encontrar futuros bancos de dados de pesquisa de vetores


Como tal, em geral, descobrimos que para pequenos conjuntos de dados de (<10.000 ~ 100.000 embeddings), manter o conjunto de dados de incorporação na memória e forçar a distância euclidiana ao quadrado é "bom o suficiente" para muitos casos de uso e, em algum momento, superará o desempenho formal soluções de banco de dados (que terão despesas gerais de disco/rede) com algo como o seguinte.



A desvantagem óbvia dessa abordagem é que todo o conjunto de dados deve ser pequeno o suficiente para caber na memória sem sobrecarga.


Independentemente de você estar usando pesquisa de incorporação local na memória ou um banco de dados formal de pesquisa vetorial.


É isso!


A pesquisa de incorporação é apenas um algoritmo de classificação e classificação que funciona de forma flexível com vários idiomas e cenários. A questão para você como leitor é como você pode usá-lo. Pode ser usado como um possível substituto de pesquisa do google, ou em conjunto com outras ferramentas, desde chat, até jogos. As possibilidades são infinitas e abertas à exploração.


~ Até a próxima 🖖 vida longa e próspera

Eugene Cheah @ tech-talk-cto.com


Postado originalmente em: https://substack.tech-talk-cto.com/p/introducing-ai-embeddings-and-how

Sonhe Grande, com ou sem incorporações


Todas as imagens utilizadas, com a devida atribuição