Modelos de transformadores GPT-2 124m, 345m, 774m y 1.5B de transformadores 1.5B
¿Qué es? • Instalación • Comenzando
Hecho por Rishabh Anand • https://rish-16.github.io
GPT-2 es un modelo de procesamiento del lenguaje natural desarrollado por OpenAI para la generación de texto. Es el sucesor del modelo GPT (transformador generativo previamente entrenado) entrenado en 40 GB de texto de Internet. Cuenta con un modelo de transformador que fue llamado a la luz por la atención es todo lo que necesita papel en 2017. El modelo tiene 4 versiones: 124M
, 345M
, 774M
y 1558M
, que difieren en términos de la cantidad de datos de capacitación que se le alimentan y el número de parámetros que contienen.
El modelo 1.5B es actualmente el modelo más grande disponible publicado por OpenAI.
Finalmente, gpt2-client
es un envoltorio alrededor del repositorio gpt-2
original que presenta la misma funcionalidad pero con más accesorio, comprensibilidad y utilidad. Puedes jugar con los cuatro modelos GPT-2 en menos de cinco líneas de código.
*Nota : Este envoltorio de cliente de ninguna manera es responsable de ningún daño causado directa o indirectamente. Cualquier nombre, lugar y objetos a los que se hace referencia por el modelo es ficticio y no se parecen a las entidades u organizaciones de la vida real. Las muestras no se filtraron y pueden contener contenido ofensivo. Recreción del usuario aconsejada.*
Instale el cliente a través de pip
. Idealmente, gpt2-client
es bien admitido para Python> = 3.5 y TensorFlow> = 1.x. Es posible que algunas bibliotecas deban reinstalarse o actualizarse utilizando el indicador --upgrade
a través de pip
si se usa Python 2.x.
pip install gpt2-client
Nota:
gpt2-client
no es compatible con TensorFlow 2.0, prueba TensorFlow 1.14.0
1. Descargue los pesos del modelo y los puntos de control
from gpt2_client import GPT2Client
gpt2 = GPT2Client ( '124M' ) # This could also be `355M`, `774M`, or `1558M`. Rename `save_dir` to anything.
gpt2 . load_model ( force_download = False ) # Use cached versions if available.
Esto crea un directorio llamado models
en el directorio de trabajo actual y descarga los pesos, los puntos de control, el modelo JSON y los hiperparametros requeridos por el modelo. Una vez que haya llamado a la función load_model()
, no necesita llamarla nuevamente suponiendo que los archivos hayan terminado de descargar en el directorio models
.
Nota: Establezca
force_download=True
para sobrescribir los pesos del modelo en caché existente y los puntos de control
2. Comience a generar texto!
from gpt2_client import GPT2Client
gpt2 = GPT2Client ( '124M' ) # This could also be `355M`, `774M`, or `1558M`
gpt2 . load_model ()
gpt2 . generate ( interactive = True ) # Asks user for prompt
gpt2 . generate ( n_samples = 4 ) # Generates 4 pieces of text
text = gpt2 . generate ( return_text = True ) # Generates text and returns it in an array
gpt2 . generate ( interactive = True , n_samples = 3 ) # A different prompt each time
Puede ver de la muestra mencionada anteriormente que las opciones de generación son altamente flexibles. Puede mezclar y combinar según el tipo de texto que necesita generarse, ya sea múltiples fragmentos o uno a la vez con indicaciones.
3. Generar texto a partir de lotes de indicaciones
from gpt2_client import GPT2Client
gpt2 = GPT2Client ( '124M' ) # This could also be `355M`, `774M`, or `1558M`
gpt2 . load_model ()
prompts = [
"This is a prompt 1" ,
"This is a prompt 2" ,
"This is a prompt 3" ,
"This is a prompt 4"
]
text = gpt2 . generate_batch_from_prompts ( prompts ) # returns an array of generated text
4. Ajuste GPT-2 a conjuntos de datos personalizados
from gpt2_client import GPT2Client
gpt2 = GPT2Client ( '124M' ) # This could also be `355M`, `774M`, or `1558M`
gpt2 . load_model ()
my_corpus = './data/shakespeare.txt' # path to corpus
custom_text = gpt2 . finetune ( my_corpus , return_text = True ) # Load your custom dataset
Para ajustar GPT-2 a su corpus personalizado o conjunto de datos, es ideal tener una GPU o TPU a mano. Google Colab es una de esas herramientas que puede utilizar para volver a entrenar/ajustar su modelo personalizado.
5. Secuencias de texto de codificación y decodificación
from gpt2_client import GPT2Client
gpt2 = GPT2Client ( '124M' ) # This could also be `355M`, `774M`, or `1558M`
gpt2 . load_model ()
# encoding a sentence
encs = gpt2 . encode_seq ( "Hello world, this is a sentence" )
# [15496, 995, 11, 428, 318, 257, 6827]
# decoding an encoded sequence
decs = gpt2 . decode_seq ( encs )
# Hello world, this is a sentence
¡Las sugerencias, mejoras y mejoras son siempre bienvenidas! Si tiene algún problema, plantee uno en la sección de problemas. Si tiene una mejora, presente un tema para discutir la sugerencia antes de crear un PR.
Todas las ideas, no importa cuán indignante, ¡bienvenido!
El código abierto es muy divertido. Tus donaciones me motivan a dar vida a nuevas ideas. Si está interesado en apoyar mis esfuerzos de código abierto, por favor done, ¡significa mucho para mí!
MIT