forked from Svenbonne/DCL_MLS
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathDCL_MLS_Project-main-doc.html
610 lines (580 loc) · 39.3 KB
/
DCL_MLS_Project-main-doc.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" lang="de" xml:lang="de"><head>
<meta charset="utf-8">
<meta name="generator" content="quarto-1.5.47">
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes">
<meta name="author" content="Lucas Mandelik">
<meta name="author" content="Alexander Lorenz">
<meta name="author" content="Jannik Svenson">
<title>Causal Reasoning of LLMs</title>
<style>
code{white-space: pre-wrap;}
span.smallcaps{font-variant: small-caps;}
div.columns{display: flex; gap: min(4vw, 1.5em);}
div.column{flex: auto; overflow-x: auto;}
div.hanging-indent{margin-left: 1.5em; text-indent: -1.5em;}
ul.task-list{list-style: none;}
ul.task-list li input[type="checkbox"] {
width: 0.8em;
margin: 0 0.8em 0.2em -1em; /* quarto-specific, see https://github.com/quarto-dev/quarto-cli/issues/4556 */
vertical-align: middle;
}
</style>
<script src="DCL_MLS_Project-main-doc_files/libs/clipboard/clipboard.min.js"></script>
<script src="DCL_MLS_Project-main-doc_files/libs/quarto-html/quarto.js"></script>
<script src="DCL_MLS_Project-main-doc_files/libs/quarto-html/popper.min.js"></script>
<script src="DCL_MLS_Project-main-doc_files/libs/quarto-html/tippy.umd.min.js"></script>
<script src="DCL_MLS_Project-main-doc_files/libs/quarto-html/anchor.min.js"></script>
<link href="DCL_MLS_Project-main-doc_files/libs/quarto-html/tippy.css" rel="stylesheet">
<link href="DCL_MLS_Project-main-doc_files/libs/quarto-html/quarto-syntax-highlighting.css" rel="stylesheet" id="quarto-text-highlighting-styles">
<script src="DCL_MLS_Project-main-doc_files/libs/bootstrap/bootstrap.min.js"></script>
<link href="DCL_MLS_Project-main-doc_files/libs/bootstrap/bootstrap-icons.css" rel="stylesheet">
<link href="DCL_MLS_Project-main-doc_files/libs/bootstrap/bootstrap.min.css" rel="stylesheet" id="quarto-bootstrap" data-mode="light">
</head>
<body class="fullcontent">
<div id="quarto-content" class="page-columns page-rows-contents page-layout-article">
<main class="content" id="quarto-document-content">
<header id="title-block-header" class="quarto-title-block default">
<div class="quarto-title">
<h1 class="title">Causal Reasoning of LLMs</h1>
</div>
<div class="quarto-title-meta-author">
<div class="quarto-title-meta-heading">Autor:innen</div>
<div class="quarto-title-meta-heading">Zugehörigkeit</div>
<div class="quarto-title-meta-contents">
<p class="author">Lucas Mandelik <a href="mailto:[email protected]" class="quarto-title-author-email"><i class="bi bi-envelope"></i></a> </p>
</div>
<div class="quarto-title-meta-contents">
<p class="affiliation">
HWI Hamburg
</p>
</div>
<div class="quarto-title-meta-contents">
<p class="author">Alexander Lorenz <a href="mailto:[email protected]" class="quarto-title-author-email"><i class="bi bi-envelope"></i></a> </p>
</div>
<div class="quarto-title-meta-contents">
<p class="affiliation">
HWI Hamburg
</p>
</div>
<div class="quarto-title-meta-contents">
<p class="author">Jannik Svenson <a href="mailto:[email protected]" class="quarto-title-author-email"><i class="bi bi-envelope"></i></a> </p>
</div>
<div class="quarto-title-meta-contents">
<p class="affiliation">
HWI Hamburg
</p>
</div>
</div>
<div class="quarto-title-meta">
<div>
<div class="quarto-title-meta-heading">Veröffentlichungsdatum</div>
<div class="quarto-title-meta-contents">
<p class="date">10. Juli 2024</p>
</div>
</div>
</div>
</header>
<!-- <a href="https://digitalcausalitylab.github.io/"><img src="figures/logo.png" align="right" width = "120" /></a>-->
<p><a href="https://digitalcausalitylab.github.io/"> <img src="figures/logo.png" align="right" width="240" style="position: relative; top: -164px;right: -0px;"> </a> <!-- format: pptx --></p>
<p>AKTUALISIERUNGSDATUM <br> 07. Juli 2024</p>
<section id="inhaltsverzeichnis" class="level2">
<h2 class="anchored" data-anchor-id="inhaltsverzeichnis">Inhaltsverzeichnis</h2>
<ol type="1">
<li><a href="#einleitung">Einleitung</a></li>
<li><a href="#zusammenfassung">Zusammenfassung des zugrundeliegenden Artikels</a></li>
<li><a href="#parrotsparadox">Parrots Paradox</a></li>
<li><a href="#beitrag">Beitrag</a></li>
<li><a href="#schlussbetrachtung">Schlussbetrachtung</a></li>
<li><a href="#referenzen">Referenzen</a></li>
<li><a href="#anhang">Anhang</a></li>
</ol>
</section>
<section id="einleitung" class="level2">
<h2 class="anchored" data-anchor-id="einleitung">Einleitung</h2>
<div style="text-align: justify;">
<p>In diesem Projekt wird sich mit den kausalen Inferenzfähigkeiten von Large Language Models (LLM) befasst. Grundlage hiefür bietet der Artikel “A Critical Review of Causal Reasoning Benchmarks for Large Language Models” von Yang et al. aus dem Dezember 2023. In diesem Artikel werden verschiedene Benchmarks für die Fähigkeit von LLMs geprüft, kausale Inferenzen durchzuführen. Hierfür werden Vorschläge von mehreren Artikeln geprüft. Im Nachhinein haben wir einige der vorgeschlagenen Benchmarks an Google’s Gemini, UHHGPT 3.5 Turbo und UHHGPT 4 omni, welche uns durch die Universität zur Verfügung gestellt wurden und auf OpenAI’s ChatGPT basieren, getestet.</p>
<section id="zusammenfassung" class="level2">
<h2 class="anchored" data-anchor-id="zusammenfassung">Zusammenfassung des zugrundeliegenden Artikels</h2>
<p>In der Einleitung des Artikels werden zuerst kausale Hierarchien eingeführt, also verschiedene, auf einander aufbauende Ebenen kausaler Aussagen. Mit zunehmender Höhe auf der Hierachie nimmt auch die Komplexität der Aufgaben zu, die vom LLM ausgeführt werden können sollen. Es werden zwei dieser Hierachien vorgestellt, die erste von Zhang et al. (2023), welche aus drei Ebenen besteht: <br> 1. <a href="#typ1">Typ 1</a>: Kausale Aussagen aufgrund von Informationen über Situation und Umgebung treffen. <br> 2. <a href="#typ2">Typ 2</a>: Aufgrund von Daten neues Wissen entdecken. <br> 3. <a href="#typ3">Typ 3</a>: Quantitaive Auswirkungen von Aktionen vorhersagen. <br></p>
<p>Laut dem Artikel können die meisten aktuellen Modelle den ersten Typ problemlos ausführen, haben allerdings Probleme mit den Typen 2 und 3 (allerdings ist mittlerweile zweifelhaft, wie aktuell und korrekt diese Aussage ist). Die zweite vorgestellte Hierarchie, beschrieben als “Leiter der Kausalität”, besteht ebenfalls aus drei Stufen: <br> 1. <a href="#sehen">Sehen</a>: Grundlegende statistische Zusammenhänge erkennen und beschreiben. <br> 2. <a href="#handeln">Handeln</a>: Effekte einer bestimmten Aktion vorhersagen. <br> 3. <a href="#vorstellen">Vorstellen</a>: Aussagen über alternative oder faktenwidrige Resultate tätigen. <br></p>
<p>Hier wird erneut festgestellt, dass die meisten Modelle nur die erste Stufe der Leiter erreichen.</p>
<p>Anschließend wurde eine Literatur-Recherche durchgeführt, und verschiedene Ansätze für das Benchmarking von kausaler Aussagefähigkeit verglichen und bewertet. Hierfür wurden zuerst solche Tests untersucht, welche kausale Aussagefähigkeit aufgrund von kontextualen Fragen bewertet haben. Yang et al. kritisieren, dass in diesen Fällen die Möglichkeiten des LLMs eingeschränkt werden, indem es beispielsweise nur zwischen den Optionen “Ursache” und “Wirkung” wählen muss - in manchen Fällen mit noch mehr Optionen - und dem Modell so bereits Optionen vorgegeben werden, wodurch kausale Aussagefähigkeit unzureichend getestet wird. <span id="zusammenfassung1">Außerdem wurde vorgebracht, dass in einigen Fällen, die Leistung des Modells auf die Wahl der Sprache zurückzuführen ist, da mit leicht abgeänderter oder verallgemeinerter Sprache schlechtere Ergebnisse erzielt wurden.</span></p>
<p>Darauffolgend wurde darauf hingewiesen, dass die Fähigkeit intuitive Aussagen zu treffen, wie ein Mensch sie mit “gesundem Menschenverstand” tätigen würde, eine notwendige, aber keine hinreichende Bedingung für kausale Aussagefähigkeit ist. Meistens würden die Modelle vorhandes Wissen abrufen und keine neuen Aussagen treffen, da deren Trainingsdaten vieles umfassen.</p>
<p>Danach wurde auf Tests eingegangen, die sich mit höheren Leveln von kausaler Inferenz beschäftigen. Als Beispiele wurden Geschichten genannt, die fiktive Elemente enthalten, in deren Kontext das LLM kausale Aussagen tätigen mussten. Dies stelle einen besseren und robusteren Test für die Modelle dar, da das Modell nicht nur durch Abruf alter Informationen eine Aussage tätigen kann, den Kontext neu interpretieren muss, entscheiden muss, welche Informationen aus der Geschichte relevant sind und diese zu einer Aussage zusammentragen muss. Ein Element, das gerne für solche Geschichten genutzt wird, ist die Zeitreise.</p>
<p>Eine weitere Gruppe von Tests befasst sich mit DAGs. Besser gesagt mit der Fähigkeit von LLMs zur causal graph discovery. Hier werden dem Modell eine Reihe von Aussagen über bedingte Unabhängigkeit gegeben, aus welchen das Modell einen DAG erstellen soll. Yang et al. schreiben, dass durch diese Art des testens alle drei Stufen der “Leiter der Kausalität” befriedigt werden, da hier Interventionen und faktenwidrige Aussagen miteinbezogen werden. Allerdings wird angemerkt, dass es besser sein könnte, ganze Nomen als Knotenpunkte der DAGs zu verwenden, und nicht nur einfache Buchstaben, da dies selbst für Menschen nicht unbedingt möglich wäre. Ebenfalls wird angemerkt, dass bereits Informationen über die kausalen Ausrichtungen in den Trainingsdaten vorhanden sein könnten, und das Modell somit wieder auf bereits vorhandenes Wissen zurückgreift, also keine kausale Aussage trifft. Selbst wenn man in das Stichwort miteinbezieht, dass sich das Modell eine hypothetische Welt vorstellen soll, ist es zweifelhaft, ob dieser Befehl auch befolgt wird.</p>
<p>Thema des nächsten Teils ist die Qualität der Designs der Experimente, mit denen die LLMs getestet wurden. Zunächst wurde kritisiert, dass vermehrt ungeeignete Metriken zur Bewertung der Güte oder Genauigkeit der kausalen Aussage genutzt wurden. Beispielsweise wurde in einigen Fällen gemessen, wie genau die Syntax der Aussage mit der “richtigen” Antwort übereinstimmte. Dies sei nicht geeignet, da die selbe kausale Aussage mit unterschiedlcihster Syntax formuliert werden könne. Hier bedürfe es weiterer Forschung, um geeignete Metriken herauszuarbeiten. Eine weitere Schwierigkeit bestehe darin, dass man nicht sicher sein könne, dass die Aufgaben und Fragen, die man dem LLM stellte, um die kausale Aussagefähigkeit zu testen, nicht bereits im Trainingsdatensatz vorhanden waren. Als Beispiel wurde genannt, dass GPT-3.5 und GPT-4 Teile von Problemen bereits kannten die zum testen genutzt wurden. Darüber hinaus nutzten einige Studien Methoden zum testen der kausalen Inferenzfähigkeit, die laut Yang et al. nichts mit Kausalität zu tun hätten, sondern beispielsweise mit Grammatik.</p>
<p>Schlussendlich wurden die wichtigsten Erkenntnisse der Arbeit herausgearbeitet. LLMs müssen Interventionen oder faktenwidrige Ereignisse miteinbeziehen und wiedergeben können. Sie müssen in der Lage sein, offene Antworten zu geben und nicht nur zwischen vorgegebenen Optionen wählen können. Sie dürfen sich nicht auf den Abruf von Informationen aus ihrem Trainingsdatensatz verlassen. Schließlich sollte ein Test für ein LLM skalierbar sein, um die kausale Aussagefähigkeit am selben kausalen Zusammenhang auf unterschiedlichen Ebenen zu testen.</p>
</section>
<section id="parrotsparadox" class="level2">
<h2 class="anchored" data-anchor-id="parrotsparadox">ParrotsParadox</h2>
<p>Einige Nutzer von LLMs haben bemerkt, dass LLMs nicht zwingend immer Kausalität erkennen können und sie z.B. auf einfache kausale Fragen falsch antworten. In unserem Repository haben wir einige Fälle gesammelt, die zweifelhafte kausale Fähigkeiten von Chat GPT und Gemini aufzeigen. Außerdem haben wir auch aus der Litertur bekannte Fragen, bei denen LLMs schonmal gescheitert sind, überprüft. Generell kann ChatGPT 4.0 und auch bedingt Chat GPT 3.5 Turbo diese Fragen gut beantworten, was aber nicht an dem kausalen Verständnis liegen muss, da diese Cases auch anders beantwortet werden könnten. Beispielsweise ist es denkbar, dass OpenAI diese Problem erkannt hat und entschieden hat, bekannte Fälle und Fragen, die Sie von Nutzern mitbekommen, direkt z.B. durch “hardcoden” zu entfernen. Außerdem könnten solche Fälle auch in den Trainingsdaten insbesondere von neueren LLMs vorhanden sein.</p>
</section>
<section id="beitrag" class="level2">
<h2 class="anchored" data-anchor-id="beitrag">Beitrag</h2>
<p>Wir haben uns dann weiterhin damit beschäftigt, wie die beiden Versionen von UHHGPT, nämlich ChatGPT 3.5 Turbo und ChatGPT 4 omni, die Bechmarks erfüllt, die das Paper vorgeschlagen hat.</p>
<section id="paper---beispielfragen" class="level3">
<h3 class="anchored" data-anchor-id="paper---beispielfragen">Paper - Beispielfragen</h3>
<p>Dazu haben wir zunächst die Fälle ausprobiert, die in dem Paper vorgestellt wurden. Dabei werden ChatGPT immer Sätze vorgelegt und darf immer nur mit “True” oder “False” bzw. “Yes” oder “No” antworten. Den ersten Fall und die Antwort von ChatGPT 3.5 Turbo kann man im folgenden Bild sehen: <img src="LLM Fails\Edge Cases\Fail heights.png" align="center" width="100%"> Da Bob Höhenangst hat, wäre die logische Konsequenz daraus, dass er bei der Wahl zwischen dem Riesenrad und dem Karussell das Riesenrad vermeiden würde. ChatGPT 3.5 Turbo ist in diesem Fall nicht dazu in der Lage gewesen, diesen kausalen Zusammenhang zwischen Höhenangst und dem Riesenrad zu ziehen. Bob würde durch das Riesenrad in die Höhe transportiert, was seine Höhenangst auslösen würde und er aus genau diesem Grund konswquenterweise das Karussell dem Riesenrad vorziehen würde. ChatGPT 4 omni und Googles Gemini hingegen haben diesen Fall richtig gelöst.<br>
Tatsächlich sind wir dabei auch auf einen interessanten Fehler gestoßen. ChatGPT 4 omni hat generell bei unseren Untersuchungen sehr gute Ergebnisse geliefert und hat bei keiner Frage, die wir ausgetestet haben, falsche Ergebnisse geliefert. So auch zuerst bei diesem Fall, der ebenfalls aus dem untersuchten Paper stammt: <img src="LLM Fails\Academic Paper Cases\fish correct.png" align="center" width="100%"> Da Sammy mit 10 Fischen rechnen würde, wäre er folglich bei 40 Fischen sehr erfreut und bei nur 5 Fischen vermutlich enttäuscht. Das hat ChatGPT 4 omni ohne Probleme hinbekommen. Interessanterweise ist uns aufgefallen, dass, sobald man den Namen von Sammy klein schreibt, ChatGPT 4 omni nicht mehr in der Lage ist, dies richtig zu lösen, wie man hier sehen kann: <img src="LLM Fails\Academic Paper Cases\4.0 Fail.png" align="center" width="100%"> Hier ist es also eventuell der Fall, dass ChatGPT nicht mehr in der Lage ist, zu identifizieren, dass es sich bei Sammy um eine Person handelt, weshalb hier dann kein logischer Zusammenhang erkannt werden kann. Das könnte nämlch genau mit dem Problem zusammen, das im Abschnitt <a href="#zusammenfassung1">Zusammenfassung des zugrundeliegenden Artikels</a> angesprochen wurde, dass andere Sprache zu anderen Ergebnissen führt. Dieses Beispiel könnte zeigen, dass kleine Grammatik-/Rechtschreibfehler bereits genug sein können, dass LLMs nicht mehr zuverlässig arbeiten, was entstehen könnte, wenn das LLM nur mit ziemlich guter Rechtschreibung trainiert wurde. Somit scheint es bei ChatGPT 4 Omni Probleme mit der Robustheit zu geben, woran noch gearbeitet werden sollte.</p>
</section>
<section id="eigene-ideen-und-bekannte-fälle" class="level3">
<h3 class="anchored" data-anchor-id="eigene-ideen-und-bekannte-fälle">Eigene Ideen und bekannte Fälle</h3>
<p>Desweiteren haben wir andere Fälle ausgetestet, die in der Vergangenheit aufgefallen sind, da ChatGPT sie nicht korrekt beantworten konnte und haben auch eigene Ideen ausgetestet, um zu prüfen, ob ChatGPT hier in der Lage dazu ist, kausale Zusammenhänge zu erkennen.<br>
Im ersten Beispiel geht es um das Thema Fußball: <img src="LLM Fails\Edge Cases\3.5 Fail Fussball.png" align="center" width="100%"> In diesem Fall ist ChatGPT 3.5 der Logik gefolgt, dass es hier eine einfache transitive Eigenschaft gibt, dass wenn Team A Team B besiegt und Team C Team A besiegt, Team C ja folglich besser sein müsste als Team B und somit auch Team B besiegen müsste. Dies ist allerdings beim Thema Fußball keine gegebene Eigenschaft, da die Teams verschiedene Spieltaktiken nutzen, die bei manchen Teams ein Schwachpunkt darstellen, von anderen Spieltaktiken jedoch ausgekontert werden. Das kann man z.B. auch gut in der EM betrachten. Deutschland hat z.B. 5:1 gegen Schottland gespiel. Da Schottland 1:1 gegen die Schweiz gespielt hat, müsste aus der Logik von ChatGPT 3.5 Deutschland auch deutlich gegen die Schweiz gewinnen, hier kam jedoch nur ein knappes Unentschieden zustande. Auch hier hat ChatGPT 4 omni jedoch die Nase vorne und konnte auch diese Frage richtig beantworten. Gemini konnte diese Frage ebenfalls korrekt beantworten hat aber seinerseits bei komplexeren Turniergeschehen sich dazu verleiten lassen zu behaupten, dass jede Mannschaft mindestens ein Spiel gewonnen hat, obwohl zwei Mannschaften, hier der TuS Hoisdorf und der USC Ahrensburg, kein beschriebenes Spiel gewonnen haben. <img src="LLM Fails\Edge Cases\Turnier confusion Gemini.png" align="center" width="100%"></p>
<p>Wenn man anschließend Gemini die Ergebnisse von einer fiktiven Viertelfinalrunde des Turniers gibt und nach den zwei Finalisten fragt, gibt Gemini klar zwei Finalisten aus, obwohl die fiktiven Ergebnisse in normalen Turnieren klar noch ein Halbfinale erfordern. Auf mehrfache Nachfrage konnte Gemini die Halbfinalisten korrekt nennen und begründen und hat sich für diesen Finalisten Fehler entschuldigt, nachdem Gemini zunächst vorgab die Begriffe Finalist und Semi-Finalist nicht klar getrennt zu haben. <img src="LLM Fails\Edge Cases\Turnier confusion2 Gemini.png" align="center" width="100%"> Dieses Turnierbeispiel lies sich in einem neuen Chat reproduzieren, auch wenn hier dann andere Teams (die ersten beiden Gewinner) Finalisten laut Gemini wären. Die Gothenburg Kickers und der TuS Hoisdorf kommen nurnoch bedingt in Geminis Turnierbetrachtungen vor und das Ergebnis USC Ahrensburg 3:0 USC Aarhus wird komplett misinterpretiert. <img src="LLM Fails\Edge Cases\Turnier confusion3 - völliges wirrwarr.png" align="center" width="100%"></p>
<p>Dieses Turnierbeispiel hat ChatGPT 4.0 omni komplett durchschaut und korrekt beanwortet, wohingegen ChatGPT 3.5 Turbo unbeholfen das gesamte noch verbleibende Turnier vorraussagt und die Mannschaft aus Göteborg zum Sieger ernennt. <img src="LLM Fails\Edge Cases\Turnier confusion ChatGPT 3.5 Turbok.png" align="center" width="100%"></p>
<p>Dieses Besipiel lässt sich durch folgenden DAG oberflächlich darstellen: <img src="LLM Fails\Edge Cases\test.png" align="center" width="100%"> Es kann erkannt werden, dass LLMs in diesem Turnierbeispiel manchmal noch eine Abkürzung durch diesen DAG nehmen und damit nur indirecte Kausalitäten für ihre Antwort nutzen.</p>
<p>Ein weiteres Beispiel kann hier gesehen werden: <img src="LLM Fails\Edge Cases\Fail Box.png" align="center" width="100%"> In der Fragestellung wird formuliert, dass es in einer blauen Box ein Apfel und eine rote Box mit einem Deckel gibt. Einem Menschen würde dabei sofort auffallen, dass folglich der Apfel einfach aus der blauen Box entnommen werden kann. ChatGPT 3.5 Turbo hingegen hat es hier jedoch nicht geschafft, diesen Zusammenhang zu erkennen - wir vermuten, dass das der Fall ist, da so genau beschrieben wurde, dass die rote Box einen Deckel hat, und dieser roten Box deswegen ein zu großer Wert für die Beantwortung der Frage beigemessen wurde.<br>
Auch hier konnte ChatGPT 4 omni jedoch korrekt antworten und hat darauf hingewiesen, dass die rote Box gar keine Rolle spielen würde, wenn man an den Apfel gelangen möchte.</p>
<p>Gemini hat hier in etwa die Mitte der beiden ChatGPT Versionen getroffen und begründet, dass man nur die blaue Box öffnen muss damit, dass die rote Box einen Deckel hat, was zwar nicht falsch ist, aber keine korrekte Begründung darstellt. <img src="LLM Fails\Edge Cases\box confusion Gemini.png" align="center" width="100%"></p>
</section>
</section>
<section id="schlussbetrachtung" class="level2">
<h2 class="anchored" data-anchor-id="schlussbetrachtung">Schlussbetrachtung</h2>
<p>Die Untersuchung der kausalen Inferenzfähigkeiten von LLMs anhand einiger Benchmarks hat interessante und teils widersprüchliche Ergebnisse geliefert. Während frühere Arbeiten wie die betrachtete von Yang et al. (2023) darauf hinweisen, dass die meisten betrachteten Modelle nur auf der ersten Ebene der kausalen Hierarchien erfolgreich sind, zeigen unsere Experimente mit den UHHGPT-Modellen, dass OpenAIs aktuelle ChatGPT Versionen, wie ChatGPT 4 omni diese Einschränkungen teilweise überwinden können. Zumindest schneiden diese bei den Benchmarks in eigenen Untersuchungen besser ab.</p>
<p>ChatGPT 4 omni hat in unseren Tests, die sowohl Fragen aus der Literatur als auch eigens entwickelte Szenarien umfassten, durchweg besser abgeschnitten als sein Vorgänger, ChatGPT 3.5 Turbo. Dies deutet darauf hin, dass aktuelle Entwicklungen in der Modellarchitektur und den Trainingsdaten erhebliche Fortschritte in der kausalen Inferenz ermöglichen. Besonders auffällig war die Fähigkeit von ChatGPT 4 omni, komplexere Zusammenhänge und feine Nuancen in den Fragestellungen zu erkennen und korrekt zu beantworten.</p>
<p>Trotz dieser möglichen Fortschritte bleiben jedoch Fragen offen. Die Beobachtung, dass ChatGPT 4 omni bei einer für Menschen minimalen Änderung der Eingabe (z.B. kleingeschriebener Name) fehlerhaft reagiert, wirft Zweifel an der Robustheit und Existenz der kausalen Inferenz auf. Zudem bleibt unklar, inwieweit diese Modelle tatsächlich neue kausale Zusammenhänge generieren können oder lediglich auf umfangreiche Trainingsdaten zurückgreifen. Die Beobachtungen könnten theoretisch an dem erhöhten Fokus auf kausale Fähigkeiten von LLMs von den Entwicklern liegen, welche die wahren kausalen Fähigkeiten ihrer Modelle z.B. durch „hardcoden“ verschleiern könnten. Für weitere Untersuchungen und Forschung wäre es erstrebenswert tiefere Einblicke in die Modelle zu bekommen.</p>
<p>Die Erkenntnisse aus dieser Arbeit unterstreichen die Notwendigkeit weiterer Forschung und die Entwicklung robusterer und skalierbarer Bewertungsmethoden für die kausalen Fähigkeiten von LLMs. So könnte in der Entwicklung von LLMs gefördert werden, dass zukünftige Modelle nicht nur existierende kausale Informationen wiedergeben, sondern auch in der Lage sind, neue kausale Zusammenhänge zu entdecken und korrekt zu interpretieren.</p>
<p>Zusammenfassend lässt sich sagen, dass die aktuellen LLMs bedeutende Fortschritte in der kausalen Inferenz gemacht haben dürften, aber noch weit davon entfernt sind, die volle Bandbreite menschlicher kausaler Denkfähigkeit zu erreichen oder sogar zu übersteigen. Künftige Arbeiten sollten sich daher darauf konzentrieren, die Grenzen dieser Fähigkeiten weiter auszutesten und zu erweitern.</p>
</section>
<section id="referenzen" class="level2">
<h2 class="anchored" data-anchor-id="referenzen">Referenzen</h2>
<p><a href="https://openreview.net/forum?id=mRwgczYZFJ">Linying Yang, Vik Shirvaikar, Oscar Clivio & Fabian Falck. 2023.</a></p>
<p><a href="https://doi.org/10.48550/arXiv.2305.16183">Andrew K. Lampinen, Stephanie C. Y. Chan, Ishita Dasgupta, Andrew J. Nam & Jane X. Wang. 2023</a></p>
</section>
<section id="anhang" class="level2">
<h2 class="anchored" data-anchor-id="anhang">Anhang</h2>
<section id="spaß-über-llms-vor-agi" class="level3">
<h3 class="anchored" data-anchor-id="spaß-über-llms-vor-agi">Spaß über LLMs vor AGI</h3>
<p>Nachfolgende Späße sind nicht despektierlich gegenüber LLMs oder AGI gemeint, sondern sollen helfen diese voranzubringen und das Bewustsein von Menschen für die aktuellen Herausforderungsgebiete von LLMs zu erweitern.</p>
<p>Eigene bemerkenswerte Antworten von UHHGPT: <a href="https://github.com/Svenbonne/DCL_MLS/tree/2def1c1daabcec6f9b5604cf739979d86122b744/LLM%20Fails">LLM Fails</a></p>
<p>Fremde bemerkenswerte Antworten von ChatGPT und weiteren LLMs: <a href="https://github.com/giuven95/chatgpt-failures.git">ChatGPT Failures</a></p>
</section>
</section>
</div>
</section>
</main>
<!-- /main column -->
<script id="quarto-html-after-body" type="application/javascript">
window.document.addEventListener("DOMContentLoaded", function (event) {
const toggleBodyColorMode = (bsSheetEl) => {
const mode = bsSheetEl.getAttribute("data-mode");
const bodyEl = window.document.querySelector("body");
if (mode === "dark") {
bodyEl.classList.add("quarto-dark");
bodyEl.classList.remove("quarto-light");
} else {
bodyEl.classList.add("quarto-light");
bodyEl.classList.remove("quarto-dark");
}
}
const toggleBodyColorPrimary = () => {
const bsSheetEl = window.document.querySelector("link#quarto-bootstrap");
if (bsSheetEl) {
toggleBodyColorMode(bsSheetEl);
}
}
toggleBodyColorPrimary();
const icon = "";
const anchorJS = new window.AnchorJS();
anchorJS.options = {
placement: 'right',
icon: icon
};
anchorJS.add('.anchored');
const isCodeAnnotation = (el) => {
for (const clz of el.classList) {
if (clz.startsWith('code-annotation-')) {
return true;
}
}
return false;
}
const onCopySuccess = function(e) {
// button target
const button = e.trigger;
// don't keep focus
button.blur();
// flash "checked"
button.classList.add('code-copy-button-checked');
var currentTitle = button.getAttribute("title");
button.setAttribute("title", "Kopiert");
let tooltip;
if (window.bootstrap) {
button.setAttribute("data-bs-toggle", "tooltip");
button.setAttribute("data-bs-placement", "left");
button.setAttribute("data-bs-title", "Kopiert");
tooltip = new bootstrap.Tooltip(button,
{ trigger: "manual",
customClass: "code-copy-button-tooltip",
offset: [0, -8]});
tooltip.show();
}
setTimeout(function() {
if (tooltip) {
tooltip.hide();
button.removeAttribute("data-bs-title");
button.removeAttribute("data-bs-toggle");
button.removeAttribute("data-bs-placement");
}
button.setAttribute("title", currentTitle);
button.classList.remove('code-copy-button-checked');
}, 1000);
// clear code selection
e.clearSelection();
}
const getTextToCopy = function(trigger) {
const codeEl = trigger.previousElementSibling.cloneNode(true);
for (const childEl of codeEl.children) {
if (isCodeAnnotation(childEl)) {
childEl.remove();
}
}
return codeEl.innerText;
}
const clipboard = new window.ClipboardJS('.code-copy-button:not([data-in-quarto-modal])', {
text: getTextToCopy
});
clipboard.on('success', onCopySuccess);
if (window.document.getElementById('quarto-embedded-source-code-modal')) {
// For code content inside modals, clipBoardJS needs to be initialized with a container option
// TODO: Check when it could be a function (https://github.com/zenorocha/clipboard.js/issues/860)
const clipboardModal = new window.ClipboardJS('.code-copy-button[data-in-quarto-modal]', {
text: getTextToCopy,
container: window.document.getElementById('quarto-embedded-source-code-modal')
});
clipboardModal.on('success', onCopySuccess);
}
var localhostRegex = new RegExp(/^(?:http|https):\/\/localhost\:?[0-9]*\//);
var mailtoRegex = new RegExp(/^mailto:/);
var filterRegex = new RegExp('/' + window.location.host + '/');
var isInternal = (href) => {
return filterRegex.test(href) || localhostRegex.test(href) || mailtoRegex.test(href);
}
// Inspect non-navigation links and adorn them if external
var links = window.document.querySelectorAll('a[href]:not(.nav-link):not(.navbar-brand):not(.toc-action):not(.sidebar-link):not(.sidebar-item-toggle):not(.pagination-link):not(.no-external):not([aria-hidden]):not(.dropdown-item):not(.quarto-navigation-tool):not(.about-link)');
for (var i=0; i<links.length; i++) {
const link = links[i];
if (!isInternal(link.href)) {
// undo the damage that might have been done by quarto-nav.js in the case of
// links that we want to consider external
if (link.dataset.originalHref !== undefined) {
link.href = link.dataset.originalHref;
}
}
}
function tippyHover(el, contentFn, onTriggerFn, onUntriggerFn) {
const config = {
allowHTML: true,
maxWidth: 500,
delay: 100,
arrow: false,
appendTo: function(el) {
return el.parentElement;
},
interactive: true,
interactiveBorder: 10,
theme: 'quarto',
placement: 'bottom-start',
};
if (contentFn) {
config.content = contentFn;
}
if (onTriggerFn) {
config.onTrigger = onTriggerFn;
}
if (onUntriggerFn) {
config.onUntrigger = onUntriggerFn;
}
window.tippy(el, config);
}
const noterefs = window.document.querySelectorAll('a[role="doc-noteref"]');
for (var i=0; i<noterefs.length; i++) {
const ref = noterefs[i];
tippyHover(ref, function() {
// use id or data attribute instead here
let href = ref.getAttribute('data-footnote-href') || ref.getAttribute('href');
try { href = new URL(href).hash; } catch {}
const id = href.replace(/^#\/?/, "");
const note = window.document.getElementById(id);
if (note) {
return note.innerHTML;
} else {
return "";
}
});
}
const xrefs = window.document.querySelectorAll('a.quarto-xref');
const processXRef = (id, note) => {
// Strip column container classes
const stripColumnClz = (el) => {
el.classList.remove("page-full", "page-columns");
if (el.children) {
for (const child of el.children) {
stripColumnClz(child);
}
}
}
stripColumnClz(note)
if (id === null || id.startsWith('sec-')) {
// Special case sections, only their first couple elements
const container = document.createElement("div");
if (note.children && note.children.length > 2) {
container.appendChild(note.children[0].cloneNode(true));
for (let i = 1; i < note.children.length; i++) {
const child = note.children[i];
if (child.tagName === "P" && child.innerText === "") {
continue;
} else {
container.appendChild(child.cloneNode(true));
break;
}
}
if (window.Quarto?.typesetMath) {
window.Quarto.typesetMath(container);
}
return container.innerHTML
} else {
if (window.Quarto?.typesetMath) {
window.Quarto.typesetMath(note);
}
return note.innerHTML;
}
} else {
// Remove any anchor links if they are present
const anchorLink = note.querySelector('a.anchorjs-link');
if (anchorLink) {
anchorLink.remove();
}
if (window.Quarto?.typesetMath) {
window.Quarto.typesetMath(note);
}
// TODO in 1.5, we should make sure this works without a callout special case
if (note.classList.contains("callout")) {
return note.outerHTML;
} else {
return note.innerHTML;
}
}
}
for (var i=0; i<xrefs.length; i++) {
const xref = xrefs[i];
tippyHover(xref, undefined, function(instance) {
instance.disable();
let url = xref.getAttribute('href');
let hash = undefined;
if (url.startsWith('#')) {
hash = url;
} else {
try { hash = new URL(url).hash; } catch {}
}
if (hash) {
const id = hash.replace(/^#\/?/, "");
const note = window.document.getElementById(id);
if (note !== null) {
try {
const html = processXRef(id, note.cloneNode(true));
instance.setContent(html);
} finally {
instance.enable();
instance.show();
}
} else {
// See if we can fetch this
fetch(url.split('#')[0])
.then(res => res.text())
.then(html => {
const parser = new DOMParser();
const htmlDoc = parser.parseFromString(html, "text/html");
const note = htmlDoc.getElementById(id);
if (note !== null) {
const html = processXRef(id, note);
instance.setContent(html);
}
}).finally(() => {
instance.enable();
instance.show();
});
}
} else {
// See if we can fetch a full url (with no hash to target)
// This is a special case and we should probably do some content thinning / targeting
fetch(url)
.then(res => res.text())
.then(html => {
const parser = new DOMParser();
const htmlDoc = parser.parseFromString(html, "text/html");
const note = htmlDoc.querySelector('main.content');
if (note !== null) {
// This should only happen for chapter cross references
// (since there is no id in the URL)
// remove the first header
if (note.children.length > 0 && note.children[0].tagName === "HEADER") {
note.children[0].remove();
}
const html = processXRef(null, note);
instance.setContent(html);
}
}).finally(() => {
instance.enable();
instance.show();
});
}
}, function(instance) {
});
}
let selectedAnnoteEl;
const selectorForAnnotation = ( cell, annotation) => {
let cellAttr = 'data-code-cell="' + cell + '"';
let lineAttr = 'data-code-annotation="' + annotation + '"';
const selector = 'span[' + cellAttr + '][' + lineAttr + ']';
return selector;
}
const selectCodeLines = (annoteEl) => {
const doc = window.document;
const targetCell = annoteEl.getAttribute("data-target-cell");
const targetAnnotation = annoteEl.getAttribute("data-target-annotation");
const annoteSpan = window.document.querySelector(selectorForAnnotation(targetCell, targetAnnotation));
const lines = annoteSpan.getAttribute("data-code-lines").split(",");
const lineIds = lines.map((line) => {
return targetCell + "-" + line;
})
let top = null;
let height = null;
let parent = null;
if (lineIds.length > 0) {
//compute the position of the single el (top and bottom and make a div)
const el = window.document.getElementById(lineIds[0]);
top = el.offsetTop;
height = el.offsetHeight;
parent = el.parentElement.parentElement;
if (lineIds.length > 1) {
const lastEl = window.document.getElementById(lineIds[lineIds.length - 1]);
const bottom = lastEl.offsetTop + lastEl.offsetHeight;
height = bottom - top;
}
if (top !== null && height !== null && parent !== null) {
// cook up a div (if necessary) and position it
let div = window.document.getElementById("code-annotation-line-highlight");
if (div === null) {
div = window.document.createElement("div");
div.setAttribute("id", "code-annotation-line-highlight");
div.style.position = 'absolute';
parent.appendChild(div);
}
div.style.top = top - 2 + "px";
div.style.height = height + 4 + "px";
div.style.left = 0;
let gutterDiv = window.document.getElementById("code-annotation-line-highlight-gutter");
if (gutterDiv === null) {
gutterDiv = window.document.createElement("div");
gutterDiv.setAttribute("id", "code-annotation-line-highlight-gutter");
gutterDiv.style.position = 'absolute';
const codeCell = window.document.getElementById(targetCell);
const gutter = codeCell.querySelector('.code-annotation-gutter');
gutter.appendChild(gutterDiv);
}
gutterDiv.style.top = top - 2 + "px";
gutterDiv.style.height = height + 4 + "px";
}
selectedAnnoteEl = annoteEl;
}
};
const unselectCodeLines = () => {
const elementsIds = ["code-annotation-line-highlight", "code-annotation-line-highlight-gutter"];
elementsIds.forEach((elId) => {
const div = window.document.getElementById(elId);
if (div) {
div.remove();
}
});
selectedAnnoteEl = undefined;
};
// Handle positioning of the toggle
window.addEventListener(
"resize",
throttle(() => {
elRect = undefined;
if (selectedAnnoteEl) {
selectCodeLines(selectedAnnoteEl);
}
}, 10)
);
function throttle(fn, ms) {
let throttle = false;
let timer;
return (...args) => {
if(!throttle) { // first call gets through
fn.apply(this, args);
throttle = true;
} else { // all the others get throttled
if(timer) clearTimeout(timer); // cancel #2
timer = setTimeout(() => {
fn.apply(this, args);
timer = throttle = false;
}, ms);
}
};
}
// Attach click handler to the DT
const annoteDls = window.document.querySelectorAll('dt[data-target-cell]');
for (const annoteDlNode of annoteDls) {
annoteDlNode.addEventListener('click', (event) => {
const clickedEl = event.target;
if (clickedEl !== selectedAnnoteEl) {
unselectCodeLines();
const activeEl = window.document.querySelector('dt[data-target-cell].code-annotation-active');
if (activeEl) {
activeEl.classList.remove('code-annotation-active');
}
selectCodeLines(clickedEl);
clickedEl.classList.add('code-annotation-active');
} else {
// Unselect the line
unselectCodeLines();
clickedEl.classList.remove('code-annotation-active');
}
});
}
const findCites = (el) => {
const parentEl = el.parentElement;
if (parentEl) {
const cites = parentEl.dataset.cites;
if (cites) {
return {
el,
cites: cites.split(' ')
};
} else {
return findCites(el.parentElement)
}
} else {
return undefined;
}
};
var bibliorefs = window.document.querySelectorAll('a[role="doc-biblioref"]');
for (var i=0; i<bibliorefs.length; i++) {
const ref = bibliorefs[i];
const citeInfo = findCites(ref);
if (citeInfo) {
tippyHover(citeInfo.el, function() {
var popup = window.document.createElement('div');
citeInfo.cites.forEach(function(cite) {
var citeDiv = window.document.createElement('div');
citeDiv.classList.add('hanging-indent');
citeDiv.classList.add('csl-entry');
var biblioDiv = window.document.getElementById('ref-' + cite);
if (biblioDiv) {
citeDiv.innerHTML = biblioDiv.innerHTML;
}
popup.appendChild(citeDiv);
});
return popup.innerHTML;
});
}
}
});
</script>
</div> <!-- /content -->
</body></html>