paint-brush
Clasificación 7b GGUF para notas completas con viñetas con Ollama: Clasificación de modelos Go Home, ¡estás borracho!por@cognitivetech
1,632 lecturas
1,632 lecturas

Clasificación 7b GGUF para notas completas con viñetas con Ollama: Clasificación de modelos Go Home, ¡estás borracho!

por CognitiveTech8m2024/02/11
Read on Terminal Reader

Demasiado Largo; Para Leer

Buscando un modelo que realmente supere al Mistral 7b Instruct 0.2. Al contrario de lo que ocurre en las tablas de clasificación, no encuentro ninguno. Revisa mis métodos y resultados, ¡demuestra que estoy equivocado!
featured image - Clasificación 7b GGUF para notas completas con viñetas con Ollama: Clasificación de modelos Go Home, ¡estás borracho!
CognitiveTech HackerNoon profile picture
0-item
1-item
2-item
3-item

Adelante

Permítanme comenzar diciendo que no pretendo ofender a los creadores de Large Language Models (LLM), las herramientas para evaluarlos, ni a las personas u organizaciones que los clasifican y crean tablas de clasificación. Como relativamente nuevo en este ecosistema, estoy en deuda con su trabajo y agradecido de que me hayan facilitado el camino para realizar tareas que de otro modo serían laboriosas.


Claramente, mi próxima publicación debe ser explorar varios métodos para la clasificación de modelos, para obtener un poco más de detalle sobre cómo funcionan las evaluaciones.

Introducción

Si no ha leído mi artículo anterior PrivateGPT para el resumen de libros: variables de configuración de prueba y clasificación, puede que le resulte beneficioso revisarlo, ya que definí términos y expliqué los medios por los cuales llegué a diversas prácticas y creencias.


Si leyó ese artículo, sabrá que he estado perfeccionando mis procesos durante algunos meses, utilizando modelos de lenguaje grande (LLM) con el fin de resumir libros. Medí una serie de parámetros que incluyen plantillas de mensajes, mensajes del sistema, mensajes del usuario, etc.


A partir de esa ronda preliminar de clasificación de modelos y recopilación de datos sobre el uso de variables de configuración, descubrí que mistral-7b-instruct-v0.2.Q8_0.gguf produce notas con viñetas de la más alta calidad y he estado buscando una que lo mejore. eso cabe en mi 3060 de 12 GB, desde entonces.

¡¡Te recontra reto!! Muéstrame un 7b que supere a Mistral para esta tarea.


Para esta clasificación, estoy utilizando esa base de conocimiento para evaluar una variedad de modelos 7b líderes. Esta vez estoy usando Ollama , ya que lo encuentro más sencillo de usar y bastante eficaz.


Elegí los siguientes modelos porque los encontré clasificados por encima de Mistral 7b Instruct 0.2 en varias tablas de clasificación, o fueron autoproclamados como los mejores 7b. (plantillas de chat probadas entre paréntesis)


  • openchat-3.5-0106.Q8_0.gguf (OpenChat)

  • snorkel-mistral-pairrm-dpo.Q8_0.gguf (Mistral)

  • delfín-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)


Para algunos modelos, en los que no obtuve los resultados deseados, ya que en su mayoría están derivados de Mistral, probé la plantilla Mistral a pesar de que enumeran ChatML como su entrada preferida.

Notas con viñetas con títulos y términos en negrita

Escriba notas completas con viñetas que resuma el siguiente texto, con títulos, términos y conceptos clave en negrita.\n\nTEXTO:


Si bien GPT3.5 no es mi punto de referencia personal, es una especie de estándar de la industria y esperaría que produzca mejores resultados que la mayoría de los GGUF 7b Q8.


Una respuesta de ejemplo de GPT3.5

Si bien no hay conceptos clave de los términos en negrita, los títulos están en negrita y, en general, es bastante fácil de leer en comparación con bloques de párrafos. Además, el hecho de que encontremos términos en negrita o no puede depender del texto de entrada en sí, donde un resumen con viñetas siempre debe incluir encabezados en negrita.

Busco modelos que produzcan notas:

  • más rápido
  • con más detalle, menos relleno
  • con detalles comparables con un contexto más largo (actualmente ampliando estas capacidades a un contexto de 2,5k)


