mdba commited on
Commit
af199dd
Β·
verified Β·
1 Parent(s): 0d97150

Update README.md

Browse files
Files changed (1) hide show
  1. README.md +257 -26
README.md CHANGED
@@ -1,26 +1,257 @@
1
- ---
2
- base_model: Qwen/Qwen2.5-1.5B-Instruct
3
- base_model_relation: finetune
4
- library_name: transformers
5
- language:
6
- - pt
7
- pipeline_tag: text-generation
8
- tags:
9
- - qlora
10
- - merged
11
- - sentiment-analysis
12
- - portuguese
13
- ---
14
-
15
- # EscutIA QLoRA
16
-
17
- Modelo para classificaΓ§Γ£o de sentimentos em portuguΓͺs, treinado com QLoRA e mesclado ao modelo-base Qwen/Qwen2.5-1.5B-Instruct.
18
-
19
- Este repositΓ³rio contΓ©m os pesos completos e pode ser carregado diretamente com transformers; nΓ£o Γ© necessΓ‘rio aplicar um adapter PEFT separado.
20
-
21
- Exemplo:
22
-
23
- from transformers import AutoModelForCausalLM, AutoTokenizer
24
- model_id = "mdba/escutia-qlora"
25
- tokenizer = AutoTokenizer.from_pretrained(model_id)
26
- model = AutoModelForCausalLM.from_pretrained(model_id, device_map="auto")
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ β€”β€”β€”
2
+
3
+ base_model: Qwen/Qwen2.5-0.5B-Instruct
4
+ base_model_relation: finetune
5
+ library_name: transformers
6
+ language:
7
+
8
+ - pt
9
+ pipeline_tag: text-generation
10
+ metrics:
11
+
12
+ - accuracy
13
+ tags:
14
+
15
+ - qwen
16
+ - lora
17
+ - merged
18
+ - sentiment-analysis
19
+ - text-classification
20
+ - portuguese
21
+ - json-output
22
+ license: apache-2.0
23
+
24
+ β€”β€”β€”
25
+
26
+ # EscutIA LoRA
27
+
28
+ Modelo especializado em classificaΓ§Γ£o de sentimentos em textos escritos em portuguΓͺs.
29
+
30
+ O modelo recebe um texto e identifica o sentimento predominante entre trΓͺs classes:
31
+
32
+ - negativo
33
+ - neutro
34
+ - positivo
35
+
36
+ A resposta Γ© produzida como JSON, facilitando sua integraΓ§Γ£o com APIs, pipelines de processamento de linguagem natural e sistemas baseados em agentes.
37
+
38
+ ## VisΓ£o geral
39
+
40
+ Propriedade Valor
41
+ ━━━━━━━━━━━━━━━━━━━━━━━━ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
42
+ Modelo-base Qwen/Qwen2.5-0.5B-Instruct
43
+ ──────────────────────── ──────────────────────────────────────────
44
+ RevisΓ£o do modelo-base 7ae557604adf67be50417f59c2c2f167def9a775
45
+ ──────────────────────── ──────────────────────────────────────────
46
+ Idioma principal PortuguΓͺs
47
+ ──────────────────────── ──────────────────────────────────────────
48
+ TΓ©cnica de ajuste LoRA
49
+ ──────────────────────── ──────────────────────────────────────────
50
+ Tarefa ClassificaΓ§Γ£o de sentimentos
51
+ ──────────────────────── ──────────────────────────────────────────
52
+ Classes Negativo, neutro e positivo
53
+ ──────────────────────── ──────────────────────────────────────────
54
+ Formato de saΓ­da JSON
55
+ ──────────────────────── ──────────────────────────────────────────
56
+ Estado dos pesos LoRA mesclado ao modelo-base
57
+ ──────────────────────── ──────────────────────────────────────────
58
+ Biblioteca Transformers
59
+ ──────────────────────── ──────────────────────────────────────────
60
+ PrecisΓ£o dos pesos FP16
61
+
62
+ Este repositΓ³rio contΓ©m o modelo completo apΓ³s o merge do adapter LoRA. Portanto, nΓ£o Γ© necessΓ‘rio instalar PEFT nem carregar um adapter separadamente para realizar inferΓͺncia.
63
+
64
+ ## Resultados
65
+
66
+ O modelo foi avaliado em um conjunto congelado de 612 amostras, separado para avaliaΓ§Γ£o do projeto.
67
+
68
+ MΓ©trica Modelo-base EscutIA LoRA
69
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━ ━━━━━━━━━━━━━ ━━━━━━━━━━━━━━
70
+ AcurΓ‘cia de sentimento 40,20% 64,05%
71
+ ────────────────────────── ───────────── ──────────────
72
+ Respostas em JSON vΓ‘lido 81,54% 100,00%
73
+
74
+ O fine-tuning proporcionou um aumento de aproximadamente 23,85 pontos percentuais na acurΓ‘cia em relaΓ§Γ£o ao modelo-base.
75
+
76
+ Durante a etapa de validaΓ§Γ£o do treinamento, foram observados:
77
+
78
+ MΓ©trica Resultado
79
+ ━━━━━━━━━━━━ ━━━━━━━━━━━
80
+ eval_loss 0,0846
81
+ ──────────── ───────────
82
+ train_loss 0,0902
83
+ ──────────── ───────────
84
+ Γ‰pocas 2
85
+
86
+ > Os resultados representam o conjunto de avaliaΓ§Γ£o utilizado neste projeto e nΓ£o garantem o mesmo desempenho em outros domΓ­nios, estilos de escrita ou distribuiΓ§Γ΅es de dados.
87
+
88
+ ## Uso recomendado
89
+
90
+ O modelo foi treinado para receber instruΓ§Γ΅es no formato conversacional do Qwen. Para obter resultados consistentes, preserve o prompt e utilize geraΓ§Γ£o determinΓ­stica.
91
+
92
+ import json
93
+ from transformers import pipeline
94
+
95
+ MODEL_ID = "mdba/escutia-lora"
96
+
97
+ classificador = pipeline(
98
+ task="text-generation",
99
+ model=MODEL_ID,
100
+ device_map="auto",
101
+ )
102
+
103
+ texto = "Gostei muito do atendimento, foi excelente!"
104
+
105
+ mensagens = [
106
+ {
107
+ "role": "system",
108
+ "content": (
109
+ "VocΓͺ Γ© um roteador de sentimentos. "
110
+ "Responda somente com JSON vΓ‘lido no formato "
111
+ '{"sentimento":"negativo|neutro|positivo"}.'
112
+ ),
113
+ },
114
+ {
115
+ "role": "user",
116
+ "content": (
117
+ "Classifique o sentimento predominante do texto como negativo, "
118
+ "neutro ou positivo e responda somente com um JSON vΓ‘lido no "
119
+ 'formato {"sentimento":"<rotulo>"}.\n\n'
120
+ f"Texto: {texto}"
121
+ ),
122
+ },
123
+ ]
124
+
125
+ resultado = classificador(
126
+ mensagens,
127
+ max_new_tokens=24,
128
+ do_sample=False,
129
+ return_full_text=False,
130
+ )[0]["generated_text"]
131
+
132
+ if isinstance(resultado, list):
133
+ resultado = resultado[-1]["content"]
134
+
135
+ sentimento = json.loads(resultado)
136
+ print(sentimento)
137
+
138
+ SaΓ­da esperada:
139
+
140
+ {
141
+ "sentimento": "positivo"
142
+ }
143
+
144
+ ## Carregamento manual
145
+
146
+ TambΓ©m Γ© possΓ­vel carregar o modelo e o tokenizer diretamente com Transformers:
147
+
148
+ import torch
149
+ from transformers import AutoModelForCausalLM, AutoTokenizer
150
+
151
+ MODEL_ID = "mdba/escutia-lora"
152
+
153
+ tokenizer = AutoTokenizer.from_pretrained(MODEL_ID)
154
+
155
+ model = AutoModelForCausalLM.from_pretrained(
156
+ MODEL_ID,
157
+ dtype=torch.float16,
158
+ device_map="auto",
159
+ )
160
+
161
+ ## Formato de resposta
162
+
163
+ Quando utilizado com o prompt recomendado, o modelo deve retornar apenas:
164
+
165
+ {"sentimento":"positivo"}
166
+
167
+ O campo sentimento deve conter um destes valores:
168
+
169
+ Valor InterpretaΓ§Γ£o
170
+ ━━━━━━━━━━ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
171
+ negativo PredomΓ­nio de insatisfaΓ§Γ£o, tristeza, raiva, rejeiΓ§Γ£o ou crΓ­tica
172
+ ────────── ──────────────────────────────────────────────────────────────────
173
+ neutro Texto informativo, ambΓ­guo ou sem polaridade predominante
174
+ ────────── ──────────────────────────────────────────────────────────────────
175
+ positivo PredomΓ­nio de satisfaΓ§Γ£o, alegria, aprovaΓ§Γ£o ou elogio
176
+
177
+ Mesmo com uma taxa de 100% de JSON vΓ‘lido no conjunto avaliado, aplicaΓ§Γ΅es em produΓ§Γ£o devem validar a estrutura e os valores retornados antes de consumi-los.
178
+
179
+ ## Treinamento
180
+
181
+ O ajuste foi realizado com Supervised Fine-Tuning e LoRA sobre o modelo Qwen/Qwen2.5-0.5B-Instruct.
182
+
183
+ ### ConfiguraΓ§Γ£o principal
184
+
185
+ ParΓ’metro Valor
186
+ ━━━━━━━━━━━━━━━━━━━━━━━ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
187
+ Γ‰pocas 2
188
+ ─────────────────────── ────────────────────────────────
189
+ Learning rate 1e-4
190
+ ─────────────────────── ────────────────────────────────
191
+ Batch por dispositivo 1
192
+ ─────────────────────── ────────────────────────────────
193
+ Gradient accumulation 8
194
+ ─────────────────────── ──────────────────────────��─────
195
+ Comprimento mΓ‘ximo 256 tokens
196
+ ─────────────────────── ────────────────────────────────
197
+ LoRA rank 8
198
+ ─────────────────────── ────────────────────────────────
199
+ LoRA alpha 16
200
+ ─────────────────────── ────────────────────────────────
201
+ LoRA dropout 0,05
202
+ ─────────────────────── ────────────────────────────────
203
+ MΓ³dulos ajustados q_proj, k_proj, v_proj, o_proj
204
+ ─────────────────────── ────────────────────────────────
205
+ Scheduler Cosine
206
+ ─────────────────────── ────────────────────────────────
207
+ Otimizador AdamW
208
+ ─────────────────────── ────────────────────────────────
209
+ Seed 42
210
+
211
+ ApΓ³s o treinamento, os pesos LoRA foram incorporados ao modelo-base e salvos em FP16.
212
+
213
+ ## Casos de uso
214
+
215
+ O modelo pode ser utilizado em:
216
+
217
+ - classificaΓ§Γ£o de avaliaΓ§Γ΅es e comentΓ‘rios;
218
+ - anΓ‘lise de feedback de usuΓ‘rios;
219
+ - triagem de mensagens;
220
+ - monitoramento exploratΓ³rio de sentimento;
221
+ - roteamento de solicitaΓ§Γ΅es por polaridade;
222
+ - experimentos educacionais com fine-tuning e LoRA.
223
+
224
+ ## LimitaΓ§Γ΅es
225
+
226
+ Este Γ© um modelo experimental e possui limitaΓ§Γ΅es importantes:
227
+
228
+ - A acurΓ‘cia observada foi de 64,05%; portanto, classificaΓ§Γ΅es incorretas ainda sΓ£o esperadas.
229
+ - Ironia, sarcasmo, humor, negaΓ§Γ£o complexa e mensagens ambΓ­guas podem ser classificados incorretamente.
230
+ - Textos muito diferentes dos utilizados no treinamento podem apresentar desempenho inferior.
231
+ - O modelo classifica apenas o sentimento predominante e nΓ£o identifica mΓΊltiplos sentimentos simultΓ’neos.
232
+ - As classes disponΓ­veis sΓ£o limitadas a negativo, neutro e positivo.
233
+ - O modelo nΓ£o fornece probabilidades calibradas nem uma medida confiΓ‘vel de confianΓ§a.
234
+ - Entradas muito longas podem perder informaΓ§Γ£o relevante devido ao limite utilizado durante o treinamento.
235
+ - O modelo pode reproduzir vieses presentes no modelo-base ou nos dados de treinamento.
236
+
237
+ ## Uso responsΓ‘vel
238
+
239
+ NΓ£o utilize este modelo como ΓΊnico critΓ©rio para decisΓ΅es de alto impacto envolvendo pessoas, incluindo decisΓ΅es mΓ©dicas, financeiras, jurΓ­dicas, educacionais, trabalhistas ou de
240
+ moderaΓ§Γ£o punitiva.
241
+
242
+ Em aplicaΓ§Γ΅es sensΓ­veis, recomenda-se:
243
+
244
+ 1. validar o desempenho com dados representativos do domΓ­nio;
245
+ 2. manter revisΓ£o humana;
246
+ 3. monitorar erros por classe e grupo;
247
+ 4. registrar entradas, versΓ΅es e resultados;
248
+ 5. implementar tratamento para respostas invΓ‘lidas ou inesperadas.
249
+
250
+ ## Sobre o projeto
251
+
252
+ O EscutIA Γ© um projeto de estudo e experimentaΓ§Γ£o com modelos de linguagem, fine-tuning eficiente e classificaΓ§Γ£o estruturada de sentimentos em portuguΓͺs.
253
+
254
+ Este modelo foi desenvolvido com finalidade educacional e experimental.
255
+
256
+ A parte mais importante dessa versΓ£o Γ© que ela nΓ£o tenta vender o modelo como mais preciso do que realmente Γ©: apresenta os 64,05% de acurΓ‘cia, compara com o modelo-base,
257
+ demonstra o prompt correto e explica claramente as limitaΓ§Γ΅es. Isso transmite bem mais profissionalismo do que apenas colocar um exemplo que funciona.