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

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

相关推荐
njsgcs几秒前
我要让ai理解3d模型,什么孔面是装轴承,什么面是攻牙孔,什么面是轴面,区分从动轮主动轮
人工智能
猫头_几秒前
RAG 全链路深度拆解:“大白”学习RAG的极简指南
人工智能·langchain·llm
灰化肥发挥1 分钟前
韩国草药制剂数据查询:如何获取MFDS注册数据与韩国药典标准?
大数据·人工智能·医药数据库
小王毕业啦4 分钟前
2010-2023年 地级市-破产法庭设立数据(+文献)
大数据·人工智能·数据挖掘·数据分析·社科数据·经管数据·破产法庭
一只川页21 分钟前
从“对话”到“实干”:大模型应用架构演进全景解析
人工智能·架构
雷焰财经22 分钟前
从系统承建到生态赋能:宇信科技全球化战略的纵深与逻辑
大数据·人工智能·科技
阿_旭23 分钟前
基于YOLO26深度学习的风力机缺陷检测与语音提示系统【python源码+Pyqt5界面+数据集+训练代码】
人工智能·python·深度学习·风力机缺陷检测
共绩算力29 分钟前
海贼王 Pop-Up Book 风格AI生图提示词指南
人工智能·共绩算力
沪漂阿龙31 分钟前
大模型最后一步关键训练:偏好调优,让AI更懂人心
人工智能
李恒-聆机智能专精数采33 分钟前
从零开始了解数据采集技术篇(8)——为什么工业数据采集很难用“一站式平台”解决?从设备生态到系统架构的技术分析
运维·网络·数据库·数据分析·数据采集