|
--- |
|
library_name: peft |
|
base_model: Qwen/Qwen1.5-1.8B-Chat |
|
datasets: |
|
- b-mc2/sql-create-context |
|
language: |
|
- en |
|
pipeline_tag: text-generation |
|
--- |
|
|
|
# Qwen-1.5-1.8B-SQL Model |
|
|
|
## Description |
|
This model, `deltawi/Qwen-1.5-1.8B-SQL`, is fine-tuned on SQL generation based on questions and context. It's designed to generate SQL queries from natural language descriptions, leveraging the [Qwen 1.5 - 1.8B model](https://huggingface.co/Qwen/Qwen1.5-1.8B-Chat). |
|
|
|
## Installation |
|
To use this model, you need to install the `transformers` library from Hugging Face. You can do this using pip: |
|
```bash |
|
pip install transformers huggingface_hub accelerate peft |
|
``` |
|
|
|
## Usage |
|
|
|
```python |
|
from transformers import AutoModelForCausalLM, AutoTokenizer |
|
|
|
# Set the device |
|
device = "cuda" # replace with your device: "cpu", "cuda", "mps" |
|
|
|
from transformers import AutoModelForCausalLM, AutoTokenizer |
|
import random |
|
|
|
|
|
peft_model_id = "deltawi/Qwen-1.5-1.8B-SQL" |
|
base_model_id = "Qwen/Qwen1.5-1.8B-Chat" |
|
|
|
device = "cuda" |
|
|
|
model = AutoModelForCausalLM.from_pretrained(base_model_id, device_map="auto") |
|
model.load_adapter(peft_model_id) |
|
tokenizer = AutoTokenizer.from_pretrained( |
|
"deltawi/Qwen-1.5-1.8B-SQL", |
|
#model_max_length=2048, |
|
padding_side="right", |
|
trust_remote_code=True, |
|
pad_token='<|endoftext|>' |
|
) |
|
|
|
# Define your question and context |
|
Question = "Your question here" |
|
Context = """ |
|
Your SQL context here |
|
""" |
|
|
|
# Create the prompt |
|
prompt = f"Question: {Question}\nContext: {Context}" |
|
messages = [ |
|
{"role": "system", "content": "You are a helpful assistant."}, |
|
{"role": "user", "content": prompt} |
|
] |
|
|
|
# Prepare the input |
|
text = tokenizer.apply_chat_template( |
|
messages, |
|
tokenize=False, |
|
add_generation_prompt=True |
|
) |
|
model_inputs = tokenizer([text], return_tensors="pt").to(device) |
|
|
|
# Generate the response |
|
generated_ids = model.generate( |
|
model_inputs.input_ids, |
|
max_new_tokens=512 |
|
) |
|
generated_ids = [ |
|
output_ids[len(input_ids):] for input_ids, output_ids in zip(model_inputs.input_ids, generated_ids) |
|
] |
|
|
|
# Decode the response |
|
response = tokenizer.batch_decode(generated_ids, skip_special_tokens=True)[0] |
|
print(response) |
|
|
|
``` |
|
|
|
## More details |
|
|
|
- Base Model: Qwen 1.5-1.8B |
|
- Fine-tuned for: SQL Query Generation |
|
- Fine-tuning using LoRA: r=64 |
|
- Training Data: [b-mc2/sql-create-context](https://huggingface.co/datasets/b-mc2/sql-create-context) |
|
|
|
### Framework versions |
|
|
|
- PEFT 0.8.2 |