paint-brush
Classement 7b GGUF pour des notes à puces complètes avec Ollama : Go Home Model Rankings, You're Drunk !par@cognitivetech
1,552 lectures
1,552 lectures

Classement 7b GGUF pour des notes à puces complètes avec Ollama : Go Home Model Rankings, You're Drunk !

par CognitiveTech8m2024/02/11
Read on Terminal Reader

Trop long; Pour lire

Recherche d'un modèle qui bat réellement Mistral 7b Instruct 0.2. Contrairement au classement sur les classements, je n'en trouve pas. Revoyez mes méthodes et mes résultats, prouvez-moi le contraire !
featured image - Classement 7b GGUF pour des notes à puces complètes avec Ollama : Go Home Model Rankings, You're Drunk !
CognitiveTech HackerNoon profile picture
0-item
1-item
2-item
3-item

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 PrivateGPT pour la synthèse de livres : tests et classement des variables de configuration , 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.


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é que mistral-7b-instruct-v0.2.Q8_0.gguf 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.

Je double osez-vous!! Montrez-moi un 7b surpassant Mistral pour cette tâche.


Pour ce classement, j'utilise cette base de connaissances pour évaluer une variété de principaux modèles 7b. Cette fois, j'utilise Ollama , car je le trouve plus simple à utiliser et assez performant.


J'ai choisi les modèles suivants parce que je les ai trouvés au-dessus du Mistral 7b Instruct 0.2 dans divers classements, ou parce qu'ils étaient autoproclamés meilleurs 7b. (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.


Un exemple de réponse de GPT3.5

Bien qu'il n'y ait pas de concepts clés de termes en gras, les titres sont 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 toujours inclure des titres en gras.

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 Mistral 7b Instruct 0.2 avec le texte sémantiquement découpé, à la main, en parties inférieures à 2,5 000 jetons chacune).


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, Mistral a le 7b à battre.

Fichier modèle

Ollama dispose d'une fonctionnalité 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.


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.

7b CHÈVRE ?

OpenChat 3.5 0106 Q8 GGUF

J'ai été agréablement surpris par le 0106 d'OpenChat . Voici un modèle qui prétend avoir le meilleur modèle 7b, et qui est au moins compétitif avec le Mistral 7b.

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.

J'aime ce que je vois, mais cela nécessite un examen plus approfondi

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é.

Le cheval noir de cette course.

Dolphin 2.6 Mistral 7B Q8 GGUF

Voici un autre dérivé du mistral très appré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 Dolphin 2.6 Mistral 7B

C'est un autre modèle décent qui est presque 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.

Mauvaise forme

OpenHermes 2.5 Mistral-7B Q8 GGUF

Ce modèle 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.

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.

Mais pas « là », pour moi.

OpenHermes 2.5 Chat neuronal 7b v3.1 7B Q8 GGUF

J'ai également essayé quelques dérivés 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.

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.

Si je te paie 20$, tu le feras ?

OpenHermes 2.5 Neural-Chat v3.3 Slerp Q8 GGUF

Quoi qu’ils aient fait, ces dérivés n’ont pas amélioré l’original.

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 !

Je suis un évaluateur très triste des principaux modèles linguistiques.

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é.

Exemple de ce que je ne veux pas.

Mentions honorables

  • omnibeagle-7b (ChatML) - Celui-ci produit en fait un format décent mais pas de texte en gras.


  • neuralbeagle14-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.



Conclusion

J'aurais aimé avoir de meilleures nouvelles à partager. Mon titre idéal est qu'il existe une abondance de modèles leaders qui produisent des résultats de qualité lors de la création de résumés complets de notes à puces, et il m'est tellement difficile de choisir parmi eux. Malheureusement, ce n'est pas le cas.


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.