import gradio as gr import pandas as pd csv_filename = 'leaderboard.csv' url = 'https://docs.google.com/spreadsheets/d/1Oh3nrbdWjKuh9twJsc9yJLppiJeD_BZyKgCTOxRkALM/export?format=csv' def get_data_classifica(): dataset = pd.read_csv(url) if 'model ' in dataset.columns: dataset.rename(columns={'model ': 'model'}, inplace=True) df_classifica = dataset[['model', 'helloswag_it acc norm', 'arc_it acc norm', 'm_mmul acc shot 5']] df_classifica['media'] = df_classifica[['helloswag_it acc norm', 'arc_it acc norm', 'm_mmul acc shot 5']].mean(axis=1) df_classifica['media'] = df_classifica['media'].round(2) df_classifica = df_classifica.sort_values(by='media', ascending=False) df_classifica = df_classifica[['model', 'media', 'helloswag_it acc norm', 'arc_it acc norm', 'm_mmul acc shot 5']] return df_classifica def get_data_totale(): dataset = pd.read_csv(url) if 'model ' in dataset.columns: dataset.rename(columns={'model ': 'model'}, inplace=True) return dataset with gr.Blocks() as demo: with gr.Tab('Classifica Generale'): gr.Markdown('''# Classifica generale degli LLM italiani''') discord_link = 'https://discord.com/invite/nfgaTG3H' gr.Markdown(''' I modelli sottostanti sono stati testati con [lm_evaluation_harness](https://github.com/EleutherAI/lm-evaluation-harness) su task specifici per l'italiano introdotti con questa [PR](https://github.com/EleutherAI/lm-evaluation-harness/pull/1358). L'intero progetto, i modelli e i dataset sono rigorosamente open source e tutti i risultati sono riproducibili lanciando dei comandi come questo: * lm_eval --model hf --model_args pretrained=HUGGINGFACE_MODEL_ID --tasks xcopa_it,hellaswag_it,lambada_openai_mt_it,belebele_ita_Latn,m_mmlu_it --device cuda:0 --batch_size 8 ''') gr.DataFrame(get_data_classifica, every=3600) gr.Markdown(f"Contributore principale: @giux78") with gr.Tab('Classifica RAG'): gr.Markdown('''# Classifica RAG degli LLM italiani''') gr.Markdown(f'''In questa sezione i modelli sono valutati su dei task di Q&A e ordinati per F1 Score e EM (Exact Match). La repo di riferimento è [questa](https://github.com/C080/open-llm-ita-leaderboard). I modelli in cima alla classifica sono ritenuti preferibili per i task di Retrieval Augmented Generation.''') gr.Dataframe(pd.read_csv(csv_filename, sep=';')) gr.Markdown(f"Si ringrazia il @galatolo per il codice dell'eval.") with gr.Tab('Eval aggiuntive'): gr.Markdown('''# Altre evaluation''') gr.Markdown('''Qui ci sono altri test di altri modelli, che non sono ancora stati integrati nella classifica generale.''') gr.DataFrame(get_data_totale, every=3600) with gr.Tab('Informazioni'): form_link = "https://forms.gle/Gc9Dfu52xSBhQPpAA" gr.Markdown('''# Community discord Se vuoi contribuire al progetto o semplicemente unirti alla community di LLM italiani unisciti al nostro [discord!](https://discord.com/invite/nfgaTG3H) # Aggiungi il tuo modello Se hai sviluppato un tuo modello che vuoi far valutare, compila il form [qui]({form_link}) è tutto gratuito! ''') with gr.Tab('Sponsor'): gr.Markdown(''' # Sponsor Le evaluation della classifica generale sono state gentilmente offerte da un provider cloud italano [seeweb.it](https://www.seeweb.it/) specializzato in servizi di GPU cloud. ''') demo.launch()