Spaces:
Sleeping
Sleeping
import gradio as gr | |
from alignment import ( | |
DataArguments, | |
ModelArguments, | |
apply_chat_template, | |
get_datasets, | |
get_tokenizer, | |
) | |
def template(base_model, trained_adapter, token): | |
data_args = DataArguments(chat_template=None, dataset_mixer={'HuggingFaceH4/no_robots': 1.0}, dataset_splits=['train_sft', 'test_sft'], max_train_samples=None, max_eval_samples=None, preprocessing_num_workers=12, truncation_side=None) | |
model_args = ModelArguments(base_model_revision=None, model_name_or_path='mistralai/Mistral-7B-v0.1', model_revision='main', model_code_revision=None, torch_dtype='auto', trust_remote_code=True, use_flash_attention_2=True, use_peft=True, lora_r=64, lora_alpha=16, lora_dropout=0.1, lora_target_modules=['q_proj', 'k_proj', 'v_proj', 'o_proj'], lora_modules_to_save=None, load_in_8bit=False, load_in_4bit=True, bnb_4bit_quant_type='nf4', use_bnb_nested_quant=False) | |
############### | |
# Load datasets | |
############### | |
raw_datasets = get_datasets(data_args, splits=data_args.dataset_splits) | |
logger.info( | |
f"Training on the following datasets and their proportions: {[split + ' : ' + str(dset.num_rows) for split, dset in raw_datasets.items()]}" | |
) | |
################ | |
# Load tokenizer | |
################ | |
tokenizer = get_tokenizer(model_args, data_args) | |
##################### | |
# Apply chat template | |
##################### | |
raw_datasets = raw_datasets.map(apply_chat_template, fn_kwargs={"tokenizer": tokenizer, "task": "sft"}) | |
train_dataset = raw_datasets["train"] | |
eval_dataset = raw_datasets["test"] | |
with gr.Blocks() as demo: | |
gr.Markdown("## AutoTrain Merge Adapter") | |
gr.Markdown("Please duplicate this space and attach a GPU in order to use it.") | |
token = gr.Textbox( | |
label="Hugging Face Write Token", | |
value="", | |
lines=1, | |
max_lines=1, | |
interactive=True, | |
type="password", | |
) | |
base_model = gr.Textbox( | |
label="Base Model (e.g. meta-llama/Llama-2-7b-chat-hf)", | |
value="", | |
lines=1, | |
max_lines=1, | |
interactive=True, | |
) | |
trained_adapter = gr.Textbox( | |
label="Trained Adapter Model (e.g. username/autotrain-my-llama)", | |
value="", | |
lines=1, | |
max_lines=1, | |
interactive=True, | |
) | |
submit = gr.Button(value="Merge & Push") | |
op = gr.Markdown(interactive=False) | |
submit.click(merge, inputs=[base_model, trained_adapter, token], outputs=[op]) | |
if __name__ == "__main__": | |
demo.launch() |