File size: 4,905 Bytes
a0b6eba c4182f6 a0b6eba | 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 | ---
library_name: transformers
tags: []
---
# Model Card for Model ID
<!-- Provide a quick summary of what the model is/does. -->
## Model Details
### Model Description
<!-- Provide a longer summary of what this model is. -->
This is the model card of a 🤗 transformers model that has been pushed on the Hub. This model card has been automatically generated.
- **Developed by:** [More Information Needed]
- **Funded by [optional]:** [More Information Needed]
- **Shared by [optional]:** [More Information Needed]
- **Model type:** [More Information Needed]
- **Language(s) (NLP):** [More Information Needed]
- **License:** [More Information Needed]
- **Finetuned from model [optional]:** [More Information Needed]
### Model Sources [optional]
<!-- Provide the basic links for the model. -->
- **Repository:** [More Information Needed]
- **Paper [optional]:** [More Information Needed]
- **Demo [optional]:** [More Information Needed]
# full_model_comparison.py
from transformers import AutoModelForCausalLM, AutoTokenizer, pipeline
from peft import PeftModel
import torch
# ---------------------------
# 1. Model setup
# ---------------------------
base_model_name = "microsoft/Phi-4-mini-instruct"
lora_model_name = "JeloH/phi4_src_lora"
# Load tokenizer
tokenizer = AutoTokenizer.from_pretrained(base_model_name)
# Load base model
base_model = AutoModelForCausalLM.from_pretrained(base_model_name)
# Load fine-tuned LoRA model
finetuned_model = PeftModel.from_pretrained(base_model, lora_model_name)
# ---------------------------
# 2. Define prompts
# ---------------------------
prompts = [
"Translate the following assembly code to high-level source code. input: push ebp\nmov ebp, esp\nsub esp, 3Ch\nmov eax, ___security_cookie\nxor eax, ebp\nmov [ebp+var_4], eax\npush ebx\npush esi\npush edi\npush 0; hWnd\ncall ds:GetDC\nmov edi, eax\npush edi; hdc\ncall ds:CreateCompatibleDC\nmov esi, ds:GetSystemMetrics\npush 0; nIndex\nmov [ebp+hdc], eax\ncall esi ; GetSystemMetrics\npush 1; nIndex\nmov [ebp+var_38], eax\ncall esi ; GetSystemMetrics\nmov esi, [ebp+var_38]\nmov ebx, eax\npush 0; offset\npush 0; hSection\nlea eax, [ebp+ppvBits]\nmov [ebp+ppvBits], 0\npush eax; ppvBits\npush 0; usage\nxorps xmm0, xmm0\nmov [ebp+pbmi.bmiHeader.biSize], 2Ch ; ','\nlea eax, [ebp+pbmi]\nmovq qword ptr [ebp+pbmi.bmiHeader.biClrImportant], xmm0\nmovups xmmword ptr [ebp+pbmi.bmiHeader.biWidth], xmm0\npush eax; pbmi\npush edi; hdc\nmovups xmmword ptr [ebp+pbmi.bmiHeader.biSizeImage], xmm0\nmov dword ptr [ebp+pbmi.bmiHeader.biPlanes], 200001h\nmov [ebp+pbmi.bmiHeader.biWidth], esi\nmov [ebp+pbmi.bmiHeader.biHeight], ebx\ncall ds:CreateDIBSection\npush eax; h\npush [ebp+hdc]; hdc\ncall ds:SelectObject\nmov edi, ebx\nimul edi, esi\nnop dword ptr [eax+00h]\npush 0; hWnd\ncall ds:GetDC\npush 0CC0020h; rop\npush 0; y1\npush 0; x1\nmov esi, eax\npush esi; hdcSrc\npush ebx; cy\npush [ebp+var_38]; cx\npush 0; y\npush 0; x\npush [ebp+hdc]; hdc\ncall ds:BitBlt\nxor eax, eax\ntest edi, edi\njle short loc_40127F\nnop dword ptr [eax+eax+00h]\nmov ecx, [ebp+ppvBits]\nadd dword ptr [ecx+eax*4], 0E1h\ninc eax\ncmp eax, edi\njl short loc_401270\npush 0CC0020h; rop\npush 0Ah; y1\npush 0; x1\npush [ebp+hdc]; hdcSrc\npush ebx; cy\npush [ebp+var_38]; cx\npush 0; y\npush 0; x\npush esi; hdc\ncall ds:BitBlt\npush 0CC0020h; rop\nmov eax, 0Ah\nsub eax, ebx\npush eax; y1\npush 0; x1\npush [ebp+hdc]; hdcSrc\npush ebx; cy\npush [ebp+var_38]; cx\npush 0; y\npush 0; x\npush esi; hdc\ncall ds:BitBlt\npush 64h ; 'd'; dwMilliseconds\ncall ds:Sleep\npush esi; hDC\npush 0; hWnd\ncall ds:ReleaseDC\npush esi; hdc\ncall ds:DeleteDC\njmp loc_40124",
"Write a short story about a robot learning emotions."]
# ---------------------------
# 3. Generate outputs
# ---------------------------
def generate_text(model, tokenizer, prompt, max_length=1000):
input_ids = tokenizer(prompt, return_tensors="pt").input_ids
output_ids = model.generate(input_ids, max_length=max_length, do_sample=True, temperature=0.7)
return tokenizer.decode(output_ids[0], skip_special_tokens=True)
# ---------------------------
# 4. Run comparison
# ---------------------------
for i, prompt in enumerate(prompts, 1):
print(f"\n=== Prompt {i} ===")
print(f"Prompt: {prompt}\n")
base_output = generate_text(base_model, tokenizer, prompt)
print("Base Model Output:")
print(base_output)
print("\nFine-Tuned LoRA Model Output:")
ft_output = generate_text(finetuned_model, tokenizer, prompt)
print(ft_output)
print("="*60)
[More Information Needed] |