模型:
mrm8488/t5-base-finetuned-wikiSQL
Google's T5 在 WikiSQL 上为英语到SQL的翻译进行微调。
T5模型是由Colin Raffel、Noam Shazeer、Adam Roberts、Katherine Lee、Sharan Narang、Michael Matena、Yanqi Zhou、Wei Li和Peter J. Liu在 Exploring the Limits of Transfer Learning with a Unified Text-to-Text Transformer 中提出的。以下是摘要:
迁移学习是一种先在数据丰富的任务上进行预训练,然后在下游任务上进行微调的模型技术,在自然语言处理(NLP)中被证明是一种强大的技术。迁移学习的有效性催生了各种方法、方法论和实践。在本文中,我们通过引入一个统一的框架,将每个语言问题转化为文本到文本的格式,来探索NLP的迁移学习技术领域。我们的系统研究比较了预训练目标、架构、无标记数据集、迁移方法和其他因素在数十个语言理解任务上的表现。通过将我们的探索洞察与规模和我们的新的“巨大干净爬取语料库”相结合,我们在涵盖摘要、问答、文本分类等多个基准测试中取得了最先进的结果。为了促进未来对NLP的迁移学习的研究,我们发布了我们的数据集、预训练模型和代码。
数据集ID:wikisql,来源于 Huggingface/NLP
| Dataset | Split | # samples |
|---|---|---|
| wikisql | train | 56355 |
| wikisql | valid | 14436 |
如何从 nlp 加载它
train_dataset = nlp.load_dataset('wikisql', split=nlp.Split.TRAIN)
valid_dataset = nlp.load_dataset('wikisql', split=nlp.Split.VALIDATION)
在 NLP Viewer 中了解更多关于该数据集和其他数据集的信息
训练脚本是 this Colab Notebook 的稍微修改版本,由 Suraj Patil 创建,因此所有信用归于他!
from transformers import AutoModelWithLMHead, AutoTokenizer
tokenizer = AutoTokenizer.from_pretrained("mrm8488/t5-base-finetuned-wikiSQL")
model = AutoModelWithLMHead.from_pretrained("mrm8488/t5-base-finetuned-wikiSQL")
def get_sql(query):
input_text = "translate English to SQL: %s </s>" % query
features = tokenizer([input_text], return_tensors='pt')
output = model.generate(input_ids=features['input_ids'],
attention_mask=features['attention_mask'])
return tokenizer.decode(output[0])
query = "How many models were finetuned using BERT as base model?"
get_sql(query)
# output: 'SELECT COUNT Model fine tuned FROM table WHERE Base model = BERT'
创建者: Manuel Romero/@mrm8488 | LinkedIn
在西班牙用 ♥ 制作