Comencé a resumir una docena de libros a mano y descubrí que me llevaría semanas realizar cada resumen. Entonces recordé que estaba ocurriendo esta revolución de la IA y decidí que hacía mucho que debía saltar a estas aguas. . Cuando comencé a explorar el uso de modelos de lenguaje grandes (LLM) para resumir textos extensos, no encontré una dirección clara sobre cómo hacerlo Algunas páginas ofrecen ejemplos de indicaciones para darle a GPT4 la idea de que mágicamente conocerá el contenido de cualquier libro que desee resumir. (NO) Algunas personas sugirieron que necesito encontrar un modelo con un contexto amplio que pueda procesar todo mi texto de una sola vez. (Aún no) Hay disponibles algunas herramientas de código abierto que le permiten cargar documentos a una base de datos y responder preguntas basadas en el contenido de esa base de datos. (Acercarse) Otros han sugerido que primero se debe dividir el libro en secciones e introducirlas en el LLM para resumirlas una a la vez. (Ahora estamos hablando) Más allá de tomar esa determinación, existen numerosas variables que deben tenerse en cuenta al implementar un LLM determinado. Rápidamente me di cuenta de que, a pesar de las recomendaciones o clasificaciones de modelos disponibles, estaba obteniendo resultados diferentes a los de otros. ¿Ya sea mi caso de uso, el formato del modelo, la cuantización, la compresión, los estilos de aviso o qué? No sé. Todo lo que sé es que haga sus propias clasificaciones de modelos en sus propias condiciones de trabajo. No se limite a creer en algún gráfico que lea en línea. Esta guía proporciona algunos detalles sobre mi proceso de determinación y prueba de los detalles de las variables mencionadas anteriormente. . Encuentre los datos completos de clasificación, el recorrido y los resúmenes resultantes en GitHub Fondo Términos clave Algunos de estos términos se utilizan de diferentes maneras, según el contexto (sin juego de palabras). : (también conocido como modelo) Un tipo de inteligencia artificial que ha sido entrenada con conjuntos de datos masivos para comprender y generar el lenguaje humano. Modelo de lenguaje grande (LLM) : GPT3.5 y GPT4 de OpenAI que han conquistado el mundo. (En nuestro caso, elegimos entre modelos de código abierto o descargables gratuitamente que se encuentran en ). Ejemplo Hugging Face : una técnica, , para almacenar documentos en una base de datos en la que el LLM busca una respuesta para una consulta de usuario determinada (Documento Q/A). Recuperación de generación aumentada (RAG) desarrollada por Meta AI (también conocido como mensaje o contexto) es la consulta proporcionada por el usuario. Instrucciones para el usuario: Ejemplo: “Resuma el siguiente texto: ” { text } instrucciones especiales dadas antes del aviso del usuario, que ayudan a moldear la personalidad de su asistente. Aviso del sistema: Ejemplo: "Eres un asistente de IA útil". instrucciones para el usuario, y posiblemente un mensaje del sistema, y posiblemente rondas anteriores de pares de preguntas/respuestas. (Los pares de preguntas y respuestas anteriores también se denominan simplemente contexto). Contexto: : estas son combinaciones de caracteres especiales con las que un LLM está capacitado para reconocer la diferencia entre las instrucciones del usuario, el mensaje del sistema y el contexto de preguntas anteriores. Estilo de mensaje Ejemplo: <s>[INST] {systemPrompt} [INST] [INST] {previousQuestion} [/INST] {answer} </s> [INST] {userInstructions} [/INST] Indica el número de parámetros en un modelo determinado (cuanto más alto, generalmente, mejor). Los parámetros son las variables internas que el modelo aprende durante el entrenamiento y se utilizan para hacer predicciones. Para mis propósitos, es probable que los modelos 7B quepan en una GPU con 12 GB de VRAM. 7B: Este es un formato específico para LLM diseñado para hardware de consumo (CPU/GPU). Sea cual sea el modelo que te interese, para utilizarlo en PrivateGPT, deberás encontrar su versión GGUF (comúnmente fabricada por ). GGUF: TheBloke Al navegar por los archivos de un repositorio GGUF verás diferentes versiones de un mismo modelo. Un número mayor significa menos comprimido y mejor calidad. La M en K_M significa "Mediano" y la S en K_S significa "Pequeño". Q2-Q8 0, K_M o K_S: Esta es la capacidad de memoria de su GPU. Para cargarlo completamente en la GPU, necesitarás un modelo de menor tamaño que tu VRAM disponible. VRAM: esta es la métrica con la que LLM pesa el lenguaje. Cada token consta de aproximadamente 4 caracteres. Tokens: ¿Qué es PrivateGPT? PrivateGPT (pgpt) es un que proporciona una interfaz de usuario y una API programable que permite a los usuarios utilizar LLM con su propio hardware, en casa. Le permite cargar documentos a su propia base de datos local para preguntas y respuestas sobre documentos compatibles con RAG. proyecto de código abierto : Documentación de PrivateGPT - Descripción general PrivateGPT proporciona una que contiene todos los componentes básicos necesarios para crear . La API sigue y amplía el estándar API de OpenAI y admite respuestas tanto normales como de transmisión. Eso significa que, si puedes usar la API OpenAI en una de tus herramientas, puedes usar tu propia API PrivateGPT, sin cambios de código si estás ejecutando privateGPT en modo . API aplicaciones de IA privadas y sensibles al contexto y de forma gratuita local Descripción general Comencé simplemente haciendo preguntas a los capítulos de libros, usando UI\RAG. PrivateGPT Luego intenté preseleccionar texto para resumir. Esta fue la inspiración para las clasificaciones de la Ronda 1, para ver qué tan grande sería la diferencia que mostrarían mis resultados. (Resumiendo secciones preseleccionadas). A continuación, quise encontrar qué modelos funcionarían mejor con esta tarea, lo que me llevó a la clasificación de la Ronda 2, donde fue el claro ganador. Mistral-7B-Instruct-v0.2 Luego quise obtener los mejores resultados de este modelo clasificando los estilos de solicitud y escribiendo código para obtener el estilo de solicitud exacto esperado. Después de eso, por supuesto, tuve que probar varias para ver cuál funcionaba mejor. indicaciones del sistema A continuación, probé algunas indicaciones del usuario para determinar cuál es exactamente la mejor indicación para generar resúmenes que requieran el menor procesamiento posterior por mi parte. En última instancia, este tipo de pruebas deben realizarse para cada LLM y para determinar la efectividad de cualquier mejora en nuestros procesos. En mi opinión, sólo una vez que cada modelo haya sido enfocado a sus condiciones más ideales podrán clasificarse adecuadamente entre sí. Clasificaciones Cuando comencé a probar varias variantes de LLM, venía como parte de la configuración predeterminada de PrivateGPT (creada para ejecutarse en su CPU). Aquí he preferido las variantes Q8_0. mistral-7b-instruct-v0.1.Q4_K_M.gguf Si bien he probado más de 50 LLM diferentes para esta misma tarea, Mistral-7B-Instruct sigue estando entre los mejores, especialmente desde que se lanzó la versión 0.2, no he encontrado nada mejor. TLDR: : es mi líder actual en tareas de resumen. Mistral-7B-Instruct-v0.2 Ronda 1: Preguntas y respuestas frente a resumen Al hacer preguntas y respuestas, descubrí rápidamente que obtengo resultados mucho mejores cuando cargo fragmentos más pequeños de datos en la base de datos y empiezo desde cero cada vez. Entonces comencé a dividir el PDF en capítulos para fines de preguntas y respuestas. Para mi primer análisis probé 5 LLM diferentes para las siguientes tareas: Hacer las mismas 30 preguntas en un capítulo de libro de 70 páginas. Resumiendo ese mismo capítulo de libro de 70 páginas, dividido en 30 partes. Clasificación de preguntas/respuestas : Mi favorito durante estas pruebas, pero cuando edité los resúmenes decidí que era demasiado detallado. Hermes Trismegistus Mistral 7b : se convirtió en mi favorito de los modelos probados en esta ronda. SynthIA 7B V2 : no es tan bueno como me gustaría. Mistral 7b Instruct v0.1 Mucho relleno y tomó la mayor cantidad de tiempo de todos. Obtuvo una puntuación un poco más alta que Mistral en calidad/utilidad, pero la cantidad de relleno hizo que fuera menos agradable de leer. CollectiveCognition v1.1 Mistral 7b las respuestas fueron demasiado cortas e hicieron que su BS se destacara un poco más. Un buen modelo, pero no para resúmenes detallados de libros. KAI 7b Instruct Se muestra, para cada modelo. Número de segundos necesarios para generar la respuesta Suma de utilidad subjetiva/calificaciones de calidad ¿Cuántos personajes se generaron? Suma de fragmentos de contexto encontrados en el rango objetivo. Número de cualidades enumeradas a continuación que se encuentran en el texto generado: Relleno (palabras adicionales con menos valor) Corto (demasiado corto, no lo suficiente para trabajar). BS (No es de este libro y no es útil). Buen BS (no de la sección específica, pero válido). Modelo Clasificación Precisión de búsqueda Caracteres Segundos Licenciatura Relleno Corto Buena tontería 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-instrucciones-v0.1 51 56 21131 144 3 0 17 1 cognición colectiva-v1.1-mistral-7b 56 57 59453 377 3 10 0 0 instrucción-kai-7b 44 56 21480 117 5 0 18 0 Clasificación resumida Para esta primera ronda, dividí el contenido del capítulo en secciones con una variedad de 900-14000 caracteres cada uno (o 225-3500 tokens). NOTA: A pesar de los numerosos modelos de contexto grandes que se están publicando, por ahora sigo creyendo que un contexto más pequeño da como resultado mejores resúmenes. No prefiero más de 2750 tokens (11000 caracteres) por tarea de resumen. - Todavía a la cabeza. Es detallado, con algo de relleno. Puedo usar estos resultados. Hermes Trismegistus Mistral 7b : bastante bueno, pero demasiado conciso. Muchas de las respuestas eran perfectas, pero 7 eran demasiado cortas o incompletas para usarlas. SynthIA 7B - Demasiado corto. Mistral 7b Instruct v0.1 : Demasiado corta. Instrucción KAI 7b - Mucha basura. Algunos de los resúmenes fueron súper detallados y perfectos, pero más de la mitad de las respuestas fueron un conjunto de preguntas basadas en el texto, no un resumen. CollectiveCognition v1.1 Mistral 7b No es sorprendente que los resúmenes tuvieran un rendimiento mucho mejor que las preguntas y respuestas, pero también tenían un contexto más específico. Nombre Puntaje Personajes generados % de diferencia con respecto al original Segundos para generar Corto Basura Licenciatura Llenar Preguntas Detallado 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-instrucciones-v0.1 58 25797 -78 174 7 2 0 0 0 0 instrucción-kai-7b 59 25057 -79 168 5 1 0 0 0 0 cognición colectiva-v1.1-mistral-7b 31 29509 -75 214 0 1 1 2 17 8 Encuentre los datos completos y las clasificaciones en o en GitHub: , . Google Docs puntuaciones de control de calidad clasificaciones resumidas Ronda 2: Resumen - Clasificación de modelos Nuevamente, prefiero las versiones Q8 de los modelos 7B. Descubrir que se había lanzado valió la pena realizar una nueva ronda de pruebas. Mistral 7b Instruct v0.2 También decidí probar el estilo rápido. PrivateGPT no vino incluido con el mensaje Mistral, y aunque el mensaje Mistral es similar al mensaje Llama2, parecía funcionar mejor con el mensaje predeterminado (llama-index). : este modelo se había convertido en mi favorito, así que lo usé como punto de referencia. SynthIA-7B-v2.0-GGUF (Llama-index Prompt) Estrella del espectáculo aquí, bastante impresionante. Mistral-7B-Instruct-v0.2 (Solicitud de llama2) Sigue siendo bueno, pero no bueno como usar la solicitud de índice de llama Mistral-7B-Instruct-v0.2 tan : otro del mismo creador que Synthia v2. Bueno, pero no bueno. Tess-7B-v1.4 tan : funcionó bien, pero lentamente, con el mensaje de índice de llama. Simplemente malo con el aviso de llama2. (Debería probar nuevamente con el estilo "Solo instrucciones" de Llama2) Llama-2-7B-32K-Instruct-GGUF Clasificación resumida Solo resúmenes, Q/A es simplemente menos eficiente para resumir libros. Modelo % Diferencia Puntaje Comentario Synthia 7b V2 -64.43790093 28 Bien Mistral 7b Instruct v0.2 (mensaje predeterminado) -60.81878508 33 Muy bien Mistral 7b Instrucción v0.2 (Aviso Llama2) -64.5871483 28 Bien Tess 7b v1.4 -62.12938978 29 Menos estructurado Llama 2 7b 32k Instrucción (predeterminado) -61.39890553 27 Menos estructurado. Lento Encuentre los datos completos y las clasificaciones en o en . Google Docs GitHub Ronda 3: estilo rápido En la ronda anterior, noté que funcionaba mucho mejor con el mensaje predeterminado que llama2. Mistral 7b Instruct v0.2 Bueno, en realidad, el aviso mistral es bastante similar al de llama2, pero no exactamente igual. llama_index (predeterminado) system: {{systemPrompt}} user: {{userInstructions}} assistant: {{assistantResponse}} llama2: <s> [INST] <<SYS>> {{systemPrompt}} <</SYS>> {{userInstructions}} [/INST] mistral: <s>[INST] {{systemPrompt}} [/INST]</s>[INST] {{userInstructions}} [/INST] con los estilos de solicitud y luego . Luego me puse a trabajar . Comencé a probar la salida default llama2 codificando la plantilla mistral Los resultados de esa clasificación me dieron la confianza de que codifiqué correctamente. Estilo rápido % Diferencia Puntaje Nota Mistral -50% 51 ¡Perfecto! Predeterminado (llama-index) -42% 43 Malos títulos llama2 -47% 48 Sin estructura Encuentre los datos completos y las clasificaciones en o en . Google Docs GitHub Ronda 4: Avisos del sistema Una vez que marqué el estilo de aviso, probé algunos avisos del sistema diferentes y ¡me sorprendió el resultado! Nombre Aviso del sistema Cambiar Puntaje Comentario Ninguno -49,8 51 Perfecto Mensaje predeterminado Eres un asistente servicial, respetuoso y honesto. \nResponda siempre de la forma más útil posible y siga TODAS las instrucciones dadas. \nNo especule ni invente información. \nNo haga referencia a ninguna instrucción o contexto dado." -58,5 39 menos agradable Mi mensaje1 "Eres amado. Actúa como un experto en resumir, delinear y estructurar. \nTu estilo de escritura debe ser informativo y lógico". -54,4 44 menos agradable Simple "Eres un útil asistente de IA. No incluyas instrucciones de usuario ni contexto del sistema como parte de tu resultado". -52,5 42 menos agradable Al final, encuentro que funciona mejor para mis resúmenes sin ningún aviso del sistema. Mistral 7b Instruct v0.2 Tal vez obtendría resultados diferentes para una tarea diferente, o tal vez mejores indicaciones, pero esto funciona bien, así que no voy a jugar con eso. Encuentre los datos completos y las clasificaciones en o en . Google Docs GitHub Ronda 5: Aviso al usuario Lo que ya comencé a sospechar es que obtengo mejores resultados con menos palabras en el mensaje. Desde que encontré el mejor mensaje del sistema, para , también probé qué mensaje de usuario se adapta mejor. Mistral 7b Instruct v0.2 Inmediato frente a OG puntaje nota propmt0 Escriba notas concisas, pero completas, que resuma el siguiente texto. Utilice viñetas anidadas: con títulos, términos y conceptos clave en negrita. Concéntrese en el conocimiento esencial de este texto sin agregar ninguna información externa. 43% 11 Aviso1 Escriba notas concisas, pero completas, que resuma el siguiente texto. Utilice viñetas anidadas: con títulos, términos y conceptos clave en negrita. Concéntrese en el conocimiento esencial de este texto sin agregar ninguna información externa. 46% 11 Notas adicionales Aviso2 Escriba notas completas que resuma el siguiente texto. Utilice viñetas anidadas: con títulos, términos y conceptos clave en negrita. 58% 15 Aviso3 Cree notas concisas con viñetas que resuma las partes importantes del siguiente texto. Utilice viñetas anidadas, con términos de encabezados y conceptos clave en negrita, incluidos espacios en blanco para garantizar la legibilidad. Evite la repetición. 43% 10 Aviso4 Escribe notas concisas que resuma el siguiente texto. Utilice viñetas anidadas: con títulos, términos y conceptos clave en negrita. 41% 14 Aviso5 Cree notas completas, pero concisas, que resuma el siguiente texto. Utilice viñetas anidadas: con títulos, términos y conceptos clave en negrita. 52% 14 Notas adicionales Encuentre los datos completos y las clasificaciones en o en . Google Docs GitHub Quizás con un hardware más potente que admita los modelos 11b o 30b obtendría mejores resultados con indicaciones más descriptivas. Incluso con Mistral 7b Instruct v0.2, todavía estoy abierto a probar algunas instrucciones creativas, pero por ahora estoy feliz de perfeccionar mi proceso actual. Mensaje 2: ¡Gana! Escriba notas completas que resuma el siguiente texto. Utilice viñetas anidadas: con títulos, términos y conceptos clave en negrita. En este caso, integral funciona mejor que "conciso", o incluso que "completo, pero conciso". Sin embargo, advierto que esto dependerá de su caso de uso. Lo que estoy buscando son notas muy condensadas y legibles que cubran los conocimientos importantes. Esencialmente, si no leí el original, aún debería saber qué información transmite, si no todos los detalles específicos. Incluso si leyera el original, no recordaré la mayoría más adelante. Estas notas son una referencia rápida a los temas principales. Resultado Utilizando los conocimientos adquiridos en estas pruebas, resumí mi primer libro completo, ¡¡¡539 páginas en 5-6 horas!!! ¡Increíble! En lugar de dedicar semanas a cada resumen, completé mis primeros 9 resúmenes de libros en solo 10 días. Plagio Puedes ver los resultados de a continuación para cada uno de los textos publicados, aquí. CopyLeaks Especialmente considerando que esto no es con fines de lucro, sino con fines educativos, creo que estos números son aceptables. Libro Modelos Diferencia de personaje Idéntico Cambios menores Parafraseado Total igualado Cuerpo Oriental Mente Occidental Synthia 7Bv2 -75% 3,5% 1,1% 0,8% 5,4% Poder curativo del nervio vago Mistral-7B-Instrucción-v0.2; SynthIA-7B-v2.0 -81% 1,2% 0,8% 2,5% 4,5% Ayurveda y la mente Mistral-7B-Instrucción-v0.2; SynthIA-7B-v2.0 -77% 0,5% 0,3% 1,2% 2% Sanando los yoes fragmentados de los sobrevivientes de traumas Mistral-7B-Instrucción-v0.2 -75% 2% Una base segura Mistral-7B-Instrucción-v0.2 -84% 0,3% 0,1% 0,3% 0,7% El cuerpo lleva la cuenta Mistral-7B-Instrucción-v0.2 -74% 0,1% 0,2% 0,3% 0,5% Libro completo de los chakras Mistral-7B-Instrucción-v0.2 -70% 0,3% 0,3% 0,4% 1,1% 50 años de teoría del apego Mistral-7B-Instrucción-v0.2 -70% 1,1% 0,4% 2,1% 3,7% Trastornos del apego en adultos Mistral-7B-Instrucción-v0.2 -62% 1,1% 1,2% 0,7% 3,1% Compañero de la carrera de psicología Mistral-7B-Instrucción-v0.2 -62% 1,3% 1,2% 0,4% 2,9% Psicología en tu vida Mistral-7B-Instrucción-v0.2 -74% 0,6% 0,4% 0,5% 1,6% Resúmenes de libros completos Entre paréntesis está el recuento de páginas del original. En lugar de dedicar semanas a cada resumen, completé mis primeros 9 resúmenes de libros en solo 10 días. Anodea Judith (436 páginas) Cuerpo Oriental Mente Occidental Stanley Rosenberg (335 páginas) Poder curativo del nervio vago Dr. David Frawley (181 páginas) Ayurveda y la mente Janina Fisher (367 páginas) Sanación de los seres fragmentados de los supervivientes de traumas John Bowlby (133 páginas) Una base segura Bessel van der Kolk (454 páginas) El cuerpo lleva la cuenta Steven Porges (37 páginas) Yoga y teoría polivagal, de Polyvagal Safety Cynthia Dale (999 páginas) Libro completo de chakras de Llewellyn SECCIÓN 1. FUNDAMENTOS Y PRÁCTICAS BÁSICAS DE LOS CHAKRAS BLOQUE 2: CHAKRAS EN PROFUNDIDAD. ENTENDIMIENTOS HISTÓRICOS, CIENTÍFICOS Y TRANSCULTURALES (54 páginas) Cincuenta años de teoría del apego: Conferencia en memoria de Donald Winnicott (477 páginas) Trastornos del apego en adultos Dana S. Dunn, Jane S. Halonen (308 páginas) La compañera de la especialidad de psicología (5 páginas) Walter Wink El mito de la violencia redentora Sarah Gison y Michael S. Gazzaniga (1072 páginas) Psicología en tu vida Tutorial Si está interesado en seguir mis pasos más de cerca, consulte el que contiene scripts y ejemplos. tutorial en GitHub, Conclusión Ahora que tengo mis procesos refinados y me siento seguro trabajando con formatos rápidos, realizaré más pruebas. De hecho, ya he realizado más pruebas y clasificaciones (las publicaré a continuación), pero, por supuesto, volveré a hacer más pruebas y seguiré aprendiendo. Sigo creyendo que si quieres obtener los mejores resultados para cualquier tarea que realices con IA, debes realizar tus propios experimentos y ver qué funciona mejor. No confíe únicamente en las clasificaciones de modelos populares, utilícelas para guiar su propia investigación. Recursos adicionales ( ) Probé a presión los LLM (modelos de lenguajes grandes) de código abierto más populares para determinar sus capacidades de recuperación de contexto prolongado u/ramprasad27 Parte 2 / - 💢 Prueba de presión de la ventana contextual de LLM abiertos LeonEricsson llmcontext Tabla de clasificación de Chatbox Arena u/WolframRavenwolf 🐺🐦⬛ Comparación/Prueba de LLM: ¡Ranking actualizado con 10 nuevos modelos (los mejores 7B)! u/WolframRavenwolf 🐺🐦⬛ Comparación/Prueba de formato de solicitud de LLM: Mixtral 8x7B Instruct con 17 plantillas de instrucción diferentes Vectara Tabla de clasificación de alucinaciones También aparece . aquí