Edit model card

Technical Report: Development of a Data Quality Classification Model for Educational Content in the German Language

Abstract: This report details the development and evaluation of a machine learning model designed to classify educational content quality in the German language. Inspired by Huggingface's fine web edu dataset, our objective was to adapt and enhance data classification techniques for assessing educational value across various text types from primary school to university level.

1. Introduction: The proliferation of digital educational resources necessitates robust models capable of evaluating content quality efficiently. This project aims at creating a model that can automatically assess the pedagogical value of German-language texts using advanced language learning models (LLMs).

2. Methodology:

  • Data Collection: We utilized over 15,000 entries per model, summing up to 2 million labeled entries through iterative testing.
  • Language Models Used: Seven different LLMs were compared:
    1. Llama 3 70b instruct
    2. Discoresearch LLama 3 8b
    3. Llama 3 8b Sauerkraut
    4. Mixtral 8x7 Instruct
    5. GPT 4o
    6. Command r plus
    7. Llama 3 70b Sauerkraut

Each model underwent fifteen iterations with varying prompts based on predefined rating criteria aimed at assessing data quality.

  • Evaluation Criteria: The prompt used involved a detailed scoring system from zero to five, focusing on organization, relevance, neutrality, depth of knowledge, and usability across education levels.
Nachfolgend findest du einen Auszug aus einer Webseite. Beurteile, ob die Seite einen hohen pädagogischen Wert hat und in einem pädagogischen Umfeld für den Unterricht von der Grundschule bis zur Universität nützlich sein könnte, indem du das unten beschriebene 5-Punkte-Bewertungssystem anwendest.
Die Punkte werden auf der Grundlage der Erfüllung der am besten passenden Kriterien gewählt:
- 0 Punkte: Der Inhalt ist nicht organisiert und schwer zu lesen. Der Text enthält Werbung oder irrelevante Informationen zum lehren von Inhalten. Der Text ist nicht neutral sondern enthält persöhnliche Sichtweisen. Beispiel: Tweets, Chatnachrichten oder Forenbeiträge.
- 1 Punkt: Der Text ist für den privaten Gebrauch bestimmt und enthält Werbung oder irrelevante Informationen. Der Text ist nicht neutral und spiegelt zum Teil persönliche Sichtweisen wider. Beispiel: Ein Blogbeitrag, der hauptsächlich auf persönliche Erfahrungen eingeht und nur gelegentlich nützliche Informationen bietet.
- 2 Punkte: Der Text ist neutral geschrieben, aber enthält Werbung oder irrelevante Informationen. Die enthaltenen Informationen können zeitlich vergänglich sein. Beispiel: Ein Artikel oder Nachrichtenbeitrag.
- 3 Punkte: Der Text enthält viele Informationen und ist leicht verständlich. Der Text ist neutral geschrieben und enthält keine Werbung oder irrelevante Informationen. Beispiel: Ein Wikipedia-Artikel.
- 4 Punkte: Der Text ist neutral geschrieben und enthält keine Werbung oder irrelevante Informationen. Der Text enthält tiefergehendes Wissen und ist für den Unterricht von der Grundschule bis zur Universität nützlich. Beispiel: Ein wissenschaftlicher Artikel oder ein Lehrbuch
- 5 Punkte: Der Text beeinhaltet tiefergehendes Wissen, ist dabei aber dennoch leicht verständlich, sodass jeder daraus lernen und sich neue Fähigkeiten aneignen kann. Beispielsweise Schritt für Schritt Anleitungen, Erklärungen oder Definitionen.

Nachdem du den Auszug geprüft hast:
- Wähle eine Punktzahl von 0 bis 5, die am besten beschreibt, wie nützlich der Inhalt für den Unterricht von der Grundschule bis zur Universität ist.
- Begründe kurz deine ausgewählte Punktzahl, bis zu 100 Wörter.
- Antworte im folgenden Format "<Gesamtpunktzahl> : <Begründung>"

3. Problems Encountered During Evaluation: Several issues were observed during initial evaluations:

  • Uniformity in scoring across all texts.
  • Random-like accuracy in responses.
  • Bias towards longer text contexts.
  • Non-adherence to prompt structures leading to irrelevant completions instead of scores.
  • Overly generous scoring indicating lack of critical assessment by models.

Amongst all tested models 'Command r plus' showed highest precision especially noted for its critical analysis capabilities and adherence to structured prompts.

4.Model Training & Results: The final model was developed using full ORPO finetune technique on VAGOsolutions/SauerkrautLM-1.5b which is based on qwen2 architecture achieving an impressive accuracy rate close approximating that seen with ‘Command r plus’.

Training specifics included:

  • Dataset size : 380k unique entries
  • Epochs : 3
  • Batch Size : 512

This configuration resulted in significant performance improvements particularly in terms relevant feature recognition and response structuring according prescribed evaluation metrics.

5. Analysis of Failed Model Trainings and Decision to Use Qwen2-1.5b Model:

During the development phase, several models were evaluated for their efficacy in classifying educational content quality. Two notable models that did not meet our final requirements were the Bert regression model and the T5 seq2seq model.

  • Bert Regression: The Bert regression model was initially promising due to its high speed of processing, achieving a good quality score of approximately 85%. However, its major limitation was the short context length capability of only 512 tokens. This restriction hindered its ability to process longer texts comprehensively, which is often required in educational materials that encompass detailed explanations or extensive subject matter discussions.

  • T5 Seq2Seq: Similarly, the T5 seq2seq model also supported a maximum context length of 512 tokens. Although it slightly outperformed Bert with an average quality score around 88%, it had additional drawbacks such as slower processing speeds and inefficient token usage due to prompt inclusion reducing effective context space further. These factors combined made it less suitable for our needs where prompt flexibility and faster response times were crucial.

