Me siga no X | Me siga no LinkedIn | Apoie a Newsletter | Solicite uma consultoria
Após o processo de coleta e armazenamento de dados, uma das etapas para construção de aplicações que façam uso de LLMs, é a criação de embeddings.
Em Machine Learning, um embedding é uma técnica que mapeia elementos, como palavras ou itens, em um espaço vetorial de dimensões reduzidas, capturando suas diferentes características. Essas características permitem que o modelo aprenda relações semânticas entre os elementos.
Uma das técnicas para criação de embeddings é o word2vec, e um excelente resumo dessa técnica pode ser lido aqui.
No entanto, embora a criação de embeddings esteja facilitada por diversas ferramentas —a própria OpenAI fornece um serviço para criação de embeddings— há ainda alguns desafios para construção de bons embeddings.
Por exemplo, garantir que os embeddings sejam capazes de capturar relações semânticas complexas (ou nuances nos dados) requer um cuidadoso projeto dos algoritmos de aprendizado, além de uma boa diversidade de dados de treinamento.
Um outro desafio está relacionado ao tamanho do embedding. Por conta da facilidade de criação e armazenamento, pode ser tentador criar embeddings que representem uma grande quantidade de dados, como por exemplo, todas as sentenças de palavras de um livro clássico.
Infelizmente, embeddings muito grandes podem incorrer em diversos problemas. Por exemplo:
Mecanismos de busca podem se tornar imprecisos. Suponha que se deseja descobrir quem é o médico e o monstro, no clássico romance de Robert Louis Stevenson. Mas, somente ao final da história o escritor revela que eles são a mesma pessoa. Dessa forma, as distâncias de cossenos entre embeddings podem não refletir corretamente a similaridade semântica entre os elementos, uma vez que o espaço vetorial é altamente disperso.
Serviços limitam a quantidade de tokens processados. Serviços como da OpenAI limitam em cerca de 8k tokens para criação de embeddings. Dessa forma, é necessário implementar estratégias para quebrar o conteúdo do livro em um conjunto menor de tokens.
Não somente embeddings grandes são problemáticos, mas embeddings muito pequenos podem levar a resultados imprecisos.
Nesse texto de blog, vamos explorar algumas estratégias para quebrar conteúdo —ou, mais tecnicamente, quebrar chunks— buscando um equilíbrio entre o tamanho do embedding e a sua capacidade de representação de dados.
Continue a leitura com um teste grátis de 7 dias
Assine ML4SE para continuar lendo esta publicação e obtenha 7 dias de acesso gratuito aos arquivos completos de publicações.