license: apache-2.0
模型卡片:Model ID
slim-sql-1b-v0是SLIM(专用语言指令模型)系列的首个模型。
基准测试
针对100个字符以下的100条SQL测试查询进行评估。完全匹配得1分,错误答案得0分。
--准确率得分:100题中答对86题
- 8个错误答案归因于查询结构排序或命名约定差异
- 6个错误答案归因于变量选择错误或聚合函数使用不当
模型描述
直接使用
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")
请参考Files仓库中的generation_test.py文件,内含100个测试样本和模型测试脚本。
sql-slim模型采用简单的"<human>和<bot>"包装器进行微调,因此最佳实践是将推理输入包装为:
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")。
训练使用时,"<human>"标签对应"context"和"question"语句,"<bot>"标签对应模型输出。
若使用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])
# 参数设置:
# temperature: 设为0.3以保证输出一致性
# max_new_tokens: 设为100 - 可能提前终止部分摘要
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)
模型卡片联系人
Dylan Oberst & llmware团队