File size: 2,336 Bytes
833ca90 2304d6b ce1c444 833ca90 ce1c444 833ca90 ce1c444 833ca90 ce1c444 833ca90 ce1c444 833ca90 ce1c444 833ca90 ce1c444 833ca90 ce1c444 833ca90 ce1c444 833ca90 ce1c444 833ca90 ce1c444 833ca90 ce1c444 833ca90 ce1c444 833ca90 ce1c444 2304d6b ce1c444 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 | ---
base_model: TinyLlama/TinyLlama-1.1B-Chat-v1.0
library_name: peft
pipeline_tag: text-generation
tags:
- base_model:adapter:TinyLlama/TinyLlama-1.1B-Chat-v1.0
- lora
- sft
- transformers
- trl
- text-to-sql
datasets:
- b-mc2/sql-create-context
---
# 🤖 TinyLlama Text-to-SQL (LoRA Adapter)
هذا النموذج عبارة عن **LoRA Adapter** تم تدريبه لتعديل سلوك نموذج `TinyLlama-1.1B` ليصبح متخصصاً في تحويل الأسئلة باللغة الطبيعية إلى كود SQL دقيق بناءً على هيكل الجدول (Schema) المعطى له، دون أي ثرثرة زائدة.
- **Developed by:** Adam Abu Hamdan
- **Model type:** PEFT (LoRA)
- **Language:** English (Text & SQL)
- **Finetuned from model:** TinyLlama/TinyLlama-1.1B-Chat-v1.0
---
## 💡 كيف يعمل النموذج (How to Get Started)
يمكنك تشغيل هذا النموذج ودمج الأدابتر (الـ 20 ميجابايت) مع النموذج الأساسي باستخدام الكود التالي في بايثون:
```python
import torch
from transformers import AutoModelForCausalLM, AutoTokenizer
from peft import PeftModel
BASE_MODEL = "TinyLlama/TinyLlama-1.1B-Chat-v1.0"
ADAPTER_MODEL = "adamabuhamdan/tinyllama-sql-lora"
# 1. تحميل المترجم والنموذج الأساسي
tokenizer = AutoTokenizer.from_pretrained(BASE_MODEL)
base_model = AutoModelForCausalLM.from_pretrained(
BASE_MODEL,
torch_dtype=torch.float16,
device_map="auto",
)
# 2. دمج أوزان LoRA التي قمنا بتدريبها
model = PeftModel.from_pretrained(base_model, ADAPTER_MODEL)
model.eval()
# 3. تجربة توليد كود SQL
schema = "CREATE TABLE employees (id INT, name TEXT, department TEXT, salary INT);"
question = "List the names of employees in Engineering earning more than 100000."
prompt = f"<|system|>\nYou are a SQL assistant. Given a table schema and a question, reply with ONLY the SQL query, nothing else.</s>\n<|user|>\nSchema:\n{schema}\n\nQuestion: {question}</s>\n<|assistant|>\n"
inputs = tokenizer(prompt, return_tensors="pt").to(model.device)
with torch.no_grad():
outputs = model.generate(**inputs, max_new_tokens=100, do_sample=False)
print(tokenizer.decode(outputs[0][inputs.input_ids.shape[1]:], skip_special_tokens=True).strip()) |