Este repositório facilita o treinamento de um modelo de linguagem em nível de caractere ou palavra baseado exclusivamente em mensagens de bate-papo do WhatsApp. Após o treinamento do modelo, pode-se iniciar uma conversa sintética com o treinado no grupo de chat do Whatsapp.
assets/input/chat.txt
é apenas um espaço reservado, a ser substituído pelo corpus real das mensagens 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:
O arquivo de entrada precisa ser um bate-papo do WhatsApp exportado (sem mídia).assets/output/:
Os dados codificados de treinamento/validação e o modelo treinado serão gravados neste local.assets/models/model.pt:
Objeto de modelo pytorch treinado.src/preprocess.py:
converte mensagens de bate-papo em tensores PyTorch codificados. Os dados são divididos em conjuntos de treinamento e validação.src/model.py:
Define a classe do modelo de linguagem.src/train.py:
Contém código para treinar o modelo de linguagem.src/chat.py:
Contém a função para interação conversacional com o modelo.src/utils.py:
Outras funções utilitárias úteis.run.py:
O script principal com um analisador de argumentos para chamar qualquer uma das três ações ("pré-processar", "treinar", "bate-papo").config.py:
parâmetros para pré-processamento e treinamento de modelo são registrados. git clone https://github.com/bernhard-pfann/lad-gpt.git
cd lad-gpt
pip install -r requirements.txt
Para utilizar este projeto totalmente, você precisará de um arquivo .txt que contenha mensagens de um bate-papo do WhatsApp. Aqui estão as etapas para exportar seu bate-papo em grupo do WhatsApp para um arquivo .txt:
Assim que tiver o arquivo .txt, coloque-o no diretório assets/input
, chamado chat.txt
. Então você está pronto para começar!
Depois que os dados de entrada estiverem disponíveis, os bate-papos precisam ser codificados em tensores numéricos. Os dados codificados também são divididos em conjuntos de treinamento e validação:
python run.py preprocess
Treinar um modelo de linguagem do zero e exclusivamente com base nos dados codificados do chat. Defina --update
caso queira continuar treinando um modelo já existente.
python run.py train --update
Para inicializar um chat com o modelo treinado:
python run.py chat