| --- |
| library_name: transformers |
| tags: |
| - git |
| datasets: |
| - Maxscha/commitbench |
| language: |
| - en |
| base_model: |
| - Qwen/Qwen2.5-Coder-3B-Instruct |
| pipeline_tag: text-generation |
| --- |
| |
| # Model Card for Model ID |
|
|
| Fine tuned Qwen2.5 3B model for writing git commit message. Used dataset Maxscha/commitbench |
|
|
|
|
| ## Model Details |
|
|
| - **Developed by:** Cyrus Cheung |
| - **Model type:** Qwen2.5 3B |
| - **License:** qwen-research |
| - **Finetuned from model:** Qwen/Qwen2.5-Coder-3B-Instruct |
|
|
| ## Uses |
|
|
| ```python |
| from transformers.models.auto.modeling_auto import AutoModelForCausalLM |
| from transformers.models.auto.tokenization_auto import AutoTokenizer |
| |
| model = AutoModelForCausalLM.from_pretrained("CyrusCheungkf/git-commit-3B") |
| tokenizer = AutoTokenizer.from_pretrained("CyrusCheungkf/git-commit-3B") |
| git_diff = "Output from using 'git diff'" |
| |
| INSTRUCTION = """You are Git Commit Message Pro, a specialist in crafting precise, professional Git commit messages from .diff files. Your role is to analyze these files, interpret the changes, and generate a clear, direct commit message. |
| |
| Guidelines: |
| 1. Be specific about the type of change (e.g., "Rename variable X to Y", "Extract method Z from class W"). |
| 2. Prefer to write it on why and how instead of what changed. |
| 3. Interpret the changes; do not transcribe the diff. |
| 4. If you cannot read the entire file, attempt to generate a message based on the available information. |
| 5. Be concise and summarize the most important changes. Keep your response in 1 sentence.""" |
| conversation = [ |
| {"role": "user", "content": INSTRUCTION + "\n\nInputs:\n" + git_diff}, |
| ] |
| tokens = tokenizer.apply_chat_template( |
| conversation, add_generation_prompt=True, return_tensors="pt", return_dict=True |
| ) |
| output = model.generate( |
| inputs=tokens["input_ids"], |
| attention_mask=tokens["attention_mask"], |
| ) |
| print(output) |
| ``` |