TableGPT2-7B:用于表格数据分析的大规模解码器模型

TableGPT2-7B 是浙江大学开发的最先进的大规模解码器模型,专为涉及表格数据的数据密集型任务而设计。该模型以 Qwen2.5 架构为基础,包括针对表格数据的专用编码,其中独特的语义编码器可从行、列和整个表格中获取洞察力。

主要特点和功能

TableGPT2-7B 是一个功能强大的模型,可以处理文本和表格数据作为输入,其中表格数据以 df.head() 结果格式作为文本结构。该模型可生成基于文本的输出结果,特别适用于编码任务、数据解释和以商业智能 (BI) 为重点的问题解答。其功能包括

  • 表格数据分析: TableGPT2-7B 可以解释和分析表格数据,提供对行、列和整个表格的深入分析。
  • 代码生成: 该模型可为数据分析和处理等编码任务生成代码片段。
  • 数据解释: TableGPT2-7B 可以对从表格数据中得出的见解提供自然语言解释和总结。
  • 以商业智能为重点的问题解答: 该模型可回答与商业智能和数据分析有关的问题,并提供相关的翔实回答。

模型架构和训练

TableGPT2-7B 建立在 Qwen2.5 架构之上,并包含表格数据专用编码。该模型在多模态数据源和商业智能特定示例上进行了持续预训练(CPT)和监督微调(SFT)。训练数据包括超过 593,800 个策划表、860 亿个用于 CPT 的标记和 236 万个用于 SFT 的高质量查询表输出图元。

与其他模型的比较

TableGPT2-7B 旨在弥补传统语言模型与表格数据任务的实际需求之间的差距。它的性能优于 GPT-2 Large 和 GPT-2 XL 等其他模型,后者是在广泛的互联网数据上训练出来的通用模型。TableGPT2-7B 也不同于 BioGPT-Large 和 BioGPT-Large-PubMedQA 等生物医学语言模型,后者专注于生物医学领域。

Benchmark Metric GPT-4o TableLLM (Qwen2) TableLLM (CodeQwen) TableLLM (LLaMA3) TableLLM (LLaMA3.1) TableLLM (DeepSeek) TableLLM-13B DeepSeek-lite Yi-Coder Qwen2.5-Coder Qwen2.5-Instruct TableGPT2-7B TableGPT2-72B
Table Understanding
Col Type Annot. F1 31.75 10.10 5.71 1.47 1.59 6.04 12.70 20.58 5.38 32.59 22.19 85.88 85.67
Relation Extract. F1 52.95 1.60 3.79 2.39 2.00 3.34 18.16 8.67 2.25 31.00 15.92 83.35 79.50
Entity Linking Acc 90.80 47.10 39.70 0.20 0.60 15.50 66.25 70.15 41.75 71.70 82.25 92.00 93.30
Row Pop. MAP 53.40 2.20 5.14 1.93 6.23 3.13 14.25 1.20 1.00 13.23 12.30 59.97 55.83
Question Answering
HiTab Exec Acc 48.40 11.74 0.00 0.00 0.00 39.08 6.30 0.76 0.00 1.70 10.73 70.27 75.57
FetaQA BLEU 21.70 12.24 8.69 2.42 3.10 7.94 10.83 15.08 11.17 13.00 16.91 28.97 32.25
HybridQA Acc 58.60 27.12 20.14 27.35 27.61 19.53 51.88 42.58 29.83 51.10 51.13 53.17 56.41
WikiSQL Acc 47.60 46.50 37.20 39.26 39.00 36.14 41.10 38.30 25.34 46.90 47.42 53.74 57.32
WikiTQ Acc 68.40 64.16 36.05 34.95 38.84 36.05 66.30 47.65 43.37 74.50 68.55 61.42 71.45
Fact Verification
TabFact Acc 74.40 72.00 53.20 40.06 27.13 60.76 68.95 62.27 79.6 77.26 84.60 77.80 85.43
FEVEROUS Acc 71.60 20.10 46.90 51.50 42.30 18.39 21.45 7.80 38.10 60.70 63.30 78.05 76.80
Table to Text
ToTTo BLEU 12.21 6.95 3.10 5.50 6.23 3.81 5.36 8.76 2.64 10.50 11.91 14.10 22.69
Natural Language to SQL
BIRD(dev) Exec Acc - 9.13 7.37 1.83 2.48 0.39 0.72 25.10 24.19 27.18 18.97 31.42 38.40
BIRD(dev-knowledge) Exec Acc - 15.45 18.19 3.39 3.72 0.39 1.83 36.51 39.96 42.96 31.42 49.28 60.76
Spider(dev) Exec Acc - 42.26 32.88 12.86 18.96 2.71 4.26 66.44 58.12 70.99 61.70 76.31 79.40
Spider(test) Exec Acc - 40.29 34.93 12.02 16.35 7.33 2.93 66.65 56.87 69.73 60.18 74.38 78.48
Holistic Table Evaluation
TableBench DP - 26.62 26.44 26.71 26.73 26.15 3.88 29.60 21.94 28.67 25.18 32.03 38.90
TableBench TCoT - 37.08 31.33 29.79 30.01 28.65 3.85 30.93 22.8 36.25 29.77 42.34 50.06
TableBench SCoT - 14.11 17.78 9.60 12.38 22.39 2.88 22.61 8.43 25.95 24.35 25.01 30.47
TableBench PoT@1 - 21.05 26.39 31.96 25.80 28.39 2.94 10.90 11.36 16.15 22.58 33.52 28.98

