Comecei a resumir uma dúzia de livros à mão e descobri que levaria semanas para cada resumo. Então me lembrei da revolução da IA acontecendo e decidi que já havia passado da hora de pular nessas águas. . Quando comecei a explorar o uso de grandes modelos de linguagem (LLM) para resumir textos grandes, não encontrei uma orientação clara sobre como fazê-lo Algumas páginas fornecem exemplos de instruções para fornecer ao GPT4 a ideia de que ele saberá magicamente o conteúdo de qualquer livro que você deseja resumir. (NÃO) Algumas pessoas sugeriram que eu precisasse encontrar um modelo com um contexto amplo que pudesse processar todo o meu texto de uma só vez. (Ainda não) Estão disponíveis algumas ferramentas de código aberto que permitem fazer upload de documentos para um banco de dados e responder perguntas com base no conteúdo desse banco de dados. (Chegando perto) Outros sugeriram que você deve primeiro dividir o livro em seções e inseri-las no LLM para resumir, uma de cada vez. (Agora estamos a falar) Além de fazer essa determinação, existem inúmeras variáveis que devem ser levadas em conta ao implementar um determinado LLM. Rapidamente percebi que, apesar de quaisquer recomendações ou classificações de modelos disponíveis, estava obtendo resultados diferentes dos outros. Seja meu caso de uso, formato do modelo, quantização, compactação, estilos de prompt ou o quê? Não sei. Tudo o que sei é que faça suas próprias classificações de modelos de acordo com suas próprias condições de trabalho. Não acredite apenas em algum gráfico que você lê online. Este guia fornece alguns detalhes sobre meu processo de determinação e teste dos detalhes das variáveis mencionadas acima. . Encontre os dados completos de classificação, orientações e resumos resultantes no GitHub Fundo Termos chave Alguns desses termos são usados de maneiras diferentes, dependendo do contexto (sem trocadilhos). : (também conhecido como modelo) Um tipo de inteligência artificial que foi treinada em grandes conjuntos de dados para compreender e gerar a linguagem humana. Large Language Model (LLM) : GPT3.5 e GPT4 da OpenAI que conquistaram o mundo. (No nosso caso, estamos escolhendo entre modelos de código aberto e/ou para download gratuito encontrados em .) Exemplo Hugging Face : Uma técnica, , de armazenamento de documentos em um banco de dados onde o LLM pesquisa para encontrar uma resposta para uma determinada consulta do usuário (Document Q/A). Geração Aumentada de Recuperação (RAG) desenvolvida pela Meta AI (também conhecido como Prompt ou Contexto) é a consulta fornecida pelo usuário. Instruções do usuário: Exemplo: “Resuma o seguinte texto: ” { text } instruções especiais fornecidas antes do prompt do usuário, que ajudam a moldar a personalidade do seu assistente. Prompt do sistema: Exemplo: “Você é um assistente de IA útil.” instruções do usuário e possivelmente um prompt do sistema e possivelmente rodadas anteriores de pares de perguntas/respostas. (Os pares de perguntas/respostas anteriores também são chamados simplesmente de contexto). Contexto: : são combinações de caracteres especiais com as quais um LLM é treinado para reconhecer a diferença entre as instruções do usuário, o prompt do sistema e o contexto das perguntas anteriores. Estilo de prompt Exemplo: <s>[INST] {systemPrompt} [INST] [INST] {previousQuestion} [/INST] {answer} </s> [INST] {userInstructions} [/INST] Indica o número de parâmetros em um determinado modelo (quanto maior geralmente melhor). Parâmetros são as variáveis internas que o modelo aprende durante o treinamento e são usadas para fazer previsões. Para meus propósitos, os modelos 7B provavelmente caberão em minha GPU com 12 GB de VRAM. 7B: Este é um formato específico para LLM projetado para hardware de consumo (CPU/GPU). Qualquer que seja o modelo de seu interesse, para uso no PrivateGPT, você deve encontrar sua versão GGUF (comumente feita por ). GGUF: TheBloke Ao navegar nos arquivos de um repositório GGUF você verá diferentes versões do mesmo modelo. Um número mais alto significa menos compactado e melhor qualidade. O M em K_M significa “Médio” e o S em K_S significa “Pequeno”. Q2-Q8 0, K_M ou K_S: Esta é a capacidade de memória da sua GPU. Para carregá-lo completamente na GPU, você precisará de um modelo menor que o VRAM disponível. VRAM: Esta é a métrica com a qual o LLM avalia a linguagem. Cada token consiste em aproximadamente 4 caracteres. Tokens: O que é PrivateGPT? PrivateGPT (pgpt) é um que fornece uma interface de usuário e API programável que permite aos usuários usar LLM com hardware próprio, em casa. Ele permite que você carregue documentos para seu próprio banco de dados local para Document Q/A compatível com RAG. projeto de código aberto : Documentação PrivateGPT - Visão geral PrivateGPT fornece uma contendo todos os blocos de construção necessários para construir . A API segue e estende o padrão da API OpenAI e oferece suporte a respostas normais e de streaming. Isso significa que, se você puder usar a API OpenAI em uma de suas ferramentas, poderá usar sua própria API PrivateGPT, sem alterações de código se estiver executando privateGPT no modo . API aplicativos de IA privados e sensíveis ao contexto e gratuitamente local Visão geral Comecei apenas fazendo perguntas para capítulos de livros, usando a UI\RAG . do PrivateGPT Em seguida, tentei pré-selecionar o texto para resumo. Esta foi a inspiração para as classificações da Rodada 1, para ver a grande diferença que meus resultados mostrariam. (Resumindo as seções pré-selecionadas.) Em seguida, eu queria descobrir quais modelos se sairiam melhor nessa tarefa, o que levou à classificação da Rodada 2, onde foi o vencedor claro. Mistral-7B-Instruct-v0.2 Então, eu queria obter os melhores resultados desse modelo, classificando os estilos de prompt e escrevendo código para obter o estilo de prompt exato esperado. Depois disso, é claro, tive que testar vários para ver qual teria o melhor desempenho. prompts do sistema Em seguida, tentei alguns prompts do usuário para determinar qual é exatamente o melhor prompt para gerar resumos que exigem menos pós-processamento. Em última análise, este tipo de teste deve ser realizado para cada LLM e para determinar a eficácia de qualquer refinamento nos nossos processos. Na minha opinião, somente depois que cada modelo tiver sido direcionado para suas condições mais ideais é que eles poderão ser adequadamente classificados entre si. Classificações Quando comecei a testar várias variantes do LLM, veio como parte da configuração padrão do PrivateGPT (feita para rodar em sua CPU). Aqui, preferi as variantes Q8_0. mistral-7b-instruct-v0.1.Q4_K_M.gguf Embora eu tenha tentado mais de 50 LLM diferentes para esta mesma tarefa, o Mistral-7B-Instruct ainda está entre os melhores, especialmente desde que a v0.2 foi lançada, não encontrei nenhum melhor. TLDR: - é meu atual líder em tarefas de resumo. Mistral-7B-Instruct-v0.2 Rodada 1 - Perguntas/Respostas vs Resumo Descobri rapidamente, ao fazer perguntas e respostas, que obtenho resultados muito melhores ao carregar pedaços menores de dados no banco de dados e começar do zero a cada vez. Então comecei a dividir o PDF em capítulos para fins de perguntas e respostas. Para minha primeira análise, testei 5 LLM diferentes para as seguintes tarefas: Fazer as mesmas 30 perguntas para um capítulo de livro de 70 páginas. Resumindo o mesmo capítulo do livro de 70 páginas, dividido em 30 partes. Classificação de perguntas/respostas - Meu favorito, durante esses testes, mas na hora de editar os resumos decidi que era muito detalhado. Hermes Trismegistus Mistral 7b - Tornou-se meu modelo favorito testado nesta rodada. SynthIA 7B V2 - Não tão bom quanto eu gostaria. Mistral 7b Instruct v0.1 Muito preenchimento e demorou mais tempo de todos. Ele obteve uma pontuação um pouco mais alta do que o mistral em qualidade/utilidade, mas a quantidade de preenchimento apenas tornou a leitura menos agradável. CollectiveCognition v1.1 Mistral 7b as respostas foram muito curtas e fizeram seu BS se destacar um pouco mais. Um bom modelo, mas não para resumos detalhados de livros. KAI 7b Instruct Mostrado, para cada modelo Número de segundos necessários para gerar a resposta Soma de Utilidade Subjetiva\Classificações de Qualidade Quantos caracteres foram gerados? Soma dos pedaços de contexto encontrados no intervalo de destino. Número de qualidades listadas abaixo encontradas no texto gerado: Preenchimento (palavras extras com menos valor) Curto (muito curto, não o suficiente para trabalhar). BS (não é deste livro e não é útil.) Bom BS (não da seção direcionada, mas válido.) Modelo Avaliação Precisão de pesquisa Personagens Segundos Bobagem Preenchimento Curto Bom besteira hermes-trismegisto-mistral-7b 68 56 62141 298 3 4 0 6 synthia-7b-v2.0 63 59 28087 188 1 7 7 0 mistral-7b-instruct-v0.1 51 56 21131 144 3 0 17 1 cognição coletiva-v1.1-mistral-7b 56 57 59453 377 3 10 0 0 kai-7b-instruir 44 56 21480 117 5 0 18 0 Classificação resumida Para esta primeira rodada, divido o conteúdo do capítulo em seções com uma variedade de 900-14.000 caracteres cada (ou 225-3.500 tokens). NOTA: Apesar dos numerosos modelos de contexto grandes lançados, por enquanto, ainda acredito que contextos menores resultam em resumos melhores. Não prefiro mais do que 2.750 tokens (11.000 caracteres) por tarefa de resumo. – Ainda na liderança. É detalhado, com algum preenchimento. Posso usar esses resultados. Hermes Trismegistus Mistral 7b – Muito bom, mas muito conciso. Muitas das respostas foram perfeitas, mas 7 eram muito curtas/incompletas para serem usadas. SynthIA 7B - Muito curto. Mistral 7b Instruct v0.1 - Muito curto. Instrução KAI 7b - Muito lixo. Alguns dos resumos eram superdetalhados e perfeitos, mas mais da metade das respostas eram um conjunto de perguntas baseadas no texto, não um resumo. CollectiveCognition v1.1 Mistral 7b Não é de surpreender que os resumos tenham um desempenho muito melhor do que as perguntas e respostas, mas também tinham um contexto mais específico. Nome Pontuação Personagens gerados % de diferença do OG Segundos para gerar Curto Lixo Bobagem Preencher Questões Detalhado hermes-trismegisto-mistral-7b 74 45870 -61 274 0 1 1 3 0 0 synthia-7b-v2.0 60 26849 -77 171 7 1 0 0 0 1 mistral-7b-instruct-v0.1 58 25797 -78 174 7 2 0 0 0 0 kai-7b-instruir 59 25057 -79 168 5 1 0 0 0 0 cognição coletiva-v1.1-mistral-7b 31 29509 -75 214 0 1 1 2 17 8 Encontre os dados completos e classificações no ou no GitHub: , . Google Docs QA Scores Summary Rankings Rodada 2: Resumo - Classificação do modelo Novamente, prefiro as versões Q8 dos modelos 7B. Descobrir que foi lançado valeu a pena uma nova rodada de testes. o Mistral 7b Instruct v0.2 Também decidi testar o estilo prompt. PrivateGPT não veio empacotado com o prompt Mistral e, embora o prompt Mistral seja semelhante ao prompt Llama2, ele pareceu funcionar melhor com o prompt padrão (índice de lhama). - Esse modelo se tornou meu favorito, então usei-o como benchmark. SynthIA-7B-v2.0-GGUF (Llama-index Prompt) Estrela do show aqui, bastante impressionante. Mistral-7B-Instruct-v0.2 (Prompt Llama2) Ainda bom, mas não bom quanto usar o prompt llama-index Mistral-7B-Instruct-v0.2 tão - Outro do mesmo criador do Synthia v2. Bom, mas não bom. Tess-7B-v1.4 tão - funcionou bem, mas lentamente, com prompt de índice de lhama. Apenas ruim com o prompt do llama2. (Deve testar novamente com o estilo Llama2 "Instruct Only") Llama-2-7B-32K-Instruct-GGUF Classificação resumida Apenas resumos, perguntas e respostas são menos eficientes para resumos de livros. Modelo % Diferença Pontuação Comente Synthia 7b V2 -64.43790093 28 Bom Mistral 7b Instruct v0.2 (prompt padrão) -60.81878508 33 VBom Instrução Mistral 7b v0.2 (prompt Llama2) -64.5871483 28 Bom Tess 7b v1.4 -62.12938978 29 Menos Estruturado Instrução Llama 2 7b 32k (padrão) -61.39890553 27 Menos estruturado. Lento Encontre os dados completos e classificações no ou no . Google Docs GitHub Rodada 3: Estilo de Prompt Na rodada anterior, percebi que tinha um desempenho muito melhor com o prompt padrão do que o llama2. o Mistral 7b Instruct v0.2 Bem, na verdade, o prompt do mistral é bastante semelhante ao llama2, mas não exatamente o mesmo. lhama_index (padrão) system: {{systemPrompt}} user: {{userInstructions}} assistant: {{assistantResponse}} lhama2: <s> [INST] <<SYS>> {{systemPrompt}} <</SYS>> {{userInstructions}} [/INST] mistral: <s>[INST] {{systemPrompt}} [/INST]</s>[INST] {{userInstructions}} [/INST] com os estilos de prompt e . Em seguida, comecei a trabalhar . Comecei a testar a saída default llama2 na codificação do modelo mistral Os resultados dessa classificação me deram a confiança de que codifiquei corretamente. Estilo de prompt % Diferença Pontuação Observação Mistral -50% 51 Perfeito! Padrão (índice de lhama) -42% 43 Títulos ruins Lhama2 -47% 48 Sem estrutura Encontre os dados completos e classificações no ou no . Google Docs GitHub Rodada 4: prompts do sistema Depois de definir o estilo do prompt, tentei alguns prompts do sistema diferentes e fiquei surpreso com o resultado! Nome Alerta do sistema Mudar Pontuação Comente Nenhum -49,8 51 Perfeito Prompt padrão Você é um assistente prestativo, respeitoso e honesto. \nSempre responda da forma mais prestativa possível e siga TODAS as instruções fornecidas. \nNão especule nem invente informações. \nNão faça referência a nenhuma instrução ou contexto." -58,5 39 Menos legal MeuPrompt1 "Você é amado. Aja como um especialista em resumo, delineamento e estruturação. \nSeu estilo de escrita deve ser informativo e lógico." -54,4 44 Menos legal Simples "Você é um assistente de IA útil. Não inclua nenhuma instrução do usuário ou contexto do sistema como parte de sua produção." -52,5 42 Menos legal No final, descobri que funciona melhor para meus resumos sem qualquer prompt do sistema. o Mistral 7b Instruct v0.2 Talvez tivesse resultados diferentes para uma tarefa diferente, ou talvez uma solicitação melhor, mas funciona bem, então não estou brincando com isso. Encontre os dados completos e classificações no ou no . Google Docs GitHub Rodada 5: Solicitação do usuário O que já comecei a suspeitar é que estou obtendo melhores resultados com menos palavras no prompt. Como encontrei o melhor prompt do sistema, para , também testei qual prompt do usuário é mais adequado. Mistral 7b Instruct v0.2 Incitar contra OG pontuação observação Prompt0 Escreva notas concisas, mas abrangentes, resumindo o texto a seguir. Use marcadores aninhados: com títulos, termos e conceitos-chave em negrito. Concentre-se no conhecimento essencial deste texto sem adicionar nenhuma informação externa. 43% 11 Solicitação1 Escreva notas concisas, mas abrangentes, resumindo o texto a seguir. Use marcadores aninhados: com títulos, termos e conceitos-chave em negrito. Concentre-se no conhecimento essencial deste texto sem adicionar nenhuma informação externa. 46% 11 Notas extras Prompt2 Escreva notas abrangentes resumindo o texto a seguir. Use marcadores aninhados: com títulos, termos e conceitos-chave em negrito. 58% 15 Alerta3 Crie notas concisas com marcadores resumindo as partes importantes do texto a seguir. Use marcadores aninhados, com termos de títulos e conceitos-chave em negrito, incluindo espaços em branco para garantir a legibilidade. Evite repetição. 43% 10 Prompt4 Escreva notas concisas resumindo o texto a seguir. Use marcadores aninhados: com títulos, termos e conceitos-chave em negrito. 41% 14 Alerta5 Crie notas abrangentes, mas concisas, resumindo o texto a seguir. Use marcadores aninhados: com títulos, termos e conceitos-chave em negrito. 52% 14 Notas extras Encontre os dados completos e classificações no ou no . Google Docs GitHub Talvez com hardware mais poderoso que possa suportar modelos 11b ou 30b eu obteria melhores resultados com solicitações mais descritivas. Mesmo com o Mistral 7b Instruct v0.2, ainda estou aberto a tentar algumas instruções criativas, mas por enquanto estou feliz em refinar meu processo existente. Prompt2: Vitórias! Escreva notas abrangentes resumindo o texto a seguir. Use marcadores aninhados: com títulos, termos e conceitos-chave em negrito. Nesse caso, abrangente tem melhor desempenho que “conciso”, ou mesmo que “abrangente, mas conciso”. No entanto, alerto que isso dependerá do seu caso de uso. O que procuro são notas altamente condensadas e legíveis que cubram o conhecimento importante. Essencialmente, se eu não tivesse lido o original, ainda saberia quais informações ele transmite, se não todos os detalhes específicos. Mesmo que eu tenha lido o original, não vou me lembrar da maioria mais tarde. Estas notas são uma referência rápida aos tópicos principais. Resultado Usando o conhecimento adquirido nesses testes, resumi meu primeiro livro completo, 539 páginas em 5-6 horas!!! Incrível! Em vez de gastar semanas por resumo, concluí meus primeiros 9 resumos de livros em apenas 10 dias. Plágio Você pode ver os resultados do abaixo para cada um dos textos publicados, aqui. CopyLeaks Principalmente considerando que não se trata de fins lucrativos, mas sim de fins educacionais, acredito que esses números são aceitáveis. Livro Modelos Diferença de personagem Idêntico Pequenas alterações Parafraseado Total Correspondido Corpo Oriental Mente Ocidental Synthia 7Bv2 -75% 3,5% 1,1% 0,8% 5,4% Poder de cura Nervo Vago Mistral-7B-Instruir-v0.2; SynthIA-7B-v2.0 -81% 1,2% 0,8% 2,5% 4,5% Ayurveda e a Mente Mistral-7B-Instruir-v0.2; SynthIA-7B-v2.0 -77% 0,5% 0,3% 1,2% 2% Curando os Eus Fragmentados dos Sobreviventes de Trauma Mistral-7B-Instruir-v0.2 -75% 2% Uma base segura Mistral-7B-Instruir-v0.2 -84% 0,3% 0,1% 0,3% 0,7% O corpo mantém a pontuação Mistral-7B-Instruir-v0.2 -74% 0,1% 0,2% 0,3% 0,5% Livro Completo dos Chakras Mistral-7B-Instruir-v0.2 -70% 0,3% 0,3% 0,4% 1,1% 50 anos de teoria do apego Mistral-7B-Instruir-v0.2 -70% 1,1% 0,4% 2,1% 3,7% Distúrbios de apego em adultos Mistral-7B-Instruir-v0.2 -62% 1,1% 1,2% 0,7% 3,1% Companheiro do Curso de Psicologia Mistral-7B-Instruir-v0.2 -62% 1,3% 1,2% 0,4% 2,9% Psicologia em sua vida Mistral-7B-Instruir-v0.2 -74% 0,6% 0,4% 0,5% 1,6% Resumos de livros concluídos Entre parênteses está a contagem de páginas do original. Em vez de gastar semanas por resumo, concluí meus primeiros 9 resumos de livros em apenas 10 dias. Anodea Judith (436 páginas) Corpo Oriental Mente Ocidental Stanley Rosenberg (335 páginas) Poder de cura do nervo vago Dr. David Frawley (181 páginas) Ayurveda e a Mente Janina Fisher (367 páginas) Curando os eus fragmentados dos sobreviventes do trauma John Bowlby (133 páginas) Uma base segura Bessel van der Kolk (454 páginas) O corpo mantém a pontuação Steven Porges (37 páginas) Yoga e Teoria Polivagal, de Segurança Polivagal Cynthia Dale (999 páginas) Livro completo dos chakras de Llewellyn SEÇÃO 1. FUNDAMENTOS E PRÁTICAS BÁSICAS DO CHAKRA SEÇÃO 2: CHAKRAS EM PROFUNDIDADE. COMPREENSÃO HISTÓRICA, CIENTÍFICA E TRANSCULTURAL (54 páginas) Cinquenta anos de teoria do apego: The Donald Winnicott Memorial Lecture (477 páginas) Distúrbios de apego em adultos Dana S. Dunn, Jane S. Halonen (308 páginas) A companheira do curso de psicologia (5 páginas) Walter Wink O mito da violência redentora Sarah Gison e Michael S. Gazzaniga (1.072 páginas) Psicologia em sua vida Passo a passo Caso tenha interesse em acompanhar meus passos mais de perto, confira o contendo scripts e exemplos. passo a passo no GitHub, Conclusão Agora que refinei meus processos e me sinto confiante para trabalhar com formatos de prompt, realizarei mais testes. Na verdade, já realizei mais testes e classificações (publicarei a seguir), mas é claro que farei mais testes novamente e continuarei aprendendo! Ainda acredito que se você deseja obter os melhores resultados para qualquer tarefa executada com IA, você deve realizar seus próprios experimentos e ver o que funciona melhor. Não confie apenas em classificações de modelos populares, mas use-as para orientar sua própria pesquisa. Recursos adicionais ( ) Testamos sob pressão os LLMs (Large Language Models) de código aberto mais populares para suas habilidades de Long Context Recall u/ramprasad27 Parte 2 / - 💢 Teste de pressão da janela de contexto de LLMs abertos LeonEricsson llmcontext Tabela de classificação da Arena Chatbox u/WolframRavenwolf 🐺🐦⬛ Comparação/Teste LLM: Ranking atualizado com 10 novos modelos (os melhores 7Bs)! u/WolframRavenwolf 🐺🐦⬛ Comparação/teste de formato de prompt LLM: Mixtral 8x7B Instruct com 17 modelos de instrução diferentes Vectara Tabela de classificação de alucinações Também aparece . aqui