paint-brush
La fuga rápida del sistema Claude Sonnet 3.5: un análisis forensepor@tyingshoelaces
5,809 lecturas
5,809 lecturas

La fuga rápida del sistema Claude Sonnet 3.5: un análisis forense

por tyingshoelaces.com9m2024/06/24
Read on Terminal Reader
Read this story w/o Javascript

Demasiado Largo; Para Leer

Un análisis forense del sistema Claude Sonnet 3.5 provocó una fuga. Los artefactos son para tareas de salida estructuradas, como la generación de código, lo que es la búsqueda de vectores, el sistema de búsqueda y recuperación para una salida definida.

Companies Mentioned

Mention Thumbnail
Mention Thumbnail

Coins Mentioned

Mention Thumbnail
Mention Thumbnail
featured image - La fuga rápida del sistema Claude Sonnet 3.5: un análisis forense
tyingshoelaces.com HackerNoon profile picture
0-item

Tabla de contenido

  • Introduciendo artefactos

    Un paso adelante en la generación de resultados estructurados.


  • Pensamiento

    El pensamiento lógico es una parte clave del proceso de generación.


  • Identificadores y búsqueda

    La búsqueda y recuperación de artefactos es una parte clave del indicador del sistema.


  • Estructura del lenguaje de plantillas

    Una plantilla de renderizado que cambiará según las variables de entrada.


  • Conclusión

    Un pequeño artefacto para Claude, un gran salto para la IA.


  • Sistema Claude 3.5

    El sistema indica en su totalidad.

Introduciendo artefactos

Un paso adelante en la generación de resultados estructurados.


Este es un análisis de la generación de mensajes del sistema para Claude 3.5 Sonnet. El enlace al código para este análisis está disponible en la parte inferior con la fuente. El foco principal de este análisis es la introducción del concepto de artefactos y cómo esto podría funcionar como parte de un sistema inteligente de categorización y recuperación.


“Los artefactos son contenidos sustanciales e independientes que los usuarios pueden modificar o reutilizar.


Un artefacto es un cambio de paradigma porque formaliza un nuevo concepto. El concepto de datos persistentes. Los datos persistentes son un trampolín para acceder a una biblioteca de contenido estructurada y altamente seleccionada. Al proporcionar referencias fijas, desbloqueamos la iteración y la capacidad de mejorar y refinar incrementalmente el resultado. Este es un paso hacia el control de la naturaleza efímera de la producción detallada de LLM.


Uno de los problemas inherentes a la IA generativa para tareas funcionales como la finalización de código es que a menudo repiten archivos completos para realizar cambios simples. Existe una gran demanda de una función de 'diferenciación', en la que mostremos la diferencia entre el antes y el después en lugar de repetir el mismo contenido.


Por tanto, los artefactos tienen un doble propósito; En primer lugar, actúan como punto de referencia sobre cómo y dónde necesitamos resultados. Esto es como el establecimiento del alcance o la definición de un punto de referencia. Esto evitará que el LLM pierda el enfoque del problema original y también mantendrá persistente la estructura y categorización en el resultado.


Como punto extra, también tenemos una función de autocompletar. Al definir el código "base" y el alcance de los cambios, ahora hemos dirigido a nuestro LLM a centrarse en una tarea o problema específico, de una manera objetiva y seleccionada. Esto detiene los cambios erráticos en el zoom y también proporciona todo el trabajo en progreso al mensaje. Cualquier ingeniero que haya borrado accidentalmente su código con "Resto del código aquí", se lo agradece. Podemos ver la configuración del alcance aquí:


“Contenido autónomo y complejo que se puede entender por sí solo, sin el contexto de la conversación.


Estamos dirigiendo el enfoque desde una salida detallada incontrolada hacia un artefacto concreto. Vale la pena señalar la instrucción explícita de ignorar el contexto de la conversación. Este es un método para garantizar la calidad mediante referencia a datos seleccionados. Es un mecanismo de control de calidad que controla las características detalladas y potencialmente aleatorias de la entrada.


Todo esto encaja con una arquitectura para la recuperación. Al tener una biblioteca profunda de artefactos seleccionados, ahora podemos dirigir nuestro sistema para que los recupere de un conjunto de datos controlado. Sabemos que todos los grandes proveedores de IA se están centrando en gran medida en invertir en datos seleccionados de alta calidad. Los artefactos son un paso hacia el marco de la entrada y salida detallada con una estructura.


Podemos ver el enfoque lejos de la entrada y el mapeo hacia la investigación definida por el sistema en el mensaje. A continuación se muestra un ejemplo de algunos de los criterios de exclusión:


“Contenido que depende del contexto conversacional actual para ser útil.

Contenido que es poco probable que el usuario modifique o repita.

Solicitud de los usuarios que parece ser una pregunta puntual.


