Este repositorio facilita el entrenamiento de un modelo de lenguaje a nivel de caracteres o de palabras basado únicamente en los mensajes de chat de WhatsApp. Después del entrenamiento del modelo, se puede iniciar una conversación sintética con los capacitados en el grupo de chat de Whatsapp.
assets/input/chat.txt
es solo un marcador de posición, que debe reemplazarse con el corpus real de mensajes de chat. |-- assets
| |-- input
| | |-- chat.txt
| |-- output
| | |-- contacts.txt
| | |-- vocab.txt
| | |-- train.pt
| | |-- valid.pt
| |-- models
| | |--model.pt
|-- src
| |-- chat.py
| |-- model.py
| |-- preprocess.py
| |-- train.py
| |-- utils.py
|-- config.py
|-- run.py
assets/input/chat.txt:
el archivo de entrada debe ser un chat de WhatsApp exportado (sin medios).assets/output/:
Los datos codificados de entrenamiento/validación y el modelo entrenado se escribirán en esta ubicación.assets/models/model.pt:
objeto modelo pytorch entrenado.src/preprocess.py:
convierte mensajes de chat en tensores PyTorch codificados. Los datos se dividen en conjuntos de entrenamiento y validación.src/model.py:
define la clase del modelo de lenguaje.src/train.py:
contiene código para entrenar el modelo de lenguaje.src/chat.py:
Contiene la función para la interacción conversacional con el modelo.src/utils.py:
otras funciones de utilidad útiles.run.py:
el script principal con un analizador de argumentos para llamar a cualquiera de las tres acciones ("preproceso", "entrenamiento", "chat").config.py:
se registran los parámetros para el preprocesamiento y el entrenamiento del modelo. git clone https://github.com/bernhard-pfann/lad-gpt.git
cd lad-gpt
pip install -r requirements.txt
Para utilizar este proyecto por completo, necesitará un archivo .txt que contenga mensajes de un chat de WhatsApp. Estos son los pasos para exportar su chat grupal de WhatsApp a un archivo .txt:
Una vez que tenga el archivo .txt, colóquelo en el directorio assets/input
, llamado chat.txt
. ¡Entonces estás listo para comenzar!
Una vez que los datos de entrada están en su lugar, los chats deben codificarse en tensores numéricos. Los datos codificados también se dividen en conjuntos de entrenamiento y validación:
python run.py preprocess
Entrenar un modelo de lenguaje desde cero y basándose únicamente en los datos codificados del chat. Configure --update
en caso de que desee continuar entrenando un modelo que ya existe.
python run.py train --update
Para iniciar un chat con el modelo entrenado:
python run.py chat