Veo esto como una tarea fundamental para cualquier modelo de Instruct. Idealmente, los desarrolladores entrenarán sus modelos para generar este tipo de notas con viñetas ideales. Tengo toneladas de datos, con algunos libros ya entrenados, pero es relativamente sencillo generar estas notas para un libro (usando Mistral 7b Instruct 0.2 con el texto semánticamente fragmentado, a mano, en partes de menos de 2,5k tokens, cada una).


Si se trata de un libro de 300 a 600 páginas, normalmente se puede realizar en un solo día, incluido el procesamiento previo y posterior.


Con el tiempo, podría experimentar con algunos ajustes en un intento de mejorar yo mismo sus capacidades.

Las clasificaciones

Anteriormente, intenté darle una puntuación a cada clasificación. Es realmente difícil dar una puntuación numérica. En el futuro, creo que intentaré obtener un LLM para clasificar los resúmenes. Esta vez, simplemente dejaré un comentario sobre lo que se queda corto y lo que me gusta, sin dar una puntuación numérica a cada modelo.


Probé cada uno de los siguientes modelos en un solo capítulo de libro, dividido en 6 partes de 1900 a 3000 fichas cada una. Compartiré un ejemplo representativo de cada uno y los datos completos estarán disponibles en GitHub, como siempre.

Mistral 7b Instrucción 0.2 Q8 GGUF

Estoy seguro de que ya te habrás dado cuenta de que, en mi opinión, Mistral tiene el 7b a batir.

Archivo de modelo

Ollama tiene una función donde ingresa la ubicación del modelo, la plantilla y los parámetros en un archivo de modelo, que utiliza para guardar una copia de su LLM usando su configuración especificada. Esto facilita la demostración de varios modelos sin tener que estar siempre preocupado por los parámetros.


He mantenido los mismos parámetros para todos los modelos excepto la plantilla de chat, pero compartiré contigo la plantilla que estoy usando para cada uno, para que puedas ver con precisión cómo uso la plantilla. Puede informarme si obtendría mejores resultados con los siguientes modelos utilizando un Modelfile configurado de manera diferente.

 TEMPLATE """ <s></s>[INST] {{ .Prompt }} [/INST] """ PARAMETER num_ctx 8000 PARAMETER num_gpu -1 PARAMETER num_predict 4000

Mistral 7b Instrucción v0.2 Resultado

No diré que Mistral lo haga perfectamente todas las veces, pero la mayoría de las veces este es mi resultado. Y si recuerda la respuesta de GPT3.5, puede estar de acuerdo en que esto es mejor.

7b ¿CABRA?

OpenChat 3.5 0106 Q8 GGUF

Me sorprendió gratamente el 0106 de OpenChat . Aquí hay un modelo que dice tener el mejor modelo 7b y al menos es competitivo con el Mistral 7b.

Archivo de modelo

 TEMPLATE """ GPT4 Correct User: {{ .Prompt }}<|end_of_turn|>GPT4 Correct Assistant: """ PARAMETER num_ctx 8000 PARAMETER num_gpu -1 PARAMETER num_predict 4000

Resultado de OpenChat 3.5 0106

En esta pequeña muestra, los títulos estaban en negrita 4/6 veces. Más adelante lo revisaré junto con otros contendientes principales mediante un análisis más detallado.

Me gusta lo que veo, pero necesita un examen más profundo.

Snorkel Mistral Pairrm DPO Q8 GGUF

Obviamente, soy parcial en este punto, ya que Snorkel fue entrenado en Mistral 7b Instruct 0.2. De todos modos, soy cautelosamente optimista y espero más lanzamientos de Snorkel.ai .

Archivo de modelo

 TEMPLATE """ <s></s>[INST] {{ .Prompt }} [/INST] """ PARAMETER num_ctx 8000 PARAMETER num_gpu -1 PARAMETER num_predict 4000

Resultado Snorkel Mistral Pairrm DPO

4/6 de estos resúmenes son acertados, pero otros contienen irregularidades, como listas muy largas de términos y títulos clave en lugar de simplemente ponerlos en negrita como parte del resumen.

El caballo oscuro de esta carrera.

Delfín 2.6 Mistral 7B Q8 GGUF

