Stack-2-9-finetuned / training /merge_adapter.py
walidsobhie-code
chore: Rename MCP server to Stack2.9
c7f1596
from peft import PeftModel
from transformers import AutoModelForCausalLM, AutoTokenizer
import torch
import argparse
def main():
parser = argparse.ArgumentParser()
parser.add_argument("--base-model", required=True)
parser.add_argument("--adapter-path", required=True)
parser.add_argument("--output-path", required=True)
args = parser.parse_args()
print(f"Loading base model: {args.base_model}")
# Load without device_map to avoid the error
model = AutoModelForCausalLM.from_pretrained(
args.base_model,
torch_dtype=torch.float32 # Use FP32 for stability
)
tokenizer = AutoTokenizer.from_pretrained(args.base_model)
print(f"Loading adapter: {args.adapter_path}")
model = PeftModel.from_pretrained(model, args.adapter_path)
print("Merging...")
model = model.merge_and_unload()
print(f"Saving to: {args.output_path}")
model.save_pretrained(args.output_path)
tokenizer.save_pretrained(args.output_path)
print("✅ Done!")
if __name__ == "__main__":
main()