MCPcopy Create free account
hub / github.com/OpenPipe/OpenPipe / do_export_weights

Function do_export_weights

trainer/src/trainer/export_weights.py:21–110  ·  view source on GitHub ↗
(export_id: str, base_url: str)

Source from the content-addressed store, hash-verified

19 memory=100000,
20)
21async def do_export_weights(export_id: str, base_url: str):
22 from transformers import AutoModelForCausalLM, AutoTokenizer
23 from peft import PeftModel
24 import zipfile
25 import boto3
26 import torch
27
28 logging.info(f"Beginning export process for model {export_id}")
29 api_client = client(base_url)
30
31 model_info = get_model_export_info.sync(
32 client=api_client,
33 export_id=export_id,
34 )
35
36 model_path = lora_s3_path(model_info.base_model, model_info.fine_tune_id)
37
38 logging.info(
39 f"Downloading model from {os.environ['USER_MODELS_BUCKET']}/{model_path}"
40 )
41
42 # Create temporary directory
43 lora_dir = tempfile.mkdtemp()
44 logging.info(f"Temporary directory created: {lora_dir}")
45
46 download_directory_from_s3(
47 bucket=os.environ["USER_MODELS_BUCKET"],
48 s3_prefix=model_path,
49 local_directory=lora_dir,
50 )
51
52 logging.info(f"Model downloaded to {lora_dir}")
53
54 logging.info("Loading model")
55 model = AutoModelForCausalLM.from_pretrained(
56 model_info.base_model,
57 )
58 tokenizer = AutoTokenizer.from_pretrained(
59 model_info.base_model,
60 )
61
62 model = PeftModel.from_pretrained(model, lora_dir)
63
64 logging.info("Merging model")
65 merged_dir = tempfile.mkdtemp()
66 model = model.merge_and_unload()
67
68 if model_info.weights_format == "bf16":
69 logging.info("Converting model to bf16")
70 model = model.bfloat16()
71 elif model_info.weights_format == "fp16":
72 logging.info("Converting model to fp16")
73 model = model.half()
74 else: # fp32
75 logging.info("Converting model to fp32")
76 model = model.float()
77
78 model.save_pretrained(merged_dir)

Callers

nothing calls this directly

Calls 4

clientFunction · 0.85
lora_s3_pathFunction · 0.85

Tested by

no test coverage detected