huggingface / lighteval

LightEval is a lightweight LLM evaluation suite that Hugging Face has been using internally with the recently released LLM data processing library datatrove and LLM training library nanotron.
MIT License
467 stars 54 forks source link

Add `Ger-RAG-eval`tasks. #149

Closed PhilipMay closed 2 months ago

PhilipMay commented 2 months ago

Add German RAG evaluation tasks. For details see doc in deutsche-telekom/Ger-RAG-eval.

PhilipMay commented 2 months ago

A number of changes are required before we merge this PR

Many thanks for the quick review. I will make the changes.

PhilipMay commented 2 months ago

@clefourrier made all the changes, doing some internal tests now

PhilipMay commented 2 months ago

Example for task2 (choose_context_by_question) with TinyLlama-1.1B-Chat-v1.0 (looks good)

>>> print(df.iloc[0]["full_prompt"])
<|user|>
Auf Basis welcher der folgenden Kontexte (A oder B oder C oder D) lässt sich die Frage beantworten?

Frage: Wie wurde Saidi im Januar 2006 noch einmal deutscher Meister?

Kontexte:

A:
Ceferino Garcia (* 26. August 1906 in Naval, Biliran; † 1. Januar 1981 in San Diego, Kalifornien, Vereinigte Staaten) war ein philippinischer Boxer im Mittelgewicht. Der von den Philippinen stammende Garcia, der nach anderen Angaben bereits um 1903 geboren wurde, begann seine Karriere als Boxer 1923 zunächst im Weltergewicht und gewann am 2. Oktober 1939 den Weltmeistertitel der NYSAC im Mittelgewicht der "International Boxing Union" bei einem Kampf gegen Fred Apostoli in New York City, den er in den siebten Runde durch ein Knockout. Am 23. Dezember 1939 verteidigte er seinen Titel in Manila gegen Glen Lee durch ein technisches K.O. Sein Sieg im Mittelgewichtstitelkampf am 1. März 1940 gegen Henry Armstrong, gegen den er im Weltergewicht schon mal verloren hatte, gilt als Fehlurteil. 1945 beendete er seine Karriere nach 18 Jahren, wobei er 67 Mal durch KO gewann sowie weitere 24 Mal durch Punkteentscheidung. Garcia wurde besonders durch seinen Kampfstil bekannt und dem von ihm verwendeten sogenannten „Bolo Punch“, den er wie einen Aufwärtshaken anwendete. Einer seiner Coachs war Ray Arcel.

B:
Ernst Stimmel (* 23. März 1891 in Hamburg; † 28. März 1978 in Reichenau) war ein deutscher Schauspieler und Autor. Nach Abitur und Studium wurde Ernst Stimmel 1919 in München mit der Dissertation "Einfluß der Schopenhauerschen Philosophie auf Wilhelm Raabe" promoviert. In den 1930er und 1940er Jahren wirkte er in vielen Filmproduktionen als Darsteller überwiegend in Nebenrollen mit. Darunter befanden sich die nationalsozialistischen Propagandafilme "Jud Süß", "Die Rothschilds" und "Kampfgeschwader Lützow", die heute in Deutschland als Vorbehaltsfilme nur unter bestimmten Voraussetzungen aufgeführt werden können. Ernst Stimmel spielte aber auch in Unterhaltungs- und Historienfilmen wie "Der Gasmann" mit Heinz Rühmann, "Der große König" mit Otto Gebühr und "Die Entlassung" mit Emil Jannings. Zudem war er an dem Film "Zwischen Herz und Gewissen" beteiligt, der als Überläufer erst im Jahr 1951 uraufgeführt wurde, obwohl dieser kurz vor Ende des Zweiten Weltkriegs noch unter dem Titel "Das fremde Leben" fertiggestellt wurde.

C:
Saidis Laufbahn als Berufsboxer begann mit einem Kampf im November 1989, seinen letzten Kampf bestritt er im Dezember 2006. Im Mai 1990 gewann er gegen Andreas Schweiger die internationale deutsche Meisterschaft im Halbschwergewicht und wurde im Juni 1990 deutscher Schwergewichtsmeister. Im November 1992 wurde Saidi durch einen Sieg über Rund Kanika aus dem Kongo Afrikameister im Halbschwergewicht. Er musste den internationalen deutschen Meistertitel abgegeben, nachdem er im Februar 1993 gegen Dariusz Michalczewski verloren hatte. Saidi wurde im April 1994 Weltmeister im Halbschwergewicht nach Version der WBF. Er sicherte sich Ende Januar 1997 den deutschen Meistertitel im Halbschwergewicht, diesen verlor er im Dezember desselben Jahres wieder, als er gegen Sven Ottke verlor. Im Februar 1999 boxte Saidi wieder um die deutsche Meisterschaft im Halbschwergewicht, verlor aber gegen Thomas Ulrich. Anschließend legte er eine jahrelange Pause ein, im Mai 2005 kehrte Saidi in den Ring zurück. Noch einmal deutscher Meister, diesmal im Cruisergewicht, wurde er im Januar 2006 durch einen Sieg über Mario Stein.

D:
Uwe Boegelsack (* 2. Dezember 1939 in Gommern; † 28. Januar 2017) war ein deutscher Politiker der Sozialistischen Einheitspartei Deutschlands (SED) in der Deutschen Demokratischen Republik (DDR). Er war von 1984 bis 1987 stellvertretender Minister für Elektrotechnik und Elektronik und von 1987 bis 1990 Generaldirektor des "VEB Kombinat Rundfunk und Fernsehen Staßfurt". Boegelsack, Sohn eines Angestellten, arbeitete nach dem Abitur 1958 als Stanzer und Hilfsarbeiter und wurde 1961 Setzer und Feiler.</s>
<|assistant|>
PhilipMay commented 2 months ago

