🚀 Llama-2-7B-instruct-text2sql モデルカード
このモデルは、70億パラメータのLlama 2をファインチューニングしたもので、テキストからSQLへの変換タスクに特化しています。データベーススキーマと自然言語の質問を元に、SQLクエリを生成するように訓練されています。
🚀 クイックスタート
このモデルを使用するには、以下のコードを参考にしてください。このコードでは、自然言語の質問からSQLクエリを生成する方法を示しています。
pip install -q accelerate==0.24.1 transformers==4.35.0 torch==2.1.0 torchvision==0.16.0 torchaudio==2.1.0
import torch
from transformers import (
AutoModelForCausalLM,
AutoTokenizer
)
model_name = 'support-pvelocity/Llama-2-7B-instruct-text2sql'
model = AutoModelForCausalLM.from_pretrained(model_name, device_map='auto', torch_dtype=torch.float16)
tokenizer = AutoTokenizer.from_pretrained(model_name)
table = "CREATE TABLE sales ( sale_id number PRIMARY KEY, product_id number, customer_id number, salesperson_id number, sale_date DATE, quantity number, FOREIGN KEY (product_id) REFERENCES products(product_id), FOREIGN KEY (customer_id) REFERENCES customers(customer_id), FOREIGN KEY (salesperson_id) REFERENCES salespeople(salesperson_id)); CREATE TABLE product_suppliers ( supplier_id number PRIMARY KEY, product_id number, supply_price number, FOREIGN KEY (product_id) REFERENCES products(product_id)); CREATE TABLE customers ( customer_id number PRIMARY KEY, name text, address text ); CREATE TABLE salespeople ( salesperson_id number PRIMARY KEY, name text, region text ); CREATE TABLE product_suppliers ( supplier_id number PRIMARY KEY, product_id number, supply_price number );"
question = 'Find the salesperson who made the most sales.'
prompt = f"[INST] Write SQLite query to answer the following question given the database schema. Please wrap your code answer using ```: Schema: {table} Question: {question} [/INST] Here is the SQLite query to answer to the question: {question}: ``` "
tokens = tokenizer(prompt, return_tensors="pt").to('cuda:0')
input_ids = tokens.input_ids
generated_ids = model.generate(input_ids=input_ids, max_length=4048, pad_token_id=tokenizer.eos_token_id)
output = tokenizer.decode(generated_ids[0], skip_special_tokens=True)
output = output.split('```')[2]
print(output)
✨ 主な機能
- コードの自動補完
- コードの埋め込み
- 命令応答 / チャット
📦 インストール
以下のコマンドを実行して、必要なライブラリをインストールします。
pip install -q accelerate==0.24.1 transformers==4.35.0 torch==2.1.0 torchvision==0.16.0 torchaudio==2.1.0
📚 ドキュメント
モデル情報
LoRAパラメータ
- lora_r: 64
- lora_alpha: 16
- lora_dropout: 0.1
bitsandbytesパラメータ
- use_4bit: True
- bnb_4bit_compute_dtype: float16
- bnb_4bit_quant_type: nf4
- use_nested_quant: False
トレーニングパラメータ
- トレーニングエポック数: 1
- 混合精度トレーニング (fp16/bf16): False
- トレーニング時のGPUごとのバッチサイズ: 32
- 評価時のGPUごとのバッチサイズ: 4
- 勾配累積ステップ: 1
- 勾配チェックポイント: True
- 最大勾配ノルム (勾配クリッピング): 0.3
- 初期学習率: 2e-4
- 重み減衰: 0.001
- オプティマイザ: paged_adamw_32bit
- 学習率スケジューラタイプ: cosine
- 最大ステップ: -1
- ウォームアップ比率: 0.03
- シーケンスを長さでグループ化: True
- X更新ステップごとにチェックポイントを保存: 0
- X更新ステップごとにログを記録: 25
ライセンス
このモデルは、Llamaのカスタム商用ライセンスに基づいています。詳細については、カスタム商用ライセンスを参照してください。
想定使用方法
- 想定使用ケース: このモデルは、英語での商用および研究目的で使用することを想定しています。テキストからSQLへの変換タスクに使用され、自然言語の質問からSQLクエリを生成することができます。
- 想定外の使用方法: 適用される法律や規制に違反する使用、英語以外の言語での使用、またはLlamaおよびそのバリアントの許容使用ポリシーおよびライセンス契約で禁止されているその他の使用。
モデルアーキテクチャ
Llama-2-7B-instruct-text2sqlは、最適化されたトランスフォーマーアーキテクチャを使用した自己回帰型言語モデルです。
モデルの日付
このモデルは、2023年1月から2023年7月の間にトレーニングされました。
倫理的考慮事項と制限事項
Llama-2-7B-instruct-text2sqlは強力な言語モデルですが、場合によっては不正確または不快な応答を生成する可能性があります。このモデルを特定のアプリケーションにデプロイする前に、安全性のテストとチューニングを行うことをお勧めします。
ハードウェアとソフトウェア
- トレーニングライブラリ: カスタムトレーニングライブラリ
- トレーニングハードウェア: Google Colab Pro+が提供する1台のA100 40GB GPU
- 二酸化炭素排出量: すべてのLlamaモデルのトレーニングには、A100-80GBハードウェアで40万GPU時間が必要で、排出量はMetaの持続可能性プログラムによって相殺されています。
トレーニングデータ
このモデルは、Llama 2と同じデータでトレーニングおよびファインチューニングされていますが、重みが異なります。
評価結果
評価結果については、研究論文のセクション3とセクション4の安全性評価を参照してください。
🔧 技術詳細
このモデルは、70億パラメータのLlama 2をベースに、テキストからSQLへの変換タスクに特化してファインチューニングされています。トレーニングには、特定のデータセットとパラメータが使用されており、その詳細は上記のドキュメントに記載されています。
📄 ライセンス
このモデルは、Llamaのカスタム商用ライセンスに基づいています。詳細については、カスタム商用ライセンスを参照してください。