

歡迎來到平板電腦Github!該項目的目的是基於表格預測的指導學習進展。希望我們可以創建模型,可以使用指令和很少的標記示例來解決表格預測任務。
儘管許多預測問題需要使用表格數據,但是由於成本或隱私問題,收集足夠的培訓數據可能是一項挑戰任務。大型語言模型(LLM)由於預培訓而提供了大量的世界知識,並可以幫助提高這些問題的樣本效率。儘管如此,這些模型通常並不完全與許多表格預測任務保持一致,這是因為預訓練和缺乏有關該任務的信息的模型偏見,從而在零和很少的射擊設置中損害了其性能。
如果我們可以使用任務說明來幫助彌合這一差距怎麼辦?這就是平板電腦的來源。平板電腦是標準數據集的活潑基準,該數據集註釋了,該數據集帶有任務說明,以評估LLMS利用說明如何改善表格預測任務的性能。
平板電腦是用指令註釋的表格預測任務的活潑基準。平板電腦提供了評估當前任務的模型並貢獻新任務的工具。目的是幫助研究人員開發提高LLM在表格預測中的樣本效率的技術。
如果平板電腦對您的工作有用,請引用我們。
@article{tabletSlack23,
Author = {Dylan Slack and Sameer Singh},
Title = {TABLET: Learning From Instructions For Tabular Data},
Year = {2023},
journal = {arXiv},
}要下載數據,請克隆GITHUB存儲庫。
git clone https://github.com/dylan-slack/Tablet.git完成此操作後,數據將存儲在此路徑中。
Tablet/data/benchmark請使用Python>=3.9 。由於其中一個軟件包中有一個怪癖,請不要使用Python=3.9.7 。另外,請確保您的pip>=23.0.1 。
conda create -n tablet python=3.9.6
conda activate tablet
pip install --upgrade pip如果要從源安裝平板電腦軟件包,請導航到平板電腦軟件包目錄並安裝。
cd Tablet
python3 -m pip install -e .否則,您可以使用PIP從PYPI安裝。 [注意:尚未發布]
pip install tablet-benchmark不幸的是,一些自然發生的說明來自未允許許可並且不允許在其他地方託管的來源。我們提供了收集這些指示的指南
Tablet/fill_missing_instructions.py完成此操作後,您可以運行
python fill_missing_instructions.py並將指令添加到基準數據中。
平板電腦軟件包提供了一些有用的功能,可評估表格數據集上LLMS +說明的性能。平板電腦提供了評估任務上任意擁抱面模型的代碼,還提供了簡單地獲取特定任務的HuggingFace數據集的工具,以便您可以執行所需的任何評估。
首先,讓我們看一下如何將任務數據集存儲在平板電腦中。所有任務都存儲在
Tablet/data/benchmark/performance例如,成人任務存儲在
Tablet/data/benchmark/performance/Adult在此目錄中,對於成人任務,每個指令註釋都有不同的目錄。例如,讓我們看一下生成的指令之一。該指令存儲在
Tablet/data/benchmark/performance/Adult/prototypes-synthetic-performance-0通過其他來源收集的說明具有不同的路徑。規則集生成的指令都有目錄名稱
ruleset-synthetic-performance- *並且自然發生的指示有
prototypes-naturallanguage-performance- *請注意,這裡的原型使用只是為了保留與其他目錄名稱的格式一致性。
在每個目錄中,有四個文件
../test.csv
../test.json
../train.csv
../train.json這些是培訓和測試集,它們以表格格式(.CSV)及其自然語言格式(.json)文件存儲。在JSON文件中,每個提示組件,例如標題,數據點序列化和指令。
這是使用平板電腦軟件包來獲取針對特定任務的HuggingFace數據集的方法。假設我們想在這些位置獲得一個成年人和百日咳數據集
Tablet/data/benchmark/performance/Adult/prototypes-synthetic-performance-0
Tablet/data/benchmark/performance/A37/prototypes-synthetic-performance-0我們可以按以下方式獲取測試數據集
from Tablet import evaluate
benchmark_path = "./data/benchmark/performance/"
tasks = [ 'A37/prototypes-synthetic-performance-0' ,
'Adult/prototypes-synthetic-performance-0' ]
evaluator = evaluate . Evaluator ( benchmark_path = benchmark_path ,
tasks_to_run = tasks ,
encoding_format = "flan" ,
k_shot = 0 )
whooping_cough , adult = evaluator . get_test_hf_datasets ()我們可以在此處指定k_shot ,以控制從培訓數據中採樣了多少個kshot實例,並將其包含在提示中。然後,我們可以訪問成人測試數據和標籤
test_data , ground_truth_labels = adult [ 'text' ], adult [ 'label' ] 我們還可以直接評估任務的績效。例如,評估2-shot Flan-t5對成人的原型生成的指令的3種種子的表現如下
from Tablet import evaluate
benchmark_path = "./data/benchmark/performance/"
tasks = [ 'Adult/prototypes-synthetic-performance-0' ]
evaluator = evaluate . Evaluator ( benchmark_path = benchmark_path ,
tasks_to_run = tasks ,
encoding_format = "flan" ,
results_file = "my_cool_results.txt" ,
k_shot = 2 )
evaluator . run_eval ( how_many = 3 )結果將附加到my_cool_results.txt 。
為了構建可以從只有說明和一些示例中非常有效地與表格預測問題保持一致的模型,我們需要許多任務。這些對於評估我們的表現非常有用,對於將來的監督有用。
平板電腦可以通過編寫指令或使用GPT-3生成新數據集來創建新任務。這就是您的做法。
您必須對PANDAS DF中存儲的任務進行培訓和測試。然後,您可以致電Tablet.create 。此功能將負責為您提供的自然指示創建任務,如果您願意,還將使用GPT-3生成指令。
from Tablet import create
create . create_task ( train_x ,
eval_x ,
train_y ,
eval_y ,
name = my_data_set_name ,
header = "Predict xyz." ,
nl_instruction = "Generally, people papers are grad students." ,
categorical_columns = names_of_categorical_columns ,
num = index_of_task ,
num_gpt3_revisions = 10 ,
openai_key_path = path_to_open_ai_key ,
save_loc = "./data/benchmark" )在這裡, train_x和eval_x是火車和測試拆分。同樣, train_y和eval_y是標籤列。此功能還接受任務的名稱(例如, Adult或Wine之類的事物),描述任務的高級目標的標題和自然的Langauge指令 - 這是nl_instructions參數。您還必須指定分類列的名稱。 num參數是索引該自然發生的指令的任務將存儲在(例如, prototypes-naturallanguage-performance-{num} )下。
此外,如果您希望使用GPT-3生成指令,則需要在文件中提供一個OpenAI鍵,並將此文件的位置提供給openai_key_path參數,並指定您希望使用num_gpt3_revisions創建的原型和規則集的指令。
要包括您的出色新任務,請確保任務的文件不在
./data/benchmark/performance/my_new_task並提交拉動請求。
請在文件夾中包含一個簡短的readmd.md,以描述任務的目標以及數據和說明的許可。例如,這樣的事情是理想的:
Task: Predict how many sheep someone will need to count before they fall asleep.
Data License: Apache 2.0
Instruction License: MIT我們將對其進行審查,並將其添加到基準中。如果您希望您的姓名和網站添加到主頁上的任務列表中,請在“拉”請求中提及這一點。