|
|
|
|
|
import gradio as gr |
|
|
|
|
|
from utilities.setup import get_json_cfg |
|
from utilities.templates import prompt_template |
|
|
|
|
|
|
|
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)) |
|
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}" |
|
|
|
|
|
|
|
def main(): |
|
with gr.Blocks() as demo: |
|
|
|
|
|
gr.Markdown("# Instruction Tuning with Unsloth") |
|
|
|
|
|
|
|
|
|
modelnames = conf['model']['choices'] |
|
model_name = gr.Dropdown(label="Supported Models", |
|
choices=modelnames, |
|
value=modelnames[0]) |
|
|
|
inject_prompt = gr.Textbox(label="Prompt Template", |
|
value=prompt_template()) |
|
|
|
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) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
tune_btn = gr.Button("Start Fine Tuning") |
|
|
|
output = gr.Textbox(label="Output") |
|
|
|
tune_btn.click(fn=greet, |
|
inputs=[model_name, inject_prompt, dataset_predefined], |
|
outputs=output) |
|
|
|
demo.launch() |
|
|
|
|
|
|
|
if __name__ == "__main__": |
|
main() |