7 pontos por GN⁺ 2024-11-02 | 3 comentários | Compartilhar no WhatsApp
  • O machine learning (ML) tem potencial para avançar o estado da arte na redação de documentação técnica
  • Em vez de modelos de geração de texto como Claude, Gemini, LLaMa e GPT, os embeddings podem ser a tecnologia de ML com maior impacto na redação de documentação técnica
  • Embeddings não são exatamente algo novo, mas nos últimos anos se tornaram muito mais acessíveis
  • Embeddings dão aos redatores técnicos a capacidade de descobrir conexões entre textos em uma escala antes impossível

Construindo uma intuição sobre embeddings

Entrada e saída

  • O que você fornece para criar embeddings é texto
  • Não é necessário fornecer sempre a mesma quantidade de texto
    • Às vezes a entrada é um único parágrafo; em outros casos, podem ser algumas seções, um documento inteiro ou vários documentos
  • A saída é um array de números
    • Se você inserir uma única palavra, a saída será um array de números como [-0.02387, -0.0353, 0.0456]
    • Se você inserir um conjunto completo de documentos, a saída terá a forma de algo como [0.0451, -0.0154, 0.0020]
  • Independentemente do tamanho da entrada, você sempre obtém a mesma quantidade de números
    • Isso permite ter uma forma de comparar matematicamente quaisquer dois textos entre si
  • Em embeddings reais, o array contém centenas ou milhares de números, não apenas 3

Como criar embeddings

  • Grandes provedores de serviço facilitam a geração de embeddings
  • O modelo text-embedding-004 do Gemini retorna um array com 768 números, e o modelo voyage-3 da Voyage AI retorna um array com 1024 números
  • Embeddings de provedores diferentes não são compatíveis entre si

Isso custa caro?

Não.

Isso faz mal ao meio ambiente?

  • Gerar embeddings exige menos computação do que gerar texto
  • No entanto, modelos de embeddings parecem ser treinados de forma semelhante aos modelos de geração de texto, o que implica consumo de energia
  • Esta seção será atualizada quando houver mais informações

Qual modelo é o melhor?

  • Idealmente, um modelo de embeddings deveria aceitar grandes volumes de texto de entrada para poder gerar embeddings de páginas completas
  • Em outubro de 2024, o voyage-3 parece ser o melhor em termos de tamanho de entrada
  • Os limites de entrada são baseados em tokens, e cada serviço calcula tokens de forma diferente, então não se deve dar peso excessivo aos números exatos

Um espaço multidimensional muito estranho

  • O que significam os números de um embedding?
  • Pense em coordenadas em um mapa
    • Um embedding é semelhante a um ponto em um mapa
    • Cada número no array de embeddings é uma dimensão, semelhante às coordenadas X e Y
    • Se o modelo de embeddings retorna um array com 1000 números, isso informa em que ponto de um espaço de 1000 dimensões um texto se encontra semanticamente em relação a todos os outros textos
    • Ao comparar a distância entre dois embeddings, o que você realmente faz é determinar o quão semanticamente próximos ou distantes dois textos estão entre si
  • O conceito de posicionar itens nesse espaço multidimensional, em que itens relacionados formam agrupamentos próximos, é chamado de latent space
  • Exemplo famoso do artigo do Word2vec:
    • embedding("king") - embedding("man") + embedding("woman") ≈ embedding("queen")
    • Embeddings podem representar relações semânticas de uma forma que parece intuitiva para humanos
  • Como embeddings operam em centenas ou milhares de dimensões, é impossível visualizar como seria a “distância” em 1000 dimensões para seres tridimensionais
  • Não é possível saber o que cada dimensão representa

Comparando embeddings

  • Depois de gerar os embeddings, é necessário algum tipo de “banco de dados” para rastrear a qual texto cada embedding está associado
  • Há bastante álgebra linear envolvida, e bibliotecas de matemática e ML como NumPy e scikit-learn podem fazer o trabalho pesado

Aplicações

  • Ver diretamente como embeddings podem avançar o estado da arte da documentação técnica

Deixe milhares de embeddings florescerem

  • Como proprietário de um site de documentação, surge a dúvida se embeddings do conteúdo deveriam ser oferecidos livremente a quem quiser, por meio de uma REST API ou de um URI bem conhecido
  • Não dá para saber que coisas interessantes a comunidade pode construir com esse tipo adicional de dado documental

Conclusão

  • Se me perguntassem há 3 anos o que era um espaço de 768 dimensões, eu teria dito que era apenas um conceito abstrato necessário para físicos e matemáticos por motivos que eu não conseguiria entender
  • Embeddings oferecem um motivo para pensar mais profundamente sobre essa ideia e realmente aplicá-la ao próprio trabalho
  • Melhorias de escala na capacidade de manter documentação ainda podem ser possíveis — e talvez exijam ordens de magnitude a mais em dimensões!

Apêndice

Implementação

Resultados

  • Como interpretar os dados:
    • Target é a página que está sendo visualizada no momento
    • Neighbor será a página recomendada
  • Na tabela de resultados, é possível ver que páginas relacionadas estão sendo recomendadas umas às outras

