Create README.md
Browse files
README.md
ADDED
@@ -0,0 +1,111 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
---
|
2 |
+
license: cc-by-4.0
|
3 |
+
datasets:
|
4 |
+
- jjzha/sefl
|
5 |
+
language:
|
6 |
+
- en
|
7 |
+
base_model:
|
8 |
+
- Qwen/Qwen2.5-0.5B-Instruct
|
9 |
+
pipeline_tag: text-generation
|
10 |
+
tags:
|
11 |
+
- educational
|
12 |
+
- feedback
|
13 |
+
---
|
14 |
+
|
15 |
+
# Model Card for Model ID
|
16 |
+
|
17 |
+
This is a `Qwen/Qwen2.5-0.5B-Instruct` model **fine-tuned on** the `jjzha/sefl` dataset using the **SEFL** approach (Synthetic Educational Feedback Loops).
|
18 |
+
|
19 |
+
---
|
20 |
+
|
21 |
+
## Model Details
|
22 |
+
|
23 |
+
### Model Description
|
24 |
+
|
25 |
+
- **Developed by:** Mike Zhang
|
26 |
+
- **Funded by [optional]:** Villum Fonden (VIL57392)
|
27 |
+
- **Model type:** Autoregressive language model
|
28 |
+
- **Language(s) (NLP):** English
|
29 |
+
- **License:** cc-by-4.0
|
30 |
+
- **Finetuned from model [optional]:** Qwen/Qwen2.5-0.5B-Instruct
|
31 |
+
|
32 |
+
### Quick Summary (SEFL Approach)
|
33 |
+
|
34 |
+
SEFL (\textbf{S}ynthetic \textbf{E}ducational \textbf{F}eedback \textbf{L}oops) is a framework designed to generate on-demand, concise, and targeted feedback for educational settings. Instead of relying on real-world student data—which often raises privacy and consent issues—SEFL simulates a teacher–student feedback loop using Large Language Models (LLMs). In particular:
|
35 |
+
|
36 |
+
1. **Synthetic Data Generation**
|
37 |
+
Two LLM "agents" (a Teacher-Agent and a Student-Agent) produce assignment and answer pairs. The Student-Agent introduces deliberate errors, and the Teacher-Agent provides specific, formative feedback on each error.
|
38 |
+
|
39 |
+
2. **Fine-tuning on Synthetic Data**
|
40 |
+
Smaller or mid-sized models (like Qwen2.5-14B-Instruct) are then fine-tuned on the teacher–student interaction data. This allows them to provide high-quality, contextually relevant, and concise feedback on new educational tasks.
|
41 |
+
|
42 |
+
3. **Efficiency and Scalability**
|
43 |
+
Because the data is fully synthetic, fine-tuning can be done at scale without the usual bottlenecks of data acquisition and anonymization.
|
44 |
+
|
45 |
+
---
|
46 |
+
|
47 |
+
### Model Sources [optional]
|
48 |
+
|
49 |
+
- **Repository:** [https://github.com/jjzha/sefl](https://github.com/jjzha/sefl)
|
50 |
+
- **Paper [optional]:** _SEFL: Harnessing Large Language Model Agents to Improve Educational Feedback Systems (preprint)_
|
51 |
+
|
52 |
+
---
|
53 |
+
|
54 |
+
## Uses
|
55 |
+
|
56 |
+
This model is intended to provide **high-quality, concise feedback** on educational assignments. By combining instruction tuning with a specialized SEFL dataset, it is designed to address common pitfalls in automated feedback systems (e.g., vagueness, excessive verbosity, lack of specificity).
|
57 |
+
|
58 |
+
### Direct Use
|
59 |
+
|
60 |
+
- **Formative Feedback:** Instructors or students can prompt the model with an assignment and a student response, and receive structured comments pinpointing strengths, weaknesses, and actionable improvement steps.
|
61 |
+
- **Assignment Testing:** Course creators might use the model to generate feedback for sample student responses during test-design phases.
|
62 |
+
|
63 |
+
### Downstream Use [optional]
|
64 |
+
|
65 |
+
- **Integration into LMS:** (e.g., Moodle, Canvas) The model’s concise feedback approach can be embedded within an LMS for large-scale, automated or semi-automated feedback generation.
|
66 |
+
- **Pedagogical Research:** Educational researchers can experiment with the model's feedback style to gauge student outcomes and assess the impact of immediate feedback loops.
|
67 |
+
|
68 |
+
### Out-of-Scope Use
|
69 |
+
|
70 |
+
- **Personalized Tutoring/Chat:** SEFL specifically focuses on single-turn or short feedback loops for tasks, rather than ongoing multi-turn or deeply personalized tutoring.
|
71 |
+
- **Sensitive or High-Stakes Assessments:** This model should not be the **sole** determinant of success in high-stakes exams or certifications, as it does not guarantee error-free or unbiased feedback.
|
72 |
+
|
73 |
+
---
|
74 |
+
|
75 |
+
## Bias, Risks, and Limitations
|
76 |
+
|
77 |
+
### Known Limitations
|
78 |
+
|
79 |
+
- **Synthetic Data Alignment:** The dataset is entirely synthetic. While this avoids privacy concerns, it may not capture the full diversity of real-world classroom submissions.
|
80 |
+
- **Domain-Specific Depth:** If the assignment is too specialized or requires deep domain expertise, the model may provide incomplete or overly general feedback.
|
81 |
+
- **Verbosity vs. Brevity:** LLMs can default to verbose explanations. While SEFL aims for concise feedback, some prompts or queries might still elicit lengthy responses.
|
82 |
+
|
83 |
+
### Recommendations
|
84 |
+
|
85 |
+
- **Human Oversight:** Educators should review automated feedback for correctness, especially for specialized or high-stakes tasks.
|
86 |
+
- **Transparency:** Inform students that feedback is AI-generated and may not fully reflect instructor judgment.
|
87 |
+
- **Refinement via Real Data:** Over time, augmenting synthetic data with real anonymized examples (if ethically collected) could improve domain coverage.
|
88 |
+
|
89 |
+
---
|
90 |
+
|
91 |
+
## How to Get Started with the Model
|
92 |
+
|
93 |
+
You can use the code below to get started:
|
94 |
+
|
95 |
+
```python
|
96 |
+
from transformers import AutoTokenizer, AutoModelForCausalLM
|
97 |
+
|
98 |
+
model_name = "jjzha/Qwen2.5-0.5B-Instruct-SEFL"
|
99 |
+
tokenizer = AutoTokenizer.from_pretrained(model_name)
|
100 |
+
model = AutoModelForCausalLM.from_pretrained(model_name)
|
101 |
+
|
102 |
+
prompt = """<Insert assignment and student answer here>"""
|
103 |
+
|
104 |
+
inputs = tokenizer(prompt, return_tensors="pt")
|
105 |
+
|
106 |
+
outputs = model.generate(**inputs, max_length=512)
|
107 |
+
|
108 |
+
response = tokenizer.decode(outputs[0], skip_special_tokens=True)
|
109 |
+
|
110 |
+
print(response)
|
111 |
+
```
|