File size: 8,715 Bytes
de2b055
07294b1
 
9342ab2
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
de2b055
07294b1
 
27e1efd
4c2faab
06a97b3
a82428e
07294b1
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2ab4718
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
07294b1
 
793d08a
 
 
 
 
 
9342ab2
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
---
language:
- pt
license: apache-2.0
model-index:
- name: legislinho
  results:
  - task:
      type: text-generation
      name: Text Generation
    dataset:
      name: ENEM Challenge (No Images)
      type: eduagarcia/enem_challenge
      split: train
      args:
        num_few_shot: 3
    metrics:
    - type: acc
      value: 63.05
      name: accuracy
    source:
      url: https://huggingface.co/spaces/eduagarcia/open_pt_llm_leaderboard?query=MagusCorp/legislinho
      name: Open Portuguese LLM Leaderboard
  - task:
      type: text-generation
      name: Text Generation
    dataset:
      name: BLUEX (No Images)
      type: eduagarcia-temp/BLUEX_without_images
      split: train
      args:
        num_few_shot: 3
    metrics:
    - type: acc
      value: 51.04
      name: accuracy
    source:
      url: https://huggingface.co/spaces/eduagarcia/open_pt_llm_leaderboard?query=MagusCorp/legislinho
      name: Open Portuguese LLM Leaderboard
  - task:
      type: text-generation
      name: Text Generation
    dataset:
      name: OAB Exams
      type: eduagarcia/oab_exams
      split: train
      args:
        num_few_shot: 3
    metrics:
    - type: acc
      value: 43.23
      name: accuracy
    source:
      url: https://huggingface.co/spaces/eduagarcia/open_pt_llm_leaderboard?query=MagusCorp/legislinho
      name: Open Portuguese LLM Leaderboard
  - task:
      type: text-generation
      name: Text Generation
    dataset:
      name: Assin2 RTE
      type: assin2
      split: test
      args:
        num_few_shot: 15
    metrics:
    - type: f1_macro
      value: 88.7
      name: f1-macro
    source:
      url: https://huggingface.co/spaces/eduagarcia/open_pt_llm_leaderboard?query=MagusCorp/legislinho
      name: Open Portuguese LLM Leaderboard
  - task:
      type: text-generation
      name: Text Generation
    dataset:
      name: Assin2 STS
      type: eduagarcia/portuguese_benchmark
      split: test
      args:
        num_few_shot: 15
    metrics:
    - type: pearson
      value: 67.76
      name: pearson
    source:
      url: https://huggingface.co/spaces/eduagarcia/open_pt_llm_leaderboard?query=MagusCorp/legislinho
      name: Open Portuguese LLM Leaderboard
  - task:
      type: text-generation
      name: Text Generation
    dataset:
      name: FaQuAD NLI
      type: ruanchaves/faquad-nli
      split: test
      args:
        num_few_shot: 15
    metrics:
    - type: f1_macro
      value: 63.8
      name: f1-macro
    source:
      url: https://huggingface.co/spaces/eduagarcia/open_pt_llm_leaderboard?query=MagusCorp/legislinho
      name: Open Portuguese LLM Leaderboard
  - task:
      type: text-generation
      name: Text Generation
    dataset:
      name: HateBR Binary
      type: ruanchaves/hatebr
      split: test
      args:
        num_few_shot: 25
    metrics:
    - type: f1_macro
      value: 72.64
      name: f1-macro
    source:
      url: https://huggingface.co/spaces/eduagarcia/open_pt_llm_leaderboard?query=MagusCorp/legislinho
      name: Open Portuguese LLM Leaderboard
  - task:
      type: text-generation
      name: Text Generation
    dataset:
      name: PT Hate Speech Binary
      type: hate_speech_portuguese
      split: test
      args:
        num_few_shot: 25
    metrics:
    - type: f1_macro
      value: 65.63
      name: f1-macro
    source:
      url: https://huggingface.co/spaces/eduagarcia/open_pt_llm_leaderboard?query=MagusCorp/legislinho
      name: Open Portuguese LLM Leaderboard
  - task:
      type: text-generation
      name: Text Generation
    dataset:
      name: tweetSentBR
      type: eduagarcia/tweetsentbr_fewshot
      split: test
      args:
        num_few_shot: 25
    metrics:
    - type: f1_macro
      value: 56.52
      name: f1-macro
    source:
      url: https://huggingface.co/spaces/eduagarcia/open_pt_llm_leaderboard?query=MagusCorp/legislinho
      name: Open Portuguese LLM Leaderboard
---
**Nome do Modelo:** Legislinho

