227 lines
6.7 KiB
Markdown
227 lines
6.7 KiB
Markdown
|
|
---
|
||
|
|
license: mit
|
||
|
|
base_model: Qwen/Qwen2.5-1.5B-Instruct
|
||
|
|
language:
|
||
|
|
- en
|
||
|
|
- uz
|
||
|
|
- ru
|
||
|
|
- kk
|
||
|
|
- kaa
|
||
|
|
tags:
|
||
|
|
- queryshield
|
||
|
|
- prompt-optimization
|
||
|
|
- multilingual
|
||
|
|
- instruction-tuning
|
||
|
|
- lora
|
||
|
|
- qlora
|
||
|
|
- qwen2.5
|
||
|
|
- uzbek
|
||
|
|
- karakalpak
|
||
|
|
- kazakh
|
||
|
|
- central-asia
|
||
|
|
- fine-tuned
|
||
|
|
pipeline_tag: text-generation
|
||
|
|
datasets:
|
||
|
|
- nickoo004/queryshield-multilingual
|
||
|
|
---
|
||
|
|
|
||
|
|
# QueryShield — Multilingual Prompt Optimizer
|
||
|
|
|
||
|
|
**QueryShield-1.5B** is a fine-tuned version of [Qwen2.5-1.5B-Instruct](https://huggingface.co/Qwen/Qwen2.5-1.5B-Instruct) trained to rewrite raw, messy user queries into detailed, structured instruction prompts for downstream LLMs — across 5 languages and 30 professional domains.
|
||
|
|
|
||
|
|
> Given a raw user question → outputs an expert-level optimized prompt telling a downstream LLM *how* to answer it.
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## What it does
|
||
|
|
|
||
|
|
Most LLMs perform significantly better when given structured, detailed prompts rather than raw user input. QueryShield sits **between the user and the LLM** — it takes the raw query and rewrites it into a high-quality instruction prompt automatically.
|
||
|
|
|
||
|
|
```
|
||
|
|
User: "menga diabetni boshqarish uchun ovqat rejimi ayting"
|
||
|
|
↓ QueryShield
|
||
|
|
Optimized: "As a Medical Expert, the user is asking in Uzbek about dietary
|
||
|
|
management for diabetes with high blood sugar. Provide a structured
|
||
|
|
3-tier response covering: diabetes basics, dietary assessment, and
|
||
|
|
an actionable meal plan. Respond entirely in Uzbek. Avoid jargon..."
|
||
|
|
↓ Downstream LLM
|
||
|
|
Final answer in Uzbek ✅
|
||
|
|
```
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## Model Details
|
||
|
|
|
||
|
|
| Property | Value |
|
||
|
|
|---|---|
|
||
|
|
| **Base model** | Qwen/Qwen2.5-1.5B-Instruct |
|
||
|
|
| **Training data** | [QueryShield Multilingual Dataset](https://huggingface.co/datasets/nickoo004/queryshield-multilingual) |
|
||
|
|
| **Training rows** | 19,530 |
|
||
|
|
| **Epochs** | 3 |
|
||
|
|
| **Train loss** | 0.88 → 0.47 |
|
||
|
|
| **Eval loss** | 0.967 (best checkpoint) |
|
||
|
|
| **GPU** | NVIDIA RTX 3090 24GB |
|
||
|
|
| **Training time** | ~3.7 hours |
|
||
|
|
| **Parameters** | 1.5B total / 147M trainable (8.7%) |
|
||
|
|
| **Live demo** | [▶ Kaggle Notebook](https://www.kaggle.com/code/nursultankoshekbaev/queryshield-1-5b) |
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## Languages
|
||
|
|
|
||
|
|
| Language | Code | Support |
|
||
|
|
|---|---|---|
|
||
|
|
| English | `en` | ✅ Full |
|
||
|
|
| Uzbek | `uz` | ✅ Full |
|
||
|
|
| Russian | `ru` | ✅ Full |
|
||
|
|
| Kazakh | `kk` | ✅ Full |
|
||
|
|
| Karakalpak | `kaa` | ✅ Good |
|
||
|
|
|
||
|
|
**Cross-lingual** scenarios supported — user can write in one language and request output in another (e.g., Uzbek input → Russian output).
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## Quick Start
|
||
|
|
|
||
|
|
```python
|
||
|
|
from transformers import AutoTokenizer, AutoModelForCausalLM
|
||
|
|
import torch
|
||
|
|
|
||
|
|
model_id = "nickoo004/queryshield-1.5b"
|
||
|
|
|
||
|
|
tokenizer = AutoTokenizer.from_pretrained(model_id, trust_remote_code=True)
|
||
|
|
model = AutoModelForCausalLM.from_pretrained(
|
||
|
|
model_id,
|
||
|
|
torch_dtype=torch.bfloat16,
|
||
|
|
device_map="auto",
|
||
|
|
trust_remote_code=True,
|
||
|
|
)
|
||
|
|
|
||
|
|
SYSTEM = (
|
||
|
|
"You are QueryShield, a multilingual prompt optimizer. "
|
||
|
|
"Given a raw user question, rewrite it into a detailed instruction "
|
||
|
|
"prompt for a downstream LLM expert. "
|
||
|
|
"User language: {in_lang}. Response language: {out_lang}. "
|
||
|
|
"Expert role: {role}."
|
||
|
|
)
|
||
|
|
|
||
|
|
def optimize_prompt(user_question, input_language, output_language, role):
|
||
|
|
messages = [
|
||
|
|
{"role": "system", "content": SYSTEM.format(
|
||
|
|
in_lang=input_language,
|
||
|
|
out_lang=output_language,
|
||
|
|
role=role,
|
||
|
|
)},
|
||
|
|
{"role": "user", "content": user_question},
|
||
|
|
]
|
||
|
|
text = tokenizer.apply_chat_template(
|
||
|
|
messages, tokenize=False, add_generation_prompt=True
|
||
|
|
)
|
||
|
|
inputs = tokenizer(text, return_tensors="pt").to(model.device)
|
||
|
|
with torch.no_grad():
|
||
|
|
output = model.generate(
|
||
|
|
**inputs,
|
||
|
|
max_new_tokens=512,
|
||
|
|
temperature=0.7,
|
||
|
|
do_sample=True,
|
||
|
|
repetition_penalty=1.1,
|
||
|
|
pad_token_id=tokenizer.eos_token_id,
|
||
|
|
)
|
||
|
|
new_tokens = output[0][inputs["input_ids"].shape[1]:]
|
||
|
|
return tokenizer.decode(new_tokens, skip_special_tokens=True)
|
||
|
|
|
||
|
|
|
||
|
|
# Example 1 — Uzbek monolingual
|
||
|
|
result = optimize_prompt(
|
||
|
|
user_question="menga diabetni boshqarish uchun eng yaxshi ovqatlanish rejimini ayting",
|
||
|
|
input_language="Uzbek",
|
||
|
|
output_language="Uzbek",
|
||
|
|
role="Medical Expert",
|
||
|
|
)
|
||
|
|
print(result)
|
||
|
|
|
||
|
|
# Example 2 — Cross-lingual: Kazakh -> Uzbek
|
||
|
|
result = optimize_prompt(
|
||
|
|
user_question="менің фермамда топырақ сапасы нашар, не істеуім керек?",
|
||
|
|
input_language="Kazakh",
|
||
|
|
output_language="Uzbek",
|
||
|
|
role="Agricultural Scientist",
|
||
|
|
)
|
||
|
|
print(result)
|
||
|
|
```
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## Live Demo
|
||
|
|
|
||
|
|
**[▶ Run on Kaggle](https://www.kaggle.com/code/nursultankoshekbaev/queryshield-1-5b)** — no setup needed, free GPU included.
|
||
|
|
|
||
|
|
Tests all 7 cases: English, Uzbek, Russian, Kazakh, Karakalpak + 2 cross-lingual pairs.
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## Supported Domains (30 total)
|
||
|
|
|
||
|
|
| Domain | Expert Role |
|
||
|
|
|---|---|
|
||
|
|
| Software Engineering | Senior Software Engineer |
|
||
|
|
| Healthcare & Medicine | Medical Expert |
|
||
|
|
| Finance & Banking | Financial Analyst |
|
||
|
|
| Legal & Law | Legal Advisor |
|
||
|
|
| Data Science & AI | Data Scientist |
|
||
|
|
| Cybersecurity | Cybersecurity Specialist |
|
||
|
|
| Aviation & Aerospace | Aerospace Engineer |
|
||
|
|
| Agriculture | Agricultural Scientist |
|
||
|
|
| Education & Teaching | Experienced Educator |
|
||
|
|
| Automotive | Automotive Engineer |
|
||
|
|
| Pharmaceuticals | Pharmaceutical Researcher |
|
||
|
|
| Manufacturing | Manufacturing Expert |
|
||
|
|
| Civil / Mechanical / Electrical Engineering | Domain Engineer |
|
||
|
|
| Business & Marketing | Business Strategist |
|
||
|
|
| Creative Writing | Professional Writer |
|
||
|
|
| … and 15 more | … |
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## Training Details
|
||
|
|
|
||
|
|
### Dataset
|
||
|
|
- **Source:** [nickoo004/queryshield-multilingual](https://huggingface.co/datasets/nickoo004/queryshield-multilingual)
|
||
|
|
- **19,530 rows** across 5 languages and 30 domains
|
||
|
|
- Generated by DeepSeek, Gemini, and Qwen2.5-14B
|
||
|
|
|
||
|
|
### Loss Curve
|
||
|
|
```
|
||
|
|
Epoch 1.0 -> train: 1.023 | eval: 0.997
|
||
|
|
Epoch 2.5 -> train: 0.731 | eval: 0.967 <- best checkpoint
|
||
|
|
```
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## Limitations
|
||
|
|
|
||
|
|
- Karakalpak support is functional but may be less consistent than other languages due to limited training data for this low-resource language
|
||
|
|
- `optimized_prompt` output is always structured as an English instruction — this is by design
|
||
|
|
- Best results on domains covered in training data; novel domains may produce generic prompts
|
||
|
|
- Not suitable for harmful, illegal, or unethical query optimization
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## Citation
|
||
|
|
|
||
|
|
```bibtex
|
||
|
|
@model{queryshield_1_5b_2026,
|
||
|
|
author = {nickoo004},
|
||
|
|
title = {QueryShield-1.5B: Multilingual Prompt Optimizer},
|
||
|
|
year = {2026},
|
||
|
|
publisher = {Hugging Face},
|
||
|
|
url = {https://huggingface.co/nickoo004/queryshield-1.5b}
|
||
|
|
}
|
||
|
|
```
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## License
|
||
|
|
|
||
|
|
This model is released under the **MIT License**.
|
||
|
|
Base model license: [Qwen License](https://huggingface.co/Qwen/Qwen2.5-1.5B-Instruct/blob/main/LICENSE)
|