recogna commited on
Commit
3d77784
·
1 Parent(s): 094c9d4

Update README.md

Browse files
Files changed (1) hide show
  1. README.md +131 -0
README.md CHANGED
@@ -1,3 +1,134 @@
1
  ---
2
  license: mit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3
  ---
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
  ---
2
  license: mit
3
+ language:
4
+ - pt
5
+ - en
6
+ metrics:
7
+ - accuracy
8
+ - f1
9
+ - precision
10
+ - recall
11
+ pipeline_tag: text-generation
12
+ tags:
13
+ - LLM
14
+ - Portuguese
15
+ - Bode
16
+ - Alpaca
17
+ - Llama 2
18
+ - Q&A
19
+ library_name: peft
20
  ---
21
+
22
+ # BODE
23
+
24
+ <!--- PROJECT LOGO -->
25
+ <p align="center">
26
+ <img src="https://huggingface.co/recogna-nlp/bode-7b-alpaca-pt-br/resolve/main/Logo_Bode_LLM_Circle.png" alt="Bode Logo" width="400" style="margin-left:'auto' margin-right:'auto' display:'block'"/>
27
+ </p>
28
+
29
+ Bode é um modelo de linguagem (LLM) para o português desenvolvido a partir do modelo Llama 2 por meio de fine-tuning no dataset Alpaca, traduzido para o português pelos autores do [Cabrita](https://huggingface.co/22h/cabrita-lora-v0-1). Este modelo é projetado para tarefas de processamento de linguagem natural em português, como geração de texto, tradução automática, resumo de texto e muito mais.
30
+
31
+ ## Detalhes do Modelo
32
+
33
+ - **Modelo Base:** Llama 2
34
+ - **Dataset de Treinamento:** Alpaca
35
+ - **Idioma:** Português
36
+
37
+ ## Versões disponíveis
38
+
39
+ | Quantidade de parâmetros | Modelo |
40
+ | :-: | :-: |
41
+ | 7b |[recogna-nlp/bode-7b-alpaca-pt-br](https://huggingface.co/recogna-nlp/bode-7b-alpaca-pt-br) |
42
+ | 13b |[recogna-nlp/bode-13b-alpaca-pt-br](https://huggingface.co/recogna-nlp/bode-13b-alpaca-pt-br)|
43
+
44
+ ## Uso
45
+
46
+ Você pode usar o Bode facilmente com a biblioteca Transformers do HuggingFace. Aqui está um exemplo simples de como carregar o modelo e gerar texto:
47
+
48
+ ```python
49
+ from transformers import AutoModelForCausalLM, AutoTokenizer, GenerationConfig
50
+ from peft import PeftModel, PeftConfig
51
+
52
+ llm_model = 'recogna-nlp/bode-7b-alpaca-pt-br'
53
+ config = PeftConfig.from_pretrained(llm_model)
54
+ model = AutoModelForCausalLM.from_pretrained(config.base_model_name_or_path, trust_remote_code=True, return_dict=True, load_in_8bit=True, device_map='auto')
55
+ tokenizer = AutoTokenizer.from_pretrained(config.base_model_name_or_path)
56
+ model = PeftModel.from_pretrained(model, llm_model)
57
+ model.eval()
58
+
59
+ #Testando geração de texto
60
+
61
+ def generate_prompt(instruction, input=None):
62
+ if input:
63
+ 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.
64
+
65
+ ### Instrução:
66
+ {instruction}
67
+
68
+ ### Entrada:
69
+ {input}
70
+
71
+ ### Resposta:"""
72
+ else:
73
+ return f"""Abaixo está uma instrução que descreve uma tarefa. Escreva uma resposta que complete adequadamente o pedido.
74
+
75
+ ### Instrução:
76
+ {instruction}
77
+
78
+ ### Resposta:"""
79
+
80
+ generation_config = GenerationConfig(
81
+ temperature=0.2,
82
+ top_p=0.75,
83
+ num_beams=4,
84
+ )
85
+
86
+ def evaluate(instruction, input=None):
87
+ prompt = generate_prompt(instruction, input)
88
+ inputs = tokenizer(prompt, return_tensors="pt")
89
+ input_ids = inputs["input_ids"].cuda()
90
+ generation_output = model.generate(
91
+ input_ids=input_ids,
92
+ generation_config=generation_config,
93
+ return_dict_in_generate=True,
94
+ output_scores=True,
95
+ max_new_tokens=256
96
+ )
97
+ for s in generation_output.sequences:
98
+ output = tokenizer.decode(s)
99
+ print("Resposta:", output.split("### Resposta:")[1].strip())
100
+
101
+ evaluate("Responda com detalhes: O que é um bode?")
102
+ #Exemplo de resposta obtida (pode variar devido a temperatura): Um bode é um animal do gênero Bubalus, da família Bovidae, que é um membro da ordem Artiodactyla. Os bodes são mamíferos herbívoros que são nativos da Ásia, África e Europa. Eles são conhecidos por seus cornos, que podem ser usados para defesa e como uma ferramenta.
103
+ ```
104
+
105
+ ## Treinamento e Dados
106
+
107
+ O modelo Bode foi treinado por fine-tuning a partir do modelo Llama 2 usando o dataset Alpaca em português. O treinamento foi realizado no Supercomputador Santos Dumont do LNCC, através do projeto da Fundunesp 2019/00697-8.
108
+
109
+ ## Contribuições
110
+
111
+ Contribuições para a melhoria deste modelo são bem-vindas. Sinta-se à vontade para abrir problemas e solicitações pull.
112
+
113
+ ## Agradecimentos
114
+
115
+ Agradecemos ao Laboratório Nacional de Computação Científica (LNCC/MCTI, Brasil) por prover os recursos de CAD do supercomputador SDumont.
116
+
117
+ ## Contato
118
+
119
+ Para perguntas, sugestões ou colaborações, entre em contato com [[email protected]].
120
+
121
+ ## Citação
122
+
123
+ Se você usar o modelo de linguagem Bode em sua pesquisa ou projeto, por favor, cite-o da seguinte maneira:
124
+
125
+ ```
126
+ @misc{bode7b_2023,
127
+ author = { GARCIA, Gabriel Lino and PAIOLA, Pedro Henrique and MORELLI, Luis Henrique and CANDIDO, Giovani and CANDIDO JUNIOR, Arnaldo and JODAS, Danilo Samuel and GUILHERME, Ivan Rizzo and PAPA, João Paulo and PENTEADO, Bruno Elias},
128
+ title = { {BODE-7b} },
129
+ year = 2023,
130
+ url = { https://huggingface.co/recogna-nlp/bode-7b-alpaca-pt-br},
131
+ doi = { 10.57967/hf/1298 },
132
+ publisher = { Hugging Face }
133
+ }
134
+ ```