Given these limitations observed in both models regarding token economy and context length capacity, we explored more robust alternatives leading us towards adopting Qwen2-1.5b as our primary model:

  • Qwen2-1.5b: The decision to utilize Qwen2 stemmed from its superior performance metrics where it achieved an impressive highest quality rating close to ~95%. Notably, this larger model supports up to a substantial 32k tokens in context length allowing comprehensive analysis over extended texts which is vital for educational content evaluation spanning multiple academic levels from elementary through university.

    Additionally, despite being a larger scale model potentially implying higher computational demands; various optimized inference solutions such as TGI or vLLM adaptations have been integrated effectively enhancing operational efficiency making real-time applications feasible without compromising on analytical depth or accuracy.

In conclusion, while earlier iterations with other models provided valuable insights into necessary features and performance thresholds; transitioning towards using Qwen2 has significantly advanced our project’s capability delivering refined assessments aligned closely with set objectives ensuring robustness scalability future expansions within this domain.

7. How to use

from transformers import pipeline
import datasets

pipe = pipeline("text-generation", model="pL-Community/GermanEduScorer-Qwen2-1.5b", device = 0)

ds_eval = datasets.load_dataset("cis-lmu/GlotCC-V1", "deu-Latn", split="train").shuffle(42)

iterations = 0
right = 0
diff = 0
false_counter = 0

for i in ds_eval:
    messages = [
        {"role": "system", "content": """Nachfolgend findest du einen Auszug aus einer Webseite. Beurteile, ob die Seite einen hohen pädagogischen Wert hat und in einem pädagogischen Umfeld für den Unterricht von der Grundschule bis zur Universität nützlich sein könnte, indem du das unten beschriebene 5-Punkte-Bewertungssystem anwendest. Die Punkte werden auf der Grundlage der Erfüllung der am besten passenden Kriterien gewählt:

- 0 Punkte: Der Inhalt ist nicht organisiert und schwer zu lesen. Der Text enthält Werbung oder irrelevante Informationen zum lehren von Inhalten. Der Text ist nicht neutral sondern enthält persöhnliche Sichtweisen. Beispiel: Tweets, Chatnachrichten oder Forenbeiträge.
- 1 Punkt: Der Text ist für den privaten Gebrauch bestimmt und enthält Werbung oder irrelevante Informationen. Der Text ist nicht neutral und spiegelt zum Teil persönliche Sichtweisen wider. Beispiel: Ein Blogbeitrag, der hauptsächlich auf persönliche Erfahrungen eingeht und nur gelegentlich nützliche Informationen bietet.
- 2 Punkte: Der Text ist neutral geschrieben, aber enthält Werbung oder irrelevante Informationen. Die enthaltenen Informationen können zeitlich vergänglich sein. Beispiel: Ein Artikel oder Nachrichtenbeitrag.
- 3 Punkte: Der Text enthält viele Informationen und ist leicht verständlich. Der Text ist neutral geschrieben und enthält keine Werbung oder irrelevante Informationen. Beispiel: Ein Wikipedia-Artikel.
- 4 Punkte: Der Text ist neutral geschrieben und enthält keine Werbung oder irrelevante Informationen. Der Text enthält tiefergehendes Wissen und ist für den Unterricht von der Grundschule bis zur Universität nützlich. Beispiel: Ein wissenschaftlicher Artikel oder ein Lehrbuch
- 5 Punkte: Der Text beeinhaltet tiefergehendes Wissen, ist dabei aber dennoch leicht verständlich, sodass jeder daraus lernen und sich neue Fähigkeiten aneignen kann. Beispielsweise Schritt für Schritt Anleitungen, Erklärungen oder Definitionen.

Nachdem du den Auszug geprüft hast: 
- Wähle eine Punktzahl von 0 bis 5, die am besten beschreibt, wie nützlich der Inhalt für den Unterricht von der Grundschule bis zur Universität ist.
- Begründe kurz deine ausgewählte Punktzahl, bis zu 100 Wörter.
- Antworte im folgenden Format "<Gesamtpunktzahl>"""},
        {"role": "user", "content": i["text"]},
    ]
    
    result = pipe(messages, do_sample=False, temperature=0.1, max_new_tokens=1)

    pred = result[0]["generated_text"][-1]["content"]
    pred = int(pred)

    print("Score: ", pred)

7.Future Work & Acknowledgements: Continued efforts will focus on labeling additional datasets within this domain which will be made publicly available under our organizational repository enhancing accessibility for further research applications within academic settings or other pedagogical assessments tools development initiatives .

Special thanks are due David and Daryoush from Vago Solutions; Björn and Jan from Ellamind / DiscoResearch whose insights into dataset reviews ,prompt formulations discussions about final trained model configurations were invaluable throughout this project’s lifecycle .

In conclusion ,this report encapsulates comprehensive overview regarding methodologies employed ,challenges encountered solutions devised towards creation successful application capable effectively classifying educational content quality german language leveraging cutting edge AI technologies .

The compute during the whole process was sponsored by primeline AI

Project author: Florian Zimmermeister

Downloads last month
29
Safetensors
Model size
1.54B params
Tensor type
BF16
·
Inference Examples
This model does not have enough activity to be deployed to Inference API (serverless) yet. Increase its social visibility and check back later, or deploy to Inference Endpoints (dedicated) instead.

Model tree for pL-Community/GermanEduScorer-Qwen2-1.5b

Quantizations
1 model