| | --- |
| | license: mit |
| | tags: |
| | - linux |
| | - bugfix |
| | - codellama |
| | - qlora |
| | - transformers |
| | - causal-lm |
| | model_type: causal-lm |
| | library_name: transformers |
| | pipeline_tag: text-generation |
| | base_model: codellama/CodeLLaMA-7b-Instruct-hf |
| | language: |
| | - en |
| | - c |
| | --- |
| | |
| | # CodeLLaMA-Linux-BugFix |
| |
|
| | A fine-tuned CodeLLaMA-7B-Instruct model specifically designed for Linux kernel bug fixing. This model generates Git diff patches from buggy C code and commit messages. |
| |
|
| | ## Model Description |
| |
|
| | This model is a QLoRA fine-tuned version of CodeLLaMA-7B-Instruct, trained on a dataset of Linux kernel bug fixes extracted from Git commits. It learns to generate appropriate Git diff patches that can fix bugs in C code. |
| |
|
| | - **Developed by:** Maaac |
| | - **Model type:** Causal Language Model (QLoRA fine-tuned) |
| | - **Language(s):** English, C |
| | - **License:** MIT |
| | - **Finetuned from model:** codellama/CodeLLaMA-7b-Instruct-hf |
| |
|
| | ## Uses |
| |
|
| | ### Direct Use |
| |
|
| | This model is designed to: |
| | - Generate Git diff patches for Linux kernel bug fixes |
| | - Assist developers in fixing common kernel bugs |
| | - Provide automated code review suggestions |
| | - Help with learning Linux kernel development patterns |
| |
|
| | ### Downstream Use |
| |
|
| | The model can be integrated into: |
| | - Automated code review systems |
| | - Development IDEs and editors |
| | - Continuous integration pipelines |
| | - Educational tools for kernel development |
| |
|
| | ### Out-of-Scope Use |
| |
|
| | This model is not suitable for: |
| | - Non-Linux kernel code |
| | - Non-C programming languages |
| | - Security-critical applications without human review |
| | - Production systems without proper validation |
| |
|
| | ## Bias, Risks, and Limitations |
| |
|
| | ### Limitations |
| | - Focused specifically on Linux kernel C code |
| | - May not generalize to other codebases |
| | - Generated fixes should be reviewed by human developers |
| | - Limited to the patterns present in the training data |
| |
|
| | ### Recommendations |
| |
|
| | Users should: |
| | - Always review generated patches before applying |
| | - Test fixes in a safe environment first |
| | - Understand the context of the bug being fixed |
| | - Use as a development aid, not a replacement for human expertise |
| |
|
| | ## How to Get Started with the Model |
| |
|
| | ```python |
| | from transformers import AutoModelForCausalLM, AutoTokenizer |
| | |
| | # Load the model |
| | model = AutoModelForCausalLM.from_pretrained("Maaac/CodeLLaMA-Linux-BugFix") |
| | tokenizer = AutoTokenizer.from_pretrained("Maaac/CodeLLaMA-Linux-BugFix") |
| | |
| | # Example usage |
| | prompt = """Given the following original C code: |
| | int *ptr = kmalloc(sizeof(int), GFP_KERNEL); |
| | if (!ptr) { |
| | return -ENOMEM; |
| | } |
| | // ... use ptr ... |
| | // Missing kfree(ptr) |
| | |
| | Instruction: Fix memory leak by adding proper cleanup |
| | |
| | Return the diff that fixes it: |
| | """ |
| | |
| | inputs = tokenizer(prompt, return_tensors="pt") |
| | outputs = model.generate(**inputs, max_new_tokens=256) |
| | print(tokenizer.decode(outputs[0], skip_special_tokens=True)) |
| | ``` |
| |
|
| | ## Training Details |
| |
|
| | ### Training Data |
| |
|
| | - **Source:** Linux kernel Git repository |
| | - **Size:** 100,000 bug-fix samples |
| | - **Format:** JSONL with prompt-completion pairs |
| | - **Extraction Method:** PyDriller analysis of commit history |
| |
|
| | ### Training Procedure |
| |
|
| | #### Preprocessing |
| | - Extracted bug-fix commits using keyword filtering |
| | - Captured code context (10 lines before/after bug location) |
| | - Converted to prompt-completion format for supervised learning |
| |
|
| | #### Training Hyperparameters |
| | - **Base Model:** codellama/CodeLLaMA-7b-Instruct-hf |
| | - **Method:** QLoRA with 4-bit quantization |
| | - **LoRA Config:** r=64, alpha=16, dropout=0.1 |
| | - **Training:** 3 epochs, batch size 64, learning rate 2e-4 |
| | - **Hardware:** Optimized for H200 GPU with bfloat16 |
| |
|
| | ## Evaluation |
| |
|
| | ### Testing Data |
| | - Separate evaluation dataset with known bug-fix pairs |
| | - Focused on common Linux kernel bug patterns |
| |
|
| | ### Metrics |
| | - **BLEU Score:** Measures translation quality of generated diffs |
| | - **ROUGE Score:** Evaluates overlap between predicted and actual fixes |
| | - **Human Evaluation:** Qualitative assessment of fix quality |
| |
|
| | ### Results |
| | The model demonstrates the ability to generate contextually appropriate Git diff patches for Linux kernel bugs, though results should be validated by human developers. |
| |
|
| | ## Technical Specifications |
| |
|
| | ### Model Architecture |
| | - **Base:** CodeLLaMA-7B-Instruct (7 billion parameters) |
| | - **Adapter:** LoRA layers for efficient fine-tuning |
| | - **Output:** Generates Git diff format patches |
| |
|
| | ### Compute Infrastructure |
| | - **Hardware:** H200 GPU |
| | - **Framework:** PyTorch with Transformers |
| | - **Quantization:** 4-bit QLoRA for memory efficiency |
| |
|
| | ## Citation |
| |
|
| | If you use this model in your research, please cite: |
| |
|
| | ```bibtex |
| | @misc{CodeLLaMA-Linux-BugFix, |
| | author = {Maaac}, |
| | title = {CodeLLaMA-Linux-BugFix: A Fine-tuned Model for Linux Kernel Bug Fixing}, |
| | year = {2024}, |
| | url = {https://huggingface.co/Maaac/CodeLLaMA-Linux-BugFix} |
| | } |
| | ``` |
| |
|
| | ## Model Card Authors |
| |
|
| | - **Author:** Maaac |
| | - **Contact:** [Your contact information] |
| |
|
| | ## Framework Versions |
| |
|
| | - PEFT 0.16.0 |
| | - Transformers 4.53.1 |
| | - PyTorch 2.7.1 |