saving
This commit is contained in:
parent
3728b8e876
commit
34998914ac
2 changed files with 33 additions and 38 deletions
13
README.md
13
README.md
|
|
@ -30,7 +30,7 @@ All notebooks are **beginner friendly**! Add your dataset, click "Run All", and
|
|||
| **Mistral 7b** 1xT4 | [▶️ Start on Kaggle](https://www.kaggle.com/code/danielhanchen/kaggle-mistral-7b-unsloth-notebook) | 5x faster\* | 62% less |
|
||||
|
||||
- This [conversational notebook](https://colab.research.google.com/drive/1Aau3lgPzeZKQ-98h69CCu1UJcvIBLmy2?usp=sharing) is useful for ShareGPT ChatML / Vicuna templates.
|
||||
- Our [raw text notebook](https://colab.research.google.com/drive/1ef-tab5bhkvWmBOObepl1WgJvfvSzn5Q?usp=sharing) is for text completion. Our [DPO notebook](https://colab.research.google.com/drive/15vttTpzzVXv_tJwEk-hIcQ0S9FcEWvwP?usp=sharing) is a replication of Zephyr.
|
||||
- This [text completion notebook](https://colab.research.google.com/drive/1ef-tab5bhkvWmBOObepl1WgJvfvSzn5Q?usp=sharing) is for raw text. This [DPO notebook](https://colab.research.google.com/drive/15vttTpzzVXv_tJwEk-hIcQ0S9FcEWvwP?usp=sharing) replicates Zephyr.
|
||||
- Colab provides a free GPU sometimes. Kaggle has 30 hrs free per week on a 12 hr running cap.
|
||||
- \* Kaggle has 2x T4s, but we use 1. Due to overhead, 1x T4 is 5x faster. Use Colab as Kaggle takes 10 mins to install.
|
||||
|
||||
|
|
@ -166,7 +166,8 @@ fourbit_models = [
|
|||
"unsloth/llama-2-13b-bnb-4bit",
|
||||
"unsloth/codellama-34b-bnb-4bit",
|
||||
"unsloth/tinyllama-bnb-4bit",
|
||||
]
|
||||
] # Go to https://huggingface.co/unsloth for more 4-bit models!
|
||||
|
||||
# Load Llama model
|
||||
model, tokenizer = FastLanguageModel.from_pretrained(
|
||||
model_name = "unsloth/mistral-7b-bnb-4bit", # Supports Llama, Mistral - replace this!
|
||||
|
|
@ -187,6 +188,8 @@ model = FastLanguageModel.get_peft_model(
|
|||
use_gradient_checkpointing = True,
|
||||
random_state = 3407,
|
||||
max_seq_length = max_seq_length,
|
||||
use_rslora = False, # We support rank stabilized LoRA
|
||||
loftq_config = None, # And LoftQ
|
||||
)
|
||||
|
||||
trainer = SFTTrainer(
|
||||
|
|
@ -209,6 +212,12 @@ trainer = SFTTrainer(
|
|||
),
|
||||
)
|
||||
trainer.train()
|
||||
|
||||
# Go to https://github.com/unslothai/unsloth/wiki for advanced tips like
|
||||
# (1) Saving to GGUF / merging to 16bit for vLLM
|
||||
# (2) Continued training from a saved LoRA adapter
|
||||
# (3) Adding an evaluation loop / OOMs
|
||||
# (4) Cutomized chat templates
|
||||
```
|
||||
|
||||
<a name="DPO"></a>
|
||||
|
|
|
|||
|
|
@ -140,17 +140,28 @@ def unsloth_save_model(
|
|||
|
||||
# Push to hub
|
||||
use_temp_dir : Optional[bool] = None,
|
||||
commit_message : Optional[str] = None,
|
||||
commit_message : Optional[str] = "Trained with Unsloth",
|
||||
private : Optional[bool] = None,
|
||||
create_pr : bool = False,
|
||||
revision : str = None,
|
||||
commit_description : str = None,
|
||||
commit_description : str = "Upload model trained with Unsloth 2x faster",
|
||||
tags : List[str] = None,
|
||||
|
||||
# Our functions
|
||||
temporary_location : str = "_unsloth_temporary_saved_buffers",
|
||||
maximum_memory_usage : float = 0.9,
|
||||
):
|
||||
if commit_message is None: commit_message = ""
|
||||
if "Unsloth" not in commit_message:
|
||||
commit_message += " (Trained with Unsloth)"
|
||||
commit_message = commit_message.lstrip()
|
||||
|
||||
if commit_description is None:
|
||||
commit_description = "Upload model trained with Unsloth 2x faster"
|
||||
elif "Unsloth 2x faster" not in commit_description:
|
||||
commit_description += " (Trained with Unsloth 2x faster)"
|
||||
pass
|
||||
|
||||
if save_method == "merged_4bit":
|
||||
raise RuntimeError(
|
||||
"Unsloth: Merging into 4bit will cause your model to lose accuracy if you plan\n"\
|
||||
|
|
@ -210,17 +221,6 @@ def unsloth_save_model(
|
|||
)
|
||||
pass
|
||||
|
||||
if commit_message is None: commit_message = ""
|
||||
if "Unsloth 2x faster" not in commit_message:
|
||||
commit_message += " (Trained with Unsloth 2x faster)"
|
||||
commit_message = commit_message.lstrip()
|
||||
|
||||
if commit_description is None:
|
||||
commit_description = "Upload model trained with Unsloth 2x faster"
|
||||
elif "Unsloth 2x faster" not in commit_description:
|
||||
commit_description += " (Trained with Unsloth 2x faster)"
|
||||
pass
|
||||
|
||||
model.push_to_hub(
|
||||
repo_id = save_directory,
|
||||
use_temp_dir = use_temp_dir,
|
||||
|
|
@ -431,20 +431,6 @@ def unsloth_save_model(
|
|||
# Edit save_pretrained_settings
|
||||
# [TODO] _create_repo has errors due to **kwargs getting accepted
|
||||
save_pretrained_settings["state_dict"] = state_dict
|
||||
|
||||
# Edit message / commit description
|
||||
commit_message = save_pretrained_settings["commit_message"]
|
||||
if commit_message is None: commit_message = ""
|
||||
if "Unsloth 2x faster" not in commit_message:
|
||||
commit_message += " (Trained with Unsloth 2x faster)"
|
||||
commit_message = commit_message.lstrip()
|
||||
|
||||
commit_description = save_pretrained_settings["commit_description"]
|
||||
if commit_description is None:
|
||||
commit_description = "Upload model trained with Unsloth 2x faster"
|
||||
elif "Unsloth 2x faster" not in commit_description:
|
||||
commit_description += " (Trained with Unsloth 2x faster)"
|
||||
pass
|
||||
|
||||
# commit_description does not seem to work?
|
||||
what_to_delete = ("use_temp_dir", "commit_message", "create_pr", "revision", "commit_description", "tags",) \
|
||||
|
|
@ -735,7 +721,7 @@ def unsloth_save_pretrained_merged(
|
|||
save_peft_format : bool = True,
|
||||
tags : List[str] = None,
|
||||
temporary_location : str = "_unsloth_temporary_saved_buffers",
|
||||
maximum_memory_usage : float = 0.85,
|
||||
maximum_memory_usage : float = 0.85,
|
||||
):
|
||||
"""
|
||||
Same as .save_pretrained(...) except 4bit weights are auto
|
||||
|
|
@ -768,14 +754,14 @@ def unsloth_push_to_hub_merged(
|
|||
tokenizer = None,
|
||||
save_method : str = "merged_16bit", # ["lora", "merged_16bit", "merged_4bit"]
|
||||
use_temp_dir : Optional[bool] = None,
|
||||
commit_message : Optional[str] = None,
|
||||
commit_message : Optional[str] = "Trained with Unsloth",
|
||||
private : Optional[bool] = None,
|
||||
token : Union[bool, str, None] = None,
|
||||
max_shard_size : Union[int, str, None] = "5GB",
|
||||
create_pr : bool = False,
|
||||
safe_serialization : bool = True,
|
||||
revision : str = None,
|
||||
commit_description : str = None,
|
||||
commit_description : str = "Upload model trained with Unsloth 2x faster",
|
||||
tags : Optional[List[str]] = None,
|
||||
temporary_location : str = "_unsloth_temporary_saved_buffers",
|
||||
maximum_memory_usage : float = 0.85,
|
||||
|
|
@ -887,7 +873,7 @@ def upload_to_huggingface(model, save_directory, token, method, extra = "", file
|
|||
path_in_repo = uploaded_location,
|
||||
repo_id = save_directory,
|
||||
repo_type = "model",
|
||||
commit_message = "(Trained with Unsloth 2x faster)",
|
||||
commit_message = "(Trained with Unsloth)",
|
||||
)
|
||||
|
||||
# We also upload a config.json file
|
||||
|
|
@ -900,7 +886,7 @@ def upload_to_huggingface(model, save_directory, token, method, extra = "", file
|
|||
path_in_repo = "config.json",
|
||||
repo_id = save_directory,
|
||||
repo_type = "model",
|
||||
commit_message = "(Trained with Unsloth 2x faster)",
|
||||
commit_message = "(Trained with Unsloth)",
|
||||
)
|
||||
os.remove("_temporary_unsloth_config.json")
|
||||
pass
|
||||
|
|
@ -1019,14 +1005,14 @@ def unsloth_push_to_hub_gguf(
|
|||
quantization_method : str = "fast_quantized",
|
||||
first_conversion : str = "f16",
|
||||
use_temp_dir : Optional[bool] = None,
|
||||
commit_message : Optional[str] = None,
|
||||
commit_message : Optional[str] = "Trained with Unsloth",
|
||||
private : Optional[bool] = None,
|
||||
token : Union[bool, str, None] = None,
|
||||
max_shard_size : Union[int, str, None] = "5GB",
|
||||
create_pr : bool = False,
|
||||
safe_serialization : bool = True,
|
||||
revision : str = None,
|
||||
commit_description : str = None,
|
||||
commit_description : str = "Upload model trained with Unsloth 2x faster",
|
||||
tags : Optional[List[str]] = None,
|
||||
temporary_location : str = "_unsloth_temporary_saved_buffers",
|
||||
maximum_memory_usage : float = 0.85,
|
||||
|
|
@ -1146,9 +1132,9 @@ def patch_saving_functions(model):
|
|||
commit_message = arguments["commit_message"]
|
||||
if commit_message is not None:
|
||||
if not commit_message.endswith(" "): commit_message += " "
|
||||
commit_message += "(Trained with Unsloth 2x faster)"
|
||||
commit_message += "(Trained with Unsloth)"
|
||||
else:
|
||||
commit_message = "Upload model trained with Unsloth 2x faster"
|
||||
commit_message = "Upload model trained with Unsloth"
|
||||
arguments["commit_message"] = commit_message
|
||||
|
||||
if "commit_description" in arguments:
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue