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

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

相关推荐
Landy_Jay44 分钟前
深度学习:基于Qwen复现DeepSeek R1的推理能力
人工智能·深度学习
EterNity_TiMe_1 小时前
【人工智能】蓝耘智算平台盛大发布DeepSeek满血版:开创AI推理体验新纪元
人工智能·python·机器学习·deepseek
RFID舜识物联网1 小时前
RFID测温技术:电力设备安全监测的新利器
网络·人工智能·嵌入式硬件·物联网·安全
豪越大豪1 小时前
豪越消防一体化安全管控平台新亮点: AI功能、智能运维以及消防处置知识库
大数据·人工智能·运维开发
9命怪猫1 小时前
AI大模型-提示工程学习笔记13—自动提示工程师 (Automatic Prompt Engineer)
人工智能·ai·大模型·prompt
Daitu_Adam2 小时前
Windows11安装GPU版本Pytorch2.6教程
人工智能·pytorch·python·深度学习
阿正的梦工坊2 小时前
Grouped-Query Attention(GQA)详解: Pytorch实现
人工智能·pytorch·python
Best_Me072 小时前
【CVPR2024-工业异常检测】PromptAD:与只有正常样本的少样本异常检测的学习提示
人工智能·学习·算法·计算机视觉
山海青风2 小时前
从零开始玩转TensorFlow:小明的机器学习故事 4
人工智能·机器学习·tensorflow
YoseZang2 小时前
【机器学习】信息熵 交叉熵和相对熵
人工智能·深度学习·机器学习