rhaymison commited on
Commit
03b916e
1 Parent(s): d36ef28

Update README.md

Browse files
Files changed (1) hide show
  1. README.md +152 -1
README.md CHANGED
@@ -1 +1,152 @@
1
- [{'generated_text': '<|begin_of_text|><|start_header_id|>system<|end_header_id|>\nAbaixo está uma instrução que descreve uma tarefa, juntamente com uma entrada que fornece mais contexto. Escreva uma resposta que complete adequadamente o pedido.<|eot_id|><|start_header_id|>user<|end_header_id|>\naja como um professor de matemática e me explique porque 2 + 2 = 4.<|eot_id|><|start_header_id|>assistant\n\nMeu aluno, é um prazer explicar um conceito fundamental da matemática!\n\nA equação 2 + 2 = 4 pode parecer simples, mas é importante entender por quê ela é verdadeira. Em matemática, a adição é uma operação que combina dois números para obter um resultado. Nesse caso, estamos adicionando 2 e 2.\n\nPara entender melhor, vamos começar com um exemplo concreto. Imagine que você tem 2 maçãs em uma mesa e seu amigo também tem 2 maçãs em outra mesa. Se você e seu amigo combinam suas maçãs, você terá agora 4 maçãs.\n\nAgora, vamos usar símbolos para representar essa situação. Podemos escrever 2 + 2 =?, e o resultado é 4. Isso significa que quando você soma 2 e 2, o resultado é 4.\n\nMas por quê isso é verdade? Isso é porque a adição é uma operação que segue certas regras. Uma dessas regras é que a ordem em que você soma os números não muda o resultado. Isso significa que 2 + 2 é igual a 2 + 2, independentemente da ordem em que você soma.\n\nAlém disso, a adição também é uma operação que é associativa, o que significa que você pode adicionar números em qualquer ordem e o resultado será o mesmo. Por exemplo, (2 + 2) + 0 = 2 + (2 + 0). Isso é verdade porque a adição é uma operação que é idempotente, o que significa que adicionando 0 a um número não muda o resultado.\n\nPortanto, quando você soma 2 e 2, o resultado é 4 porque a adição segue essas regras. A equação 2 + 2 = 4 é verdadeira porque é uma consequência lógica da definição da adição e das regras que a governam.\n\nEspero que isso tenha ajudado a entender melhor por quê 2 + 2 = 4, meu aluno!'}]
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ language:
3
+ - pt
4
+ license: apache-2.0
5
+ library_name: transformers
6
+ tags:
7
+ - portugues
8
+ - portuguese
9
+ - QA
10
+ - instruct
11
+ base_model: meta-llama/Meta-Llama-3-8B-Instruct
12
+ datasets:
13
+ - rhaymison/superset
14
+ pipeline_tag: text-generation
15
+ ---
16
+
17
+ # Llama-3-portuguese-Tom-cat-8b-instruct
18
+
19
+ <p align="center">
20
+ <img src="https://raw.githubusercontent.com/rhaymisonbetini/huggphotos/main/tom-cat-8b.webp" width="50%" style="margin-left:'auto' margin-right:'auto' display:'block'"/>
21
+ </p>
22
+
23
+
24
+ This model was trained with a superset of 300,000 chat in Portuguese.
25
+ The model comes to help fill the gap in models in Portuguese. Tuned from the Llama3 8B, the model was adjusted mainly for chat.
26
+
27
+ # How to use
28
+
29
+ ### FULL MODEL : A100
30
+ ### HALF MODEL: L4
31
+ ### 8bit or 4bit : T4 or V100
32
+
33
+ You can use the model in its normal form up to 4-bit quantization. Below we will use both approaches.
34
+ Remember that verbs are important in your prompt. Tell your model how to act or behave so that you can guide them along the path of their response.
35
+ Important points like these help models (even smaller models like 8b) to perform much better.
36
+
37
+ ```python
38
+ !pip install -q -U transformers
39
+ !pip install -q -U accelerate
40
+ !pip install -q -U bitsandbytes
41
+
42
+ from transformers import AutoModelForCausalLM, AutoTokenizer, TextStreamer
43
+ model = AutoModelForCausalLM.from_pretrained("rhaymison/Llama-3-portuguese-Tom-cat-8b-instruct", device_map= {"": 0})
44
+ tokenizer = AutoTokenizer.from_pretrained("rhaymison/Llama-3-portuguese-Tom-cat-8b-instruct")
45
+ model.eval()
46
+
47
+ ```
48
+
49
+ You can use with Pipeline.
50
+ ```python
51
+
52
+ from transformers import pipeline
53
+ pipe = pipeline("text-generation",
54
+ model=model,
55
+ tokenizer=tokenizer,
56
+ do_sample=True,
57
+ max_new_tokens=512,
58
+ num_beams=2,
59
+ temperature=0.3,
60
+ top_k=50,
61
+ top_p=0.95,
62
+ early_stopping=True,
63
+ pad_token_id=tokenizer.eos_token_id,
64
+ )
65
+
66
+
67
+ def format_prompt(question:str):
68
+ system_prompt = "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."
69
+
70
+ return f"""<|begin_of_text|><|start_header_id|>system<|end_header_id|>
71
+ { system_prompt }<|eot_id|><|start_header_id|>user<|end_header_id|>
72
+ { question }<|eot_id|><|start_header_id|>assistant<|end_header_id|>"""
73
+
74
+ prompt = format_prompt("Me fale sobra a OAB, Ordem dos Advogados do Brasil")
75
+ result = pipe(prompt)
76
+ result[0]["generated_text"].split("assistant<|end_header_id|>")[1]
77
+
78
+
79
+
80
+ #A Ordem dos Advogados do Brasil (OAB) é a entidade responsável por regulamentar e fiscalizar a profissão de advogado no Brasil.
81
+ #Foi criada em 1930, com o objetivo de proteger os direitos e interesses dos advogados e da sociedade, garantindo a defesa dos direitos e garantias fundamentais.
82
+ #A OAB é uma entidade de direito público, com personalidade jurídica própria, e é composta por advogados e advogadas que atuam em todo o território nacional.
83
+ #A entidade é dirigida por um Conselho Federal, que é o órgão máximo da OAB, e é composto por 32 membros, eleitos por votação direta dos advogados e advogadas.
84
+ #A OAB tem como principais atribuições:. Regulamentar a profissão de advogado: a OAB estabelece as normas e regulamentações para a formação, habilitação e exercício
85
+ #a profissão de advogado no Brasil. Fiscalizar a atividade dos advogados: a OAB fiscaliza a atividade dos advogados, verificando se eles atendem às normas e
86
+ #regulamentações estabelecidas.. Defender os direitos e interesses dos advogados: a OAB defende os direitos e interesses dos advogados, garantindo que eles
87
+ #possam exercer sua profissão com liberdade e segurança.\n4. Representar a sociedade: a OAB representa a sociedade, defendendo os direitos e interesses dos
88
+ #dadãos e das instituições.A OAB também é responsável por: Certificar a formação e habilitação dos advogados; Fiscalizar a atividade dos advogados, verificando
89
+ #se eles atendem às normas e regulamentações estabelecidas;\n* Defender os direitos e interesses dos advogados, garantindo que eles possam exercer sua profissão
90
+ #com liberdade e segurança; Representar a sociedade, defendendo os direitos e interesses dos cidadãos e das instituições.Além disso, a OAB também é responsável por:
91
+ #Publicar o Diário da Ordem dos Advogados do Brasil
92
+
93
+ ```
94
+
95
+
96
+ ```python
97
+ prompt = format_prompt("Haja como um professor de matemática e me explique porque 2 + 2 = 4")
98
+ result = pipe(prompt)
99
+ result[0]["generated_text"].split("assistant<|end_header_id|>")[1]
100
+
101
+ #Meu aluno, é um prazer explicar um conceito fundamental da matemática! equação 2 + 2 = 4 pode parecer simples, mas é
102
+ #importante entender por quê ela é verdadeira. Em matemática, a adição é uma operação que combina dois números para obter um resultado.
103
+ #Nesse caso, estamos adicionando 2 e 2. Para entender melhor, vamos começar com um exemplo concreto. Imagine que você tem 2 maçãs em uma mesa e seu amigo também tem
104
+ #2 maçãs em outra mesa. Se você e seu amigo combinam suas maçãs, você terá agora 4 maçãs.Agora, vamos usar símbolos para representar essa situação.
105
+ #Podemos escrever 2 + 2 =?, e o resultado é 4. Isso significa que quando você soma 2 e 2, o resultado é 4. Mas por quê isso é verdade? Isso é porque a adição é
106
+ #uma operação que segue certas regras. Uma dessas regras é que a ordem em que você soma os números não muda o resultado. Isso significa que 2 + 2 é igual a 2 + 2,
107
+ #independentemente da ordem em que você soma.Além disso, a adição também é uma operação que é associativa, o que significa que você pode adicionar números em
108
+ #qualquer ordem e o resultado será o mesmo. Por exemplo, (2 + 2) + 0 = 2 + (2 + 0). Isso é verdade porque a adição é uma operação que é idempotente, o que significa
109
+ #que adicionando 0 a um número não muda o resultado.Portanto, quando você soma 2 e 2, o resultado é 4 porque a adição segue essas regras. A equação 2 + 2 = 4
110
+ #é verdadeira porque é uma consequência lógica da definição da adição e das regras que a governam.Espero que isso tenha ajudado a entender melhor por quê 2 + 2 = 4,
111
+ #meu aluno!
112
+
113
+ ```
114
+
115
+
116
+ If you are having a memory problem such as "CUDA Out of memory", you should use 4-bit or 8-bit quantization.
117
+ For the complete model in colab you will need the A100.
118
+ If you want to use 4bits or 8bits, T4 or L4 will already solve the problem.
119
+
120
+ # 4bits example
121
+
122
+ ```python
123
+ from transformers import BitsAndBytesConfig
124
+ import torch
125
+ nb_4bit_config = BitsAndBytesConfig(
126
+ load_in_4bit=True,
127
+ bnb_4bit_quant_type="nf4",
128
+ bnb_4bit_compute_dtype=torch.bfloat16,
129
+ bnb_4bit_use_double_quant=True
130
+ )
131
+
132
+ model = AutoModelForCausalLM.from_pretrained(
133
+ base_model,
134
+ quantization_config=bnb_config,
135
+ device_map={"": 0}
136
+ )
137
+
138
+ ```
139
+
140
+ ### Comments
141
+
142
+ Any idea, help or report will always be welcome.
143
+
144
145
+
146
+ <div style="display:flex; flex-direction:row; justify-content:left">
147
+ <a href="https://www.linkedin.com/in/heleno-betini-2b3016175/" target="_blank">
148
+ <img src="https://img.shields.io/badge/LinkedIn-0077B5?style=for-the-badge&logo=linkedin&logoColor=white">
149
+ </a>
150
+ <a href="https://github.com/rhaymisonbetini" target="_blank">
151
+ <img src="https://img.shields.io/badge/GitHub-100000?style=for-the-badge&logo=github&logoColor=white">
152
+ </a>