lrds-code commited on
Commit
50eb170
1 Parent(s): eae7f76

Update README.md

Browse files
Files changed (1) hide show
  1. README.md +31 -140
README.md CHANGED
@@ -1,28 +1,23 @@
1
  ---
 
2
  language:
3
  - pt
4
- - en
5
- license: llama2
6
  library_name: transformers
7
  tags:
8
  - llama
9
  - peft
10
  - portuguese
11
  - instruct
12
- datasets:
13
- - ju-resplande/rebel-pt
14
- - paulofinardi/OIG_small_chip2_portuguese_brasil
15
- - Guilherme34/Cabrita-lora-ptbr
16
- - dominguesm/Canarim-Instruct-PTBR-Dataset
17
- pipeline_tag: text-generation
18
  model-index:
19
  - name: boana-7b-instruct
20
  results:
21
  - task:
22
  type: text-generation
23
  dataset:
24
- name: XWinograd (pt)
25
  type: Muennighoff/xwinograd
 
26
  config: pt
27
  split: test
28
  metrics:
@@ -32,7 +27,7 @@ model-index:
32
 
33
  <hr>
34
 
35
- # PT - README
36
 
37
  <hr>
38
 
@@ -57,147 +52,43 @@ Em apoio aos países de língua portuguesa.
57
  - **Licença:** Academic Free License v3.0