Aquí hay otro derivado del mistral que está bien considerado.

Archivo de modelo

 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

Resultado del Dolphin 2.6 Mistral 7B

Este es otro modelo decente que es casi tan bueno como el Mistral 7b Instruct 0.2. Tres de cada seis resúmenes tenían el formato adecuado y títulos en negrita, otro tenía un buen formato sin negrita, pero 2/6 tenían mala forma en todos los aspectos.

Mala forma

OpenHermes 2.5 Mistral-7B Q8 GGUF

Este modelo es bastante popular, tanto en las tablas de clasificación como entre "la gente" en los chats de discordia no asociados. Quiero que sea líder en este ranking, pero no es así.

Archivo de modelo

 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

Resultado de OpenHermes 2.5 Mistral

3 de 6 resultados producen una estructura adecuada, pero sin texto en negrita. Uno de ellos tiene estructura y texto en negrita. Los otros dos tenían bloques de texto más grandes y una estructura deficiente.

Simplemente no "allí", para mí.

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

También probé algunos derivados de alto rango de OpenHermes 2.5 Mistral para ver si podía obtener mejores resultados. Lamentablemente, ese no fue el caso.

Archivo de modelo

 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

Resultado de OpenHermes 2.5 Neural Chat 7b v3.1

Ninguno de estos resultados fue deseable.

¿Si te pago $20 lo harás?

OpenHermes 2.5 Neural-Chat v3.3 Slerp Q8 GGUF

Hicieran lo que hicieran, estos derivados no mejoraron el original.

Archivo de modelo

 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

Resultado de OpenHermes 2.5 neural-chat v3.3 Slerp

¡Está empeorando con cada nueva versión!

Soy un evaluador muy triste de los principales modelos lingüísticos.

Super Mario V2 Q8

No esperaba mucho de Mario, pero parece prometedor. Mientras tanto, V3 y V4 están disponibles, pero todavía no he encontrado GGUF para ellos.

Archivo de modelo

 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

Resultado de Super Mario V2

Su primer resultado fue engañosamente bueno. Sin embargo, cada uno de los siguientes resúmenes se desvió del patrón deseado. Estaré atento a GGUF de los lanzamientos más recientes. Puede ver aquí que tenemos bloques de párrafos con un título inicial en negrita. Realmente no es lo que pedí.

Ejemplo de lo que no quiero.

Menciones honoríficas

  • omnibeagle-7b (ChatML): este en realidad produce un formato decente pero sin texto en negrita.


  • neuralbeagle14-7b (ChatML, Mistral): funciona mejor con la plantilla mistral. Resultados "OK", pero, para mi gusto, hay demasiada confusión en torno a las plantillas de mensajes.



Conclusión

Ojalá tuviera mejores noticias para compartir. Mi titular ideal es que existe una gran cantidad de modelos líderes que producen resultados de calidad al crear resúmenes completos de notas con viñetas, y me resulta muy difícil elegir entre ellos. Desafortunadamente, ese no es el caso.


¿Quizás superan a Mistral 0.2 en su forma completa pero solo están detrás en formato GGUF? Creo que es muy probable que ninguna de nuestras evaluaciones existentes tenga como objetivo este tipo de resultado, pero ciertamente diría que es una tarea que cualquier modelo líder de 7b guff debería poder realizar.


Otra cosa a considerar es que Mistral 7b Instruct v0.2 salió poco después de Mixtral, en medio de mucha fanfarria. Creo que ese lanzamiento pasó desapercibido. De hecho, muchos de los modelos "principales" que he visto se basan en 0.1 Mistral.


¿Quizás las cosas cambien y el mundo se dé cuenta de que sus mejores modelos aún no pueden superar al Mistral? Por otra parte, tal vez todos esos modelos sean realmente buenos en todas las demás tareas que no estoy pidiendo.

Estoy dispuesto a ayudar y estoy dispuesto a que se demuestre que estoy equivocado

Tengo datos, tengo una canalización y tengo una necesidad infinita de crear resúmenes de notas con viñetas. Si quieres trabajar conmigo, por favor comunícate.


También puedes consultar mi GitHub, comprobar los datos y probar tu propia versión de este experimento. Estoy feliz de que se demuestre que estoy equivocado.