AI知识库

53AI知识库

学习大模型的前沿技术与行业应用场景


TableGPT2-7B:浙大推出专注于分析和处理表格数据的大模型
发布日期:2024-11-12 20:15:27 浏览次数: 1749 来源:蚝油菜花


  1. TableGPT2-7B 是浙江大学推出的大规模解码器,专注于处理和分析表格数据。
  2. 模型通过特殊的表格编码器和双维注意力机制,有效捕捉表格数据的行和列关系。
  3. 在多个基准测试中,TableGPT2-7B 的性能显著优于其他模型。

正文(附运行示例)

TableGPT2-7B 是什么

TableGPT2-7B 是由浙江大学开发的大规模解码器,专为数据密集型任务设计,特别强调处理和分析表格数据。该模型旨在填补传统大语言模型(LLM)能力和实际需求之间的差距,特别是在商业智能(BI)、自动数据驱动分析以及涉及数据库或数据仓库的任务中表现出色。

TableGPT2-7B 的技术原理

  1. 结构化数据作为独立模态:TableGPT2-7B 将结构化数据视为一种独立的模态,直接理解和处理数据库和 Excel 中的数据。
  2. 表格编码器:模型包含一个专门的表格编码器,用于读取和解释表格数据。编码器处理整个表格,生成每列的紧凑嵌入,基于双维注意力机制,无需位置嵌入,同时进行分层特征提取,确保行和列的关系被有效捕捉。
  3. 双维注意力机制:TableGPT2-7B 使用双维注意力机制处理表格数据,支持模型捕捉表格的行和列之间的关系,同时保持对表格结构的感知。
  4. 列对比学习方法:基于列对比学习方法,模型被鼓励去学习有意义的、结构感知的语义表示,有助于模型更好地理解和解释表格数据。
  5. Q-former 样式适配器:用 Q-former 样式的适配器对齐表格嵌入和文本输入,引入可学习的查询,及特殊标记区分表格特征与文本,让模型同时处理两种模态。

如何运行 TableGPT2-7B

安装依赖

首先,确保安装了 transformers 库:

pip install transformers>=4.37.0

加载模型和数据

from transformers import AutoModelForCausalLM, AutoTokenizer
import pandas as pd
from io import StringIO

# 示例表格数据
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]
print(response)


53AI,企业落地应用大模型首选服务商

产品:大模型应用平台+智能体定制开发+落地咨询服务

承诺:先做场景POC验证,看到效果再签署服务协议。零风险落地应用大模型,已交付160+中大型企业

联系我们

售前咨询
186 6662 7370
预约演示
185 8882 0121

微信扫码

与创始人交个朋友

回到顶部

 
扫码咨询