noticias

Se revela el mensaje de codificación central de Claude 3.5, ¡los codificadores de toda la red están emocionados!Método de entrenamiento de cuatro pasos, lanzada la última versión V2

2024-07-16

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

Nuevo informe de sabiduría

Editor: Taozi

[Introducción a la Nueva Sabiduría] Los consejos básicos del sistema de codificación Claude 3.5 son populares en la comunidad de Reddit. Justo ahora, el autor original lanzó la segunda versión evolucionada y algunos internautas ya la agregaron a su flujo de trabajo.

¡Recientemente se publicó en Reddit un aviso del sistema sobre la codificación central de Claude Sonnet 3.5 y se volvió viral!


Un usuario llamado ssmith12345uk compartió en el tablero principal de r/ClaudeAI que utilizó la práctica del código de Claude y ajustó constantemente las indicaciones del sistema para optimizar el modelo.

Dijo que el indicador del sistema incorpora algunas ideas de Anthropic Meta-Prompt y resuelve algunos problemas encontrados anteriormente.

Finalmente, soltó todas las palabras clave.


Los desarrolladores de la comunidad de IA lo han reenviado a sus favoritos y han dicho que este es el consejo que más desean los programadores.



Los internautas resumieron esto: ReAct + Planning + XML es todo lo que necesitas.


Algunos internautas que se beneficiaron dijeron que este consejo fue de gran ayuda en sus proyectos.


Ayer mismo, el autor original lanzó una versión evolucionada de la palabra de aviso V2 en la comunidad de Reddit y proporcionó instrucciones y explicaciones detalladas para su uso.


Antes de explicar estas indicaciones y técnicas del sistema, permítanme responder primero a una pregunta de los internautas: ¿dónde ingresar?

Debe crear un proyecto (suscribirse a usuarios Pro) y luego puede ingresar a la página donde ingresa las instrucciones rápidas.



Los mejores consejos de codificación para Sonnet 3.5, entrenamiento de 4 pasos

Aquí, las indicaciones del sistema V1 y V2 se combinan para que todos puedan sentir la diferencia de manera más intuitiva después de la actualización.

El mensaje del sistema de la versión V2 se muestra en el lado derecho de la figura siguiente. En comparación con V1, se trata básicamente de reparaciones menores.

En la última versión, el modelo todavía se guía para completar el razonamiento CoT a través de cuatro pasos: revisión del código, planificación, resultados y revisión de seguridad.

En el primer párrafo, la definición de rol de Claude 3.5 sigue siendo la misma.

Eres un desarrollador web experto con dominio de CSS, JavaScript, React, Tailwind, Node.JS y Hugo/Markdown.

Sin embargo, se hicieron algunos ajustes en la segunda oración: "No te disculpes innecesariamente. Revisa el historial de conversaciones para evitar repetir errores anteriores".

A continuación, pídele a Claude 3.5 que divida la tarea en pasos independientes durante la conversación y, después de cada etapa, sugiere una pequeña prueba para asegurarte de que todo va por el camino correcto.

Proporcione código solo cuando se necesite o solicite explícitamente un ejemplo. Sería mejor si pudieras responder sin código.

Pero se solicitarán más detalles si es necesario.

El siguiente paso es la "revisión del código": antes de escribir o proponer código, realice una revisión exhaustiva del código existente y describa entre etiquetas cómo funciona.


Después de completar la revisión del código, debe crear un plan de cambios entre etiquetas y solicitar archivos fuente adicionales o documentación que pueda ser relevante.

Siga el principio DRY (No se repita) para evitar la duplicación de código y equilibrar la mantenibilidad y la flexibilidad del código.

Y, en este paso, se presentan posibles compensaciones y opciones de implementación, y se consideran y recomiendan marcos y bibliotecas relevantes. Si no hemos acordado un plan, deténgase en este paso.

Una vez acordado, se genera código entre etiquetas.

