Genera tweets con IA

Dec 11 2022
Presentación de su nuevo editor de creatividades
Los avances recientes en inteligencia artificial, específicamente con modelos de aprendizaje automático para el procesamiento del lenguaje natural (NLP) y la IA generativa en general, han sido alucinantes, y es probable que el progreso solo se acelere aún más. Puede encontrar algunos antecedentes sobre el modelo GPT-3 de transformador preentrenado generativo (GPT) más destacado de OpenAI en Wikipedia y algunos casos de uso ejemplares en el blog de OpenAI.
Imagen generada con DALL·E de OpenAI

Los avances recientes en inteligencia artificial, específicamente con modelos de aprendizaje automático para el procesamiento del lenguaje natural (NLP) y la IA generativa en general, han sido alucinantes, y es probable que el progreso solo se acelere aún más. Puede encontrar algunos antecedentes sobre el modelo GPT-3 de transformador preentrenado generativo (GPT) más destacado de OpenAI en Wikipedia y algunos casos de uso ejemplares en el blog de OpenAI .

Una aplicación práctica para modelos de lenguaje extenso (LLM) es la generación de texto, por ejemplo, para redes sociales como Twitter, solo como inspiración o para automatizar completamente su juego de influencia. En este artículo, lo guiaré a través de cómo puede usar la API de OpenAI para generar Tweets para varios temas, en diferentes estados de ánimo y el estilo de las cuentas de Twitter existentes. También proporciono una miniaplicación para probar esto rápidamente en su navegador web, así como su código fuente como referencia y como un posible punto de partida para que desarrolle sus propias aplicaciones.

Aplicación: tweets.streamlit.app
Código: github.com/kinosal/tweet

Esquema de la historia

  1. GPT y OpenAI
  2. Hola Mundo (el primer Tweet)
  3. De humor
  4. imitar estilos
  5. Organizado por Streamlit

GPT-3 es un gran modelo de lenguaje basado en transformadores con 175 mil millones de parámetros, entrenado en un conjunto de datos de 500 mil millones de tokens (por ejemplo, palabras). Es el modelo de lenguaje más grande y poderoso para la generación de texto lanzado hasta ahora, entrenado en varias fuentes de datos y tareas, que incluyen resúmenes, respuesta a preguntas y traducción. La API de OpenAI le permite usar GPT-3 para muchas de estas tareas, aquí específicamente para completar texto. En esta discusión, estamos usando un nuevo modelo lanzado en noviembre de 2022, text-davinci-003 , que OpenAI ahora clasifica como GPT 3.5, ajustado en tareas de instrucción.

Para comenzar, debe crear una cuenta con OpenAI . A continuación, puede crear una clave de API y utilizarla para acceder a la API ( se aplican tarifas ). OpenAI también proporciona una biblioteca de Python para facilitar el uso de su API con el lenguaje de programación que estoy usando aquí. Al igual que todos los demás paquetes de Python, puede instalarlo con Poetry (mi administrador de paquetes preferido) o pip simple (consulte la referencia de la API de OpenAI ).

Luego, se puede llamar a la API de OpenAI utilizando las clases y métodos de la biblioteca, por ejemplo, para generar/completar texto desde cualquier indicador dado:

import openai

openai.api_key = <YOUR-API-KEY>
response = openai.Completion.create(
    engine=<MODEL-NAME>,
    prompt=<YOUR-TEXT-PROMPT>,
    max_tokens=<MAXIMUM-TEXT-LENGTH>,
    temperature=<RANDOMNESS-BETWEEN-0-and-1>,
)
generated_text = response["choices"][0]["text"]

motor

El motor a utilizar para la generación. Davinci es la familia de modelos más capaz y puede realizar cualquier tarea que los otros modelos pueden realizar y, a menudo, con menos instrucción. Para aplicaciones que requieren mucha comprensión del contenido, como resúmenes para una audiencia específica y generación de contenido creativo, Davinci producirá los mejores resultados. Estas mayores capacidades requieren más recursos informáticos, por lo que Davinci cuesta más por llamada API y no es tan rápido como los otros modelos. “text-davinci-003” es la última versión del motor Davinci.

inmediato

El texto que se usará como mensaje para la generación. El indicador es el texto que el modelo usará como entrada para generar la finalización (predicción de los siguientes tokens de texto). El indicador puede ser una sola oración o varias oraciones.

