GRMR-V3-Q4B
GRMR-V3-Q4B is a fine-tuned version of unsloth/Qwen3-4B-Base specifically optimized for grammar correction tasks.
IMPORTANT: Please ensure you are using the following sampler settings for optimal results:
temperature = 0.7
frequency_penalty = 0.0
presence_penalty = 0.0
min_p = 0.01
top_p = 0.95
top_k = 40
Model description
GRMR-V3-Q4B is a grammar correction model built on Qwen3 4B base model. It has been fine-tuned on a large dataset of grammar correction examples to help improve text quality by fixing grammatical errors, punctuation, spelling, and other language issues.
The model uses a specialized chat template that structures inputs as "text" and outputs as "corrected" to maintain a clear distinction between original and corrected content.
Model Details
Manual Testing Examples
Here are a few examples of grammar corrections this model can handle:
Original Text | Corrected Text |
---|---|
i dont know weather to bring a umbrella today | I don't know whether to bring an umbrella today. |
she go to the store yesterday | She went to the store yesterday. |
they is going to be late for the meeting | They are going to be late for the meeting. |
the cat laying on the floor all day | The cat is laying on the floor all day. |
Training procedure
The model was fine-tuned using full parameter fine-tuning (not LoRA) on the GRMR-V4-60K dataset. The training was optimized using the Unsloth framework for efficient training of LLMs.
Training hyperparameters
- Batch size: 8
- Gradient accumulation steps: 2
- Learning rate: 5e-5
- Epochs: 1
- Optimizer: AdamW (8-bit)
- Weight decay: 0.01
- LR scheduler: Cosine
- Warmup steps: 180
- Max sequence length: 16,384
- Training precision: Mixed precision (BF16 where available, FP16 otherwise)
Intended uses & limitations
This model is designed for grammar correction tasks. It can be used to:
- Fix grammatical errors in written text
- Correct punctuation
- Address spelling mistakes
- Improve sentence structure and clarity
Limitations
- The model may struggle with highly technical or domain-specific content
- It may not fully understand context-dependent grammar rules in all cases
- Performance may vary for non-standard English or text with multiple errors
How to use
Projects based on Hugging Face transformers should be able to run this model easily.
from transformers import AutoModelForCausalLM, AutoTokenizer
# Load model and tokenizer
model_name = "qingy2024/GRMR-V3-Q4B"
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForCausalLM.from_pretrained(model_name)
# Text with grammar errors to correct
text_to_correct = "i am going to the store tommorow and buy some thing for dinner"
# Format as messages
messages = [
{"role": "user", "content": text_to_correct}
]
# Apply the custom chat template
prompt = tokenizer.apply_chat_template(messages, tokenize=False, add_generation_prompt=True)
# Tokenize and generate
inputs = tokenizer(prompt, return_tensors="pt").to(model.device)
outputs = model.generate(
inputs["input_ids"],
max_new_tokens=512,
temperature=0.1,
do_sample=True
)
# Decode and print the corrected text
corrected_text = tokenizer.decode(outputs[0], skip_special_tokens=True)
print(corrected_text)
Using with the Hugging Face pipeline
from transformers import pipeline
pipe = pipeline(
"text-generation",
model="qingy2024/GRMR-V3-Q4B",
torch_dtype="auto",
device_map="auto"
)
messages = [
{"role": "user", "content": "i dont know weather to bring a umbrella today"}
]
result = pipe(
messages,
max_new_tokens=100,
temperature=0.1,
do_sample=True,
return_full_text=False
)[0]["generated_text"]
print(result)
Custom Chat Template
The model uses a custom chat template with special formatting for grammar correction:
- User inputs are formatted with
<|text_start|>
and<|text_end|>
tags - Model outputs are formatted with
<|corrected_start|>
and<|corrected_end|>
tags
The complete chat template is:
{%- for message in messages %}
{%- if message.role == "user" %}
{{- '<|text_start|>\n' + message.content + '<|text_end|>\n' }}
{%- elif message.role == "assistant" %}
{{- '<|corrected_start|>\n' + message.content + '<|corrected_end|>\n' }}
{%- else %}
{{- raise('Unknown role: ' + message.role) }}
{%- endif %}
{%- endfor %}
{%- if add_generation_prompt %}
{{- '<|corrected_start|>\n' }}
{%- endif %}
Training Dataset
The model was fine-tuned on the qingy2024/grmr-v4-60k dataset, which contains 60,000 examples of original text and their grammatically corrected versions.
Bias, Risks, and Limitations
- The model may reflect biases present in the training data
- It may not perform equally well across different writing styles or domains
- The model might occasionally introduce errors or change the meaning of text
- It focuses on grammatical correctness rather than stylistic improvements
Citations
@misc{qwen3technicalreport,
title={Qwen3 Technical Report},
author={Qwen Team},
year={2025},
eprint={2505.09388},
archivePrefix={arXiv},
primaryClass={cs.CL},
url={https://arxiv.org/abs/2505.09388},
}
Contact
For questions or issues related to the model, please reach out via Hugging Face or by creating an issue in the repository.
- Downloads last month
- 26