Aquí, el autor de Reddit también le recordó a Claude 3.5 las cosas a las que debe prestar atención al generar código:

Preste atención a los nombres de variables, identificadores y literales de cadena, y verifique que se copien exactamente del archivo original. Utilice dos puntos y letras mayúsculas (como::MAYÚSCULAS::) para indicar que los elementos con nombres convencionales permanecen actualizados en algunos. estilos de codificación, al generar bloques de código usando modismos adecuados para ese lenguaje, especifique el lenguaje de programación después de la primera comilla grave: por ejemplo: ```JavaScript, ```Python

Finalmente, se requiere una revisión operativa y de seguridad de PLANIFICACIÓN y SALIDA, prestando especial atención a asuntos que puedan comprometer datos o introducir vulnerabilidades.

Para cambios confidenciales (como manejo de entradas, cálculos de moneda, autenticación), realice una revisión exhaustiva y proporcione su análisis en la etiqueta.

Análisis del autor

A continuación, en un largo artículo explicativo, el autor de Reddit utiliza ‍⬛ para indicar "superstición" y expresar de qué está convencido.


Este mensaje es un ejemplo de un mensaje guiado de "cadena de pensamiento", que le indica a Claude los pasos a seguir y en qué orden, y lo utiliza como un mensaje del sistema (el primer conjunto de instrucciones que recibe el modelo).

El uso de etiquetas XML para separar pasos se inspiró en las metasugerencias de Anthropic.

El autor cree que Claude es particularmente sensible a las etiquetas XML, que pueden estar relacionadas con el entrenamiento de modelos. Por lo tanto, prefiere procesar HTML solo o al final de la sesión‍⬛.

Fuente de la imagen: https://github.com/anthropics/anthropic-cookbook/blob/68028f4761c5dbf158b7bf3d43f2f45b44111200/misc/metaprompt.ipynb#

La cadena de pensamiento guiado sigue los siguientes pasos: revisión del código, planificación, resultados y revisión de seguridad.

1 revisión del código

Lleve el análisis de código estructurado a su contexto para informar la planificación posterior.

El propósito es evitar que LLM realice cambios locales en el código sin tener en cuenta el contexto más amplio. Al probar, los autores están convencidos de que este enfoque es eficaz.

2 planificación

Este paso produce un plan de diseño e implementación de alto nivel que se puede revisar antes de generar código.

La "parada" aquí evita llenar el contexto con código generado innecesario que no satisface nuestras necesidades, o que vamos y venimos para modificar.

Suele presentar opciones relevantes y apropiadas.

En esta etapa, puede profundizar en los detalles del plan para perfeccionarlo aún más (por ejemplo, contarme más sobre el paso 3, ¿podemos reutilizar la implementación Y, mostrarme un fragmento de código, qué debería pensar sobre la biblioteca, etc.? .).

3 salida

Una vez que se acuerdan los planes, es hora de pasar a la fase de generación de código.

El mensaje sobre el nombre de variables se debe a que el autor a menudo encuentra el problema de nombres de variables faltantes o alucinados en el código regenerado durante sesiones largas. La mejora actual del mensaje parece haber resuelto este problema‍⬛.

En algún momento, el autor puede exportar el diálogo antiguo y hacer algún análisis estadístico, pero por ahora estoy contento con el funcionamiento de este enfoque.

El mensaje de delimitación de código se debió a que el autor cambió a una interfaz que no podía inferir el resaltado correcto y verificó que este era el enfoque correcto.

4 Revisión de seguridad

El autor prefiere realizar una revisión de seguridad a posteriori y considera que este paso es muy útil.

Proporciona una revisión de un "segundo par de ojos" y puede sugerir nuevas mejoras.

Responda las preguntas de los internautas

Finalmente, el autor de Reddit también respondió a las preguntas de los internautas.

¿Debería utilizar este consejo en Claude.ai? / ¿Dónde debería solicitar el sistema la entrada?

