初始化项目,由ModelHub XC社区提供模型
Model: sascha-frank-ai-research/tsft-rag-qwen2.5-0.5b-instruct Source: Original Platform
This commit is contained in:
338
README.md
Normal file
338
README.md
Normal file
@@ -0,0 +1,338 @@
|
||||
---
|
||||
license: apache-2.0
|
||||
library_name: transformers
|
||||
pipeline_tag: text-generation
|
||||
base_model: Qwen/Qwen2.5-0.5B-Instruct
|
||||
base_model_relation: finetune
|
||||
language:
|
||||
- de
|
||||
- en
|
||||
tags:
|
||||
- rag
|
||||
- retrieval-augmented-generation
|
||||
- task-specific-fine-tuning
|
||||
- full-fine-tuning
|
||||
- qwen2.5
|
||||
- text-generation
|
||||
- structured-output
|
||||
- abstention
|
||||
- research
|
||||
- tsft-rag
|
||||
- model-card-v1
|
||||
---
|
||||
|
||||
# TSFT-RAG Qwen2.5-0.5B-Instruct
|
||||
|
||||
**Task-Specific Full Fine-Tuning for Retrieval-Augmented Generation**
|
||||
|
||||
TSFT-RAG Qwen2.5-0.5B-Instruct is a full-parameter fine-tuned derivative of
|
||||
[Qwen/Qwen2.5-0.5B-Instruct](https://huggingface.co/Qwen/Qwen2.5-0.5B-Instruct).
|
||||
|
||||
Part of the [TSFT-RAG model family](https://huggingface.co/sascha-frank-ai-research) for Retrieval-Augmented Generation across Gemma, Qwen and Llama architectures.
|
||||
|
||||
The objective is to investigate how supervised full fine-tuning changes the behaviour of modern language models when used as Retrieval-Augmented Generation (RAG) systems.
|
||||
|
||||
---
|
||||
|
||||
# TSFT-RAG Model Series
|
||||
|
||||
| Model | Parameters | Status |
|
||||
|--------|-----------:|--------|
|
||||
| **Qwen2.5-0.5B-Instruct** | **0.5B** | **Released** |
|
||||
| [Qwen2.5-1.5B-Instruct](https://huggingface.co/sascha-frank-ai-research/tsft-rag-qwen2.5-1.5b-instruct) | 1.5B | Released |
|
||||
| [Qwen2.5-7B-Instruct](https://huggingface.co/sascha-frank-ai-research/tsft-rag-qwen2.5-7b-instruct) | 7B | Released |
|
||||
| [Qwen2.5-14B-Instruct](https://huggingface.co/sascha-frank-ai-research/tsft-rag-qwen2.5-14b-instruct) | 14B | Released |
|
||||
|
||||
---
|
||||
|
||||
The model was trained to improve several behaviours that are important in practical
|
||||
RAG systems:
|
||||
|
||||
- answering from supplied context;
|
||||
- abstaining when the context does not support an answer;
|
||||
- following task-specific output requirements;
|
||||
- producing structured JSON output;
|
||||
- generating source-aware and citation-oriented responses.
|
||||
|
||||
The main observed gains are in hard-negative handling, structured-output validity,
|
||||
and citation-related behaviour. Performance does not improve uniformly across all
|
||||
metrics; in particular, the measured grounded-QA score is lower than that of the
|
||||
unchanged base model in the reported evaluation.
|
||||
|
||||
## Model Details
|
||||
|
||||
| Property | Value |
|
||||
|---|---|
|
||||
| Model family | TSFT-RAG |
|
||||
| Base model | Qwen/Qwen2.5-0.5B-Instruct |
|
||||
| Architecture | Qwen2ForCausalLM |
|
||||
| Parameters | approximately 0.5B |
|
||||
| Training method | full-parameter supervised fine-tuning |
|
||||
| Primary language of the training corpus | German |
|
||||
| Context length supported by the configuration | 32,768 tokens |
|
||||
| Weight dtype | bfloat16 |
|
||||
| Framework | Transformers |
|
||||
| License | Apache-2.0 |
|
||||
|
||||
## Intended Use
|
||||
|
||||
This model is intended for research and experimental use in RAG-oriented workflows.
|
||||
|
||||
Suitable use cases include:
|
||||
|
||||
- context-grounded question answering;
|
||||
- evaluation of abstention behaviour;
|
||||
- generation of structured RAG responses;
|
||||
- source-aware answer generation;
|
||||
- comparison of base and fully fine-tuned small language models;
|
||||
- local or resource-constrained RAG experiments.
|
||||
|
||||
The model should be used with retrieved evidence or other explicitly supplied context.
|
||||
It is not intended to serve as a standalone factual knowledge source.
|
||||
|
||||
## Training Data
|
||||
|
||||
The model was trained on a fixed, task-specific German-language corpus designed for
|
||||
RAG-oriented instruction following.
|
||||
|
||||
The training examples cover:
|
||||
|
||||
- answerable context-grounded questions;
|
||||
- hard-negative and unanswerable questions;
|
||||
- multiple assistant roles and response styles;
|
||||
- analysis tasks for main topic, key message, and main arguments;
|
||||
- JSON and short-answer output formats;
|
||||
- citation-aware responses.
|
||||
|
||||
The complete raw training corpus is not distributed with this checkpoint. The
|
||||
accompanying repository documents the data-processing, training, and evaluation
|
||||
pipeline.
|
||||
|
||||
## Training Procedure
|
||||
|
||||
This checkpoint was produced using full-parameter supervised fine-tuning rather than
|
||||
LoRA, QLoRA, or another adapter-based method.
|
||||
|
||||
| Training argument | Value |
|
||||
|---|---:|
|
||||
| Epochs | 3 |
|
||||
| Learning rate | 1e-6 |
|
||||
| Per-device train batch size | 1 |
|
||||
| Per-device evaluation batch size | 1 |
|
||||
| Gradient accumulation steps | 16 |
|
||||
| Effective batch size per process | 16 |
|
||||
| Optimizer | paged AdamW 8-bit |
|
||||
| Scheduler | cosine |
|
||||
| Warmup ratio | 0.08 |
|
||||
| Weight decay | 0.01 |
|
||||
| Maximum gradient norm | 1.0 |
|
||||
| Precision | bfloat16 |
|
||||
| FP16 | disabled |
|
||||
| Packing | disabled |
|
||||
| Seed | 42 |
|
||||
|
||||
The recorded training runtime was approximately **17,266 seconds** (about **4 h 48 min**),
|
||||
with a final reported training loss of **1.3059**.
|
||||
|
||||
## Evaluation
|
||||
|
||||
The fine-tuned model and the unchanged base model were evaluated on the same held-out
|
||||
test set of **1,940 instances**.
|
||||
|
||||
| Metric | Base model | TSFT-RAG | Difference |
|
||||
|---|---:|---:|---:|
|
||||
| Aggregate score | 0.2456 | 0.3546 | +0.1091 |
|
||||
| Hard-negative handling | 0.0000 | 0.2938 | +0.2938 |
|
||||
| Grounded QA | 0.4406 | 0.3811 | -0.0595 |
|
||||
| Analysis: main topic | 0.3683 | 0.3812 | +0.0129 |
|
||||
| Analysis: key message | 0.4068 | 0.4774 | +0.0705 |
|
||||
| Analysis: main arguments | 0.2992 | 0.3153 | +0.0162 |
|
||||
|
||||
The strongest change is in hard-negative handling: the base model failed all 708
|
||||
hard-negative cases under the benchmark criterion, while the fine-tuned model
|
||||
successfully rejected 208 of them.
|
||||
|
||||
These results should be interpreted as task-specific benchmark outcomes rather than
|
||||
general-purpose capability claims. The model improves substantially on some trained
|
||||
behaviours while showing a trade-off on grounded-QA performance.
|
||||
|
||||
Further evaluation details, scripts, and analysis are available in the accompanying
|
||||
repository and paper.
|
||||
|
||||
## Usage
|
||||
|
||||
```python
|
||||
import torch
|
||||
from transformers import AutoModelForCausalLM, AutoTokenizer
|
||||
|
||||
model_id = "sascha-frank-ai-research/tsft-rag-qwen2.5-0.5b-instruct"
|
||||
|
||||
tokenizer = AutoTokenizer.from_pretrained(model_id)
|
||||
|
||||
model = AutoModelForCausalLM.from_pretrained(
|
||||
model_id,
|
||||
torch_dtype=torch.bfloat16,
|
||||
device_map="auto",
|
||||
)
|
||||
|
||||
messages = [
|
||||
{
|
||||
"role": "system",
|
||||
"content": (
|
||||
"Du bist ein sachlicher RAG-Assistent. "
|
||||
"Beantworte die Frage präzise nur auf Grundlage des Kontexts. "
|
||||
"Wenn der Kontext die Antwort nicht belegt, sage dies ausdrücklich."
|
||||
),
|
||||
},
|
||||
{
|
||||
"role": "user",
|
||||
"content": (
|
||||
"Kontext:\n"
|
||||
"Ein Retrieval-Modul liefert relevante Dokumentpassagen an das Sprachmodell.\n\n"
|
||||
"Frage:\n"
|
||||
"Welche Komponente stellt dem Sprachmodell die Dokumentpassagen bereit?"
|
||||
),
|
||||
},
|
||||
]
|
||||
|
||||
text = tokenizer.apply_chat_template(
|
||||
messages,
|
||||
tokenize=False,
|
||||
add_generation_prompt=True,
|
||||
)
|
||||
|
||||
inputs = tokenizer(text, return_tensors="pt").to(model.device)
|
||||
|
||||
with torch.inference_mode():
|
||||
output = model.generate(
|
||||
**inputs,
|
||||
max_new_tokens=256,
|
||||
do_sample=False,
|
||||
)
|
||||
|
||||
generated_tokens = output[0, inputs["input_ids"].shape[1]:]
|
||||
|
||||
print(
|
||||
tokenizer.decode(
|
||||
generated_tokens,
|
||||
skip_special_tokens=True,
|
||||
)
|
||||
)
|
||||
```
|
||||
|
||||
## Prompting Notes
|
||||
|
||||
The model was trained with Qwen's chat template and should be used through
|
||||
`tokenizer.apply_chat_template(...)`.
|
||||
|
||||
For RAG use, prompts should clearly separate:
|
||||
|
||||
1. the behavioural instruction;
|
||||
2. the retrieved context;
|
||||
3. the user question;
|
||||
4. any required output format.
|
||||
|
||||
For deterministic evaluation, use greedy decoding or another fixed decoding setup.
|
||||
|
||||
## Limitations
|
||||
|
||||
- The model may produce incorrect, incomplete, or unsupported answers.
|
||||
- Fine-tuning does not guarantee faithful use of retrieved evidence.
|
||||
- Retrieval quality remains a major determinant of answer quality.
|
||||
- The model may fail to abstain even when evidence is insufficient.
|
||||
- Citation-like output does not guarantee that a cited passage truly supports a claim.
|
||||
- The 0.5B parameter scale limits reasoning depth and general robustness.
|
||||
- Performance outside the evaluated RAG task formats has not been systematically established.
|
||||
- The training corpus is primarily German, so behaviour may differ in other languages.
|
||||
- The model inherits limitations and biases from the Qwen2.5 base model and from the
|
||||
task-specific training data.
|
||||
- The observed reduction in grounded-QA score indicates a real trade-off and should not
|
||||
be ignored when selecting the model for deployment.
|
||||
|
||||
The model should not be used for high-stakes medical, legal, financial, safety-critical,
|
||||
or administrative decisions without independent validation and human oversight.
|
||||
|
||||
## Ethical Considerations
|
||||
|
||||
Retrieved documents may contain inaccurate, biased, confidential, or outdated
|
||||
information. Such content can be reproduced or amplified by the model.
|
||||
|
||||
Users are responsible for:
|
||||
|
||||
- validating retrieval sources;
|
||||
- protecting confidential material;
|
||||
- testing model behaviour in the intended domain;
|
||||
- monitoring unsupported or misleading output;
|
||||
- complying with applicable law, policy, and licensing requirements.
|
||||
|
||||
## Relationship to the Research Project
|
||||
|
||||
This checkpoint is one model from a controlled cross-family study of task-specific
|
||||
full fine-tuning for RAG. The study compares base and fine-tuned configurations from
|
||||
the Gemma, Llama, and Qwen model families across parameter scales from approximately
|
||||
0.5B to 14B.
|
||||
|
||||
Code, training scripts, evaluation scripts, and documentation:
|
||||
|
||||
https://github.com/frankmst/rag-task-specific-full-finetuning
|
||||
|
||||
## Base Model and License
|
||||
|
||||
This model is derived from
|
||||
[Qwen/Qwen2.5-0.5B-Instruct](https://huggingface.co/Qwen/Qwen2.5-0.5B-Instruct),
|
||||
which is distributed under the Apache License 2.0.
|
||||
|
||||
This derivative checkpoint is also released under the Apache License 2.0. Users
|
||||
should review the license file included in this repository and the licensing
|
||||
information of the base model.
|
||||
|
||||
## Citation
|
||||
|
||||
A formal paper citation will be added after publication of the accompanying paper.
|
||||
|
||||
Until then, please cite the software repository:
|
||||
|
||||
```bibtex
|
||||
@software{frank_tsft_rag_2026,
|
||||
author = {Sascha Frank},
|
||||
title = {Task-Specific Full Fine-Tuning for Retrieval-Augmented Generation},
|
||||
year = {2026},
|
||||
url = {https://github.com/frankmst/rag-task-specific-full-finetuning}
|
||||
}
|
||||
```
|
||||
|
||||
## Project
|
||||
|
||||
The complete TSFT-RAG research project, including training scripts,
|
||||
evaluation pipeline, benchmark methodology and documentation, is available at:
|
||||
|
||||
**Project repository**
|
||||
https://github.com/frankmst/rag-task-specific-full-finetuning
|
||||
|
||||
**TSFT-RAG model family**
|
||||
https://huggingface.co/sascha-frank-ai-research
|
||||
|
||||
---
|
||||
|
||||
## Author
|
||||
|
||||
**Sascha Frank**
|
||||
|
||||
Independent AI Researcher
|
||||
|
||||
**ORCID**
|
||||
https://orcid.org/0000-0002-0588-0081
|
||||
|
||||
**GitHub**
|
||||
https://github.com/frankmst
|
||||
|
||||
**Hugging Face**
|
||||
https://huggingface.co/sascha-frank-ai-research
|
||||
|
||||
|
||||
## Links
|
||||
|
||||
- Project repository: https://github.com/frankmst/rag-task-specific-full-finetuning
|
||||
- Base model: https://huggingface.co/Qwen/Qwen2.5-0.5B-Instruct
|
||||
- Project website: https://sascha-frank.com
|
||||
- Paper: forthcoming
|
||||
Reference in New Issue
Block a user