Views
No views yet
microsoft/Phi-3-mini-4k-instruct using BiLoRA (Dual-Adapter LoRA) for code review tasks, specifically code generation and docstring generation.task_1: Code Generation (fine-tuned on MBPP)task_2: Docstring Generation (fine-tuned on CodeXGLUE)task_1: qkv_proj, o_projtask_2: gate_up_proj, down_proj| Model | Bug Detection (Pass@1) | Localization (BLEU) | Fix Quality (1-5) | Latency (avg) |
|---|---|---|---|---|
| BiLoRA (mine) | 94.17% | 0.0259 | 3.7/5 | 33499ms |
| Phi-3 base | 70.0% | 0.0536 | 3.6/5 | 24561ms |
| GPT-4 (Groq) | 100.0% | 0.1255 | 4.4/5 | 433ms |
1from transformers import AutoModelForCausalLM, AutoTokenizer
2from peft import PeftModel
3
4base_model = "microsoft/Phi-3-mini-4k-instruct"
5model = AutoModelForCausalLM.from_pretrained(base_model, trust_remote_code=True)
6model = PeftModel.from_pretrained(model, "aniketp2009gmail/phi3-bilora-code-review")
7
8tokenizer = AutoTokenizer.from_pretrained("aniketp2009gmail/phi3-bilora-code-review")
9
10# For Code Generation (Task 1)
11model.set_adapter("task_1")
12prompt = "Generate code: Write a function to find the sum of even numbers in a list\nCode:"
13inputs = tokenizer(prompt, return_tensors="pt")
14outputs = model.generate(**inputs, max_new_tokens=100)
15print(tokenizer.decode(outputs[0], skip_special_tokens=True))
16
17# For Docstring Generation (Task 2)
18model.set_adapter("task_2")
19prompt = "Generate docstring: def sum_even(lst):\n return sum(x for x in lst if x % 2 == 0)\nDocstring:"
20inputs = tokenizer(prompt, return_tensors="pt")
21outputs = model.generate(**inputs, max_new_tokens=100)
22print(tokenizer.decode(outputs[0], skip_special_tokens=True))