El mensaje se centra activamente en el contexto del sistema y la tarea en cuestión. El mensaje intenta explícitamente filtrar la entrada que no es relevante para una salida muy específica. Entonces, el artefacto actúa como un punto de referencia concreto tanto en el texto generado como como datos estructurados detrás de escena. Esto nos brinda una recuperación y un enfoque rápidos y precisos. Algo que es de mucha ayuda para...

Pensamiento

El pensamiento lógico es una parte clave del proceso de generación.


Los ingenieros rápidos nos han estado diciendo durante mucho tiempo que una de las claves para obtener resultados confiables es obligar a los LLM a formar un proceso de pensamiento lógico y estructurado de varios pasos. Vemos un reconocimiento formal de esto en el aviso.


“1. Brevemente antes de invocar un artefacto, piense en una oración en las etiquetas <antthinking> sobre cómo se evalúa según los criterios de un artefacto bueno y malo. Considere si el contenido funcionaría bien sin un artefacto. Si es digno de un artefacto, en otra oración determine si es un artefacto nuevo o una actualización de uno existente (lo más común). Para actualizaciones, reutilice el identificador anterior.


Aquí, obligamos a nuestro sistema a seguir un proceso estructurado de varios pasos para analizar la tarea y el resultado. Nuevamente, avanzamos hacia una definición fuerte de contenido detallado y aludiendo a un sistema de búsqueda y recuperación de artefactos.


“<antthinking>La creación de un script de Python para calcular factoriales cumple con los criterios de un buen artefacto. Es un fragmento de código autónomo que se puede entender por sí solo y es probable que se reutilice o modifique. Esta es una conversación nueva, por lo que no hay artefactos preexistentes. Por lo tanto, estoy creando un nuevo artefacto.</antthinking>


<antthinking>Esta solicitud es una modificación directa del artefacto de calculadora factorial existente. No es un artefacto nuevo sino una actualización para hacer que el script sea más sólido. Reutilizaré el identificador de la calculadora factorial para mantener la continuidad y mostrar la evolución de nuestro código.</antthinking>


Aquí podemos ver la implementación de un proceso de pensamiento lógico para la generación de resultados definidos. Al asegurarnos de que nuestro algoritmo siga los mismos pasos lógicos, tenemos las semillas de un proceso de generación inteligente y repetible.


Podemos asignar esta lógica al proceso de pensamiento de una persona. En primer lugar, tenemos un enfoque lógico y racional para la resolución de problemas. Complementamos esto con artefactos duros. El conjunto de datos de LLM es el cerebro, pero los artefactos son las habilidades y el conocimiento que nos permiten llegar a un determinado resultado.


Si imaginamos todos los modelos en competencia, podemos deducir que se basan en la replicación de procesos de pensamiento lógico. Básicamente, estamos creando un cerebro robótico para imitar el proceso de pensamiento lógico de un humano. Estamos construyendo las partes faltantes, el conocimiento, las estructuras y los procesos de recuperación que alimentan el cerebro.


Esto hace que las indicaciones e instrucciones de los sistemas sean activos increíblemente valiosos. La comprensión y el refinamiento del "pensamiento lógico" es una parte clave del proceso de generación.


Podemos ver algunas implementaciones básicas de este pensamiento estructurado en el código...

Identificadores y búsqueda

La búsqueda y recuperación de artefactos es una parte clave del indicador del sistema.


“<antartifact identifier="factorial-script" type="application/vnd.ant.code" language="python" title="script factorial simple de Python"> def factorial(n): si n == 0: devuelve 1 en caso contrario : devolver n * factorial(n - 1)


Entonces, ¿qué es la aplicación/vnd.ant.code? La aplicación es bastante simple, VND es el proveedor, ANT será Anthropic (los creadores de Claude) y el código; Esa es una idea de su arquitectura. Esperaría algún tipo de taxonomía y datos estructurados que enumeren las tareas que las personas intentan realizar con los LLM.


  1. Tareas de codificación

  2. Presentaciones

  3. Documentos

  4. Análisis

  5. Mucho mas...


Podríamos, por ejemplo, crear algún pseudocódigo para un intento de realizar una presentación de PowerPoint.

 <antartifact identifier="powerpoint-presentation" type="application/vnd.ant.presentation" purpose="business" title="Simple powerpoint presentation"> Slide 1: Title slide Slide 2: Introduction Slide 3: Problem statement Slide 4: Solution </antartifact>


Es casi seguro que esto no se parece en nada al código de producción, sino un paradigma mental interesante. Para controlar y estructurar la salida detallada, tenemos que encontrar procesos lógicos y racionales para categorizar y estandarizar la entrada y la salida.