58
  - **Fine-tunado do modelo:** [LLaMA2-7B](https://huggingface.co/meta-llama/Llama-2-7b-chat-hf)
59
 
60
- ## Estilo do Prompt
61
-
62
- Usamos o mesmo prompt usado no fine-tune do modelo [Cabrita](https://huggingface.co/22h/cabrita-lora-v0-1). Você pode saber mais no repositório oficial no [GitHub](https://github.com/22-hours/cabrita/blob/main/notebooks/train_lora.ipynb).
63
-
64
- ## Avaliação
65
-
66
- O modelo foi avaliado no conjunto de dados [XWinograd - pt](https://huggingface.co/datasets/Muennighoff/xwinograd) que consiste em uma simples task de fill-mask. Alcançamos resultados que variaram entre 40.03 e 50.57 de acurácia, dependendo da configuração de prompt utilizada.
67
- Não foi aplicado nenhum tipo de correção na saída do modelo, apenas realizamos uma etapa de pós processamento para extração do valor de interesse.
68
-
69
  ## Como Usar
70
 
71
  ```python
72
- from transformers import AutoModelForCausalLM, AutoTokenizer, GenerationConfig
73
-
74
- def GeneratePrompt(input, instruction):
75
- if input!='' and instruction!=0:
76
- return f'''Abaixo está uma instrução que descreve uma tarefa, juntamente com uma entrada que fornece mais contexto. Escreva uma resposta que complete adequadamente o pedido.
77
- ### Instrução: {instruction}
78
- ### Entrada: {input}'''
79
- else:
80
- return f'''Abaixo está uma instrução que descreve uma tarefa. Escreva uma resposta que complete adequadamente o pedido.
81
- ### Instrução: {instruction}
82
- ### '''
83
-
84
- model_config = GenerationConfig.from_model_config(model.generation_config)
85
- model.generation_config.temperature = 0.9 # Você pode variar esse valor entre 0 e 1.
86
-
87
- model = AutoModelForCausalLM.from_pretrained('lrds-code/boana-7b-instruct')
88
- tokenizer = AutoTokenizer.from_pretrained('lrds-code/boana-7b-instruct')
89
-
90
- instruction = 'Como desenvolver habilidades de programação em python?'
91
- text = GeneratePrompt(input='', instruction=instruction)
92
- inputs = tokenizer(text, return_tensors='pt')
93
- outputs = model.generate(input_ids=inputs['input_ids'], attention_mask=inputs['attention_mask'], generation_config=model_config, repetition_penalty=1.1, do_sample=False
94
- # repetition_penalty:
95
- # Observamos que em alguns casos de entrada o modelo repetiu excessivamente algumas palavras.
96
- # Esse parâmetro é usado para tentar reduzir esse comportamento.
97
- # Atribuir um valor muito alto para esse parâmetro pode fazer com que o modelo busque excessivamente por outras palavras e, sendo assim, talvez usar palavras da língua inglesa na saída.
98
-
99
- print(tokenizer.decode(outputs[0], skip_special_tokens=True))
100
-
101
- ## Abaixo está uma instrução que descreve uma tarefa. Escreva uma resposta que complete adequadamente o pedido.
102
- ## ### Instrução:
103
- ## Como desenvolver habilidades de programação em python?
104
- ## ### Resposta:
105
- ## Aqui estão algumas dicas para aprender Python:
106
- ## 1. Comece com os fundamentos. Aprenda as principais palavras-chave e conceitos básicos, como variáveis, tipos de dados, funções, módulos, etc.
107
- ## 2. Pratique com exercícios. Experimentar com diferentes tipos de problemas pode ajudá-lo a entender melhor o idioma.
108
- ## 3. Leia documentação. Aprenda sobre as funcionalidades específicas do Python e como elas são usadas.
109
- ## 4. Use recursos on-line. Há muitos recursos disponíveis online que podem ajudá-lo a aprender Python, como cursos, tutoriales, livros, etc.
110
- ## 5. Participe de comunidades. Encontre um grupo de pessoas que compartilham seus interesses e se conectem com eles.
111
- ## 6. Faça perguntas. Se você tiver alguma dúvida ou precisar de ajuda, não hesite em perguntar.
112
- ## 7. Aprenda com outros. Aprenda com outros programadores e compartilhe suas próprias ideias.
113
- ## 8. Desenvolva projetos. Crie algo que possa ser útil para você ou para outras pessoas.
114
- ## 9. Lembre-se de que aprender é um processo contínuo. Não se esqueça de continuar praticando e aprendendo novas coisas.
115
- ## 10. Certifique-se de ter paciência. Aprender um idioma é um processo lento e exigente, mas valerá a pena.
116
- ```
117
 
118
- <hr>
119
 
120
- # EN - README
 
 
 
121
 
122
- <hr>
 
 
123
 
 
124
 
125
- # Boana-7B-Instruct
126
 
127
- <p align="center">
128
- <img width="250" alt="Boana Logo" src="https://cdn-uploads.huggingface.co/production/uploads/658c21f4c1229bf113295773/_Dc6z1IAL-zUiy0LMSSqf.png">
129
- </p>
130
-
131
- Boana-7B-Instruct is an LLM trained on portuguese language data. The model is based on [LLaMA2-7B](https://huggingface.co/meta-llama/Llama-2-7b-chat-hf), a 7B parameter version of LLaMA-2. The LLM Boana project aims to provide more LLM options in portuguese, while also providing less complex models so that users with less computational power can take advantage of the LLMs.
132
-
133
- In support of portuguese-speaking countries.
134
-
135
- <p align="center">
136
- <img width="250" alt="Countries Logo" src="https://cdn-uploads.huggingface.co/production/uploads/658c21f4c1229bf113295773/d3twZrXng5eDjg_LbH4pF.png">
137
- </p>
138
-
139
- ### Model Description
140
-
141
- - **Developed by:** [Leonardo Souza](https://huggingface.co/lrds-code)
142
- - **Model type:** LLaMA-Based
143
- - **License:** Academic Free License v3.0
144
- - **Finetuned from model:** [LLaMA2-7B](https://huggingface.co/meta-llama/Llama-2-7b-chat-hf)
145
 
146
- ## Prompt Style
 
 
 
 
 
 
147
 
148
- We used the same prompt used in the fine-tune of the [Cabrita](https://huggingface.co/22h/cabrita-lora-v0-1) model. You can find out more in the official repository on [GitHub](https://github.com/22-hours/cabrita/blob/main/notebooks/train_lora.ipynb).
149
 
150
- ## Evaluation
151
-
152
- The model was evaluated on the dataset [XWinograd - pt](https://huggingface.co/datasets/Muennighoff/xwinograd) which consists of a simple fill-mask task. We achieved results that varied between 40.03 and 50.57 accuracy, depending on the prompt configuration used.
153
- No type of correction was applied to the model output, we only carried out a post-processing step to extract the value of interest.
154
 
155
- ## How to Use
156
 
157
- ```python
158
- from transformers import AutoModelForCausalLM, AutoTokenizer, GenerationConfig
159
-
160
- def GeneratePrompt(input, instruction):
161
- if input!='' and instruction!=0:
162
- return f'''Abaixo está uma instrução que descreve uma tarefa, juntamente com uma entrada que fornece mais contexto. Escreva uma resposta que complete adequadamente o pedido.
163
- ### Instrução: {instruction}
164
- ### Entrada: {input}'''
165
- else:
166
- return f'''Abaixo está uma instrução que descreve uma tarefa. Escreva uma resposta que complete adequadamente o pedido.
167
- ### Instrução: {instruction}
168
- ### '''
169
-
170
- model_config = GenerationConfig.from_model_config(model.generation_config)
171
- model.generation_config.temperature = 0.9 # You can vary this value between 0 and 1.
172
-
173
- model = AutoModelForCausalLM.from_pretrained('lrds-code/boana-7b-instruct')
174
- tokenizer = AutoTokenizer.from_pretrained('lrds-code/boana-7b-instruct')
175
-
176
- instruction = 'Como desenvolver habilidades de programação em python?'
177
- text = GeneratePrompt(input='', instruction=instruction)
178
- inputs = tokenizer(text, return_tensors='pt')
179
- outputs = model.generate(input_ids=inputs['input_ids'], attention_mask=inputs['attention_mask'], generation_config=model_config, repetition_penalty=1.1, do_sample=False)
180
-
181
- # repetition_penalty:
182
- # We observed that in some input cases the model began to repeat words excessively in its output.
183
- # This parameter is used to try to reduce this behavior.
184
- # Setting a very high value for this parameter can cause the model to search excessively for new words and, therefore, may use English words in the output.
185
-
186
- print(tokenizer.decode(outputs[0], skip_special_tokens=True))
187
-
188
- ## Abaixo está uma instrução que descreve uma tarefa. Escreva uma resposta que complete adequadamente o pedido.
189
- ## ### Instrução:
190
- ## Como desenvolver habilidades de programação em python?
191
- ## ### Resposta:
192
- ## Aqui estão algumas dicas para aprender Python:
193
- ## 1. Comece com os fundamentos. Aprenda as principais palavras-chave e conceitos básicos, como variáveis, tipos de dados, funções, módulos, etc.
194
- ## 2. Pratique com exercícios. Experimentar com diferentes tipos de problemas pode ajudá-lo a entender melhor o idioma.
195
- ## 3. Leia documentação. Aprenda sobre as funcionalidades específicas do Python e como elas são usadas.
196
- ## 4. Use recursos on-line. Há muitos recursos disponíveis online que podem ajudá-lo a aprender Python, como cursos, tutoriales, livros, etc.
197
- ## 5. Participe de comunidades. Encontre um grupo de pessoas que compartilham seus interesses e se conectem com eles.
198
- ## 6. Faça perguntas. Se você tiver alguma dúvida ou precisar de ajuda, não hesite em perguntar.
199
- ## 7. Aprenda com outros. Aprenda com outros programadores e compartilhe suas próprias ideias.
200
- ## 8. Desenvolva projetos. Crie algo que possa ser útil para você ou para outras pessoas.
201
- ## 9. Lembre-se de que aprender é um processo contínuo. Não se esqueça de continuar praticando e aprendendo novas coisas.
202
- ## 10. Certifique-se de ter paciência. Aprender um idioma é um processo lento e exigente, mas valerá a pena.
203
- ```
 
1
  ---
2
+ license: llama2
3
  language:
4
  - pt
5
+ pipeline_tag: text-generation
 
6
  library_name: transformers
7
  tags:
8
  - llama
9
  - peft
10
  - portuguese
11
  - instruct
12
+
 
 
 
 
 
13
  model-index:
14
  - name: boana-7b-instruct
15
  results:
16
  - task:
17
  type: text-generation
18
  dataset:
 
19
  type: Muennighoff/xwinograd
20
+ name: XWinograd (pt)
21
  config: pt
22
  split: test
23
  metrics:
 
27
 
28
  <hr>
29
 
30
+ # README
31
 
32
  <hr>
33
 
 
52
  - **Licença:** Academic Free License v3.0
53
  - **Fine-tunado do modelo:** [LLaMA2-7B](https://huggingface.co/meta-llama/Llama-2-7b-chat-hf)
54
 
 
 
 
 
 
 
 
 
 
55
  ## Como Usar
56
 
57
  ```python
58
+ import torch
59
+ from transformers import pipeline
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
60
 
61
+ samba = pipeline('text-generation', model='lrds-code/samba-1.1B', torch_dtype=torch.bfloat16, device_map='auto')
62
 
63
+ messages = [{'role':'system',
64
+ 'content':''},
65
+ {'role':'user',
66
+ 'content':'Quantos planetas existem no sistema solar?'}]
67
 
68
+ prompt = samba.tokenizer.apply_chat_template(messages, tokenize=False, add_generation_prompt=True)
69
+ outputs = samba(prompt, max_new_tokens=256, do_sample=False, temperature=0.1, top_k=50, top_p=0.95, repetition_penalty=1.1, do_sample=False)
70
+ print(outputs[0]['generated_text'])
71
 
72
+ # <s>[INST] <<SYS>>
73
 
74
+ # <</SYS>>
75
 
76
+ # Quantos planetas existem no sistema solar? [/INST] O sistema solar consiste em 8 planetas:
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
77
 
78
+ # 1. Mercurio
79
+ # 2. Vênus
80
+ # 3. Terra
81
+ # 4. Marte
82
+ # 5. Júpiter
83
+ # 6. Saturno
84
+ # 8. Netuno
85
 
86
+ # Além desses planetas, o sistema solar também inclui outros corpos celestes, como asteroides, cometas e anões, bem como várias luas e satélites naturais
87
 
88
+ ```
 
 
 
89
 
90
+ ## Parâmetros Importantes
91
 
92
+ - **repetition_penalty:** é utilizado para evitar a repetição de palavras ou frases. Quando esse valor é ajustado para ser maior que 1, o modelo tenta diminuir a probabilidade de gerar palavras que já apareceram anteriormente. Basicamente, quanto maior o valor, mais o modelo tenta evitar repetições.
93
+ - **do_sample:** determina se o modelo deve ou não amostrar aleatoriamente a próxima palavra com base nas probabilidades calculadas. Portanto, **do_sample=True** introduz variação e imprevisibilidade no texto gerado, enquanto que se **do_sample=False** o modelo escolherá sempre a palavra mais provável como próxima palavra, o que pode levar a saídas mais determinísticas e, possivelmente, mais repetitivas.
94
+ - **temperature:** afeta a aleatoriedade na escolha da próxima palavra. Um valor baixo (próximo de 0) faz com que o modelo seja mais "confiante" nas suas escolhas, favorecendo palavras com alta probabilidade e levando a saídas mais previsíveis. Por outro lado, um valor alto aumenta a aleatoriedade, permitindo que o modelo escolha palavras menos prováveis, o que pode tornar o texto gerado mais variado e criativo.