🚀 TableLLM:在實際辦公場景中實現大語言模型對錶格數據的操作
TableLLM是一個強大的大語言模型,旨在高效處理表格數據操作任務,無論是嵌入在電子表格還是文檔中的表格數據,都能滿足實際辦公場景的需求。TableLLM系列包含兩種不同規模的模型:TableLLM - 7B和TableLLM - 13B,它們分別基於CodeLlama - 7b - Instruct - hf和CodeLlama - 13b - Instruct - hf進行微調。
TableLLM會根據不同場景生成代碼解決方案或直接的文本答案,以處理表格數據操作任務。代碼生成用於處理嵌入在電子表格中的表格數據,通常涉及表格的插入、刪除、更新、查詢、合併和繪圖操作。文本生成用於處理嵌入在文檔中的表格數據,通常涉及短表格的查詢操作。
屬性 |
詳情 |
模型類型 |
TableLLM系列包含TableLLM - 7B和TableLLM - 13B兩種不同規模的模型 |
訓練數據 |
RUCKBReasoning/TableLLM - SFT |
許可證 |
llama2 |
相關鏈接:
🚀 快速開始
TableLLM可根據不同場景生成代碼解決方案或文本答案來處理表格數據操作任務。若需瞭解更多關於如何使用TableLLM的詳細信息,請參考我們的GitHub頁面:https://github.com/TableLLM/TableLLM。
✨ 主要特性
- 多場景支持:能夠處理嵌入在電子表格和文檔中的表格數據操作任務。
- 多種操作支持:支持表格的插入、刪除、更新、查詢、合併和繪圖等操作。
- 兩種輸出形式:可根據不同場景生成代碼解決方案或直接的文本答案。
🔧 技術細節
TableLLM基於CodeLlama系列模型進行微調,通過不同的提示模板生成代碼解決方案或文本答案。在代碼生成方面,針對單表和雙表的不同操作提供了相應的提示模板;在文本生成方面,提供了用於生成短表格直接文本答案的提示模板。
📚 詳細文檔
評估結果
我們在三個基準測試(WikiSQL、Spider和自建表格操作基準測試)上評估了TableLLM生成代碼解決方案的能力,在四個基準測試(WikiTableQuestion (WikiTQ)、TAT - QA、FeTaQA和OTTQA)上測試了其生成文本答案的能力。評估結果如下:
模型 |
WikiTQ |
TAT - QA |
FeTaQA |
OTTQA |
WikiSQL |
Spider |
自建基準測試 |
平均得分 |
TaPEX |
38.5 |
– |
– |
– |
83.9 |
15.0 |
/ |
45.8 |
TaPas |
31.5 |
– |
– |
– |
74.2 |
23.1 |
/ |
42.92 |
TableLlama |
24.0 |
22.2 |
20.5 |
6.4 |
43.7 |
9.0 |
/ |
20.7 |
GPT3.5 |
58.5 |
72.1 |
71.2 |
60.8 |
81.7 |
67.4 |
77.1 |
69.8 |
GPT4 |
74.1 |
77.1 |
78.4 |
69.5 |
84.0 |
69.5 |
77.8 |
75.8 |
Llama2 - Chat (13B) |
48.8 |
49.6 |
67.7 |
61.5 |
– |
– |
– |
56.9 |
CodeLlama (13B) |
43.4 |
47.2 |
57.2 |
49.7 |
38.3 |
21.9 |
47.6 |
43.6 |
Deepseek - Coder (33B) |
6.5 |
11.0 |
7.1 |
7.4 |
72.5 |
58.4 |
73.9 |
33.8 |
StructGPT (GPT3.5) |
52.5 |
27.5 |
11.8 |
14.0 |
67.8 |
84.8 |
/ |
48.9 |
Binder (GPT3.5) |
61.6 |
12.8 |
6.8 |
5.1 |
78.6 |
52.6 |
/ |
42.5 |
DATER (GPT3.5) |
53.4 |
28.4 |
18.3 |
13.0 |
58.2 |
26.5 |
/ |
37.0 |
TableLLM - 7B (我們的模型) |
58.8 |
66.9 |
72.6 |
63.1 |
86.6 |
82.6 |
78.8 |
72.8 |
TableLLM - 13B (我們的模型) |
62.4 |
68.2 |
74.5 |
62.5 |
90.7 |
83.4 |
80.8 |
74.7 |
提示模板
以下介紹了我們用於生成代碼解決方案和文本答案的提示模板。
代碼解決方案
- 單表操作(插入、刪除、更新、查詢和繪圖操作)的提示模板
[INST]Below are the first few lines of a CSV file. You need to write a Python program to solve the provided question.
Header and first few lines of CSV file:
{csv_data}
Question: {question}[/INST]
[INST]Below are the first few lines two CSV file. You need to write a Python program to solve the provided question.
Header and first few lines of CSV file 1:
{csv_data1}
Header and first few lines of CSV file 2:
{csv_data2}
Question: {question}[/INST]
csv_data
字段需填充所提供表格文件的前幾行。以下是一個示例:
Sex,Length,Diameter,Height,Whole weight,Shucked weight,Viscera weight,Shell weight,Rings
M,0.455,0.365,0.095,0.514,0.2245,0.101,0.15,15
M,0.35,0.265,0.09,0.2255,0.0995,0.0485,0.07,7
F,0.53,0.42,0.135,0.677,0.2565,0.1415,0.21,9
M,0.44,0.365,0.125,0.516,0.2155,0.114,0.155,10
I,0.33,0.255,0.08,0.205,0.0895,0.0395,0.055,7
文本答案
用於生成短表格直接文本答案的提示模板:
[INST]Offer a thorough and accurate solution that directly addresses the Question outlined in the [Question].
### [Table Text]
{table_descriptions}
### [Table]
{table_in_csv}
### [Question]
{question}
### [Solution][INST/]