Example for task1 (choose_question_by_context) with TinyLlama-1.1B-Chat-v1.0 (looks good)

print(df.iloc[0]["full_prompt"])
<|user|>
Welche der folgenden Fragen (A oder B oder C oder D) lässt sich anhand des Kontext beantworten?

Kontext:
Lsjbot ist ein von Lars Sverker Johansson (Akronym "Lsj") betriebener Bot, der aus digitalen Informationsquellen und Datenbanken kurze Wikipedia-Artikel („Stubs“) in schwedischer Sprache sowie in Cebuano und Wáray-Wáray, zwei auf den Philippinen gesprochenen Sprachen, generierte. Am 15. Juni 2013 überschritt die schwedischsprachige Wikipedia durch einen von Lsjbot erstellten Artikel über die Schmetterlingsart "Erysichton elaborata" die Schwelle von einer Million Artikeln. Zu diesem Zeitpunkt war rund die Hälfte des Artikelbestands der schwedischen Wikipedia botgeneriert. Etwa ein Drittel der von Lsjbot erstellten Artikel wurden für die schwedische Wikipedia erstellt. Im August 2013 erzeugte Lsjbot mit etwa täglich 7200 Artikeln für die schwedische Wikipedia die meisten Artikel pro Tag für eine Wikipedia. Laut "The Wall Street Journal" hatte Lsjbot im Juli 2014 bereits rund 2,7 Millionen Artikel in Wikipedia eingestellt, was zu dieser Zeit etwa 8,5 Prozent des gesamten Bestandes der Wikipedia entsprach. Für die Artikelproduktion griff Lsjbot auf Datenbanken wie den Catalogue of Life zu, wobei offenbar veraltete Offline-Kopien genutzt wurden.

Fragen:
A: Welche Schmetterlingsart wurde durch einen von Lsjbot erstellten Artikel bekannt?
B: Welche Partei stand der Hannoverschen Landeszeitung nahe?
C: In welchem Jahr wurde die Anwendungssoftware erstmals erstellt?
D: Wo werden die Server der Enciclopedia Libre Universal en Español betrieben?</s>
<|assistant|>
PhilipMay commented 2 months ago

Example for task4 (context_question_match) with TinyLlama-1.1B-Chat-v1.0 (looks good)

print(df.iloc[0]["full_prompt"])
<|user|>
Lässt sich die Frage mithilfe der Informationen aus dem Kontext beantworten? Antworte mit J für ja oder N für nein.

Kontext:
Oren Koules (* 31. Januar 1961 in La Grange, Illinois) ist ein ehemaliger US-amerikanischer Eishockeyspieler und jetziger -funktionär, sowie Filmproduzent. Bekannt wurde er vor allem durch die Filmreihe Saw, die von seiner Produktionsfirma produziert wird. Oren Koules begann seine Karriere als Eishockeyspieler in der kanadischen Juniorenliga Western Hockey League, in der er von 1979 bis 1982 für die Portland Winter Hawks, Great Falls Americans, Medicine Hat Tigers, Spokane Flyers, Calgary Wranglers und Brandon Wheat Kings aktiv war. Bei den Great Falls Americans, die vorzeitig in ihrer Premierensaison den Spielbetrieb einstellten, hält er mit neun Treffern den Rekord als bester Torschütze in der Franchise-Geschichte. Gegen Ende der Saison 1981/82 bestritt der Flügelspieler zudem ein Spiel für die Saginaw Gears in der International Hockey League.

Die Frage: Bei welchem Verein war Thomas Kleine zweieinhalb Jahre Kapitän?</s>
<|assistant|>
PhilipMay commented 2 months ago

Example for task3 (question_answer_match) with TinyLlama-1.1B-Chat-v1.0 (looks good)

print(df.iloc[0]["full_prompt"])
<|user|>
Beantwortet die Antwort wirklich die Frage? Antworte mit J für ja oder N für nein.

Die Frage: Mit welchem Unternehmen fusionierte die Adesso AG im Jahr 2006?

Die Antwort: Bruno Zumino erwarb sein Physik-Diplom an der Universität Rom im Jahr 1945.</s>
<|assistant|>
PhilipMay commented 2 months ago

LGTM, thanks for the addition. On which models did you try it to make sure it worked well?

I did test with TinyLlama-1.1B-Chat-v1.0. All was good - see above. Here is the call:

accelerate launch --num_processes=1 run_evals_accelerate.py \
    --model_args "pretrained=TinyLlama/TinyLlama-1.1B-Chat-v1.0" \
    --tasks  ./examples/tasks/all_german_rag_evals.txt \
    --override_batch_size 1 \
    --use_chat_template \
    --custom_tasks community_tasks/german_rag_evals.py \
    --output_dir="./evals_german_rag_evals/"
PhilipMay commented 2 months ago

Removed WIP tag - can be merged from my point of view. CI is green... @clefourrier

clefourrier commented 2 months ago

Sorry, I meant : did you check that the results are equal to some reference model score that was referenced when the dataset was created?

PhilipMay commented 2 months ago

Sorry, I meant : did you check that the results are equal to some reference model score that was referenced when the dataset was created?

I created the dataset myself. I made tests with EleutherAI/lm-evaluation-harness and a chatml hack: https://github.com/telekom/ger-rag-benchmark/tree/main/ger_rag_benchmark_chatml

The results with LightEval are the same.

clefourrier commented 2 months ago

Ok, perfect!