Sospecho que esto significa que cuando llegan entradas, ejecutan algoritmos separados y endurecidos que ejecutan la extracción y categorización de entidades. Estos datos estructurados luego se ejecutan a través de un proceso de búsqueda y recuperación de activos. Donde, para texto, utilizamos bases de datos vectoriales; para otras salidas definidas, ahora hemos introducido este concepto de artefactos. Por ejemplo, una tarea de React Code podría ser algo como esto.


 "INPUT: Create a react component for a metrics dashboard", "ENTITY_EXTRACTION: Coding, React, Metrics Dashboard", "ENTITY_SEARCH: Retrieve code artifacts for Metrics Dashboard where type = React", "SYSTEM_PROMPT: create_system_prompt(artifact_id='metrics-dashboard-component', type='application/vnd.ant.code', language='react')"


Están sucediendo muchas cosas y podemos ver los duros trabajos que se necesitan detrás de escena para seleccionar ejemplos y taxonomías de alta calidad para lo que es esencialmente un conjunto teórico ilimitado de tareas. Habrá iteraciones con otros algoritmos de clasificación de IA entre bastidores para automatizar esto.


Pero, en esencia, hasta donde podemos ver, es un elegante sistema de búsqueda y recuperación, basado en un lenguaje de plantillas propietario.

Estructura del lenguaje de plantillas

Una plantilla de renderizado que cambiará según las variables de entrada.


Comencé mi carrera hace muchos años como desarrollador Drupal. Al leer el mensaje, la palabra que me llamó la atención fue TWIG. Twig es un lenguaje de plantillas HTML que se usaba comúnmente para representar plantillas en HTML desde PHP. Es casi seguro que Claude utilizará algún enfoque equivalente que adapte la entrada y el contexto en función de datos estructurados (probablemente extraídos fuera del LLM).


Parece que Claude Sonnet 3.5 usa algo similar, lo cual tiene mucho sentido. Dada la entrada de texto al LLM, necesitamos generar sistemáticamente bloques de texto. Estas son las etiquetas dinámicas que se combinan para generar el mensaje.


  1. <antartifact></antartifact>

  2. <artifacts_info><artifacts_info/>

  3. <ejemplo></ejemplo>

  4. <consulta_usuario></consulta_usuario>

  5. <cadena_doc_ejemplo></cadena_doc_ejemplo>

  6. <respuesta_asistente></respuesta_asistente>


Esto aprovechará una especie de enfoque de llamada de funciones. Cada etiqueta tiene un propósito específico. Luego, esto sirve como una abstracción a medida que dirigimos nuestro modelo para encontrar la categoría y el tipo correctos para cada propósito específico. Me imagino que la construcción inmediata es algo como esto. Pseudocódigo masivamente especulativo entrante...


 function generate_reference() { context=artifact_type, artifact_id, task examples = search_examples_by_type('react', 'hooks', 'current_ids') return structured_data } function generate_system_instruction(structured_data) { <antartifact> <artifacts_info {{ attribute(version, '1.00') }}> <% artifact_introduction %> <% artifact_selection %> <% artifact_elimination %> <% artifact_usage %> <% artifact_instruction {{ type(code, 'data-code') }} {{ type(react, 'data-react') }} %> </ artifacts_info/> <example {{ for react_example in react_code_artifact }}>{react_example }</example> <example_docstring {{ for example_thought_process in curated_artifact_generation_example }}>{example_thought_process }<example_docstring /> <user_query>{sanitized_user_query}</user_query> <assistant_response>{sanitized_user_query}</assistant_response> </antartifact }


Ahí lo tenemos, un proceso de pensamiento dividido en bloques. Extracción de entidades mapeadas con búsqueda y recuperación avanzadas. Los componentes básicos de un proceso de pensamiento lógico. Los datos subyacentes son clave para la calidad del resultado.

Conclusión

Un pequeño artefacto para Claude, un gran salto para la IA.


Los artefactos son para una salida estructurada, como la generación de código, lo que la búsqueda de vectores es un trapo. Es el sistema de búsqueda y recuperación de resultados estructurados.


Vemos evidencia de un proceso de pensamiento estructurado y racional en Claude 3.5. Algo que siempre esperábamos que fuera importante en la IA generativa, pero esta es una prueba formal.


Puedo imaginar ejércitos de desarrolladores y especialistas en marketing construyendo bibliotecas de artefactos seleccionados. Se accede a esta biblioteca mediante tareas de clasificación y luego de búsqueda y recuperación. Pero el verdadero paso adelante es el concepto de persistencia.


Al trabajar con artefactos, tenemos puntos de referencia que existen más allá de lo efímero. Aquellos que se pueden refinar y reutilizar. Ya teníamos ideas y resultados detallados. Ahora, tenemos recuerdos y experiencia...

Sistema Claude 3.5

El aviso del sistema en su totalidad.