🚀 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/]