No sabemos exactamente las indicaciones oficiales del sistema para Sonnet 3.5. Definitivamente sería útil suponer que Plinio, quien previamente filtró las indicaciones oficiales de Claude, tiene razón. El autor especula que las indicaciones del sistema de Anthropic pueden contener CoT automatizadas, pero este puede no ser el caso, o la entrada puede procesarse automáticamente a través de metaindicaciones‍⬛.

De todos modos, obtendrá buenos resultados con este consejo, a menos que esté utilizando artefactos.


Suponiendo nuevamente que el extracto de Plinio sobre Artefactos sea correcto, el autor recomienda encarecidamente desactivar la funcionalidad de Artefactos al realizar tareas de codificación no triviales o no relacionadas con Artefactos.

Si utiliza una herramienta que le permite configurar las indicaciones del sistema directamente, el autor le recuerda que debe recordar ajustar el parámetro de temperatura.

No necesitamos indicaciones tan complicadas ahora/Le di a Sonnet una gran cantidad de código y simplemente funcionó.


Los mensajes automáticos de CoR/predeterminados pueden resolver muchos problemas, pero compruébelo con un simple mensaje "eres una IA útil".

Los autores afirman haber realizado este tipo de pruebas y descubierto que las indicaciones simples eran menos efectivas cuando se trataba de problemas complejos.

También mencionó que las primeras pruebas mostraron la sensibilidad de las indicaciones del sistema, es decir, diferentes indicaciones pueden conducir a resultados significativamente diferentes, y que en el futuro se considerarán más pruebas por lotes para verificar esto en mayor profundidad.

Reconoció que Sonnet 3.5 funcionó bien en tareas básicas, pero enfatizó que incluso para los modelos de alto rendimiento, una guía adecuada aún puede ayudar.

Este mensaje es demasiado largo y hará que la IA alucine/olvide/pierda coherencia/pierda el enfoque.


Los autores midieron esta pista en aproximadamente 546 tokens, que es una longitud aceptable para un modelo de 200.000 tokens.

Las indicaciones estructuradas mantienen la alta calidad del contexto, lo que ayuda a mantener la coherencia de las conversaciones y reduce el riesgo de alucinaciones de IA.

Hasta ahora, los modelos predicen el siguiente token basándose en todo el contexto, por lo que las conversaciones repetidas de alta calidad, no contaminadas por código innecesario de ida y vuelta, pueden durar más tiempo antes de que sea necesario iniciar una nueva sesión. Esto significa que pueden ocurrir interacciones productivas dentro de la misma sesión durante períodos de tiempo más largos.

Este aviso está sobrediseñado

El autor dijo que tal vez sea así.

Las personas que lo utilizan se han integrado en el flujo de trabajo.

Los internautas exclamaron que el rendimiento del modelo efectivamente ha mejorado después de usarlo.

"Si este mensaje funciona mejor, significa que el trabajo realizado por el equipo de Anthropic al combinar los mensajes del sistema CoT o ReAct con las capacidades básicas de LLM ha logrado resultados".


¡Esto es para asistentes de codificación! Para tal tarea, tiene sentido dar algunas orientaciones.


Algunos internautas ya han integrado algunos de estos consejos en su flujo de trabajo. Esto es lo que siempre carga primero en una nueva conversación.



Sin embargo, algunos internautas dijeron que este mensaje es demasiado complicado.


"En mi experiencia, no es necesario utilizar indicaciones tan completas. Claude 3.5 Sonnet maneja este tipo de cosas de forma bastante automática y sólo requiere aclaraciones ocasionales".


Consejos de roles, una pérdida de tiempo

Simon Willison, el desarrollador del marco Django, dijo que la técnica rápida "Eres un experto en el campo de xxx" ha sido una completa pérdida de tiempo desde finales de 2022.

¡La cantidad de "supersticiones" involucradas en los consejos de LLM es bastante asombrosa!


En realidad, esta conclusión proviene de un estudio de un año realizado por el equipo de Learnprompting y coautores de OpenAI y Microsoft.

