Avant Permettez-moi de commencer par dire que je ne veux pas offenser les créateurs de grands modèles linguistiques (LLM), les outils pour les évaluer, ou les individus/organisations qui les classent et créent des classements. En tant que nouveau venu dans cet écosystème, je suis redevable de votre travail et reconnaissant que le chemin m'ait été facilité pour accomplir des tâches qui seraient autrement laborieuses. De toute évidence, mon prochain article doit explorer diverses méthodes de classement des modèles, pour obtenir un peu plus de détails sur le fonctionnement des évaluations. Introduction Si vous n'avez pas lu mon article précédent , vous trouverez peut-être utile de le consulter, car j'ai défini les termes et expliqué les moyens par lesquels je suis parvenu à diverses pratiques et croyances. PrivateGPT pour la synthèse de livres : tests et classement des variables de configuration Si vous avez lu cet article, vous saurez que j'affine depuis quelques mois mes processus en utilisant les Grands Modèles Langageux (LLM) dans le but de résumer des livres. J'ai mesuré une série de paramètres, notamment des modèles d'invites, des invites système, des invites utilisateur, etc. À partir de cette série préliminaire de classements de modèles et de collecte de données sur l'utilisation des variables de configuration, j'ai trouvé produisait des notes à puces de la plus haute qualité, et j'en recherchais une pour la surpasser, qui s'adapte sur mon 12 Go 3060, depuis. que mistral-7b-instruct-v0.2.Q8_0.gguf Pour ce classement, j'utilise cette base de connaissances pour évaluer une variété de principaux modèles 7b. Cette fois, j'utilise , car je le trouve plus simple à utiliser et assez performant. Ollama J'ai choisi les modèles suivants parce que je les ai trouvés au-dessus dans divers classements, ou parce qu'ils étaient autoproclamés meilleurs 7b. du Mistral 7b Instruct 0.2 (modèles de chat testés entre parenthèses) openchat-3.5-0106.Q8_0.gguf (OpenChat) tuba-mistral-pairrm-dpo.Q8_0.gguf (Mistral) dauphin-2.6-mistral-7b.Q8_0.gguf (Mistral) supermario-v2.Q8_0.gguf (ChatML) openhermes-2.5-mistral-7b.Q8_0.gguf (ChatML) openhermes-2.5-neural-chat-7b-v3-1-7b.Q8_0.gguf (ChatML) openhermes-2.5-neural-chat-v3-3-slerp.Q8_0.gguf (ChatML) WestLake-7B-v2-Q8_0.gguf (ChatML, Mistral) MBX-7B-v3-DPO.q8_0.gguf (ChatML, Mistral) neuralbeagle14-7b.q8_0.gguf (ChatML, Mistral) omnibeagle-7b-q8_0.gguf (ChatML, Mistral) Pour certains modèles, pour lesquels je n'obtenais pas les résultats souhaités, car ils sont pour la plupart dérivés de Mistral, j'ai testé le modèle Mistral même s'ils répertorient ChatML comme entrée préférée. Notes à puces avec titres et termes en gras Rédigez des notes à puces complètes résumant le texte suivant, avec les titres, les termes et les concepts clés en gras.\n\nTEXTE : Bien que GPT3.5 ne soit pas ma référence personnelle, il s'agit en quelque sorte d'une norme industrielle et je m'attendrais à ce qu'il produise de meilleurs résultats que la plupart des GGUF 7b Q8. Bien qu'il n'y ait pas de concepts clés de termes en gras, les titres en gras et, dans l'ensemble, cela est assez facile à lire par rapport aux blocs de paragraphes. De plus, le fait que nous trouvions ou non des termes en gras peut dépendre du texte saisi lui-même, où un résumé à puces doit inclure des titres en gras. sont toujours Je recherche des modèles qui produisent des notes : plus rapide avec plus de détails, moins de remplissage avec des détails comparables avec un contexte plus long (étendant actuellement ces capacités autour de 2,5k contexte) Je vois cela comme une tâche fondamentale pour tout modèle Instruct. Idéalement, les développeurs entraîneront leurs modèles pour générer ces types de notes à puces idéales. J'ai des tonnes de données, avec certains livres déjà formés, mais il est relativement simple de générer ces notes pour un livre (en utilisant avec le texte sémantiquement découpé, à la main, en parties inférieures à 2,5 000 jetons chacune). Mistral 7b Instruct 0.2 S'il s'agit d'un livre de 300 à 600 pages, cela peut généralement être réalisé en une seule journée, y compris le pré et le post-traitement. Finalement, je pourrais expérimenter quelques ajustements pour tenter d'améliorer moi-même leurs capacités. Le classement Auparavant, j'essayais de donner une note à chaque classement. C'est vraiment difficile de donner une note chiffrée. À l'avenir, je pense que j'essaierai d'obtenir un LLM pour classer les résumés. Cette fois, je vais simplement laisser un commentaire sur les points faibles et ce que j'aime, sans donner de note numérique à chaque modèle. J'ai testé chacun des modèles suivants sur un seul chapitre de livre, divisé en 6 morceaux de 1 900 à 3 000 jetons chacun. Je partagerai un exemple représentatif de sortie de chacun, et les données complètes seront disponibles sur GitHub, comme toujours. Mistral 7b Instruire 0.2 Q8 GGUF Je suis sûr que vous réalisez maintenant que, à mon avis, a le 7b à battre. Mistral Fichier modèle qui vous permet de saisir l'emplacement du modèle, le modèle et les paramètres dans un fichier modèle, qu'il utilise pour enregistrer une copie de votre LLM en utilisant la configuration spécifiée. Cela facilite la démonstration de différents modèles sans avoir à toujours s'occuper des paramètres. Ollama dispose d'une fonctionnalité J'ai gardé les paramètres les mêmes pour tous les modèles, à l'exception du modèle de chat, mais je partagerai avec vous le modèle que j'utilise pour chacun, afin que vous puissiez voir précisément comment j'utilise le modèle. Vous pouvez me faire savoir si j'obtiendrais de meilleurs résultats avec les modèles suivants en utilisant un fichier modèle configuré différemment. TEMPLATE """ <s></s>[INST] {{ .Prompt }} [/INST] """ PARAMETER num_ctx 8000 PARAMETER num_gpu -1 PARAMETER num_predict 4000 Mistral 7b Instruct v0.2 Résultat Je ne dirai pas que Mistral le fait parfaitement à chaque fois, mais le plus souvent, c'est mon résultat. Et si vous regardez la réponse GPT3.5, vous conviendrez peut-être que c'est mieux. OpenChat 3.5 0106 Q8 GGUF J'ai été agréablement surpris par . Voici un modèle qui prétend avoir le meilleur modèle 7b, et qui est au moins compétitif avec le Mistral 7b. le 0106 d'OpenChat Fichier modèle TEMPLATE """ GPT4 Correct User: {{ .Prompt }}<|end_of_turn|>GPT4 Correct Assistant: """ PARAMETER num_ctx 8000 PARAMETER num_gpu -1 PARAMETER num_predict 4000 OpenChat 3.5 0106 Résultat Dans ce petit échantillon, il a donné des titres en gras 4/6 fois. Plus tard, je l'examinerai avec tous les autres principaux concurrents en utilisant une analyse plus détaillée. Tuba Mistral Pairrm DPO Q8 GGUF Évidemment, je suis partial ici, car Snorkel a été formé sur Mistral 7b Instruct 0.2. Quoi qu’il en soit, je suis prudemment optimiste et j’attends avec impatience d’autres versions de . Snorkel.ai Fichier modèle TEMPLATE """ <s></s>[INST] {{ .Prompt }} [/INST] """ PARAMETER num_ctx 8000 PARAMETER num_gpu -1 PARAMETER num_predict 4000 Tuba Mistral Pairrm Résultat DPO 4/6 de ces résumés sont parfaits, mais d'autres contiennent des irrégularités telles que des listes très longues de termes et de titres clés au lieu de simplement les mettre en gras dans le cadre du résumé. Dolphin 2.6 Mistral 7B Q8 GGUF Voici très apprécié. un autre dérivé du mistral Fichier modèle TEMPLATE """ <|im_start|>system You are a helpful AI writing assistant.<|im_end|> <|im_start|>user {{ .Prompt }} <|im_end|> <|im_start|>assistant {{ .Response }}<|im_end|> """ PARAMETER num_ctx 8000 PARAMETER num_gpu -1 PARAMETER num_predict 4000 Résultat Dolphin 2.6 Mistral 7B C'est un autre modèle décent qui est aussi bon que le Mistral 7b Instruct 0.2. Trois résumés sur six présentaient un format approprié et des titres en gras, un autre avait un bon format sans gras, mais 2/6 étaient de mauvaise forme. presque OpenHermes 2.5 Mistral-7B Q8 GGUF est très populaire, à la fois dans les classements et parmi « le peuple » dans les discussions Discord non associées. Je voudrais qu'il soit leader dans ce classement, mais ce n'est tout simplement pas le cas. Ce modèle Fichier modèle TEMPLATE """ <|im_start|>system You are a helpful AI writing assistant.<|im_end|> <|im_start|>user {{ .Prompt }} <|im_end|> <|im_start|>assistant {{ .Response }}<|im_end|> """ PARAMETER num_ctx 8000 PARAMETER num_gpu -1 PARAMETER num_predict 4000 Résultat Mistral OpenHermes 2.5 3 résultats sur 6 produisent une structure appropriée, mais pas de texte en gras. L’un d’eux a à la fois une structure et un texte en gras. Les deux autres avaient des blocs de texte plus gros et une structure médiocre. OpenHermes 2.5 Chat neuronal 7b v3.1 7B Q8 GGUF J'ai également essayé quelques de haut rang d'OpenHermes 2.5 Mistral pour voir si je pouvais obtenir de meilleurs résultats. Malheureusement, ce n’était pas le cas. dérivés Fichier modèle TEMPLATE """ <|im_start|>system You are a helpful AI writing assistant.<|im_end|> <|im_start|>user {{ .Prompt }} <|im_end|> <|im_start|>assistant {{ .Response }}<|im_end|> """ PARAMETER num_ctx 8000 PARAMETER num_gpu -1 PARAMETER num_predict 4000 Résultat OpenHermes 2.5 Neural Chat 7b v3.1 Aucun de ces résultats n’était souhaitable. OpenHermes 2.5 Neural-Chat v3.3 Slerp Q8 GGUF Quoi qu’ils aient fait, ces n’ont pas amélioré l’original. dérivés Fichier modèle TEMPLATE """ <|im_start|>system You are a helpful AI writing assistant.<|im_end|> <|im_start|>user {{ .Prompt }} <|im_end|> <|im_start|>assistant {{ .Response }}<|im_end|> """ PARAMETER num_ctx 8000 PARAMETER num_gpu -1 PARAMETER num_predict 4000 Résultat Slerp OpenHermes 2.5 neural-chat v3.3 C'est de pire en pire à chaque nouvelle version ! Super Mario V2 Q8 Je n'attendais pas grand-chose de Mario, mais cela semble prometteur. Pendant ce temps, les V3 et V4 sont disponibles, mais je n'ai pas encore trouvé de GGUF pour celles-ci. Fichier modèle TEMPLATE """ <|im_start|>system You are a helpful AI writing assistant.<|im_end|> <|im_start|>user {{ .Prompt }} <|im_end|> <|im_start|>assistant {{ .Response }}<|im_end|> """ PARAMETER num_ctx 8000 PARAMETER num_gpu -1 PARAMETER num_predict 4000 Résultat Super Mario V2 Son premier résultat était trompeusement bon. Cependant, chacun des résumés suivants s’écarte du modèle souhaité. Je serai à l'affût des GGUF des versions les plus récentes. Vous pouvez voir ici que nous avons des blocs de paragraphes avec un titre initial en gras. Pas vraiment ce que j'avais demandé. Mentions honorables (ChatML) - Celui-ci produit en fait un format décent mais pas de texte en gras. omnibeagle-7b (ChatML, Mistral) - Fonctionne mieux avec le modèle mistral. Résultats « OK » mais trop de confusion autour des modèles d'invite à mon goût. neuralbeagle14-7b (ChatML) - J'ai vu pire WestLake-7B-v2 (ChatML) - Aucune cohérence dans le format. MBX-7B-v3-DPO Conclusion J'aurais aimé avoir de meilleures nouvelles à partager. Mon titre idéal est qu'il Malheureusement, ce n'est pas le cas. existe une abondance de modèles leaders qui produisent des résultats de qualité lors de la création et il m'est tellement difficile de choisir parmi eux. de résumés complets de notes à puces, Peut-être qu'ils surpassent Mistral 0.2 dans leur forme complète mais ne sont à la traîne qu'au format GGUF ? Je pense qu'il est fort probable qu'aucune de nos évaluations existantes ne cible ce type de résultat, mais je dirais certainement que c'est une tâche que tout modèle gguf 7b de premier plan devrait être capable de gérer. Une autre chose à considérer est que Mistral 7b Instruct v0.2 est sorti peu de temps après Mixtral, au milieu d'une grande fanfare. Je pense que cette version est passée sous le radar. En fait, bon nombre des modèles « principaux » que j'ai examinés sont basés sur le Mistral 0,1. Peut-être que les choses changeront et que le monde se rendra compte que leurs meilleurs modèles ne peuvent toujours pas surpasser Mistral ? Là encore, peut-être que tous ces modèles sont vraiment bons pour toutes les autres tâches que je ne demande pas. Je suis prêt à aider et je suis prêt à avoir tort J'ai des données, j'ai un pipeline et j'ai un besoin infini de créer des résumés de notes à puces. Si vous souhaitez travailler avec moi, contactez-moi. Vous êtes également invités à consulter mon GitHub, à vérifier les données et à essayer votre propre version de cette expérience. Je suis heureux d'avoir tort.