2
stars
6
commits
1
linked in READMEs
Aug 30, 2026
updated
LoRA adapter that rewrites weak / vague prompts into clear, specific, actionable LLM prompts while preserving the original intent and topic.
Part of PromptForge — local-first prompt quality scoring + optimization.
PromptForge-Optimizer is a PEFT/LoRA fine-tune of Qwen/Qwen2.5-1.5B-Instruct. Given a weak user prompt (plus optional quality analysis context), it generates an improved prompt with audience, constraints, structure, and output format — without changing the core topic.
Qwen/Qwen2.5-1.5B-Instructdemo/app.py)Example weak → strong:
| Weak | Optimized (intent preserved) |
|---|---|
Make an app about social media like facebook and stuff | Social media / Facebook-like app prompt with profiles, feed, likes, constraints, output format |
generatetuneprompt (recommended)pip install tuneprompt
python -m promptforge download \
--quality-repo ArjunShukla/PromptForge-Quality \
--optimizer-repo ArjunShukla/PromptForge-Optimizer
python -m promptforge run "Make an app about social media like facebook and stuff"
# or: tuneprompt run "Make an app about social media like facebook and stuff"
from promptforge import PromptForge
pf = PromptForge(
quality_model_path="ArjunShukla/PromptForge-Quality",
optimizer_model_path="ArjunShukla/PromptForge-Optimizer",
)
print(pf.run("Build me a website for a startup")["optimized_prompt"])
Package:
tuneprompton PyPI · Import:promptforge· CLI:tuneprompt/promptforge· Code: https://github.com/arjun988/promptModel
from peft import PeftModel
from transformers import AutoModelForCausalLM, AutoTokenizer
base = "Qwen/Qwen2.5-1.5B-Instruct"
adapter = "ArjunShukla/PromptForge-Optimizer"
tokenizer = AutoTokenizer.from_pretrained(adapter, trust_remote_code=True)
model = AutoModelForCausalLM.from_pretrained(base, trust_remote_code=True, device_map="auto")
model = PeftModel.from_pretrained(model, adapter)
Use Qwen’s chat template (tokenizer.apply_chat_template) — do not hand-roll <|system|> tags.
| Setting | Value |
|---|---|
| Base model | Qwen/Qwen2.5-1.5B-Instruct |
| Method | LoRA (PEFT) |
| LoRA rank / alpha | 16 / 32 |
| Target modules | q/k/v/o + MLP projections |
| Max sequence length | 512 |
| Epochs | 6 |
| Effective batch size | 8 (batch 1 × grad accum 8) |
| Learning rate | 1e-4 |
| Precision | fp16 |
| Gradient checkpointing | enabled |
| Config | configs/optimizer_fast_8gb.yaml |
| Signal | Result |
|---|---|
| Validation loss | 0.121 |
| Example quality lift (scorer) | e.g. 41.5 → 94.0 on a social-media app prompt |
| Intent preservation | Topic keywords retained (social / Facebook) |
| Validation gate | Rejects empty / repetitive / low-intent outputs |
Evaluation is primarily: held-out SFT loss + pipeline checks (score delta, instruction preservation, repetition detection). Not a public leaderboard benchmark.
The adapter reliably expands vague prompts into structured instructions on in-distribution topics. Off-distribution prompts may fall back to a safer template when used through PromptForge.
@software{promptforge_optimizer,
title = {PromptForge-Optimizer},
author = {PromptForge Contributors},
year = {2026},
url = {https://huggingface.co/ArjunShukla/PromptForge-Optimizer}
}
Open an issue on the PromptForge GitHub repository.
6 commits
2
stars
6
commits
1
linked in READMEs
Aug 30, 2026
updated
LoRA adapter that rewrites weak / vague prompts into clear, specific, actionable LLM prompts while preserving the original intent and topic.
Part of PromptForge — local-first prompt quality scoring + optimization.
PromptForge-Optimizer is a PEFT/LoRA fine-tune of Qwen/Qwen2.5-1.5B-Instruct. Given a weak user prompt (plus optional quality analysis context), it generates an improved prompt with audience, constraints, structure, and output format — without changing the core topic.
Qwen/Qwen2.5-1.5B-Instructdemo/app.py)Example weak → strong:
| Weak | Optimized (intent preserved) |
|---|---|
Make an app about social media like facebook and stuff | Social media / Facebook-like app prompt with profiles, feed, likes, constraints, output format |
generatetuneprompt (recommended)pip install tuneprompt
python -m promptforge download \
--quality-repo ArjunShukla/PromptForge-Quality \
--optimizer-repo ArjunShukla/PromptForge-Optimizer
python -m promptforge run "Make an app about social media like facebook and stuff"
# or: tuneprompt run "Make an app about social media like facebook and stuff"
from promptforge import PromptForge
pf = PromptForge(
quality_model_path="ArjunShukla/PromptForge-Quality",
optimizer_model_path="ArjunShukla/PromptForge-Optimizer",
)
print(pf.run("Build me a website for a startup")["optimized_prompt"])
Package:
tuneprompton PyPI · Import:promptforge· CLI:tuneprompt/promptforge· Code: https://github.com/arjun988/promptModel
from peft import PeftModel
from transformers import AutoModelForCausalLM, AutoTokenizer
base = "Qwen/Qwen2.5-1.5B-Instruct"
adapter = "ArjunShukla/PromptForge-Optimizer"
tokenizer = AutoTokenizer.from_pretrained(adapter, trust_remote_code=True)
model = AutoModelForCausalLM.from_pretrained(base, trust_remote_code=True, device_map="auto")
model = PeftModel.from_pretrained(model, adapter)
Use Qwen’s chat template (tokenizer.apply_chat_template) — do not hand-roll <|system|> tags.
| Setting | Value |
|---|---|
| Base model | Qwen/Qwen2.5-1.5B-Instruct |
| Method | LoRA (PEFT) |
| LoRA rank / alpha | 16 / 32 |
| Target modules | q/k/v/o + MLP projections |
| Max sequence length | 512 |
| Epochs | 6 |
| Effective batch size | 8 (batch 1 × grad accum 8) |
| Learning rate | 1e-4 |
| Precision | fp16 |
| Gradient checkpointing | enabled |
| Config | configs/optimizer_fast_8gb.yaml |
| Signal | Result |
|---|---|
| Validation loss | 0.121 |
| Example quality lift (scorer) | e.g. 41.5 → 94.0 on a social-media app prompt |
| Intent preservation | Topic keywords retained (social / Facebook) |
| Validation gate | Rejects empty / repetitive / low-intent outputs |
Evaluation is primarily: held-out SFT loss + pipeline checks (score delta, instruction preservation, repetition detection). Not a public leaderboard benchmark.
The adapter reliably expands vague prompts into structured instructions on in-distribution topics. Off-distribution prompts may fall back to a safer template when used through PromptForge.
@software{promptforge_optimizer,
title = {PromptForge-Optimizer},
author = {PromptForge Contributors},
year = {2026},
url = {https://huggingface.co/ArjunShukla/PromptForge-Optimizer}
}
Open an issue on the PromptForge GitHub repository.
6 commits