Opinião do GN⁺

  • A tecnologia de embeddings parece poder ajudar muito na área de documentação técnica ao identificar relações entre conteúdos e descobrir conexões entre documentos. Isso deve ser especialmente útil em projetos de documentação de grande porte que precisam lidar com volumes massivos de documentos
  • No entanto, modelos de embeddings ainda tendem a consumir bastante energia, e também existem preocupações éticas, por isso a adoção exige uma análise cuidadosa. Junto com a garantia de recursos computacionais suficientes, será necessário apoiar esforços para minimizar o impacto ambiental da geração de embeddings
  • Oferecer embeddings de um site de documentação via API pode ser uma boa forma de incentivar usos criativos pela comunidade de desenvolvedores. Mas antes disso, será preciso preparar medidas para lidar com questões de segurança de dados e privacidade
  • Startups e iniciativas na área de documentação técnica fariam bem em considerar uma adoção mais ativa da tecnologia de embeddings. Ela pode oferecer funcionalidades diferenciadas em relação às soluções tradicionais de gestão documental e proporcionar experiências mais amigáveis ao usuário em busca, recomendação e afins
  • Também vale acompanhar pesquisas sobre o uso de embeddings para resumo de documentos, tradução e classificação de tópicos. A combinação de técnicas modernas de processamento de linguagem natural com embeddings pode trazer inovação à redação e à gestão de documentação técnica

3 comentários

 
yangeok 2024-11-08

Escritor técnico, rs

 
cosine20 2024-11-04

Quando vejo os embeddings de texto usados em processamento de linguagem natural e o processo de treinamento, tenho a impressão de que são realmente muito semelhantes à forma como os humanos adquirem e usam a linguagem quando ainda quase não conhecem gramática.
Acho que, como o texto diz, isso tem muito potencial.

 
GN⁺ 2024-11-02
Opinião no Hacker News
  • Nos AIs modernos, embeddings são interessantes como o único elemento que dá mais poder aos humanos. Isso é como a "bicicleta para nossas mentes" de que Steve Jobs falava, ou seja, uma amplificação da inteligência. O maior avanço na usabilidade dos computadores foi a introdução da busca local rápida e universal. Uso com frequência o recurso "Localizar na página" do Firefox e uso busca e grep todos os dias. Embeddings podem oferecer uma busca fuzzy realmente útil, com potencial para resolver a maior fraqueza da busca

  • Como proprietário de um site de documentação, fico me perguntando se deveria considerar disponibilizar embeddings livremente por meio de uma API REST ou de URIs bem conhecidas. Seria preciso deixar claro qual modelo de embedding foi usado, e há a questão de saber se existe algum modelo de embedding adequado para documentação técnica

  • Há preocupações ambientais, mas acho equivocada a opinião popular de que reduzir o uso de IA pode resolver o problema climático. Por exemplo, se o Google Maps fosse proibido, escolheríamos rotas piores e consumiríamos mais combustível. Com a geração de documentos usando embeddings acontece algo parecido: usar recursos computacionais é mais eficiente

  • Compartilha uma experiência interessante sobre como usar embeddings em um aplicativo web. Explica, por meio da documentação, como usar embeddings em produção

  • Embeddings parecem representar tudo em uma string de entrada, o que faz parecer que não têm um objetivo específico. Há uma pergunta sobre como reduzir a dimensionalidade de embeddings para um aplicativo específico. Por exemplo, ao construir um sistema para encontrar conversas de suporte técnico, existe curiosidade sobre como derivar embeddings que representem apenas o conteúdo da conversa

  • Embeddings vetoriais são um resumo único de um documento, semelhantes a um código hash. Seria bom haver um padrão universal para a geração de embeddings, mas, como eles variam de modelo para modelo de IA, não podem ter a mesma "permanência" de um código hash. Parece haver muitas formas de usar algoritmos como similaridade de cosseno em bancos de dados e aplicativos de processamento de informação

  • Acho que embeddings estão sendo subestimados. A área de recuperação/descoberta de informação ainda usa descoberta baseada em palavras-chave e não está adotando a descoberta semântica, que é uma ferramenta moderna. Economizo tempo convertendo frases em embeddings vetoriais, aplicando clustering com k-means e depois resumindo com o ChatGPT

  • Sugere que redatores técnicos estão subestimando a utilidade dos embeddings. Profissionais de machine learning não subestimam embeddings

  • Há uma pergunta sobre se o modelo de embeddings da OpenAI suporta 8191/8192 tokens. Declarar um vencedor com base no tamanho de tokens é enganoso; há fatores mais importantes, como suporte multilíngue e precisão

  • Acha que embeddings são superestimados e não são a solução universal que muita gente esperava. Eles não substituem completamente métodos simples como BM25 e oferecem apenas uma compreensão semântica limitada. Expectativas altas levam à crença de que embeddings vão encontrar exatamente o que se quer, mas, sem revisar cuidadosamente os resultados, é difícil perceber divergências