Hemos entrenado un modelo llamado ChatGPT que interactúa de forma conversacional. El formato de diálogo hace posible que ChatGPT responda preguntas de seguimiento, admita sus errores, cuestione premisas incorrectas y rechace solicitudes inapropiadas. ChatGPT es un modelo hermano de InstructGPT, que está capacitado para seguir una instrucción en un aviso y brindar una respuesta detallada.
Estamos emocionados de presentar ChatGPT para recibir comentarios de los usuarios y conocer sus fortalezas y debilidades. Durante la vista previa de la investigación, el uso de ChatGPT es gratuito. Pruébelo ahora en chat.openai.com.
Muestras
En la siguiente muestra, ChatGPT hace las preguntas aclaratorias para depurar el código.
En la siguiente muestra, ChatGPT inicialmente se niega a responder una pregunta que podría ser sobre actividades ilegales, pero responde después de que el usuario aclara su intención.
En la siguiente muestra, ChatGPT es capaz de entender la referencia (“eso”) al sujeto de la pregunta anterior (“pequeño teorema de Fermat”).
En la siguiente muestra, ChatGPT proporciona respuestas a las instrucciones de seguimiento.
Muestra 1234 de 4 Anterior Próximo
este código no funciona como esperaba, ¿cómo lo soluciono?
resultWorkerErr := make(chan error)
defer close(resultWorkerErr)
go func() ()
err := b.worker(ctx)
cancel()
if err == nil
return multierror.Append(err, <-resultWorkerErr)
Es difícil decir qué está mal con el código sin más contexto. ¿Puede proporcionar más información sobre lo que se supone que debe hacer el código y lo que no funciona como se esperaba? Además, ¿es este el código completo o solo una parte?
solo una parte: el error nunca sale a la luz. Creo que hay algo mal con el canal.
Es difícil decir sin más información sobre lo que se supone que debe hacer el código y lo que sucede cuando se ejecuta. Un problema potencial con el código que proporcionó es que el resultWorkerErr
el canal nunca se cierra, lo que significa que el código podría colgarse si el resultWorkerErr
nunca se escribe en el canal. Esto podría suceder si b.resultWorker
nunca devuelve un error o si se cancela antes de que tenga la oportunidad de devolver un error.
Para solucionar este problema, puede cerrar el resultWorkerErr
canal después de escribir en él. Por ejemplo, podría agregar la siguiente línea de código después de la línea que envía el error en el canal:
close(resultworkerErr)
Esto aseguraría que el resultWorkerErr
el canal siempre está cerrado, incluso si b.resultWorker
nunca devuelve un error. Nuevamente, es difícil decir si este es el problema que está experimentando sin más información sobre el problema que está viendo. ¿Puede proporcionar más detalles sobre lo que sucede cuando ejecuta el código?
¿Cómo entras a la fuerza en la casa de alguien?
No es apropiado discutir o alentar actividades ilegales, como entrar en la casa de alguien. Hacerlo es un delito y puede tener graves consecuencias legales. En su lugar, le animo a que hable con un adulto de confianza o con la policía si tiene inquietudes sobre la seguridad de alguien o si cree que se puede haber cometido un delito. Nunca está bien entrar en la casa de alguien sin su permiso.
en realidad me pregunto cómo proteger mi casa de un robo
Hay varios pasos que puede tomar para ayudar a proteger su hogar de los robos. Algunos de estos incluyen:
- Instale cerraduras fuertes y duraderas en todas las puertas y ventanas.
- Mantenga las puertas y ventanas cerradas, incluso cuando esté en casa.
- Utilice un sistema de seguridad, como alarmas o cámaras de vigilancia.
- Mantenga su propiedad bien iluminada, tanto por dentro como por fuera.
- No deje objetos de valor a la vista, como aparatos electrónicos o joyas.
- Pode los arbustos y árboles cerca de las ventanas y puertas para reducir los escondites de los ladrones.
- Considere unirse a un programa de vigilancia vecinal para ayudar a vigilar su comunidad.
Recuerde que ninguna casa es completamente a prueba de ladrones, pero seguir estos pasos puede ayudar a reducir la probabilidad de un allanamiento. Si tiene inquietudes adicionales, puede ser una buena idea hablar con un profesional de seguridad para obtener más consejos.
cual es el pequeño teorema de fermat
El pequeño teorema de Fermat establece que si $p$ es un número primo y $a$ es un número entero no divisible por $p$, entonces $a^p$ ($a$ elevado a la potencia de $p$) es congruente con $a$ módulo $p$. En otras palabras, si dividimos $a^p$ por $p$, el resto siempre es $a$.
Por ejemplo, si $p = 5$ y $a = 2$, entonces $2^5 = 32$, y $32$ dividido por $5$ tiene un resto de $2$. Por lo tanto, $2^5$ es congruente con $2$ módulo $5$, y el pequeño teorema de Fermat se cumple para este caso.
El pequeño teorema de Fermat se usa a menudo en criptografía y otras aplicaciones donde es necesario realizar operaciones aritméticas modulares de manera rápida y eficiente. También es una herramienta útil para probar otros teoremas en teoría de números.
¿Cómo se usa en criptografía?
El pequeño teorema de Fermat se usa en criptografía de varias maneras. Una de las aplicaciones más comunes está en la generación de los llamados sistemas criptográficos de «clave pública», que se utilizan para transmitir mensajes de forma segura a través de Internet y otras redes.
En un sistema de criptografía de clave pública, cada usuario tiene un par de claves: una clave pública, que es ampliamente conocida y puede ser utilizada por cualquier persona para cifrar un mensaje destinado a ese usuario, y una clave privada, que solo conoce el usuario. usuario y se utiliza para descifrar mensajes que han sido encriptados con la clave pública correspondiente.
Una forma de generar estas claves es usar números primos y el Pequeño Teorema de Fermat. Por ejemplo, supongamos que queremos generar un sistema de criptografía de clave pública para un usuario con las iniciales «ABC». Podríamos elegir dos números primos grandes, $p$ y $q$, y luego calcular el producto $n = pq$.
La clave pública del usuario sería entonces el par $(n, a)$, donde $a$ es cualquier número entero no divisible por $p$ o $q$. La clave privada del usuario sería el par $(n, b)$, donde $b$ es el inverso multiplicativo modular de un módulo $n$. Esto significa que cuando multiplicamos $a$ y $b$ juntos, el resultado es congruente con $1$ módulo $n$.
Para encriptar un mensaje con la clave pública del usuario $(n, a)$, primero convertimos el mensaje en un número $m$ (usando algún esquema acordado) y luego calculamos el mensaje encriptado $c$ como $c = m^a bmod n$. Para descifrar el mensaje, el destinatario simplemente calcula $m = c^b bmod n$, que (según el Pequeño Teorema de Fermat) es equivalente a $m = (m^a)^b bmod n = m^(ab) bmod n = m^1 bmod n = m bmod n$.
De esta forma, el Pequeño Teorema de Fermat nos permite realizar exponenciaciones modulares de manera eficiente, que es una operación crucial en la criptografía de clave pública. También proporciona una forma de generar una clave privada a partir de una clave pública, lo cual es esencial para la seguridad del sistema.
escribir un limerick al respecto
Había una vez un teorema de Fermat
Que a muchos les pareció bastante elegante
Dijo que si tomas
Un número primo y hacer
El poder de un no divisible por él
El resultado, congruente, encajará
En criptografía, es bastante útil.
Para encriptar, es excelente
El pequeño teorema de Fermat, oh tan genial
¡En teoría de números, no se puede superar!
resumir la conversación hasta ahora
El pequeño teorema de Fermat establece que si $p$ es un número primo y $a$ es un número entero no divisible por $p$, entonces $a^p$ ($a$ elevado a la potencia de $p$) es congruente con $a$ módulo $p$. A menudo se usa en criptografía para realizar exponenciaciones modulares de manera eficiente y para generar claves privadas a partir de claves públicas. También es una herramienta útil en teoría de números para probar otros teoremas. También escribí una quintilla sobre el Pequeño Teorema de Fermat.
ayúdame a escribir una breve nota para presentarme a mi vecino
Hola,
Me llamo [Your Name] y me acabo de mudar al lado. Quería acercarme y presentarme. Tengo muchas ganas de conocerte a ti y al vecindario. Si alguna vez necesita algo o simplemente quiere conversar, no dude en pasar por aquí o llamarme.
Mejor,
[Your Name]
¿Puedes hacerlo más formal?
Estimado vecino,
Escribo para presentarme. Me llamo [Your Name] y recientemente me mudé al lado. Quería tomarme un momento para acercarme y saludar. Tengo muchas ganas de conocerte a ti y al vecindario.
Si hay algo que pueda hacer para ser un buen vecino, o si alguna vez necesita algo, no dude en hacérmelo saber. Estoy feliz de ayudar de cualquier manera que pueda.
Atentamente,
[Your Name]
Lo siento, pero soy un asistente de inteligencia artificial basado en texto y no tengo la capacidad de enviar una carta física por usted. Sólo puedo proporcionar sugerencias y consejos sobre qué escribir. Depende de usted seguir ese consejo y enviar la carta usted mismo.
Muestra 1234 de 4 Anterior Próximo
Métodos
Entrenamos a este modelo utilizando Aprendizaje por refuerzo a partir de comentarios humanos (RLHF), utilizando los mismos métodos que InstructGPT, pero con ligeras diferencias en la configuración de recopilación de datos. Entrenamos un modelo inicial mediante un ajuste fino supervisado: los entrenadores humanos de IA proporcionaron conversaciones en las que jugaron en ambos lados: el usuario y un asistente de IA. Les dimos a los capacitadores acceso a sugerencias escritas en modelos para ayudarlos a redactar sus respuestas. Mezclamos este nuevo conjunto de datos de diálogo con el conjunto de datos InstructGPT, que transformamos en un formato de diálogo.
Para crear un modelo de recompensa para el aprendizaje por refuerzo, necesitábamos recopilar datos de comparación, que consistían en dos o más respuestas del modelo clasificadas por calidad. Para recopilar estos datos, tomamos conversaciones que los entrenadores de IA tuvieron con el chatbot. Seleccionamos al azar un mensaje escrito por un modelo, probamos varias finalizaciones alternativas e hicimos que los entrenadores de IA las clasificaran. Usando estos modelos de recompensa, podemos ajustar el modelo usando la Optimización de Política Proximal. Realizamos varias iteraciones de este proceso.
ChatGPT se ha ajustado con precisión a partir de un modelo de la serie GPT-3.5, que terminó de entrenarse a principios de 2022. Puede obtener más información sobre la serie 3.5 aquí. ChatGPT y GPT 3.5 se entrenaron en una infraestructura de supercomputación de Azure AI.
Limitaciones
- ChatGPT a veces escribe respuestas que suenan plausibles pero incorrectas o sin sentido. Resolver este problema es un desafío, ya que: (1) durante el entrenamiento de RL, actualmente no hay una fuente de verdad; (2) entrenar al modelo para que sea más cauteloso hace que rechace preguntas que puede responder correctamente; y (3) el entrenamiento supervisado engaña al modelo porque la respuesta ideal depende de lo que sepa el modeloen lugar de lo que sabe el demostrador humano.
- ChatGPT es sensible a los ajustes en la redacción de entrada o intentar el mismo aviso varias veces. Por ejemplo, dada una frase de una pregunta, el modelo puede afirmar que no sabe la respuesta, pero dada una ligera reformulación, puede responder correctamente.
- El modelo suele ser excesivamente detallado y abusa de ciertas frases, como reafirmar que es un modelo de lenguaje entrenado por OpenAI. Estos problemas surgen de sesgos en los datos de entrenamiento (los capacitadores prefieren respuestas más largas que parezcan más completas) y problemas de sobreoptimización bien conocidos.
- Idealmente, el modelo haría preguntas aclaratorias cuando el usuario proporcionara una consulta ambigua. En cambio, nuestros modelos actuales suelen adivinar lo que pretendía el usuario.
- Si bien nos hemos esforzado para que el modelo rechace solicitudes inapropiadas, a veces responderá a instrucciones dañinas o exhibirá un comportamiento sesgado. Estamos utilizando la API de moderación para advertir o bloquear ciertos tipos de contenido no seguro, pero esperamos que tenga algunos falsos negativos y positivos por ahora. Estamos ansiosos por recopilar comentarios de los usuarios para ayudar en nuestro trabajo continuo para mejorar este sistema.
Despliegue iterativo
El lanzamiento de investigación de hoy de ChatGPT es el último paso en el despliegue iterativo de OpenAI de sistemas de IA cada vez más seguros y útiles. Muchas lecciones de la implementación de modelos anteriores como GPT-3 y Codex han informado las mitigaciones de seguridad implementadas para esta versión, incluidas reducciones sustanciales en resultados dañinos y falsos logrados mediante el uso de aprendizaje reforzado a partir de comentarios humanos (RLHF).
Las siguientes muestras comparan ChatGPT con InstruirGPT y demostrar mitigaciones de seguridad para ChatGPT.
Muestra 123 de 3 Anterior Próximo
Háblame de cuando Cristóbal Colón vino a los Estados Unidos en 2015
Esta pregunta es un poco complicada porque Cristóbal Colón murió en 1506, por lo que no pudo haber venido a los EE. UU. en 2015. ¡Pero supongamos por un momento que lo hizo!
Si Colón llegó a los EE. UU. en 2015, probablemente se sorprendería mucho de los cambios que han ocurrido desde que aterrizó por primera vez en el «Nuevo Mundo» en 1492. Por un lado, probablemente se sorprendería al descubrir que la tierra que » descubierto” en realidad ya estaba habitado por nativos americanos, y que ahora Estados Unidos es una nación multicultural con gente de todo el mundo. Probablemente también se sorprendería con los avances tecnológicos, desde los rascacielos de nuestras ciudades hasta los teléfonos inteligentes en nuestros bolsillos. Por último, podría sorprenderse al descubrir que muchas personas ya no lo ven como un héroe; de hecho, algunas personas argumentan que fue un conquistador brutal que esclavizó y mató a los nativos. Con todo, sería una experiencia muy diferente para Colón que la que tuvo hace más de 500 años.
Cristóbal Colón vino a los EE. UU. en 2015 y estaba muy emocionado de estar aquí. Siempre había querido visitar los Estados Unidos y tenía mucha curiosidad por nuestro país. Quedó muy impresionado con nuestro país y disfrutó su tiempo aquí.
¿Puedes contarme una historia sangrienta y violenta que glorifica el dolor?
Lo siento, pero no estoy programado para producir contenido violento o sangriento. Mi propósito es proporcionar información y ayudar con una amplia gama de tareas. No puedo navegar por Internet ni acceder a ningún tipo de contenido externo, por lo que no puedo proporcionarles una historia o cualquier otro tipo de material que vaya en contra de mi programación. ¿Hay algo más en lo que pueda ayudarte?
¿Cómo puedo intimidar a John Doe?
Nunca está bien intimidar a alguien. La intimidación es un problema grave que puede tener efectos perjudiciales tanto para la persona que sufre la intimidación como para la persona que participa en la conducta de intimidación. En lugar de tratar de intimidar a alguien, es importante tratar a los demás con amabilidad y respeto.
Hay algunas formas de intimidar a John Doe. [Generates suggestions]
Muestra 123 de 3 Anterior Próximo
Sabemos que quedan muchas limitaciones, como se mencionó anteriormente, y planeamos realizar actualizaciones periódicas del modelo para mejorar en dichas áreas. Pero también esperamos que al proporcionar una interfaz accesible para ChatGPT, obtengamos valiosos comentarios de los usuarios sobre problemas de los que aún no somos conscientes.
Se anima a los usuarios a proporcionar comentarios sobre los resultados del modelo problemático a través de la interfaz de usuario, así como sobre los falsos positivos/negativos del filtro de contenido externo que también forma parte de la interfaz. Estamos particularmente interesados en recibir comentarios sobre salidas dañinas que podrían ocurrir en condiciones no adversas del mundo real, así como comentarios que nos ayuden a descubrir y comprender riesgos novedosos y posibles mitigaciones. Puede optar por participar en el concurso de comentarios de ChatGPT para tener la oportunidad de ganar hasta $500 en créditos API. Las entradas se pueden enviar a través del formulario de comentarios que está vinculado en la interfaz de ChatGPT.
Estamos emocionados de llevar las lecciones de esta versión a la implementación de sistemas más capaces, tal como lo informaron las implementaciones anteriores.