--- datasets: - dominguesm/alpaca-data-pt-br library_name: adapter-transformers pipeline_tag: text-generation language: - pt - en thumbnail: https://blog.cobasi.com.br/wp-content/uploads/2022/08/AdobeStock_461738919.webp ---
Caramelo
# CARAMELO ## Adapter Description This adapter was created with the [PEFT](https://github.com/huggingface/peft) library and allowed the base model **Falcon-7b** to be fine-tuned on the **https://huggingface.co/datasets/dominguesm/alpaca-data-pt-br** by using the method **QLoRA**. ## Model description [Falcon 7B](https://huggingface.co/tiiuae/falcon-7b) ## Intended uses & limitations TBA ## Training and evaluation data TBA ### Training results ### How to use ```py from peft import PeftModel, PeftConfig from transformers import AutoModelForCausalLM, AutoTokenizer, BitsAndBytesConfig, GenerationConfig peft_model_id = "Bruno/Caramelo_7B" config = PeftConfig.from_pretrained(peft_model_id) bnb_config = BitsAndBytesConfig( load_in_4bit=True, bnb_4bit_quant_type="nf4", bnb_4bit_compute_dtype=torch.float16, ) tokenizer = AutoTokenizer.from_pretrained(peft_model_id) model = AutoModelForCausalLM.from_pretrained(config.base_model_name_or_path, return_dict=True, quantization_config=bnb_config, trust_remote_code=True, device_map={"": 0}) prompt_input = "Abaixo está uma declaração que descreve uma tarefa, juntamente com uma entrada que fornece mais contexto. Escreva uma resposta que conclua corretamente a solicitação.\n\n ### Instrução:\n{instruction}\n\n### Entrada:\n{input}\n\n### Resposta:\n" prompt_no_input = "Abaixo está uma instrução que descreve uma tarefa. Escreva uma resposta que conclua corretamente a solicitação.\n\n### Instrução:\n{instruction}\n\n### Resposta:\n" def create_prompt(instruction, input=None): if input: return prompt_input.format(instruction=instruction, input=input) else: return prompt_no_input.format(instruction=instruction) def generate( instruction, input=None, max_new_tokens=128, temperature=0.1, top_p=0.75, top_k=40, num_beams=4, repetition_penalty=1.5, max_length=512 ): prompt = create_prompt(instruction, input) inputs = tokenizer.encode_plus(prompt, return_tensors="pt", truncation=True, max_length=max_length, padding="longest") input_ids = inputs["input_ids"].to("cuda") attention_mask = inputs["attention_mask"].to("cuda") generation_output = model.generate( input_ids=input_ids, attention_mask=attention_mask, max_length=max_length, pad_token_id=tokenizer.pad_token_id, eos_token_id=tokenizer.eos_token_id, temperature=temperature, top_p=top_p, top_k=top_k, num_beams=num_beams, repetition_penalty=repetition_penalty, length_penalty=0.8, early_stopping=True, output_scores=True, return_dict_in_generate=True ) output = tokenizer.decode(generation_output.sequences[0], skip_special_tokens=True) return output.split("### Resposta:")[1] instruction = "como faço um bolo de cenoura?" print(Instrução:", instruction) print("Resposta:", generate(instruction)) ### Saída Instrução: como faço um bolo de cenoura? Resposta: 1. Pegue uma cenoura e corte-a em pedaços pequenos. 2. Coloque os pedaços de cenoura em uma panela e cozinhe por 10 minutos. 3. Retire a cenoura da panela e deixe-a esfriar. 4. Coloque a cenoura em uma bolsa de plástico e congele. 5. Quando precisar, coloque a cenoura congelada na máquina de bolo. ### Framework versions - Transformers 4.30.0.dev0 - Pytorch 2.0.1+cu118 - Datasets 2.12.0 - Tokenizers 0.13.3