返回顶部
热门问答 更多热门问答
技术文章 更多技术文章

TableGPT2-7B:浙大推出专注于分析和处理表格数据的大模型

[复制链接]
链载Ai 显示全部楼层 发表于 昨天 11:49 |阅读模式 打印 上一主题 下一主题
  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 库:

pipinstalltransformers>=4.37.0

加载模型和数据

fromtransformersimportAutoModelForCausalLM,AutoTokenizer
importpandasaspd
fromioimportStringIO

#示例表格数据
EXAMPLE_CSV_CONTENT="""
"Loss","Date","Score","Opponent","Record","Attendance"
"Hampton(14–12)","September25","8–7","adres","67–84","31,193"
"Speier(5–3)","September26","3–1","adres","67–85","30,711"
"Elarton(4–9)","September22","3–1","@Expos","65–83","9,707"
"Lundquist(0–1)","September24","15–11","adres","67–83","30,774"
"Hampton(13–11)","September6","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="""Givenaccesstoseveralpandasdataframes,writethePythoncodetoanswertheuser'squestion.

/*
"{var_name}.head(5).to_string(index=False)"asfollows:
{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":"Youareahelpfulassistant."},
{"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):]
forinput_ids,output_idsinzip(model_inputs.input_ids,generated_ids)
]

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

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

链载AI是专业的生成式人工智能教程平台。提供Stable Diffusion、Midjourney AI绘画教程,Suno AI音乐生成指南,以及Runway、Pika等AI视频制作与动画生成实战案例。从提示词编写到参数调整,手把手助您从入门到精通。
  • 官方手机版

  • 微信公众号

  • 商务合作

  • Powered by Discuz! X3.5 | Copyright © 2025-2025. | 链载Ai
  • 桂ICP备2024021734号 | 营业执照 | |广西笔趣文化传媒有限公司|| QQ