Update save.py
This commit is contained in:
parent
cb4579c199
commit
dd0e790d3f
1 changed files with 51 additions and 4 deletions
|
|
@ -2218,12 +2218,59 @@ pass
|
|||
|
||||
|
||||
from .models.loader_utils import get_model_name
|
||||
from unsloth_zoo.saving_utils import merge_and_overwrite_lora
|
||||
from unsloth_zoo.saving_utils import (
|
||||
merge_and_overwrite_lora,
|
||||
prepare_saving,
|
||||
)
|
||||
from unsloth_zoo.llama_cpp import (
|
||||
install_llama_cpp,
|
||||
convert_to_gguf,
|
||||
convert_to_gguf as _convert_to_gguf,
|
||||
)
|
||||
|
||||
@torch.inference_mode
|
||||
def save_to_gguf_generic(
|
||||
model,
|
||||
save_directory,
|
||||
quantization_type = "Q8_0",
|
||||
repo_id = None,
|
||||
token = None,
|
||||
):
|
||||
if token is None and repo_id is not None: token = get_token()
|
||||
if repo_id is not None and token is None:
|
||||
raise RuntimeError("Unsloth: Please specify a token for uploading!")
|
||||
|
||||
if not os.path.exists(os.path.join("llama.cpp", "unsloth_convert_hf_to_gguf.py")):
|
||||
install_llama_cpp(just_clone_repo = True)
|
||||
pass
|
||||
|
||||
metadata = _convert_to_gguf(
|
||||
save_directory,
|
||||
print_output = True,
|
||||
quantization_type = quantization_type,
|
||||
)
|
||||
if repo_id is not None:
|
||||
prepare_saving(
|
||||
model,
|
||||
repo_id,
|
||||
push_to_hub = True,
|
||||
max_shard_size = "50GB",
|
||||
private = True,
|
||||
token = token,
|
||||
)
|
||||
pass
|
||||
|
||||
from huggingface_hub import HfApi
|
||||
api = HfApi(token = token)
|
||||
api.upload_folder(
|
||||
folder_path = save_directory,
|
||||
repo_id = repo_id,
|
||||
repo_type = "model",
|
||||
allow_patterns = ["*.gguf*"],
|
||||
)
|
||||
return metadata
|
||||
pass
|
||||
|
||||
|
||||
@torch.inference_mode
|
||||
def unsloth_generic_save(
|
||||
model,
|
||||
|
|
@ -2467,8 +2514,8 @@ def patch_saving_functions(model, vision = False):
|
|||
# Vision only 1 option
|
||||
model.push_to_hub_merged = types.MethodType(unsloth_generic_push_to_hub_merged, model)
|
||||
model.save_pretrained_merged = types.MethodType(unsloth_generic_save_pretrained_merged, model)
|
||||
model.push_to_hub_gguf = types.MethodType(not_implemented_save, model)
|
||||
model.save_pretrained_gguf = types.MethodType(not_implemented_save, model)
|
||||
model.push_to_hub_gguf = types.MethodType(save_to_gguf_generic, model)
|
||||
model.save_pretrained_gguf = types.MethodType(save_to_gguf_generic, model)
|
||||
pass
|
||||
return model
|
||||
pass
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue