Para a construção do chatbot proposto pelo projeto, foi necessário a utilização de vários modelos de linguagem. Isso inclui a configuração, o treinamento e a aplicação deles. Em suma, três áreas de trabalho necessitam de modelos, são elas: a anotação de datasets, a geração automática de mais dados (Data Augmentation) e a implementação do robô.
No contexto da anotação, foi necessária a utilização de modelos visando adicionar agilidade e automatização no processo manual lento de rotulação de tokens, isto é, a anotação de entidades. Essa tarefa de anotar dados é demorada e custosa quando feita somente por humanos. Porém, com a utilização de modelos de linguagem, ela se torna mais rápida, barata e automatizada.
Quanto a geração de dados, também foi importante aplicar modelos, desta vez, para adicionar variabilidade aos dados produzidos. Em específico, técnicas de Data Augmentation foram atreladas a modelos de linguagem para, a partir de diálogos prévios, conceber-se novas conversas inspiradas em antigas. Assim, o desenvolvimento fim do chatbot, foi importante aplicar um modelo específico: um modelo de linguagem conversacional orientado a tarefas. Ou seja, um que fosse capaz de estabelecer um diálogo com clientes e realizar tarefas. Em essência, esse modelo, é parte principal do robô, pois é a partir dele que as ações do bot são realizadas.
Para essa implementação do robô, utilizou-se de uma transferência de aprendizado (transfer learning) aplicada em modelos apropriados. Já para as tarefas de anotação e geração de dados automaticamente, utilizou-se de modelos pre-treinados. Nos tópicos que seguem, tem-se esses modelos enumerados e explicados.
Transferência de aprendizagem multisequencial
Anotador
Data Augmentation
Avaliação
Atualmente existe publicamente uma versão do modelo GPT2-Small treinada em português. Apesar disso, esse modelo já existente foi treinado utilizando dados da Wikipedia. O tipo de dado utilizando durante o treino faz com o que o modelo aprenda apenas o estilo de escrita da Wikipedia, com textos muito formais e apenas informativos. Para acessá-lo basta clicar no link abaixo.
Modelo GPT2-Small em português já existente.
Por conta das limitações e baixa capacidade do modelo existente foi decidido que seria realizado o treinamento de um novo modelo a partir do zero, já que a quantidade de dados disponíveis para o nosso treinamento é bem maior e mais heterogenea do que a utilizada no modelo já treinado.
Para alcançar os objetivos e metas definidas para o projeto, o treinamento foi dividido em duas etapas. A primeira etapa foi o treinamento do modelo GPT2-Small, onde o modelo já apresentou melhoras quando comparado com o modelo treinado apenas com dados da Wikipedia.
Na segunda etapa o modelo GPT2-Large será treinado. Com maior capacidade de generalização é esperado que melhores resultados possam ser obtidos.
Esse modelo foi treinado com as seguintes configurações:
Parâmetro | Valor |
---|---|
Épocas | 1 |
Learning Rate | 5e-05 ~ 3.717e-9 |
Weight Decay | 0.00001 |
Embeddings | 768 |
Heads | 12 |
Layers | 12 |
Tamanho máximo sequência | 1024 |