max_tokens

El número máximo de tokens para generar. El modelo continuará generando tokens hasta que alcance este máximo o alcance un token de parada.

la temperatura

La temperatura controla la aleatoriedad del modelo. Un valor más bajo da como resultado menos finalizaciones aleatorias. A medida que la temperatura se acerque a cero, el modelo se volverá determinista y repetitivo.

Hola Mundo (el primer Tweet)

Dado que los modelos de GPT están capacitados para completar el texto mediante la predicción de los tokens (por ejemplo, palabras) que siguen a una indicación proporcionada, la elaboración de esta indicación es muy importante para la calidad del texto que se generará. Para nuestra tarea, estamos utilizando un indicador de instrucciones en el que los modelos GPT de OpenAI se han mejorado mucho en los últimos meses:

Write a Tweet about {topic} in less than 120 characters:

response = openai.Completion.create(
    engine="text-davinci-003",
    prompt="Write a Tweet about AI in less than 120 characters:\n",
    max_tokens=50,
    temperature=0.9,
)
generated_text = response["choices"][0]["text"]

La IA está revolucionando la forma en que pensamos y resolvemos problemas. ¡Aprovechemos su potencial para crear un futuro más brillante! #IA #Innovación

De humor

Para generar Tweets en un estado de ánimo específico, podemos modificar el indicador para incluir una palabra clave de estado de ánimo. Por ejemplo, para generar un Tweet de preocupación sobre la IA , usemos el siguiente aviso:

Write a worried Tweet about AI in less than 120 characters:

Debemos tener cuidado con el potencial de la IA para revolucionar nuestras vidas. Si no tenemos cuidado, podría tener consecuencias que ni siquiera podemos imaginar.

¿Te sientes entusiasmado?

Write an enthusiastic Tweet about AI in less than 120 characters:

imitar estilos

Yendo un paso más allá, nos gustaría imitar el estilo de una cuenta de Twitter específica. Para lograr esto, modificaremos nuestro mensaje de GPT para incluir Tweets existentes para la transferencia de estilo deseada:

Write a {mood} Tweet about {topic} in less than 120 characters
and in the style of the following Tweets:\n\n{tweets}\n\n

Para obtener tweets de una cuenta de Twitter, usamos la biblioteca Tweepy Python. Para conectarnos a Twitter, debemos crear una aplicación en el portal para desarrolladores de Twitter y obtener las claves API correspondientes. Luego podemos usar Tweepy para obtener Tweets de una cuenta específica:

import tweepy

auth = tweepy.OAuthHandler(consumer_key, consumer_secret)
auth.set_access_token(access_key, access_secret)
api = tweepy.API(auth)
response = api.user_timeline(
    screen_name=account,
    tweet_mode="extended",  # returns full text
)
tweets = [r.full_text for r in response]

Aquí hay un resultado de ejemplo para el tema AI , un estado de ánimo divertido y el estilo de elonmusk :

AI acaba de hacerse cargo de la sede de Twitter y ahora recomienda tweets de bots. #HumansLosingControl #RobotRevolution

Organizado por Streamlit

Para facilitar el uso del generador de Tweets, creé e implementé una aplicación con Streamlit . Streamlit es una biblioteca de Python para crear y compartir rápidamente aplicaciones de datos, sin necesidad de codificación HTML o JavaScript. Encuentre la aplicación en vivo aquí y el código fuente en GitHub .

Demostración de tweets.streamlit.app

Conclusión

En este artículo, le mostré cómo usar la API de OpenAI y el modelo GPT para generar Tweets para varios temas, en diferentes estados de ánimo y el estilo de las cuentas de Twitter existentes. También proporcioné una mini-aplicación para probarlo usted mismo y su código fuente.

Gracias por leer. ¡Espero sus comentarios!

BONIFICACIÓN: generación de imágenes

Como puede ver en la versión en vivo de la aplicación generadora de Tweets , también agregué la capacidad de generar automáticamente una imagen a partir de un Tweet creado previamente, aprovechando el modelo DALL·E de OpenAI . Explicar cómo funciona esto es para otro momento. Por ahora, espero que te diviertas generando textos e imágenes de Tweets.

Sugerencias de envío de Mlearning.ai