Spaces:
Sleeping
Sleeping
File size: 4,040 Bytes
ed0dca2 a40632d bdf3e70 30da7cc 9e53c43 b1cf10f 30da7cc b1cf10f a40632d 42cd34a 30da7cc 42cd34a 30da7cc 42cd34a 30da7cc 42cd34a bdf3e70 ed0dca2 52589e7 17dfda2 c59143e 17dfda2 f58a3a5 611772e f58a3a5 611772e f58a3a5 17dfda2 8c9400b 17dfda2 52589e7 17dfda2 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 |
##################################### Imports ######################################
# Generic imports
import gradio as gr
# Module imports
from utilities.setup import get_json_cfg
from utilities.templates import prompt_template
########################### Global objects and functions ###########################
conf = get_json_cfg()
def textbox_visibility(radio):
value = radio
if value == "Hugging Face Hub Dataset":
return gr.Dropdown(visible=bool(1))
else:
return gr.Dropdown(visible=bool(0))
def upload_visibility(radio):
value = radio
if value == "Upload Your Own":
return gr.UploadButton(visible=bool(1)) #make it visible
else:
return gr.UploadButton(visible=bool(0))
def greet(model_name, inject_prompt, dataset):
"""The model call"""
return f"Hello!! Using model: {model_name} with template: {inject_prompt}"
##################################### App UI #######################################
def main():
with gr.Blocks() as demo:
##### Title Block #####
gr.Markdown("# Instruction Tuning with Unsloth")
##### Model Inputs #####
# Select Model
modelnames = conf['model']['choices']
model_name = gr.Dropdown(label="Supported Models",
choices=modelnames,
value=modelnames[0])
# Prompt template
inject_prompt = gr.Textbox(label="Prompt Template",
value=prompt_template())
# Dataset choice
dataset_choice = gr.Radio(label="Choose Dataset",
choices=["Hugging Face Hub Dataset", "Upload Your Own"],
value="Hugging Face Hub Dataset")
dataset_predefined = gr.Textbox(label="Hugging Face Hub Dataset",
value='yahma/alpaca-cleaned',
visible=True)
dataset_upload = gr.UploadButton(label="Upload Dataset (csv, jsonl, or txt)",
file_types=[".csv",".jsonl", ".txt"],
visible=False)
dataset_choice.change(textbox_visibility,
dataset_choice,
dataset_predefined)
dataset_choice.change(upload_visibility,
dataset_choice,
dataset_upload)
# Hyperparameters (allow selection, but hide in accordion.)
with gr.Accordion("Advanced Tuning", open=False):
# config
peftparams = conf['model']['peft']
sftparams = conf['model']['sft']
# accordion container content
gr.Markdown("### PEFT Parameters")
r = gr.Textbox(label="r", value=peftparams['r'])
alpha = gr.Textbox(label="LoRA alpha", value=peftparams['alpha'])
dropout = gr.Textbox(label="LoRA dropout", value=peftparams['dropout'])
bias = gr.Textbox(label="Bias", value=peftparams['bias'])
seed = gr.Textbox(label="Random State", value=peftparams['seed'])
rslora = gr.Textbox(label="Use R-S LoRA", value=peftparams['rslora'])
pefts = [r, alpha, dropout, bias, seed, rslora]
gr.Markdown("List of items")
gr.Markdown("### Supervised Fine-Tuning Parameters")
gr.Markdown("List of items")
##### Execution #####
# Setup button
tune_btn = gr.Button("Start Fine Tuning")
# Text output (for now)
output = gr.Textbox(label="Output")
# Execute button
tune_btn.click(fn=greet,
inputs=[model_name, inject_prompt, dataset_predefined],
outputs=output)
# Launch baby
demo.launch()
##################################### Launch #######################################
if __name__ == "__main__":
main() |