Ajuste fino do modelo de linguagem grande de código aberto
Essa abordagem envolve o ajuste fino de um modelo de linguagem grande de código aberto, como o Llama2, no corpus do cliente. O modelo ajustado é capaz de assimilar e entender o conhecimento específico do domínio do cliente para responder a perguntas relevantes sem contexto adicional. No entanto, vale a pena observar que os corpora de muitos clientes são limitados em tamanho e geralmente contêm erros gramaticais. Isso pode representar um desafio no ajuste fino de modelos de linguagem grandes. No entanto, foram observados resultados animadores ao usar o modelo de linguagem grande ajustado nas técnicas de geração aprimoradas por recuperação discutidas abaixo.
Geração aprimorada de pesquisa
A segunda maneira de resolver esse problema é recuperar a geração aumentada (RAG). Essa abordagem primeiro divide os dados em partes e depois os armazena em um banco de dados vetorial. Ao responder a uma pergunta, o sistema recupera os blocos de dados mais relevantes com base na consulta e os transmite ao modelo de linguagem grande para gerar a resposta. Atualmente, várias soluções de tecnologia de código aberto que combinam modelos de linguagem grande, armazenamento vetorial e estruturas de orquestração são populares na Internet. Um esquema de uma solução que usa a tecnologia RAG é mostrado abaixo.
No entanto, há alguns desafios na criação de uma solução usando a abordagem acima. O desempenho da solução depende de vários fatores, como o tamanho dos blocos de texto, o grau de sobreposição entre os blocos, a técnica de incorporação etc., e cabe ao usuário determinar as configurações ideais para cada um desses fatores. Abaixo estão alguns dos principais fatores que podem afetar o desempenho:
Tamanho da parte do documento
Como mencionado anteriormente, o comprimento do contexto de um modelo de linguagem grande é limitado e, portanto, o documento precisa ser dividido em partes menores. Entretanto, o tamanho dos blocos é fundamental para o desempenho da solução. Os blocos muito pequenos não podem responder a perguntas que exigem a análise de informações em várias passagens, enquanto os blocos muito grandes ocupam rapidamente o comprimento do contexto, resultando em menos blocos que podem ser processados. Além disso, o tamanho dos blocos, juntamente com a técnica de incorporação, determina a relevância dos blocos recuperados para a pergunta.
Sobreposição entre blocos vizinhos
A divisão em partes requer uma sobreposição adequada para garantir que as informações não sejam cortadas de maneira rígida. Idealmente, deve-se garantir que todo o contexto necessário para responder a uma pergunta esteja presente em sua totalidade em pelo menos um bloco. Entretanto, o excesso de sobreposição, embora resolva esse problema, pode criar um novo desafio: vários pedaços sobrepostos contendo informações semelhantes, resultando em resultados de pesquisa repletos de conteúdo duplicado.
Tecnologia incorporada
As técnicas de incorporação são algoritmos que convertem blocos de texto em vetores que são posteriormente armazenados em um recuperador de documentos. A técnica usada para incorporar blocos e perguntas determina a relevância dos blocos recuperados para a pergunta, o que, por sua vez, afeta a qualidade do conteúdo fornecido ao Big Language Model.
localizador de documentos
Um recuperador de documentos (também conhecido como armazenamento de vetores) é um banco de dados para armazenar vetores incorporados e recuperá-los rapidamente. Os algoritmos usados para combinar os vizinhos mais próximos no recuperador (por exemplo, produto escalar, similaridade de cosseno) determinam a relevância dos blocos recuperados. Além disso, os recuperadores de documentos devem ser capazes de escalonar horizontalmente para dar suporte a grandes bases de conhecimento.
modelo de macrolinguagem
A escolha do modelo de linguagem grande correto é um componente essencial da solução. A escolha do melhor modelo depende de vários fatores, incluindo as características do conjunto de dados e os outros fatores mencionados acima. Para otimizar a solução, recomenda-se experimentar diferentes modelos de linguagem grande e determinar qual deles oferece os melhores resultados. Embora algumas organizações fiquem satisfeitas em adotar essa abordagem, outras podem ficar limitadas por não poderem usar GPT4, Palm ou Claude O Abacus.AI oferece uma variedade de opções de modelos de linguagem grande, incluindo GPT3.5, GPT4, Palm, Azure OpenAI, Claude, Llama2 e os modelos proprietários do Abacus.AI. Além disso, o Abacus.AI tem a capacidade de ajustar o modelo de linguagem grande nos dados do usuário e usá-lo para técnicas de geração aprimoradas de recuperação, aproveitando assim as vantagens de ambos.
Número de blocos
Algumas perguntas exigem informações de diferentes partes do documento ou até mesmo de vários documentos. Por exemplo, responder a uma pergunta como "Listar alguns filmes que contêm animais selvagens" requer clipes ou partes de diferentes filmes. Às vezes, os trechos mais relevantes podem não aparecer na parte superior da pesquisa vetorial. Nesses casos, é importante fornecer vários trechos de dados ao modelo de linguagem grande para avaliação e geração de respostas.
O ajuste de cada um desses parâmetros exige um esforço significativo do usuário e envolve um tedioso processo de avaliação manual.
Soluções Abacus.AI
Para resolver esse problema, o Abacus.AI adotou uma abordagem inovadora para fornecer recursos de AutoML aos seus usuários. Essa abordagem itera automaticamente várias combinações de parâmetros, incluindo o ajuste fino do modelo de linguagem grande, para encontrar a melhor combinação para um caso de uso específico. Além da documentação fornecida pelo usuário, é necessário um conjunto de dados de avaliação contendo uma série de perguntas e as respectivas respostas padrão escritas manualmente, que o Abacus.AI usa para comparar as respostas geradas por diferentes combinações de parâmetros a fim de determinar a configuração ideal.
O Abacus.AI gera as seguintes métricas de avaliação, e o usuário pode selecionar suas métricas preferidas para determinar qual combinação tem o melhor desempenho.
Pontuação BLEU
A pontuação BLEU (Bilingual Evaluation of Alternatives - Avaliação Bilíngue de Alternativas) é uma métrica de avaliação automatizada comumente usada principalmente para avaliar a qualidade das traduções automáticas. Seu objetivo é fornecer uma medida quantitativa da qualidade da tradução que seja altamente correlacionada com as pontuações humanas.
A pontuação BLEU obtém uma pontuação comparando uma tradução candidata (a tradução produzida pela máquina) com uma ou mais traduções de referência (traduções geradas por humanos) e calculando o grau de sobreposição de n-gramas entre as traduções candidata e de referência. Especificamente, ela avalia até que ponto os n-gramas (ou seja, sequências de n palavras) nas traduções candidatas correspondem com precisão aos das traduções de referência.
Pontuação METEOR
A pontuação METEOR (Metrics for Evaluating Explicitly Ordered Translations) é outra métrica de avaliação automática comumente usada para avaliar a qualidade das traduções automáticas. Ela foi projetada para compensar algumas das deficiências de outras métricas de avaliação, como a BLEU, em particular, introduzindo a correspondência explícita da ordem das palavras e levando em conta sinônimos e prosódia.
Pontuação do BERT
A pontuação BERT é uma métrica de avaliação automatizada projetada para avaliar a qualidade da geração de texto. A pontuação é obtida calculando-se a similaridade entre cada token nas frases candidatas e de referência. Ao contrário da correspondência exata, essa métrica usa a incorporação contextual para determinar a similaridade dos tokens.
Pontuação ROUGE
As pontuações ROUGE (Recall-Oriented Alternatives for Summary Evaluation) são um conjunto de métricas de avaliação automatizada comumente usadas no processamento de linguagem natural e na sumarização de textos. Originalmente, essas métricas foram projetadas para avaliar a qualidade dos sistemas de resumo de texto, mas agora são amplamente usadas em outras áreas, como tradução automática e geração de texto.
A pontuação ROUGE mede a qualidade do texto gerado (por exemplo, um resumo ou uma tradução) comparando-o com um ou mais textos de referência (geralmente resumos ou traduções gerados por humanos). Ele mede principalmente o grau de sobreposição no n-grama (ou seja, sequência de n palavras) e as sequências de palavras entre o texto candidato e o texto de referência.
Cada uma dessas pontuações varia de 0 a 1, sendo que as pontuações mais altas indicam melhor desempenho do modelo. Com o Abacus.AI, você pode experimentar vários modelos e métricas para encontrar rapidamente aquele que funciona melhor com seus dados e seu aplicativo específico.