🚀 slim-sql-1b-v0
slim-sql-1b-v0は、SLIM(Specialized Language Instruct Model)シリーズの最初のモデルです。自然言語のプロンプトを元に、単純なテーブル構造に対する正確なSQLクエリを生成することができます。
🚀 クイックスタート
slimを始める最も速い方法は、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>:"
プロンプトは2つのサブパートで構成されています。
- テーブル名、変数、変数の型を指定するテーブル作成プロンプト。
- テキストパッセージに基づく具体的な質問または指示。
テストサンプルの例:
{"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])
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クエリを生成するように設計されています。
- 最適な結果を得るには、プロンプトを質問形式にし、情報を取得し、1つまたは複数の変数に対して集約関数を実行するように構成する必要があります。
📦 インストール
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クエリを生成するように設計されています。最適な結果を得るには、プロンプトを質問形式にし、情報を取得し、1つまたは複数の変数に対して集約関数を実行するように構成する必要があります。
バイアス、リスク、および制限事項
すべてのモデルは、不正確または不完全な情報を提供する可能性があります。適切なセキュリティ対策と事実確認メカニズムと併用する必要があります。
📄 ライセンス
このモデルは、apache-2.0ライセンスの下で提供されています。
モデルカードの問い合わせ先
Dylan Oberst & llmwareチーム