🚀 slim-sql-1b-v0模型介绍
slim-sql-1b-v0是SLIM(专用语言指令模型)系列的首个模型,能够根据自然语言提示,为简单表结构的数据检索生成准确的SQL查询。
🚀 快速开始
使用slim模型的最快方法是在transformers
库中直接导入:
from transformers import AutoTokenizer, AutoModelForCausalLM
tokenizer = AutoTokenizer.from_pretrained("slim-sql-1b-v0")
model = AutoModelForCausalLM.from_pretrained("slim-sql-1b-v0")
请参考文件仓库中的generation_test.py
文件,其中包含100个样本和测试模型的脚本。
sql-slim模型使用简单的“和包装器”进行微调,因此为了获得最佳效果,请将推理条目包装为:
full_prompt = "<human>: " + my_prompt + "\n" + "<bot>:"
提示由两部分组成:
- 提供表名、变量和变量类型的表创建提示。
- 基于文本段落的具体问题或指令。
测试样本示例:
{"context": "CREATE TABLE table_name_34 (season VARCHAR, lost VARCHAR, points VARCHAR)", "question": "Which season did the Minnesota Kicks lose 13 games and score 156 points?", "answer": "SELECT COUNT(season) FROM table_name_34 WHERE lost = 13 AND points = 156"}
此仓库中提供了一部分测试样本("sql_test_100_simple_s")。
如果使用HuggingFace生成脚本:
new_prompt = "<human>: " + entries["context"] + "\n" + entries["query"] + "\n" + "<bot>:"
inputs = tokenizer(new_prompt, return_tensors="pt")
start_of_output = len(inputs.input_ids[0])
outputs = model.generate(
inputs.input_ids.to(device),
eos_token_id=tokenizer.eos_token_id,
pad_token_id=tokenizer.eos_token_id,
do_sample=True,
temperature=0.3,
max_new_tokens=100,
)
output_only = tokenizer.decode(outputs[0][start_of_output:],skip_special_tokens=True)
✨ 主要特性
slim-sql-1b-v0专为根据自然语言提示,为简单表结构的数据检索生成准确的SQL查询而设计。为获得最佳效果,提示应构造成一个问题,以检索信息并对一个或多个变量执行聚合函数。
📦 安装指南
通过transformers
库直接导入模型:
from transformers import AutoTokenizer, AutoModelForCausalLM
tokenizer = AutoTokenizer.from_pretrained("slim-sql-1b-v0")
model = AutoModelForCausalLM.from_pretrained("slim-sql-1b-v0")
📚 详细文档
基准测试
针对100个字符以下的100个测试SQL查询进行评估。完全字符串匹配得1分,答案错误得0分。
- 准确率得分:100个查询中,86个正确。
- 8个错误答案归因于查询结构顺序或命名约定的差异。
- 6个错误答案归因于变量选择错误或聚合函数使用不当。
模型描述
直接使用
slim-sql-1b-v0旨在根据自然语言提示,为简单表结构的数据检索生成准确的SQL查询。为获得最佳效果,提示应构造成一个问题,以检索信息并对一个或多个变量执行聚合函数。
偏差、风险和局限性
任何模型都可能提供不准确或不完整的信息,因此应与适当的保障措施和事实核查机制结合使用。
模型卡片联系人
Dylan Oberst & llmware团队
📄 许可证
本模型使用的许可证为apache-2.0。