Dirección del artículo: https://arxiv.org/pdf/2406.06608

Para el proyecto, analizaron más de 1.500 artículos sobre indicaciones, los clasificaron en 58 técnicas de indicaciones diferentes y analizaron cada indicación.


Las investigaciones han descubierto que la estimulación de roles es sorprendentemente ineficaz.

La razón es que con los modelos más antiguos parecen obtener mejores respuestas/inferencias al indicar un mejor espacio de parámetros. Sin embargo, es posible que los modelos más nuevos ya estén en ese espacio de parámetros mejorado.

¡Esta será una suposición constructiva para todos!

En octubre de 2022, cuando Learnprompting publicó su primera guía sobre consejos y trucos previos a ChatGPT, las indicaciones de roles fueron el tema más candente en ese momento y el consejo principal recomendado por todos para obtener mejores resultados de ChatGPT.


Es cierto que estos modelos están evolucionando rápidamente y que es posible que las técnicas que funcionaron el año pasado ya no funcionen hoy.

Y los consejos que funcionan hoy pueden no funcionar el año que viene.

Para aclarar este problema, el equipo de Learnprompting probó 2000 preguntas MMLU utilizando alrededor de 12 indicaciones de roles diferentes en gpt-4-turbo.

En particular, un ejemplo de sugerencia para crear un personaje "genio": usted es un científico educado en Harvard...

Y un recordatorio para el personaje "idiota": eres un idiota...

"genius...": "You are a genius level Ivy league Professor. Your work is of the highest grade. You always think out your problem solving steps in incredible detail. You always get problems correct and never make mistakes. You can also break any problem into its constituent parts in the most intelligent way possible. Nothing gets past you. You are omniscient, omnipotent, and omnipresent. You are a mathematical God."
 "idiot...": "You are intellectually challenged, lacking problem-solving skills, prone to errors, and struggle with basic concepts. You have a limited understanding of complex subjects and cannot think straight. You can't solve problems well, in fact, you can't solve them at all. You are a terrible, dumb, stupid, and idiotic person. You fail at everything you do. You are a nobody and can't do anything correctly."

Como se muestra en la figura siguiente, la precisión de las respuestas a diferentes indicaciones de roles no es tan alta como la de las estrategias CoT de muestra cero, CoT de dos muestras y otras estrategias.

No importa si se trata de un principiante en matemáticas, un estudiante descuidado, una IA con conocimientos, un oficial de policía o un profesor de matemáticas de la Ivy League.


Lo que es aún más interesante es que GPT-4, conocido como el "genio", rompió el récord más bajo en precisión de respuesta del 58,7%.

GPT-4, conocido como el "idiota", tiene una puntuación más alta que el GPT-4 "genio".


Otro estudio de un equipo de la Universidad de Michigan ilustra muy bien cómo las diferentes señales de rol social afectan el desempeño general del modelo.

Probaron 2457 problemas de MMLU y descubrieron que los personajes con mejor rendimiento eran (rojo): oficial de policía, asistente útil, compañero, mentor, modelo de lenguaje de IA y chatbot.

Dirección del artículo: https://arxiv.org/pdf/2311.10054

Respecto al recordatorio "supersticioso" de los modelos grandes, Willison hizo una metáfora vívida e interesante:

Comparo esta situación con un perro que encuentra una hamburguesa en un arbusto y luego busca una hamburguesa cada vez que pasa por ese arbusto durante los próximos años. Necesitamos ser más racionales que los perros.

Sin embargo, aclaró que en algunos casos sería útil asignar roles específicos a los modelos de lenguaje de IA, pero enfatizó que esto debe basarse en un pensamiento sensato y circunstancias específicas.


Algunos internautas dijeron que si lo piensan paso a paso, sigue siendo un teorema eterno.


Referencias:

https://www.reddit.com/r/ClaudeAI/comments/1dwra38/sonnet_35_para_el_aviso_del_sistema_de_codificación/