Teste no [▶️ Colab](https://colab.research.google.com/drive/1xeGhYTUt19TJgq0tn5LAHogEfumAJ3vj?usp=sharing)

Nunca usou Google Colab? Está confuso(a)? Siga esse tutórial: [Tutotial de Como Usar Colab](https://drive.google.com/file/d/1NUXsG3A-o4octv0d7JZis-pL_w8x-atA/view?usp=sharing)

**Versão:** v0

**Descrição:** O Legislinho é um modelo de Inteligência Artificial (AI) em sua versão inicial, não pronto para produção. Ele funciona como um primeira consulta em assuntos relacionados à legislação brasileira. Foi treinado a partir do OpenHermes no vade mecum da legislação brasileira e further fine-tunned (QLoRA) em um conjunto selecionado de perguntas e respostas sobre legislação brasileira.

**Aviso:** O Legislinho não substitui de forma alguma um advogado. Seu propósito é ser um guia, um norte para pessoas que se sentem perdidas no âmbito da legislação brasileira. As respostas fornecidas pelo modelo não constituem uma consulta jurídica real.

**Dados de Treinamento:** O modelo foi treinado usando o OpenHermes no vade mecum da legislação brasileira e ajustado com um conjunto selecionado de perguntas e respostas sobre legislação brasileira.

**Características do Modelo:** O Legislinho é capaz de responder a perguntas simples sobre legislação brasileira, fornecendo informações básicas e orientações gerais.

**Limitações:** Como o modelo está em sua versão inicial, suas respostas podem não ser sempre precisas ou completas. Além disso, o Legislinho não está equipado para lidar com casos complexos ou específicos que exigem conhecimento legal especializado.

**Considerações Éticas:** O uso do Legislinho deve ser feito com responsabilidade, entendendo que suas respostas são apenas orientações gerais e não substituem uma consulta jurídica profissional.

**Uso Recomendado:** O Legislinho pode ser usado por indivíduos que procuram uma compreensão básica de assuntos legais no Brasil. É recomendável que os usuários procurem orientação legal profissional para situações específicas ou complexas.

**Inferencia:** Para executar inferencia se necessita ter os seguintes pacotes instalados:
```
(pip install / poetry add)peft accelerate bitsandbytes safetensors transformers
```
Códico completo para inferência:
```
from transformers import AutoTokenizer, AutoModelForCausalLM
model = AutoModelForCausalLM.from_pretrained('MagusCorp/legislinho')
tokenizer = AutoTokenizer.from_pretrained('MagusCorp/legislinho')
preprompt = 'Você é um agente de auxílio jurídico que não repete palavras de forma redundante e redige de forma clara concisa, como alguém formado em direito. Você não cita leis de forma alguma apenas procedimentos legais e operações. Você apenas é uma primeira consulta antes da pessoa procurar um advogado. Utilize todo o seu conhecimento da constituição brasileira para responder. Não repita a mesma informação em sua resposta. Seja assertivo. Atente-se a pergunta e elabore uma estratégia de solução do problema contemplando toda a pergunta, tal como faz um advogado. Pergunta:\n'
pospromt = "\nResposta:"

prompt = 'Minha mae vendeu a casa dela sem consultar nem um dos filhos ela pode fazer isso?'

inputs = tokenizer(preprompt+prompt+pospromt, return_tensors='pt').to('cuda')
outputs = model.generate(**inputs,max_new_tokens=1000)
answer = tokenizer.decode(outputs[0], skip_special_tokens=True)
print(answer.split(prompt)[1])
```

**Avaliação:** O modelo ainda não foi avaliado em um ambiente de produção.

**Contato:** Para mais informações ou dúvidas sobre o Legislinho, entre em contato conosco. [email](costa@maguscorp.com.br)


Se quiser ajudar o desenvolvimento do Legislinho e outros projetos no forno. Considere doar:

<a href='https://ko-fi.com/maguscorp' target='_blank'><img height='35' style='border:0px;height:46px;' src='https://az743702.vo.msecnd.net/cdn/kofi3.png?v=0' border='0' alt='Buy Me a Coffee at ko-fi.com'/>

# Open Portuguese LLM Leaderboard Evaluation Results
Detailed results can be found [here](https://huggingface.co/datasets/eduagarcia-temp/llm_pt_leaderboard_raw_results/tree/main/MagusCorp/legislinho) and on the [🚀 Open Portuguese LLM Leaderboard](https://huggingface.co/spaces/eduagarcia/open_pt_llm_leaderboard)

|          Metric          | Value  |
|--------------------------|--------|
|Average                   |**63.6**|
|ENEM Challenge (No Images)|   63.05|
|BLUEX (No Images)         |   51.04|
|OAB Exams                 |   43.23|
|Assin2 RTE                |   88.70|
|Assin2 STS                |   67.76|
|FaQuAD NLI                |   63.80|
|HateBR Binary             |   72.64|
|PT Hate Speech Binary     |   65.63|
|tweetSentBR               |   56.52|