Update README.md
Browse files
README.md
CHANGED
@@ -47,21 +47,28 @@ O objetivo do desenvolvimento do BODE é suprir a escassez de LLMs para a língu
|
|
47 |
|
48 |
## Uso
|
49 |
|
50 |
-
Você pode usar o Bode facilmente com a biblioteca Transformers do HuggingFace.
|
51 |
|
52 |
```python
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
53 |
from transformers import AutoModelForCausalLM, AutoTokenizer, GenerationConfig
|
54 |
from peft import PeftModel, PeftConfig
|
55 |
|
56 |
llm_model = 'recogna-nlp/bode-7b-alpaca-pt-br'
|
|
|
57 |
config = PeftConfig.from_pretrained(llm_model)
|
58 |
-
model = AutoModelForCausalLM.from_pretrained(config.base_model_name_or_path, trust_remote_code=True, return_dict=True, load_in_8bit=True, device_map='auto')
|
59 |
-
tokenizer = AutoTokenizer.from_pretrained(config.base_model_name_or_path)
|
60 |
-
model = PeftModel.from_pretrained(model, llm_model)
|
61 |
model.eval()
|
62 |
|
63 |
#Testando geração de texto
|
64 |
-
|
65 |
def generate_prompt(instruction, input=None):
|
66 |
if input:
|
67 |
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.
|
@@ -84,7 +91,8 @@ def generate_prompt(instruction, input=None):
|
|
84 |
generation_config = GenerationConfig(
|
85 |
temperature=0.2,
|
86 |
top_p=0.75,
|
87 |
-
num_beams=
|
|
|
88 |
)
|
89 |
|
90 |
def evaluate(instruction, input=None):
|
@@ -96,7 +104,7 @@ def evaluate(instruction, input=None):
|
|
96 |
generation_config=generation_config,
|
97 |
return_dict_in_generate=True,
|
98 |
output_scores=True,
|
99 |
-
|
100 |
)
|
101 |
for s in generation_output.sequences:
|
102 |
output = tokenizer.decode(s)
|
|
|
47 |
|
48 |
## Uso
|
49 |
|
50 |
+
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. Abaixo, colocamos um exemplo simples de como carregar o modelo e gerar texto:
|
51 |
|
52 |
```python
|
53 |
+
|
54 |
+
# Downloads necessários
|
55 |
+
!pip install transformers
|
56 |
+
!pip install einops accelerate bitsandbytes
|
57 |
+
!pip install sentence_transformers
|
58 |
+
!pip install git+https://github.com/huggingface/peft.git
|
59 |
+
|
60 |
from transformers import AutoModelForCausalLM, AutoTokenizer, GenerationConfig
|
61 |
from peft import PeftModel, PeftConfig
|
62 |
|
63 |
llm_model = 'recogna-nlp/bode-7b-alpaca-pt-br'
|
64 |
+
hf_auth = 'HF_ACCESS_KEY'
|
65 |
config = PeftConfig.from_pretrained(llm_model)
|
66 |
+
model = AutoModelForCausalLM.from_pretrained(config.base_model_name_or_path, trust_remote_code=True, return_dict=True, load_in_8bit=True, device_map='auto', token=hf_auth)
|
67 |
+
tokenizer = AutoTokenizer.from_pretrained(config.base_model_name_or_path, token=hf_auth)
|
68 |
+
model = PeftModel.from_pretrained(model, llm_model) # Caso ocorra o seguinte erro: "ValueError: We need an `offload_dir`... Você deve acrescentar o parâmetro: offload_folder="./offload_dir".
|
69 |
model.eval()
|
70 |
|
71 |
#Testando geração de texto
|
|
|
72 |
def generate_prompt(instruction, input=None):
|
73 |
if input:
|
74 |
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.
|
|
|
91 |
generation_config = GenerationConfig(
|
92 |
temperature=0.2,
|
93 |
top_p=0.75,
|
94 |
+
num_beams=2,
|
95 |
+
do_sample=True
|
96 |
)
|
97 |
|
98 |
def evaluate(instruction, input=None):
|
|
|
104 |
generation_config=generation_config,
|
105 |
return_dict_in_generate=True,
|
106 |
output_scores=True,
|
107 |
+
max_length=300
|
108 |
)
|
109 |
for s in generation_output.sequences:
|
110 |
output = tokenizer.decode(s)
|