潜在应用

TableGPT2-7B 可以成为各种商业智能和数据驱动型应用的重要工具,包括

  • 自动生成报告: 该模型可从表格数据源生成报告、仪表盘和分析摘要。
  • 数据驱动的内容创建: TableGPT2-7B 可根据表格数据生成自然语言内容,如新闻文章、博客文章和社交媒体内容。
  • 代码生成: 该模型可为数据库和数据仓库应用程序相关的编码任务生成代码片段。

代码

transformers

bash 复制代码
pip install transformers>=4.37.0
python 复制代码
from transformers import AutoModelForCausalLM, AutoTokenizer

# Using pandas to read some structured data
import pandas as pd
from io import StringIO

# single table
EXAMPLE_CSV_CONTENT = """
"Loss","Date","Score","Opponent","Record","Attendance"
"Hampton (14--12)","September 25","8--7","Padres","67--84","31,193"
"Speier (5--3)","September 26","3--1","Padres","67--85","30,711"
"Elarton (4--9)","September 22","3--1","@ Expos","65--83","9,707"
"Lundquist (0--1)","September 24","15--11","Padres","67--83","30,774"
"Hampton (13--11)","September 6","9--5","Dodgers","61--78","31,407"
"""

csv_file = StringIO(EXAMPLE_CSV_CONTENT)
df = pd.read_csv(csv_file)

model_name = "tablegpt/TableGPT2-7B"

model = AutoModelForCausalLM.from_pretrained(
    model_name, torch_dtype="auto", device_map="auto"
)
tokenizer = AutoTokenizer.from_pretrained(model_name)

example_prompt_template = """Given access to several pandas dataframes, write the Python code to answer the user's question.

/*
"{var_name}.head(5).to_string(index=False)" as follows:
{df_info}
*/

Question: {user_question}
"""
question = "哪些比赛的战绩达到了40胜40负?"

prompt = example_prompt_template.format(
    var_name="df",
    df_info=df.head(5).to_string(index=False),
    user_question=question,
)

messages = [
    {"role": "system", "content": "You are a helpful assistant."},
    {"role": "user", "content": prompt},
]
text = tokenizer.apply_chat_template(
    messages, tokenize=False, add_generation_prompt=True
)
model_inputs = tokenizer([text], return_tensors="pt").to(model.device)

generated_ids = model.generate(**model_inputs, max_new_tokens=512)
generated_ids = [
    output_ids[len(input_ids) :]
    for input_ids, output_ids in zip(model_inputs.input_ids, generated_ids)
]

response = tokenizer.batch_decode(generated_ids, skip_special_tokens=True)[0]

vllm

bash 复制代码
pip install "vllm>=0.4.3"

模型部署: 使用 vLLM 部署模型。 例如,您可以使用该命令建立一个类似于 openAI 的服务器:

bash 复制代码
python -m vllm.entrypoints.openai.api_server --served-model-name TableGPT2-7B --model path/to/weights

客户端

bash 复制代码
curl http://localhost:8000/v1/chat/completions \
    -H "Content-Type: application/json" \
    -d '{
    "model": "TableGPT2-7B",
    "messages": [
        {"role": "system", "content": "You are a helpful assistant."},
        {"role": "user", "content": "Hey, who are you?"}
    ]
    }'

未来发展

TableGPT2-7B 的未来版本可能会发布,以增强其在特殊任务中的性能。该模型目前正在开发中,我们鼓励用户探索其功能并提供反馈。

总的来说,TableGPT2-7B 是一个功能强大的模型,有可能彻底改变我们分析和解释表格数据的方式。其独特的架构和功能使其成为各种商业智能和数据驱动应用的理想工具。

感谢大家花时间阅读我的文章,你们的支持是我不断前进的动力。点赞并关注,获取最新科技动态,不落伍!🤗🤗🤗

相关推荐
IT古董23 分钟前
【机器学习】机器学习的基本分类-强化学习-策略梯度(Policy Gradient,PG)
人工智能·机器学习·分类
落魄君子24 分钟前
GA-BP分类-遗传算法(Genetic Algorithm)和反向传播算法(Backpropagation)
算法·分类·数据挖掘
centurysee25 分钟前
【最佳实践】Anthropic:Agentic系统实践案例
人工智能
mahuifa25 分钟前
混合开发环境---使用编程AI辅助开发Qt
人工智能·vscode·qt·qtcreator·编程ai
四口鲸鱼爱吃盐26 分钟前
Pytorch | 从零构建GoogleNet对CIFAR10进行分类
人工智能·pytorch·分类
落魄君子30 分钟前
ELM分类-单隐藏层前馈神经网络(Single Hidden Layer Feedforward Neural Network, SLFN)
神经网络·分类·数据挖掘
蓝天星空39 分钟前
Python调用open ai接口
人工智能·python
睡觉狂魔er40 分钟前
自动驾驶控制与规划——Project 3: LQR车辆横向控制
人工智能·机器学习·自动驾驶
scan7241 小时前
LILAC采样算法
人工智能·算法·机器学习
leaf_leaves_leaf1 小时前
win11用一条命令给anaconda环境安装GPU版本pytorch,并检查是否为GPU版本
人工智能·pytorch·python