J'ai commencé à résumer une douzaine de livres à la main et j'ai découvert que cela allait me prendre des semaines pour chaque résumé. Ensuite, je me suis souvenu de cette révolution de l’IA et j’ai décidé que j’étais parti depuis longtemps pour me jeter dans ces eaux. . Lorsque j'ai commencé à explorer l'utilisation de grands modèles de langage (LLM) pour résumer des textes volumineux, je n'ai trouvé aucune indication claire sur la manière de procéder Certaines pages donnent des exemples d'invites à donner à GPT4 avec l'idée qu'il connaîtra comme par magie le contenu du livre que vous souhaitez résumer. (PAS) Certaines personnes m'ont suggéré de trouver un modèle avec un contexte large, capable de traiter l'intégralité de mon texte en une seule fois. (Pas encore) Certains outils open source sont disponibles et vous permettent de télécharger des documents dans une base de données et de répondre à des questions basées sur le contenu de cette base de données. (Se rapprocher) D'autres ont suggéré que vous deviez d'abord diviser le livre en sections et les intégrer dans le LLM pour un résumé une par une. (Nous parlons maintenant) Au-delà de cette détermination, de nombreuses variables doivent être prises en compte lors de la mise en œuvre d'un LLM donné. J'ai rapidement réalisé que, malgré les recommandations ou les classements de modèles disponibles, j'obtenais des résultats différents de ceux des autres. Qu'il s'agisse de mon cas d'utilisation, du format du modèle, de la quantification, de la compression, des styles d'invite ou quoi ? Je ne sais pas. Tout ce que je sais, c'est faire votre propre classement de modèles dans vos propres conditions de travail. Ne vous contentez pas de croire certains graphiques que vous lisez en ligne. Ce guide fournit quelques détails sur mon processus de détermination et de test des détails des variables mentionnées ci-dessus. . Retrouvez les données de classement complètes, la procédure pas à pas et les résumés résultants sur GitHub Arrière-plan Mots clés Certains de ces termes sont utilisés de différentes manières, selon le contexte (sans jeu de mots). : (AKA Model) Un type d'intelligence artificielle qui a été formé sur des ensembles de données massifs pour comprendre et générer le langage humain. Large Language Model (LLM) : les GPT3.5 et GPT4 d'OpenAI qui ont pris d'assaut le monde. (Dans notre cas, nous choisissons parmi les modèles open source et/ou téléchargeables gratuitement trouvés sur .) Exemple Hugging Face : Une technique, , de stockage de documents dans une base de données dans laquelle le LLM recherche pour trouver une réponse à une requête utilisateur donnée (Document Q/A). Retrieval Augmented Generation (RAG) développée par Meta AI (AKA Prompt, ou Context) est la requête fournie par l'utilisateur. Instructions utilisateur : Exemple : « Résumez le texte suivant : » { text } instructions spéciales données avant l'invite utilisateur, qui aident à façonner la personnalité de votre assistant. Invite système : Exemple : « Vous êtes un assistant IA utile. » instructions utilisateur, et éventuellement une invite système, et éventuellement des séries précédentes de paires question/réponse. (Les paires Q/R précédentes sont également simplement appelées contexte). Contexte : : il s'agit de combinaisons de caractères spéciales avec lesquelles un LLM est formé pour reconnaître la différence entre les instructions utilisateur, l'invite système et le contexte des questions précédentes. Style d'invite Exemple : <s>[INST] {systemPrompt} [INST] [INST] {previousQuestion} [/INST] {answer} </s> [INST] {userInstructions} [/INST] Indique le nombre de paramètres dans un modèle donné (plus le nombre est élevé, mieux c'est). Les paramètres sont les variables internes que le modèle apprend pendant la formation et sont utilisées pour faire des prédictions. Pour mes besoins, les modèles 7B sont susceptibles de s'adapter à mon GPU avec 12 Go de VRAM. 7B : Il s'agit d'un format spécifique pour LLM conçu pour le matériel grand public (CPU/GPU). Quel que soit le modèle qui vous intéresse, pour une utilisation dans PrivateGPT, vous devez trouver sa version GGUF (couramment réalisée par ). GGUF : TheBloke En parcourant les fichiers d'un référentiel GGUF vous verrez différentes versions d'un même modèle. Un nombre plus élevé signifie moins de compression et une meilleure qualité. Le M dans K_M signifie « Moyen » et le S dans K_S signifie « Petit ». Q2-Q8 0, K_M ou K_S : Il s'agit de la capacité mémoire de votre GPU. Pour le charger complètement sur le GPU, vous aurez besoin d'un modèle de taille inférieure à votre VRAM disponible. VRAM : il s'agit de la métrique avec laquelle LLM évalue le langage. Chaque jeton se compose d'environ 4 caractères. Jetons : Qu’est-ce que PrivateGPT ? PrivateGPT (pgpt) est un qui fournit une interface utilisateur et une API programmable permettant aux utilisateurs d'utiliser LLM avec leur propre matériel, à la maison. Il vous permet de télécharger des documents sur votre propre base de données locale pour les questions/réponses sur les documents pris en charge par RAG. projet open source : Documentation PrivateGPT - Présentation PrivateGPT fournit une contenant tous les éléments de base nécessaires pour créer . L'API suit et étend la norme API OpenAI et prend en charge les réponses normales et en streaming. Cela signifie que si vous pouvez utiliser l'API OpenAI dans l'un de vos outils, vous pouvez utiliser votre propre API PrivateGPT à la place, sans modification de code, si vous exécutez privateGPT en mode . API des applications d'IA privées et contextuelles et gratuitement local Aperçu J'ai commencé par simplement poser des questions sur les chapitres du livre, en utilisant UI\RAG. PrivateGPT J'ai ensuite essayé de présélectionner le texte pour le résumé. Cela a été l'inspiration pour le classement du premier tour, afin de voir l'ampleur de la différence que montreraient mes résultats. (Résumant les sections présélectionnées.) Ensuite, j'ai voulu trouver quels modèles feraient le mieux avec cette tâche, ce qui a conduit au classement du deuxième tour, où était clairement le vainqueur. Mistral-7B-Instruct-v0.2 Ensuite, j'ai voulu obtenir les meilleurs résultats de ce modèle en classant les styles d'invite et en écrivant du code pour obtenir le style d'invite exact attendu. Après cela, bien sûr, j’ai dû tester différentes pour voir laquelle fonctionnerait le mieux. invites du système Ensuite, j'ai essayé quelques invites utilisateur, pour déterminer quelle est la meilleure invite exacte pour générer des résumés qui nécessitent le moins de post-traitement, de ma part. En fin de compte, ce type de tests devrait être effectué pour chaque LLM et pour déterminer l'efficacité de tout perfectionnement de nos processus. À mon avis, ce n’est qu’une fois que chaque modèle a été ciblé sur ses conditions les plus idéales qu’il peut être correctement classé les uns par rapport aux autres. Classements Lorsque j'ai commencé à tester diverses variantes de LLM, faisait partie de la configuration par défaut de PrivateGPT (conçue pour fonctionner sur votre processeur). Ici, j'ai préféré les variantes Q8_0. mistral-7b-instruct-v0.1.Q4_K_M.gguf Bien que j'aie essayé plus de 50 LLM différents pour cette même tâche, Mistral-7B-Instruct est toujours parmi les meilleurs, surtout depuis la sortie de la v0.2, je n'ai pas trouvé mieux. TLDR : - est mon leader actuel pour les tâches de synthèse. Mistral-7B-Instruct-v0.2 Tour 1 – Questions/réponses et résumé J'ai rapidement découvert en effectuant des questions/réponses que j'obtenais de bien meilleurs résultats en téléchargeant de plus petits morceaux de données dans la base de données et en commençant à chaque fois par une table rase. J'ai donc commencé à diviser le PDF en chapitres à des fins de questions/réponses. Pour ma première analyse, j'ai testé 5 LLM différents pour les tâches suivantes : Poser les mêmes 30 questions à un chapitre de livre de 70 pages. Résumant ce même chapitre de livre de 70 pages, divisé en 30 morceaux. Classement des questions/réponses - Mon préféré, lors de ces tests, mais lors de l'édition des résumés, j'ai trouvé que c'était trop verbeux. Hermes Trismégistus Mistral 7b - Devenu mon préféré parmi les modèles testés lors de ce tour. SynthIA 7B V2 - Pas aussi bon que je le souhaiterais. Mistral 7b Instruct v0.1 Beaucoup de remplissage et a pris le plus de temps de tous. Il a obtenu un score un peu plus élevé que le mistral en termes de qualité/utilité, mais la quantité de remplissage le rendait simplement moins agréable à lire. CollectiveCognition v1.1 Mistral 7b , les réponses étaient trop courtes et faisaient ressortir un peu plus ses BS. Un bon modèle, mais pas pour les résumés détaillés de livres. KAI 7b Instruire Montré, pour chaque modèle Nombre de secondes nécessaires pour générer la réponse Somme des notes subjectives d'utilité et de qualité Combien de personnages ont été générés ? Somme des fragments de contexte trouvés dans la plage cible. Nombre de qualités énumérées ci-dessous trouvées dans le texte généré : Filler (mots supplémentaires avec moins de valeur) Court (Trop court, pas assez pour travailler.) BS (Pas de ce livre et pas utile.) Bon BS (Pas de la section ciblée mais valide.) Modèle Notation Précision de la recherche Personnages Secondes BS Remplisseur Court Bon conneries hermès-trismégiste-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 collectivecognition-v1.1-mistral-7b 56 57 59453 377 3 dix 0 0 kai-7b-instruire 44 56 21480 117 5 0 18 0 Classement récapitulatif Pour ce premier tour, j'ai divisé le contenu du chapitre en sections avec une gamme de 900 à 14 000 caractères chacun (ou 225 à 3 500 jetons). REMARQUE : malgré les nombreux modèles de contexte volumineux publiés, pour l'instant, je pense toujours qu'un contexte plus petit donne de meilleurs résumés. Je ne préfère pas plus de 2 750 jetons (11 000 caractères) par tâche de synthèse. - Toujours en tête. C'est verbeux, avec un peu de remplissage. Je peux utiliser ces résultats. Hermes Trismégistus Mistral 7b – Plutôt bien, mais trop concis. La plupart des réponses étaient parfaites, mais 7 étaient trop courtes ou incomplètes pour être utilisées. SynthIA 7B - Tout simplement trop court. Mistral 7b Instruct v0.1 – Tout simplement trop courte. Instruction KAI 7b - Beaucoup de déchets. Certains résumés étaient très détaillés et parfaits, mais plus de la moitié des réponses étaient un ensemble de questions basées sur le texte et non un résumé. CollectiveCognition v1.1 Mistral 7b Sans surprise, les résumés ont obtenu de bien meilleurs résultats que les questions/réponses, mais ils avaient également un contexte plus finement ciblé. Nom Score Caractères générés % de différence par rapport à OG Secondes pour générer Court Ordures BS Remplir Des questions Détaillé hermès-trismégiste-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-instruire 59 25057 -79 168 5 1 0 0 0 0 collectivecognition-v1.1-mistral-7b 31 29509 -75 214 0 1 1 2 17 8 Retrouvez les données complètes et les classements sur ou sur GitHub : , . Google Docs QA Scores Summary Rankings Round 2 : Résumé – Classement des modèles Encore une fois, je préfère les versions Q8 des modèles 7B. La sortie de valait bien une nouvelle série de tests. Mistral 7b Instruct v0.2 J'ai également décidé de tester le style d'invite. PrivateGPT n'est pas fourni avec l'invite Mistral, et bien que l'invite Mistral soit similaire à l'invite Llama2, elle semble mieux fonctionner avec l'invite par défaut (llama-index). - Ce modèle était devenu mon préféré, je l'ai donc utilisé comme référence. SynthIA-7B-v2.0-GGUF (invite Llama-index) Star du spectacle ici, assez impressionnante. Mistral-7B-Instruct-v0.2 (invite Llama2) Toujours bon, mais pas bon que l'utilisation de l'invite Llama-index Mistral-7B-Instruct-v0.2 aussi - Un autre du même créateur que Synthia v2. Bien, mais pas bien. Tess-7B-v1.4 aussi - a fonctionné correctement, mais lentement, avec l'invite Llama-index. Juste mauvais avec l'invite Llama2. (Je devrais tester à nouveau avec le style Llama2 "Instruct Only") Llama-2-7B-32K-Instruct-GGUF Classement récapitulatif Uniquement des résumés, les questions/réponses sont tout simplement moins efficaces pour le résumé de livres. Modèle % Différence Score Commentaire Synthia 7b V2 -64.43790093 28 Bien Mistral 7b Instruct v0.2 (invite par défaut) -60.81878508 33 Très bien Mistral 7b Instruct v0.2 (invite Llama2) -64.5871483 28 Bien Tess 7b v1.4 -62.12938978 29 Moins structuré Lama 2 7b 32k Instruire (par défaut) -61.39890553 27 Moins structuré. Lent Retrouvez les données complètes et les classements sur ou sur . Google Docs GitHub Round 3 : Style d'invite Lors du tour précédent, j'ai remarqué fonctionnait bien mieux avec l'invite par défaut que lama2. que Mistral 7b Instruct v0.2 Eh bien, en fait, l'invite du mistral est assez similaire à celle de lama2, mais pas exactement la même. lama_index (par défaut) system: {{systemPrompt}} user: {{userInstructions}} assistant: {{assistantResponse}} lama2 : <s> [INST] <<SYS>> {{systemPrompt}} <</SYS>> {{userInstructions}} [/INST] mistral: <s>[INST] {{systemPrompt}} [/INST]</s>[INST] {{userInstructions}} [/INST] avec les styles d' , puis . Ensuite, je me suis mis au travail . J'ai commencé à tester la sortie default llama2 pour coder le modèle Mistral Les résultats de ce classement m'ont donné l'assurance que j'avais codé correctement. Style d'invite % Différence Score Note Mistral -50% 51 Parfait! Par défaut (llama-index) -42% 43 Mauvais titres Lama2 -47% 48 Aucune structure Retrouvez les données complètes et les classements sur ou sur . Google Docs GitHub Round 4 : invites système Une fois que j'ai choisi le style d'invite, j'ai essayé quelques invites système différentes et j'ai été surpris par le résultat ! Nom Invite système Changement Score Commentaire Aucun -49,8 51 Parfait Invite par défaut Vous êtes un assistant serviable, respectueux et honnête. \nToujours répondre de la manière la plus utile possible et suivre TOUTES les instructions données. \nNe spéculez pas et n'inventez pas d'informations. \nNe faites référence à aucune instruction ou contexte donné." -58,5 39 Moins sympa MonInvite1 "Vous êtes aimé. Agissez en tant qu'expert en matière de résumé, de présentation et de structuration. \nVotre style d'écriture doit être informatif et logique." -54,4 44 Moins sympa Simple "Vous êtes un assistant IA utile. N'incluez aucune instruction utilisateur ni aucun contexte système dans votre sortie." -52,5 42 Moins sympa Au final, je trouve que fonctionne mieux pour mes résumés sans aucune invite système. Mistral 7b Instruct v0.2 Cela aurait peut-être des résultats différents pour une tâche différente, ou peut-être de meilleures invites, mais cela fonctionne bien, donc je ne plaisante pas avec ça. Retrouvez les données complètes et les classements sur ou sur . Google Docs GitHub Round 5 : Invite utilisateur Ce que je commençais déjà à soupçonner, c'est que j'obtenais de meilleurs résultats avec moins de mots dans l'invite. Depuis que j'ai trouvé la meilleure invite système, pour , j'ai également testé quelle invite utilisateur lui convient le mieux. Mistral 7b Instruct v0.2 Rapide contre OG score note Propmt0 Rédigez des notes concises mais complètes résumant le texte suivant. Utilisez des puces imbriquées : avec les titres, les termes et les concepts clés en gras. Concentrez-vous sur les connaissances essentielles de ce texte sans ajouter d’informations externes. 43% 11 Invite1 Rédigez des notes concises mais complètes résumant le texte suivant. Utilisez des puces imbriquées : avec les titres, les termes et les concepts clés en gras. Concentrez-vous sur les connaissances essentielles de ce texte sans ajouter d’informations externes. 46% 11 Notes supplémentaires Invite2 Rédigez des notes complètes résumant le texte suivant. Utilisez des puces imbriquées : avec les titres, les termes et les concepts clés en gras. 58% 15 Invite3 Créez des notes concises résumant les parties importantes du texte suivant. Utilisez des puces imbriquées, avec des titres, des termes et des concepts clés en gras, y compris des espaces pour garantir la lisibilité. Évite la répétition. 43% dix Invite4 Écrivez des notes concises résumant le texte suivant. Utilisez des puces imbriquées : avec les titres, les termes et les concepts clés en gras. 41% 14 Invite5 Créez des notes complètes mais concises résumant le texte suivant. Utilisez des puces imbriquées : avec les titres, les termes et les concepts clés en gras. 52% 14 Notes supplémentaires Retrouvez les données complètes et les classements sur ou sur . Google Docs GitHub Peut-être qu'avec un matériel plus puissant pouvant prendre en charge les modèles 11b ou 30b, j'obtiendrais de meilleurs résultats avec des invites plus descriptives. Même avec Mistral 7b Instruct v0.2, je suis toujours disposé à essayer quelques instructions créatives, mais pour l'instant, je me contente d'affiner mon processus existant. Invite 2 : Gagne ! Rédigez des notes complètes résumant le texte suivant. Utilisez des puces imbriquées : avec les titres, les termes et les concepts clés en gras. Dans ce cas, le terme « complet » est plus performant que « concis », voire même que « complet, mais concis ». Cependant, je préviens que cela dépendra de votre cas d'utilisation. Ce que je recherche, ce sont des notes très condensées et lisibles couvrant les connaissances importantes. Essentiellement, si je n'avais pas lu l'original, je devrais quand même savoir quelles informations il véhicule, voire tous les détails spécifiques. Même si j'avais lu l'original, je ne me souviendrais pas de la majorité plus tard. Ces notes constituent une référence rapide aux principaux sujets. Résultat Grâce aux connaissances acquises grâce à ces tests, j'ai résumé mon premier livre complet, 539 pages en 5-6 heures !!! Incroyable! Au lieu de passer des semaines par résumé, j'ai terminé mes 9 premiers résumés de livres en seulement 10 jours. Plagiat Vous pouvez voir les résultats de ci-dessous pour chacun des textes publiés, ici. CopyLeaks D’autant plus que ce n’est pas à but lucratif, mais à des fins éducatives, je pense que ces chiffres sont acceptables. Livre Des modèles Différence de caractère Identique Des changements mineurs Paraphrasé Total correspondant Corps oriental Esprit occidental Synthie 7Bv2 -75% 3,5% 1,1% 0,8% 5,4% Pouvoir de guérison du nerf vague Mistral-7B-Instruct-v0.2 ; SynthIA-7B-v2.0 -81% 1,2% 0,8% 2,5% 4,5% L'Ayurvéda et l'esprit Mistral-7B-Instruct-v0.2 ; SynthIA-7B-v2.0 -77% 0,5% 0,3% 1,2% 2% Guérir le moi fragmenté des survivants d’un traumatisme Mistral-7B-Instruct-v0.2 -75% 2% Une base sécurisée Mistral-7B-Instruct-v0.2 -84% 0,3% 0,1% 0,3% 0,7% Le corps garde le score Mistral-7B-Instruct-v0.2 -74% 0,1% 0,2% 0,3% 0,5% Livre complet des chakras Mistral-7B-Instruct-v0.2 -70% 0,3% 0,3% 0,4% 1,1% 50 ans de théorie de l'attachement Mistral-7B-Instruct-v0.2 -70% 1,1% 0,4% 2,1% 3,7% Troubles de l'attachement chez les adultes Mistral-7B-Instruct-v0.2 -62% 1,1% 1,2% 0,7% 3,1% Compagnon de la majeure en psychologie Mistral-7B-Instruct-v0.2 -62% 1,3% 1,2% 0,4% 2,9% La psychologie dans votre vie Mistral-7B-Instruct-v0.2 -74% 0,6% 0,4% 0,5% 1,6% Résumés de livres terminés Entre parenthèses se trouve le nombre de pages de l’original. Au lieu de passer des semaines par résumé, j'ai terminé mes 9 premiers résumés de livres en seulement 10 jours. Anodea Judith (436 pages) Corps oriental Esprit occidental Stanley Rosenberg (335 pages) Pouvoir de guérison du nerf vague Dr David Frawley (181 pages) L'Ayurveda et l'esprit Janina Fisher (367 pages) Guérir le moi fragmenté des survivants de traumatismes John Bowlby (133 pages) Une base sécurisée Bessel van der Kolk (454 pages) Le corps garde le score Steven Porges (37 pages) Yoga et théorie polyvagale, de Polyvagal Safety Cynthia Dale (999 pages) Livre complet des chakras de Llewellyn SECTION 1. FONDAMENTAUX ET PRATIQUES DE BASE DES CHAKRA SECTION 2 : LES CHAKRAS EN PROFONDEUR. COMPRÉHENSIONS HISTORIQUES, SCIENTIFIQUES ET INTERCULTURELLES (54 pages) Cinquante ans de théorie de l'attachement : la conférence commémorative Donald Winnicott (477 pages) Troubles de l'attachement chez les adultes Dana S. Dunn, Jane S. Halonen (308 pages) La compagne de la majeure en psychologie (5 pages) Walter Wink Le mythe de la violence rédemptrice Sarah Gison et Michael S. Gazzaniga (1072 pages) La psychologie dans votre vie Procédure pas à pas Si vous souhaitez suivre mes étapes de plus près, consultez la contenant des scripts et des exemples. procédure pas à pas sur GitHub, Conclusion Maintenant que mes processus ont été affinés et que je me sens en confiance pour travailler avec des formats d'invite, je vais effectuer d'autres tests. En fait, j'ai déjà effectué d'autres tests et classements (je les publierai prochainement), mais bien sûr, je ferai encore d'autres tests et continuerai à apprendre ! Je continue de croire que si vous souhaitez obtenir les meilleurs résultats quelle que soit la tâche que vous effectuez avec l’IA, vous devez mener vos propres expériences et voir ce qui fonctionne le mieux. Ne vous fiez pas uniquement aux classements de modèles populaires, mais utilisez-les pour guider vos propres recherches. Ressources additionnelles ( ) Testé sous pression les LLM (Large Language Models) open source les plus populaires pour leurs capacités de rappel de contexte long u/ramprasad27 Partie 2 / - 💢 Test de pression de la fenêtre contextuelle des LLM ouverts LeonEricsson llmcontext Classement de l'arène Chatbox u/WolframRavenwolf 🐺🐦⬛ Comparatif/Test LLM : Classement mis à jour avec 10 nouveaux modèles (les meilleurs 7B) ! u/WolframRavenwolf 🐺🐦⬛ Comparaison/Test du format d'invite LLM : Instruction Mixtral 8x7B avec 17 modèles d'instructions différents Vectara Classement des hallucinations Apparaît également . ici