🚀 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。