henryzord commited on
Commit
5178e4b
·
verified ·
1 Parent(s): b35699c

Create README.md

Browse files
Files changed (1) hide show
  1. README.md +96 -0
README.md ADDED
@@ -0,0 +1,96 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ language:
3
+ - pt
4
+ base_model:
5
+ - neuralmind/bert-base-portuguese-cased
6
+ ---
7
+ # Treino de modelos preditivos com Transformers
8
+
9
+ Este repositório usa um modelo pré-treinado, chamado [BERTimbau](https://huggingface.co/neuralmind/bert-base-portuguese-cased), e disponível no site [Hugging Face](https://huggingface.co/).
10
+
11
+ O modelo foi disponibilizado por Fábio Souza, Rodrigo Nogueira e Roberto Lotufo no artigo "BERTimbau: pretrained BERT
12
+ models for Brazilian Portuguese", publicado na Brazilian Conference in Intelligent Systems (2020). Mais informações
13
+ estão disponíveis no [repositório](https://github.com/neuralmind-ai/portuguese-bert/) do trabalho.
14
+
15
+ Este modelo foi treinado no [BrWaC (Brazilian Web as Corpus)](https://www.researchgate.net/publication/326303825_The_brWaC_Corpus_A_New_Open_Resource_for_Brazilian_Portuguese)
16
+ para três tarefas: reconhecimento de entidades nomeadas, similaridade textual de frases, e reconhecimento de implicação
17
+ textual. Aqui, ele passa por um ajuste-fino (fine-tuning) para classificação de sentimentos em 3 classes: positivo (o
18
+ texto em questão tem um sentimento positivo), negativo e neutro.
19
+
20
+ Os dados utilizados para fine-tuning são provenientes de avaliações de Ensino-Aprendizagem da UFSM de anos anteriores,
21
+ e avaliações de comentários dos Restaurantes Universitários. Todos os dados foram anonimizados antes de sua utilização
22
+ pelo modelo.
23
+
24
+ ## Bibliotecas usadas
25
+
26
+ * CUDA 12.4
27
+ * PyTorch 2.3
28
+ * PyTorch-CUDA 11.8
29
+ * Transformers 4.37.2
30
+ * datasets 2.12.0
31
+ * scikit-learn 1.4.2
32
+ * NumPy 1.24.3
33
+ * pandas 1.5.3
34
+
35
+ ## Treinamento
36
+
37
+ Para utilizar este script:
38
+
39
+ 1. A partir do diretório raiz do repositório, crie uma pasta `instance`. Dentro dela, crie uma pasta `models`.
40
+ Finalmente, dentro da pasta `models`, crie outra pasta, desta vez com o nome do modelo que será treinado. Neste
41
+ exemplo usaremos o nome `student-sentiment-analysis-multilabel`, mas você pode usar qualquer outro nome.
42
+
43
+ ```
44
+ nlp/
45
+ instance/
46
+ models/
47
+ student-sentiment-analysis-multilabel/
48
+ ```
49
+
50
+ 2. Copie-e-cole para dentro da pasta do modelo o arquivo [parameters.json](student_sentiment_analysis_multilabel.json):
51
+
52
+ ```
53
+ nlp/
54
+ instance/
55
+ models/
56
+ student-sentiment-analysis-multilabel/
57
+ parameters.json
58
+ ```
59
+
60
+ 3. Abra este arquivo em um editor de texto, e mude os parâmetros de acordo com sua preferência. Os principais parâmetros
61
+ a serem modificados são:
62
+
63
+ * use_cpu: use `true` caso você não tenha uma placa de vídeo NVIDIA compatível com CUDA. Para saber se sua placa é
64
+ compatível, execute o comando `python -c "import torch; print(torch.cuda.is_available())`; caso a saída deste
65
+ comando seja `True`, você tem uma placa de vídeo compatível e configurada.
66
+ * num_train_epochs: número de épocas para treinar o modelo. Para fazer um fine-tuning, não é necessário utilizar
67
+ muitas épocas. Modifique de acordo com sua preferência;
68
+ * train_path, val_path, test_path: caminhos para arquivos de treino, validação e teste, respectivamente. Os arquivos
69
+ devem estar no formato csv, possuírem delimitação por vírgula, texto entre aspas, e codificação UTF-8. Use caminho
70
+ absoluto.
71
+ * input_column: nome da coluna nos arquivos de treino, validação e teste que possuí o texto.
72
+ * class_name: nome das colunas que serão utilizadas como atributo-classe, uma coluna para cada rótulo. Estas colunas
73
+ devem ser binárias (i.e. valor 1 para um comentário que apresenta aquele sentimento, ou 0 em caso contrário).
74
+ * output_dir: caminho onde escrever o modelo treinado. Use um caminho absoluto para o diretório
75
+ `instance/models/<nome_do_modelo>`, e.g.
76
+ `C:\\Users\\henry\\Projects\\nlp\\instance\\models\\multilabel_two_classes`
77
+ * output_model_name: Nome do modelo. Neste tutorial, estamos usando `multilabel_two_classes`
78
+
79
+ 4. Após a configuração, e a partir da pasta raiz do diretório, execute o script [finetune.py](finetune.py),
80
+ passando como parâmetro o caminho do arquivo `parameters.json`:
81
+
82
+ ```bash
83
+ conda activate nlp
84
+ python learning/multilabel/finetune.py --parameters-path instance/models/<nome_do_modelo>/student_sentiment_analysis_multilabel.json
85
+ ```
86
+
87
+ Substitua `<nome_do_modelo>` pelo nome dado para o parâmetro `output_model_name`.
88
+
89
+ ## Predição
90
+
91
+ Para predizer valores com o modelo treinado:
92
+
93
+ ```bash
94
+ conda activate nlp
95
+ python --model-path "path_to_model" --mode annotate --dataset-path "path_to_csv"
96
+ ```