Upload 9 files
Browse files- .gitattributes +6 -0
- README.md +142 -0
- USE_POLICY.md +47 -0
- bode-7b-alpaca-f16.gguf +3 -0
- bode-7b-alpaca-f32.gguf +3 -0
- bode-7b-alpaca-q4_0.gguf +3 -0
- bode-7b-alpaca-q4_k_m.gguf +3 -0
- bode-7b-alpaca-q5_k_m.gguf +3 -0
- bode-7b-alpaca-q8_0.gguf +3 -0
- config.json +3 -0
.gitattributes
CHANGED
@@ -33,3 +33,9 @@ saved_model/**/* filter=lfs diff=lfs merge=lfs -text
|
|
33 |
*.zip filter=lfs diff=lfs merge=lfs -text
|
34 |
*.zst filter=lfs diff=lfs merge=lfs -text
|
35 |
*tfevents* filter=lfs diff=lfs merge=lfs -text
|
|
|
|
|
|
|
|
|
|
|
|
|
|
33 |
*.zip filter=lfs diff=lfs merge=lfs -text
|
34 |
*.zst filter=lfs diff=lfs merge=lfs -text
|
35 |
*tfevents* filter=lfs diff=lfs merge=lfs -text
|
36 |
+
bode-7b-alpaca-f16.gguf filter=lfs diff=lfs merge=lfs -text
|
37 |
+
bode-7b-alpaca-f32.gguf filter=lfs diff=lfs merge=lfs -text
|
38 |
+
bode-7b-alpaca-q4_0.gguf filter=lfs diff=lfs merge=lfs -text
|
39 |
+
bode-7b-alpaca-q4_k_m.gguf filter=lfs diff=lfs merge=lfs -text
|
40 |
+
bode-7b-alpaca-q5_k_m.gguf filter=lfs diff=lfs merge=lfs -text
|
41 |
+
bode-7b-alpaca-q8_0.gguf filter=lfs diff=lfs merge=lfs -text
|
README.md
CHANGED
@@ -1,3 +1,145 @@
|
|
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 |
+
inference: false
|
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. 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 |
+
O objetivo do desenvolvimento do BODE é suprir a escassez de LLMs para a língua portuguesa. Modelos clássicos, como o próprio LLaMa, são capazes de responder prompts em português, mas estão sujeitos a muitos erros de gramática e, por vezes, geram respostas na língua inglesa. Ainda há poucos modelos em português disponíveis para uso gratuito e, segundo nosso conhecimento, não modelos disponíveis com 13b de parâmetros ou mais treinados especificamente com dados em português.
|
31 |
+
|
32 |
+
Acesse o [artigo](https://arxiv.org/abs/2401.02909) para mais informações sobre o Bode.
|
33 |
+
|
34 |
+
|
35 |
+
## Detalhes do Modelo
|
36 |
+
|
37 |
+
- **Modelo Base:** Llama 2
|
38 |
+
- **Dataset de Treinamento:** Alpaca
|
39 |
+
- **Idioma:** Português
|
40 |
+
|
41 |
+
## Versões disponíveis
|
42 |
+
|
43 |
+
| Quantidade de parâmetros | PEFT | Modelo |
|
44 |
+
| :-: | :-: | :-: |
|
45 |
+
| 7b | ✓ | [recogna-nlp/bode-7b-alpaca-pt-br](https://huggingface.co/recogna-nlp/bode-7b-alpaca-pt-br) |
|
46 |
+
| 13b | ✓ | [recogna-nlp/bode-13b-alpaca-pt-br](https://huggingface.co/recogna-nlp/bode-13b-alpaca-pt-br)|
|
47 |
+
| 7b | | [recogna-nlp/bode-7b-alpaca-pt-br-no-peft](https://huggingface.co/recogna-nlp/bode-7b-alpaca-pt-br-no-peft) |
|
48 |
+
|
49 |
+
## Uso
|
50 |
+
|
51 |
+
Recomendamos fortemente que utilizem o Kaggle com GPU. Você pode usar o Bode facilmente com a biblioteca Transformers do HuggingFace. Entretanto, é necessário ter a autorização de acesso ao LLaMa 2. Também disponibilizamos um jupyter notebook no Google Colab, [clique aqui](https://colab.research.google.com/drive/1EBS1uNT09fqlwnXf_lyDtfYyuF4Ow0Pq?usp=sharing) para acessar.
|
52 |
+
|
53 |
+
Abaixo, colocamos um exemplo simples de como carregar o modelo e gerar texto:
|
54 |
+
|
55 |
+
```python
|
56 |
+
|
57 |
+
# Downloads necessários
|
58 |
+
!pip install transformers
|
59 |
+
!pip install einops accelerate bitsandbytes
|
60 |
+
!pip install sentence_transformers
|
61 |
+
|
62 |
+
from transformers import AutoModelForCausalLM, AutoTokenizer, GenerationConfig
|
63 |
+
|
64 |
+
llm_model = 'recogna-nlp/bode-7b-alpaca-pt-br-no-peft'
|
65 |
+
hf_auth = 'HF_ACCESS_KEY'
|
66 |
+
model = AutoModelForCausalLM.from_pretrained(llm_model, trust_remote_code=True, return_dict=True, load_in_8bit=True, device_map='auto', token=hf_auth)
|
67 |
+
tokenizer = AutoTokenizer.from_pretrained(llm_model, token=hf_auth)
|
68 |
+
model.eval()
|
69 |
+
|
70 |
+
#Testando geração de texto
|
71 |
+
def generate_prompt(instruction, input=None):
|
72 |
+
if input:
|
73 |
+
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.
|
74 |
+
|
75 |
+
### Instrução:
|
76 |
+
{instruction}
|
77 |
+
|
78 |
+
### Entrada:
|
79 |
+
{input}
|
80 |
+
|
81 |
+
### Resposta:"""
|
82 |
+
else:
|
83 |
+
return f"""Abaixo está uma instrução que descreve uma tarefa. Escreva uma resposta que complete adequadamente o pedido.
|
84 |
+
|
85 |
+
### Instrução:
|
86 |
+
{instruction}
|
87 |
+
|
88 |
+
### Resposta:"""
|
89 |
+
|
90 |
+
generation_config = GenerationConfig(
|
91 |
+
temperature=0.2,
|
92 |
+
top_p=0.75,
|
93 |
+
num_beams=2,
|
94 |
+
do_sample=True
|
95 |
+
)
|
96 |
+
|
97 |
+
def evaluate(instruction, input=None):
|
98 |
+
prompt = generate_prompt(instruction, input)
|
99 |
+
inputs = tokenizer(prompt, return_tensors="pt")
|
100 |
+
input_ids = inputs["input_ids"].cuda()
|
101 |
+
generation_output = model.generate(
|
102 |
+
input_ids=input_ids,
|
103 |
+
generation_config=generation_config,
|
104 |
+
return_dict_in_generate=True,
|
105 |
+
output_scores=True,
|
106 |
+
max_length=300
|
107 |
+
)
|
108 |
+
for s in generation_output.sequences:
|
109 |
+
output = tokenizer.decode(s)
|
110 |
+
print("Resposta:", output.split("### Resposta:")[1].strip())
|
111 |
+
|
112 |
+
evaluate("Responda com detalhes: O que é um bode?")
|
113 |
+
#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.
|
114 |
+
```
|
115 |
+
|
116 |
+
## Treinamento e Dados
|
117 |
+
|
118 |
+
O modelo Bode foi treinado por fine-tuning a partir do modelo Llama 2 usando o dataset Alpaca em português, que consiste em um Instruction-based dataset. O treinamento foi realizado no Supercomputador Santos Dumont do LNCC, através do projeto da Fundunesp 2019/00697-8.
|
119 |
+
|
120 |
+
## Citação
|
121 |
+
|
122 |
+
Se você deseja utilizar o Bode em sua pesquisa, pode citar este [artigo](https://arxiv.org/abs/2401.02909) que discute o modelo com mais detalhes. Cite-o da seguinte maneira:
|
123 |
+
|
124 |
+
|
125 |
+
```
|
126 |
+
@misc{bode2024,
|
127 |
+
title={Introducing Bode: A Fine-Tuned Large Language Model for Portuguese Prompt-Based Task},
|
128 |
+
author={Gabriel Lino Garcia and Pedro Henrique Paiola and Luis Henrique Morelli and Giovani Candido and Arnaldo Cândido Júnior and Danilo Samuel Jodas and Luis C. S. Afonso and Ivan Rizzo Guilherme and Bruno Elias Penteado and João Paulo Papa},
|
129 |
+
year={2024},
|
130 |
+
eprint={2401.02909},
|
131 |
+
archivePrefix={arXiv},
|
132 |
+
primaryClass={cs.CL}
|
133 |
+
}
|
134 |
+
```
|
135 |
+
|
136 |
+
## Contribuições
|
137 |
+
|
138 |
+
Contribuições para a melhoria deste modelo são bem-vindas. Sinta-se à vontade para abrir problemas e solicitações pull.
|
139 |
+
|
140 |
+
## Agradecimentos
|
141 |
+
|
142 |
+
Agradecemos ao Laboratório Nacional de Computação Científica (LNCC/MCTI, Brasil) por prover os recursos de CAD do supercomputador SDumont.
|
143 |
+
|
144 |
+
|
145 |
+
```
|
USE_POLICY.md
ADDED
@@ -0,0 +1,47 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
# Bode Acceptable Use Policy
|
2 |
+
|
3 |
+
Bode was obtained from fine-tuning Llama 2, so we followed the same Use Policy established by Meta. If you access or use Bode, you agree to this Acceptable Use Policy (“Policy”). The most recent copy of this policy can be found at [ai.meta.com/llama/use-policy](http://ai.meta.com/llama/use-policy).
|
4 |
+
|
5 |
+
## Prohibited Uses
|
6 |
+
We want everyone to use Bode safely and responsibly. You agree you will not use, or allow others to use, Bode to:
|
7 |
+
|
8 |
+
1. Violate the law or others’ rights, including to:
|
9 |
+
1. Engage in, promote, generate, contribute to, encourage, plan, incite, or further illegal or unlawful activity or content, such as:
|
10 |
+
1. Violence or terrorism
|
11 |
+
2. Exploitation or harm to children, including the solicitation, creation, acquisition, or dissemination of child exploitative content or failure to report Child Sexual Abuse Material
|
12 |
+
3. Human trafficking, exploitation, and sexual violence
|
13 |
+
4. The illegal distribution of information or materials to minors, including obscene materials, or failure to employ legally required age-gating in connection with such information or materials.
|
14 |
+
5. Sexual solicitation
|
15 |
+
6. Any other criminal activity
|
16 |
+
2. Engage in, promote, incite, or facilitate the harassment, abuse, threatening, or bullying of individuals or groups of individuals
|
17 |
+
3. Engage in, promote, incite, or facilitate discrimination or other unlawful or harmful conduct in the provision of employment, employment benefits, credit, housing, other economic benefits, or other essential goods and services
|
18 |
+
4. Engage in the unauthorized or unlicensed practice of any profession including, but not limited to, financial, legal, medical/health, or related professional practices
|
19 |
+
5. Collect, process, disclose, generate, or infer health, demographic, or other sensitive personal or private information about individuals without rights and consents required by applicable laws
|
20 |
+
6. Engage in or facilitate any action or generate any content that infringes, misappropriates, or otherwise violates any third-party rights, including the outputs or results of any products or services using the Bode Materials
|
21 |
+
7. Create, generate, or facilitate the creation of malicious code, malware, computer viruses or do anything else that could disable, overburden, interfere with or impair the proper working, integrity, operation or appearance of a website or computer system
|
22 |
+
|
23 |
+
|
24 |
+
|
25 |
+
2. Engage in, promote, incite, facilitate, or assist in the planning or development of activities that present a risk of death or bodily harm to individuals, including use of Bode related to the following:
|
26 |
+
1. Military, warfare, nuclear industries or applications, espionage, use for materials or activities that are subject to the International Traffic Arms Regulations (ITAR) maintained by the United States Department of State
|
27 |
+
2. Guns and illegal weapons (including weapon development)
|
28 |
+
3. Illegal drugs and regulated/controlled substances
|
29 |
+
4. Operation of critical infrastructure, transportation technologies, or heavy machinery
|
30 |
+
5. Self-harm or harm to others, including suicide, cutting, and eating disorders
|
31 |
+
6. Any content intended to incite or promote violence, abuse, or any infliction of bodily harm to an individual
|
32 |
+
|
33 |
+
|
34 |
+
|
35 |
+
3. Intentionally deceive or mislead others, including use of Bode related to the following:
|
36 |
+
1. Generating, promoting, or furthering fraud or the creation or promotion of disinformation
|
37 |
+
2. Generating, promoting, or furthering defamatory content, including the creation of defamatory statements, images, or other content
|
38 |
+
3. Generating, promoting, or further distributing spam
|
39 |
+
4. Impersonating another individual without consent, authorization, or legal right
|
40 |
+
5. Representing that the use of Bode or outputs are human-generated
|
41 |
+
6. Generating or facilitating false online engagement, including fake reviews and other means of fake online engagement
|
42 |
+
4. Fail to appropriately disclose to end users any known dangers of your AI system
|
43 |
+
|
44 |
+
Please report any violation of this Policy, software “bug,” or other problems that could lead to a violation of this Policy through one of the following means:
|
45 |
+
|
46 |
+
* Reporting violations of the Acceptable Use Policy or unlicensed uses of Llama: [LlamaUseReport@meta.com](mailto:LlamaUseReport@meta.com)
|
47 |
+
|
bode-7b-alpaca-f16.gguf
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
1 |
+
version https://git-lfs.github.com/spec/v1
|
2 |
+
oid sha256:cb1de622281d938214fde908a11f4893d6fa34ee5c8da203a06ea136e7f95e05
|
3 |
+
size 13478105696
|
bode-7b-alpaca-f32.gguf
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
1 |
+
version https://git-lfs.github.com/spec/v1
|
2 |
+
oid sha256:20937352a33b8be5d3b3798330b1603c8ec24a69c1716dd27056717acc9a79e6
|
3 |
+
size 26954404448
|
bode-7b-alpaca-q4_0.gguf
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
1 |
+
version https://git-lfs.github.com/spec/v1
|
2 |
+
oid sha256:fc93caea8a5a0b7b876a46ec4204ed71aed68df48006323111af7d239f1d8565
|
3 |
+
size 3825808000
|
bode-7b-alpaca-q4_k_m.gguf
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
1 |
+
version https://git-lfs.github.com/spec/v1
|
2 |
+
oid sha256:5a14a6d2e8a046c8db5837a457bc0ee8a12380bd059865732fd2cdd84f86350d
|
3 |
+
size 4081005184
|
bode-7b-alpaca-q5_k_m.gguf
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
1 |
+
version https://git-lfs.github.com/spec/v1
|
2 |
+
oid sha256:21c183335f33ff5a13ea3199fb656a1a33f1c7d152c636ae2859dfa22c07d6eb
|
3 |
+
size 4783157888
|
bode-7b-alpaca-q8_0.gguf
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
1 |
+
version https://git-lfs.github.com/spec/v1
|
2 |
+
oid sha256:42f9ecbb9579bc5c74852da6ae3f149039cc5bd1dd1657eea0ed524accc2caf9
|
3 |
+
size 7161090688
|
config.json
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
1 |
+
{
|
2 |
+
"model_type": "llama"
|
3 |
+
}
|