当前位置: 首页 > article >正文

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 等生物医学语言模型,后者专注于生物医学领域。

BenchmarkMetricGPT-4oTableLLM (Qwen2)TableLLM (CodeQwen)TableLLM (LLaMA3)TableLLM (LLaMA3.1)TableLLM (DeepSeek)TableLLM-13BDeepSeek-liteYi-CoderQwen2.5-CoderQwen2.5-InstructTableGPT2-7BTableGPT2-72B
Table Understanding
Col Type Annot.F131.7510.105.711.471.596.0412.7020.585.3832.5922.1985.8885.67
Relation Extract.F152.951.603.792.392.003.3418.168.672.2531.0015.9283.3579.50
Entity LinkingAcc90.8047.1039.700.200.6015.5066.2570.1541.7571.7082.2592.0093.30
Row Pop.MAP53.402.205.141.936.233.1314.251.201.0013.2312.3059.9755.83
Question Answering
HiTabExec Acc48.4011.740.000.000.0039.086.300.760.001.7010.7370.2775.57
FetaQABLEU21.7012.248.692.423.107.9410.8315.0811.1713.0016.9128.9732.25
HybridQAAcc58.6027.1220.1427.3527.6119.5351.8842.5829.8351.1051.1353.1756.41
WikiSQLAcc47.6046.5037.2039.2639.0036.1441.1038.3025.3446.9047.4253.7457.32
WikiTQAcc68.4064.1636.0534.9538.8436.0566.3047.6543.3774.5068.5561.4271.45
Fact Verification
TabFactAcc74.4072.0053.2040.0627.1360.7668.9562.2779.677.2684.6077.8085.43
FEVEROUSAcc71.6020.1046.9051.5042.3018.3921.457.8038.1060.7063.3078.0576.80
Table to Text
ToTToBLEU12.216.953.105.506.233.815.368.762.6410.5011.9114.1022.69
Natural Language to SQL
BIRD(dev)Exec Acc-9.137.371.832.480.390.7225.1024.1927.1818.9731.4238.40
BIRD(dev-knowledge)Exec Acc-15.4518.193.393.720.391.8336.5139.9642.9631.4249.2860.76
Spider(dev)Exec Acc-42.2632.8812.8618.962.714.2666.4458.1270.9961.7076.3179.40
Spider(test)Exec Acc-40.2934.9312.0216.357.332.9366.6556.8769.7360.1874.3878.48
Holistic Table Evaluation
TableBenchDP-26.6226.4426.7126.7326.153.8829.6021.9428.6725.1832.0338.90
TableBenchTCoT-37.0831.3329.7930.0128.653.8530.9322.836.2529.7742.3450.06
TableBenchSCoT-14.1117.789.6012.3822.392.8822.618.4325.9524.3525.0130.47
TableBenchPoT@1-21.0526.3931.9625.8028.392.9410.9011.3616.1522.5833.5228.98
# 潜在应用

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

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

代码

transformers

pip install transformers>=4.37.0
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

pip install "vllm>=0.4.3"

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

python -m vllm.entrypoints.openai.api_server --served-model-name TableGPT2-7B --model path/to/weights

客户端

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

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


http://www.kler.cn/a/398476.html

相关文章:

  • gitlab和jenkins连接
  • java常用工具包介绍
  • ODC 如何精确呈现SQL耗时 | OceanBase 开发者工具解析
  • go环境搭建
  • # ubuntu 安装的pycharm不能输入中文的解决方法
  • ubuntu将firewall-config导出为.deb文件
  • 如何从docker-hub下载镜像
  • 【priority_queue的使用及模拟实现】—— 我与C++的不解之缘(十六)
  • 题目讲解17 判断链表中是否有环
  • BigQuery中jobUser和dataViewer的角色有什么不同
  • C++ 内联函数
  • 006.精读《Apache Paimon Docs - Concepts》
  • ArkTs简单入门案例:简单的图片切换应用界面
  • AWTK-WIDGET-WEB-VIEW 发布
  • C++11实现线程库
  • 21.3D surface
  • Python 子进程输出重定向以后,部分内容会出现在父进程的控制台屏幕上
  • .NET 一款SYSTEM权限隐藏的计划任务工具
  • vxe-grid table 校验指定行单元格的字段,只校验某个列的字段
  • Leetcode 3356. Zero Array Transformation II
  • uni-app快速入门(六)--rpx尺寸单位与Flex布局
  • 【网络安全面经】OSI七层模型每层都有什么协议
  • 【网络安全】SSL(一):为什么需要 Keyless SSL?
  • 023、ELK 从入门到实践
  • 【AI日记】24.11.17 看 GraphRAG 论文,了解月之暗面
  • 深度学习中常见的学习率调整策略