File size: 3,884 Bytes
11aad8f cdf0b51 11aad8f cdf0b51 11aad8f 350dc4a 8fed7be 11aad8f cdf0b51 a2e0bb7 cdf0b51 30cfe04 a6f50b8 cdf0b51 bcc0173 cdf0b51 350dc4a 7bef3fd cdf0b51 646963e cdf0b51 7bef3fd cdf0b51 7bef3fd cdf0b51 7bef3fd cdf0b51 7bef3fd cdf0b51 7bef3fd cdf0b51 a6f50b8 a9f21ec |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 |
---
tags:
- Code-Generation
- autotrain
- text-generation
- Llama2
- Pytorch
- PEFT
- QLoRA
- code
- coding
pipeline_tag: text-generation
widget:
- text: Write a program that add five numbers
- text: Write a python code for reading multiple images
- text: Write a python code for the name Ahmed to be in a reversed order
datasets:
- AhmedSSoliman/CodeSearchNet
- AhmedSSoliman/CodeSearchNet-Python
---
# LlaMa2-CodeGen
This model is [**LlaMa2-7b**](https://huggingface.co/meta-llama/Llama-2-7b) which is fine-tuned on the [**CodeSearchNet dataset**](https://github.com/github/CodeSearchNet) by using the method [**QLoRA**](https://github.com/artidoro/qlora) with [PEFT](https://github.com/huggingface/peft) library.
# Model Trained on Google Colab Pro Using AutoTrain, PEFT and QLoRA
[![Open in Colab][Colab Badge]][RDP Notebook]
# You can load the LlaMa2-CodeGen model on google colab.
### Example
```py
import torch
from peft import PeftModel, PeftConfig
from transformers import AutoModelForCausalLM, AutoTokenizer, GenerationConfig
peft_model_id = "AhmedSSoliman/Llama2-CodeGen-PEFT-QLoRA"
config = PeftConfig.from_pretrained(peft_model_id)
model = AutoModelForCausalLM.from_pretrained(config.base_model_name_or_path, trust_remote_code=True, return_dict=True, load_in_4bit=True, device_map='auto')
tokenizer = AutoTokenizer.from_pretrained(config.base_model_name_or_path)
# Load the Lora model
model = PeftModel.from_pretrained(model, peft_model_id)
def create_prompt(instruction):
system = "You are using the Llam2-CodeGen model, a coding assistant that will help the user to resolve the following instruction:\n"
instruction = "### Input: " + instruction
return system + "\n" + instruction + "\n\n" + "### Response:" + "\n"
def generate(
instruction,
max_new_tokens=128,
temperature=0.1,
top_p=0.75,
top_k=40,
num_beams=4,
**kwargs,
):
prompt = create_prompt(instruction)
print(prompt)
inputs = tokenizer(prompt, return_tensors="pt").to("cuda")
#input_ids = inputs["input_ids"].to("cuda")
#attention_mask = inputs["attention_mask"].to("cuda")
generation_config = GenerationConfig(
temperature=temperature,
top_p=top_p,
top_k=top_k,
num_beams=num_beams,
**kwargs,
)
with torch.no_grad():
generation_output = model.generate(
#input_ids=input_ids,
#attention_mask=attention_mask,
**inputs,
generation_config=generation_config,
return_dict_in_generate=True,
output_scores=True,
max_new_tokens=max_new_tokens,
early_stopping=True
)
generated_response = tokenizer.decode(outputs[0], skip_special_tokens=True)
stop_output = "### Input"
gen_response = (generated_response.split(stop_output))[0]
#s = generation_output.sequences[0]
#output = tokenizer.decode(s, skip_special_tokens=True)
#stop_output = "### Input"
#gen_response = (output.split(stop_output))[0]
#return output.split("### Response:")[1].lstrip("\n")
return gen_response
instruction = """
Write a python code for the name Ahmed to be in a reversed order
"""
print(generate(instruction))
```
[Colab Badge]: https://colab.research.google.com/assets/colab-badge.svg
[License-Badge]: https://img.shields.io/badge/License-MIT-blue.svg
[RDP Issues]: https://img.shields.io/github/issues/PradyumnaKrishna/Colab-Hacks/Colab%20RDP?label=Issues
[RDP Notebook]: https://colab.research.google.com/drive/18sAFC7msV0gJ24wn5gl41nU0QRynfLqG?usp=sharing
[Code Issues]: https://img.shields.io/github/issues/PradyumnaKrishna/Colab-Hacks/Code%20Server?label=Issues
[Code Notebook]: https://colab.research.google.com/drive/18sAFC7msV0gJ24wn5gl41nU0QRynfLqG?usp=sharing
|