1
00:00:00,190 --> 00:00:04,230
Es ist 2024 und auch euer 
Management hat mittlerweile von 

2
00:00:04,230 --> 00:00:08,990
generative AI gehört und möchte 
nun in eure Anwendung KI 

3
00:00:08,990 --> 00:00:11,950
einbauen, um sie damit noch 
besser zu machen. 

4
00:00:12,430 --> 00:00:16,070
Was liegt also näher, als eines 
der populären Large Language 

5
00:00:16,070 --> 00:00:19,350
Models zur Erstellung von 
Inhalten oder dem Beantworten 

6
00:00:19,350 --> 00:00:22,510
von Fragen zu verwenden, aber 
wie schaffen wir es nun, das 

7
00:00:22,510 --> 00:00:25,790
Modell mit bestehendem Wissen 
aus unserem Unternehmen oder aus

8
00:00:25,790 --> 00:00:30,150
unserem Kontext zu versorgen und
damit die Informationen über 

9
00:00:30,150 --> 00:00:33,750
Daten und Inhalte zu geben, die 
es entsprechend braucht, die 

10
00:00:33,750 --> 00:00:36,350
Antwort. 
Retrieval Augmented Generation 

11
00:00:36,350 --> 00:00:45,960
oder kurz Rug? 
Und damit herzlich willkommen zu

12
00:00:45,960 --> 00:00:52,000
Folge 80 des Toodoo Cast des 
Developer Podcasts mit wie immer

13
00:00:52,080 --> 00:00:56,240
Malte Latin und mir Robin, 
Manuel Thiel und malte, wenn wir

14
00:00:56,240 --> 00:00:58,920
über ihr I Team reden und das 
tun wir häufig in diesem 

15
00:00:58,920 --> 00:01:00,160
Podcast. 
In den letzten Tagen, weil es 

16
00:01:00,160 --> 00:01:03,400
einfach ein Riesenthema ist, 
habe ich mir natürlich meinen 

17
00:01:03,400 --> 00:01:08,560
Tee heute morgen in der to do 
cast AI Tasse gemacht, daraus 

18
00:01:08,560 --> 00:01:11,040
schmeckt er mir einfach bei AI 
Themen am besten. 

19
00:01:12,480 --> 00:01:15,280
Wenn auch ihr häufig über Ai 
Themen sprecht, findet ihr 

20
00:01:15,280 --> 00:01:17,720
unsere Tassen natürlich im Shop 
der Sun verlinkt. 

21
00:01:19,510 --> 00:01:22,910
Und wie es der Zufall will, hab 
ich natürlich die entsprechende 

22
00:01:22,910 --> 00:01:26,670
Tasse auch mitgebracht und ich 
wollte an dieser Stelle wollte. 

23
00:01:26,670 --> 00:01:29,110
An dieser Stelle ist mir nicht 
nehmen lassen. 

24
00:01:29,430 --> 00:01:32,310
Liebe Grüße an Christian zu 
senden. 

25
00:01:32,310 --> 00:01:36,550
Christian ist ein alter Kollege 
von uns, der seit vielen Wochen 

26
00:01:36,550 --> 00:01:41,630
jedes Wochenende ein Post auf 
Linkedin macht, in den unsere 

27
00:01:41,630 --> 00:01:45,390
Tasse vorkommt, von daher schöne
Grüße an Christian und wir 

28
00:01:45,390 --> 00:01:47,950
hoffen, dass du sowohl den 
Podcast als auch dem Thema 

29
00:01:47,950 --> 00:01:50,230
künstliche Intelligenz weiterhin
so treu bleibst. 

30
00:01:51,200 --> 00:01:53,360
Genau ihr müsst also nicht nur 
uns glauben, dass AI Themen aus 

31
00:01:53,360 --> 00:01:55,600
der to do Cast Taste besser 
schmecken. 

32
00:01:57,350 --> 00:02:00,270
Und auch der Community glauben, 
der wir ja auch letzte Folge 

33
00:02:00,430 --> 00:02:02,750
zumindest 10 von euch eine 
solche Tasse verschicken 

34
00:02:02,750 --> 00:02:05,030
durften, als kleines Weihnachts 
oder als nachträgliches 

35
00:02:05,030 --> 00:02:08,949
Weihnachtsgeschenk. 
Jetzt haben wir aber genug über 

36
00:02:08,949 --> 00:02:11,550
Tassen zum Thema AI gesprochen. 
Jetzt reden wir auch mal über 

37
00:02:11,550 --> 00:02:15,990
Tech Content zum Thema AI. 
Ja malte, Du hast schon 

38
00:02:15,990 --> 00:02:20,270
angekündigt es geht um Reck, um 
Retrieval Augmented Generation 

39
00:02:20,270 --> 00:02:24,470
diese Folge und darum wie bring 
ich denn eigentlich Daten in 

40
00:02:24,470 --> 00:02:27,870
meine eigenen Large Language 
Models, warum ist das so wichtig

41
00:02:27,870 --> 00:02:32,070
oder warum ist das ein Thema? 
Bisschen den Kontext breiter zu 

42
00:02:32,070 --> 00:02:34,630
machen. 
Wenn wir jetzt anfangen, KI in 

43
00:02:34,630 --> 00:02:37,110
unsere eigenen Anwendungen 
reinzubringen, ist meistens der 

44
00:02:37,110 --> 00:02:41,470
erste Weg hinzu, einem der 
großen Bekannten i Models, da 

45
00:02:41,470 --> 00:02:45,070
gibt es welche, die kann ich als
API konsumieren, zum Beispiel 

46
00:02:45,070 --> 00:02:49,630
von Open AI oder auch anderen, 
und diese sind natürlich auf 

47
00:02:49,870 --> 00:02:54,110
einem generischen Wissensschatz 
der Menschheit trainiert, auf 

48
00:02:54,110 --> 00:02:58,070
natürlicher Sprache, auf 
irgendwie Quellcode, auf allen 

49
00:02:58,070 --> 00:03:01,190
möglichen Informationen, die in 
Textform öffentlich zur 

50
00:03:01,190 --> 00:03:03,270
Verfügung stehen, und damit habe
ich. 

51
00:03:03,960 --> 00:03:07,440
Ein sehr mächtiges, 
umfangreiches Basismodell. 

52
00:03:07,640 --> 00:03:10,720
Und dieses Basismodell kann mir 
ganz viele Fragen beantworten, 

53
00:03:10,720 --> 00:03:14,720
kann ganz viele verschiedene 
Sprachstile beherrschen kann. 

54
00:03:16,760 --> 00:03:17,800
Auch basierend auf 
Wahrscheinlichkeiten. 

55
00:03:17,800 --> 00:03:22,440
Mehr Antworten auf fast alle 
Fragen generieren was es jedoch 

56
00:03:22,440 --> 00:03:26,960
nicht kann, ist, wir Antworten 
auf Fragen geben oder Antworten 

57
00:03:26,960 --> 00:03:30,360
generieren oder Rückmeldungen 
generieren, Content generieren 

58
00:03:30,360 --> 00:03:34,590
auf Informationen, die nicht. 
Teil dieses Trainingssets waren,

59
00:03:34,710 --> 00:03:38,830
und das sind in der Regel 
Informationen, die nur in meinem

60
00:03:38,830 --> 00:03:41,870
Unternehmen, nur bei mir privat 
zur Verfügung stehen. 

61
00:03:41,870 --> 00:03:45,310
Das sind Informationen, die 
Kontextabhängig sind, die 

62
00:03:45,310 --> 00:03:50,310
vielleicht ganz aktuell sind, da
gibt es natürlich sowas wie den 

63
00:03:50,310 --> 00:03:53,670
Bing Chat oder Copilot, die halt
irgendwie eine aktuelle 

64
00:03:53,670 --> 00:03:56,910
Internetsuche durchführen 
können, aber auch damit kann ich

65
00:03:56,910 --> 00:04:00,870
nur auf öffentlich verfügbare 
Informationen zurückgreifen und 

66
00:04:00,870 --> 00:04:02,870
wenn ich jetzt künstliche 
Intelligenz in meine eigene 

67
00:04:02,870 --> 00:04:07,510
Anwendung reinbringen möchte. 
Natürlich dieses KI Modell, 

68
00:04:07,510 --> 00:04:10,510
dieses Basismodell. 
Angereichert werden mit 

69
00:04:10,510 --> 00:04:14,110
Informationen, die zum 
Trainingszeitpunkt nicht zur 

70
00:04:14,110 --> 00:04:18,230
Verfügung standen und da kann 
ich natürlich vielleicht ganz 

71
00:04:18,230 --> 00:04:21,310
intuitiv hingehen und sagen, OK,
warum trainieren wir nicht 

72
00:04:21,310 --> 00:04:24,510
einfach dieses Basismodell 
zusätzlich mit den 

73
00:04:24,510 --> 00:04:27,070
Informationen, die zum 
Trainingszeitpunkt nicht zur 

74
00:04:27,070 --> 00:04:29,470
Verfügung standen, weil sie 
vielleicht privat sind, kommen 

75
00:04:29,470 --> 00:04:31,710
wir aber relativ schnell an den 
Punkt, dass wir zum einen 

76
00:04:31,710 --> 00:04:37,030
merken, dass es extrem Compute 
intensiv und damit extrem. 

77
00:04:37,190 --> 00:04:40,510
Intensiv dauert sehr lange und 
wir haben die große 

78
00:04:40,510 --> 00:04:42,670
Herausforderung, diese Daten, 
die verändern sich ja, die 

79
00:04:42,670 --> 00:04:45,430
werden ja immer mehr, da werden 
vielleicht zusätzliche Daten 

80
00:04:45,430 --> 00:04:48,550
hinzugefügt und so ein Training 
kann ich vielleicht einmal 

81
00:04:48,550 --> 00:04:51,150
machen, oder ich kann das alle 
paar Monate machen, aber ich 

82
00:04:51,150 --> 00:04:55,030
kann jetzt nicht irgendwie jede 
Woche meine kompletten Daten in 

83
00:04:55,030 --> 00:04:57,630
so ein Training reingeben und 
dann so ein Basismodell 

84
00:04:57,630 --> 00:05:00,350
ergänzen. 
Von der Idee, vielleicht ein 

85
00:05:00,350 --> 00:05:02,590
eigenes Basismodell zu bauen, 
können wir, glaube ich, direkt 

86
00:05:02,590 --> 00:05:06,030
weggehen, weil niemand von uns 
hat so viele Daten oder die 

87
00:05:06,030 --> 00:05:08,470
wenigsten von uns, vielleicht 
ganz große Unternehmen, aber die

88
00:05:08,470 --> 00:05:12,270
wenigsten von uns haben so viele
Daten zur Verfügung, um mit 

89
00:05:12,270 --> 00:05:15,630
überschaubarem Aufwand eigenes 
Basismodell zu trainieren und 

90
00:05:15,630 --> 00:05:17,390
dementsprechend sind wir jetzt 
an dem Punkt, wir haben ein 

91
00:05:17,390 --> 00:05:19,670
Basismodell, wir haben unsere 
Daten und wie kriegen wir jetzt 

92
00:05:19,670 --> 00:05:24,030
diese beiden Dinge zusammen, 
ohne uns hier in massive Kosten 

93
00:05:24,030 --> 00:05:27,670
oder Zeitprobleme zu bringen? 
Genau um diese Kosten mal zu 

94
00:05:27,670 --> 00:05:31,030
benennen, also um so ein eigenes
Modell in so einer Größe von 

95
00:05:31,030 --> 00:05:33,430
einem GPT 35. 
Vielleicht reicht das ja oder 

96
00:05:33,430 --> 00:05:35,590
einem GPT 4 oder sowas zu 
entwickeln. 

97
00:05:35,710 --> 00:05:37,910
Also man nimmt, man nimmt dieses
Modell. 

98
00:05:38,680 --> 00:05:40,960
Reichert das mit eigenen Daten 
an und trainiert es dann noch 

99
00:05:40,960 --> 00:05:43,830
mal neu. 
Wir reden davon. 

100
00:05:43,830 --> 00:05:49,110
Mindestens vierstelligen Summen,
meistens eher 5, also mittleren 

101
00:05:49,110 --> 00:05:53,630
fünfstelligen Summen und Wochen,
also mindestens Tage, aber bei 

102
00:05:53,630 --> 00:05:57,510
großmodellen Wochen, um diese 
Modelle zu trainieren, also 

103
00:05:57,670 --> 00:06:01,350
wahnsinnig kostenintensiv, 
dauert wahnsinnig lange und 

104
00:06:01,350 --> 00:06:03,750
dann, wie malte gesagt hat, 
sobald sich die Dateien oder die

105
00:06:03,750 --> 00:06:07,270
Informationen ändern, ist das 
Ding ja sofort auch nicht mehr 

106
00:06:07,270 --> 00:06:12,390
aktuell und out dated und das 
ist eine zweite Herausforderung,

107
00:06:12,390 --> 00:06:15,910
die ich da natürlich habe, weil 
also häufig so, ich fange mal 

108
00:06:15,910 --> 00:06:19,030
kurz, ich gehe mal 2 Stunden 
zurück, häufig heißt das. 

109
00:06:19,150 --> 00:06:22,790
Sich auf interner, also auf 
internen Daten vielleicht noch 

110
00:06:22,790 --> 00:06:24,190
trainieren möchte. 
Ich hab irgendwo was auf einem 

111
00:06:24,190 --> 00:06:29,430
sharepoint abgelegt oder ich hab
lokale Sales Daten und möchte 

112
00:06:29,430 --> 00:06:32,070
jetzt natürlich auch irgendwie, 
dass mein, dass meine AI da 

113
00:06:32,590 --> 00:06:35,070
Informationen zu. 
Berücksichtigt, wenn ich da 

114
00:06:35,070 --> 00:06:37,670
Fragen stelle. 
Wenn ich jetzt aber diese ganzen

115
00:06:37,670 --> 00:06:40,270
Informationen direkt mit rein 
trainiere in das Modell, hab ich

116
00:06:40,270 --> 00:06:42,710
ja auch die Herausforderung, 
dass ja gar nicht jeder 

117
00:06:42,710 --> 00:06:44,910
unbedingt Zugriff auf all diese 
Daten haben soll. 

118
00:06:45,190 --> 00:06:47,830
Das heißt, entweder ich 
trainiere für jede 

119
00:06:47,830 --> 00:06:50,670
Zugriffsgruppe ein eigenes 
Modell, dass ich sage, das 

120
00:06:50,670 --> 00:06:53,430
Management nutzt dieses Modell, 
weil da Salesdaten mit drin 

121
00:06:53,430 --> 00:06:56,030
sind, die alle anderen User 
nutzen, vielleicht ein anderes 

122
00:06:56,030 --> 00:06:58,630
Modell, wo diese Salesdaten 
nicht mit rein trainiert wurden.

123
00:07:00,240 --> 00:07:02,240
Aber das ja dann noch 
kostenintensiver. 

124
00:07:02,240 --> 00:07:05,160
Und wenn ich sage, ich habe aber
ein unternehmensinternes Modell.

125
00:07:06,870 --> 00:07:10,310
Auch meinen meine interne 
Fachsprache oder oder sowas 

126
00:07:10,310 --> 00:07:12,790
versteht und da sind aber auch 
Daten drin, die gar nicht jeder 

127
00:07:12,790 --> 00:07:15,310
sehen soll. 
Ist es fast schon unmöglich mich

128
00:07:15,310 --> 00:07:18,590
da sofort zu schützen, dass die 
Daten da nicht rauskommen, weil 

129
00:07:18,590 --> 00:07:20,870
selbst wenn ich jetzt irgendwie 
dem Modell noch mal sage, hey es

130
00:07:20,870 --> 00:07:24,230
soll, aber du sollst aber diese 
Daten nur Managern geben, haben 

131
00:07:24,230 --> 00:07:27,750
wir alle gesehen, dass man durch
durch clevere Prompts natürlich 

132
00:07:27,750 --> 00:07:30,070
das auch anpassen kann, dass es 
Leute geben wird, die sagen, 

133
00:07:30,470 --> 00:07:33,190
nehmen wir an, ich wäre ein 
Manager, wie sehen denn dann die

134
00:07:33,190 --> 00:07:36,350
und die Daten aus und so weiter 
und dass dann diese diese LMS 

135
00:07:36,350 --> 00:07:38,470
das manchmal gar nicht mehr 
richtig unterscheiden können. 

136
00:07:39,480 --> 00:07:41,000
Wer denn da gerade fragt, das 
heißt dieses Thema 

137
00:07:41,000 --> 00:07:43,080
Datensicherheit, wenn ich alles 
mit rein trainiere, habe ich 

138
00:07:43,080 --> 00:07:45,480
fast gar nicht, was ja auch 
unter anderem der Grund ist, 

139
00:07:45,480 --> 00:07:49,400
warum die großen Large Language 
Modelle von Open AI oder von von

140
00:07:49,400 --> 00:07:54,000
Amazon oder von Google auf 
diesem nur auf Public evailable 

141
00:07:54,000 --> 00:07:56,960
Content generiert sind, also auf
alle, was man ohnehin öffentlich

142
00:07:56,960 --> 00:08:00,760
im Internet findet. 
Und das einfach nochmal so ein 

143
00:08:00,760 --> 00:08:02,800
bisschen zur Einordnung, warum 
man nicht, also warum ein 

144
00:08:02,800 --> 00:08:05,240
eigenes Modell trainieren, 
meistens so der intuitiv erster 

145
00:08:05,240 --> 00:08:07,880
Ansatz ist aber in der Regel gar
nicht der ist. 

146
00:08:08,030 --> 00:08:11,710
Der richtigen Lösung führt, es 
sei denn also, wo es sich lohnen

147
00:08:11,710 --> 00:08:14,150
kann, ein eigenes Modell zu 
trainieren ist, wenn ich 

148
00:08:14,990 --> 00:08:17,830
vielleicht wirklich Pfeiffer 
fachspezifische Modelle brauche,

149
00:08:17,830 --> 00:08:20,630
die eine gewisse Fachsprache 
verstehen, die Terminal 

150
00:08:20,630 --> 00:08:24,150
verstehen, dich intern verwende.
Dann kann es sich lohnen, dafür 

151
00:08:24,150 --> 00:08:25,310
ein eigenes Modell zu 
trainieren. 

152
00:08:25,630 --> 00:08:28,910
Meine internen Daten oder vor 
allem Daten, die sich häufig 

153
00:08:28,910 --> 00:08:30,910
verändern, würde ich dann aber 
trotzdem nicht in den 

154
00:08:30,910 --> 00:08:34,789
Trainingssatz mit Reingeben. 
Mhm und vielleicht auch für 

155
00:08:34,789 --> 00:08:37,590
diejenigen, für die das immer 
noch so n bisschen abstrakt ist,

156
00:08:37,590 --> 00:08:40,590
weil sie selber vielleicht noch 
gar nicht in der Situation 

157
00:08:40,590 --> 00:08:43,510
waren, dass sie sich beruflich 
Gedanken dazu machen mussten, 

158
00:08:44,030 --> 00:08:46,830
glaub ich, kennen wir alle das 
so aus dem privaten Umfeld. 

159
00:08:46,830 --> 00:08:49,990
Ich glaub alle haben mal mit 
Chat GPT gespielt und sind dann 

160
00:08:49,990 --> 00:08:52,310
irgendwann an der Stelle 
gestolpert, als sie gemerkt 

161
00:08:52,310 --> 00:08:55,830
haben, dass JGBT irgendwie nur 
einen Wissensstand über die Welt

162
00:08:55,830 --> 00:09:00,550
bis Ende 2021 hat und genau 
dieses Problem haben wir 

163
00:09:00,550 --> 00:09:04,710
natürlich beim Einsatz von 
solchen Basismodellen in unseren

164
00:09:04,710 --> 00:09:07,950
eigenen Applikationen auch, das 
heißt, da ist nur ein begrenzter

165
00:09:07,950 --> 00:09:11,230
Wissensschatz verfügbar und der 
ist jetzt in dem Fall vielleicht

166
00:09:11,230 --> 00:09:14,790
nicht nur zeitlich begrenzt, 
sondern einfach nur durch. 

167
00:09:14,990 --> 00:09:18,550
Den Zugriff auf bestimmte 
interne Informationen begrenzt 

168
00:09:18,550 --> 00:09:21,630
worden, was natürlich auch gut 
ist, weil diese großen Modelle, 

169
00:09:21,630 --> 00:09:23,550
die allen irgendwie zur 
Verfügung stellen, genauso wie 

170
00:09:23,550 --> 00:09:27,550
du gerade gesagt hattest, sollen
natürlich gar kein Wissen über 

171
00:09:27,790 --> 00:09:32,150
Interna haben, außer natürlich. 
Es werden Informationen bewusst 

172
00:09:32,150 --> 00:09:35,030
nach draußen gegeben, es gibt ja
Informationen, die befinden sich

173
00:09:35,310 --> 00:09:38,950
rein faktisch aufgrund von 
Gesetzen oder? 

174
00:09:40,670 --> 00:09:43,270
Bestimmte Organisationen oder 
Regierungen, das wollen in 

175
00:09:43,270 --> 00:09:46,030
Public Domain, sind aber nicht 
öffentlich crawlbar. 

176
00:09:46,030 --> 00:09:48,910
Natürlich könnte jetzt ne 
Regierung hingehen und ner Firma

177
00:09:48,910 --> 00:09:52,710
wie Google oder Open AI auch 
Zugriff auf bestimmte Daten 

178
00:09:52,710 --> 00:09:55,110
geben, die eigentlich öffentlich
sind, aber die vielleicht gar 

179
00:09:55,110 --> 00:09:57,830
nicht so crawlbar waren zum 
Zeitpunkt des Trainings könnte 

180
00:09:57,830 --> 00:10:00,990
man diese Informationen dann 
quasi spenden und dann würden 

181
00:10:00,990 --> 00:10:02,830
sie Teil des Basismodells 
werden. 

182
00:10:03,430 --> 00:10:06,350
Ich denke jetzt mal vielleicht 
an irgendwelche historischen 

183
00:10:06,350 --> 00:10:09,070
Gesetzestexte, die vielleicht 
nicht digital vorliegen, die 

184
00:10:09,070 --> 00:10:12,400
vielleicht aber von irgendwie. 
Einem Archiv vielleicht 

185
00:10:12,400 --> 00:10:14,720
digitalisiert, wurden die aber 
vielleicht relevant sind, um 

186
00:10:14,720 --> 00:10:16,520
vielleicht ein bestimmtes 
Rechtsverständnis, sondern 

187
00:10:16,520 --> 00:10:19,160
rechtssprache, wie du es gerade 
gesagt hattest, zu erlernen. 

188
00:10:19,160 --> 00:10:22,360
Solche Daten kann man dann 
natürlich spenden, aber in 

189
00:10:22,360 --> 00:10:25,280
unseren eigenen Applikationen 
wollen wir auf Daten 

190
00:10:25,280 --> 00:10:28,920
zurückgreifen, die nur 
bestimmten Usern zu einem 

191
00:10:28,920 --> 00:10:32,600
bestimmten Zeitpunkt zur 
Verfügung stehen sollen und die 

192
00:10:32,760 --> 00:10:36,160
wirklich auch aktuell sind und 
da kommen wir jetzt an den 

193
00:10:36,160 --> 00:10:38,520
Punkt, dass wir dort 
Technologien einsetzen müssen, 

194
00:10:38,520 --> 00:10:42,680
Techniken einsetzen müssen, wie 
das besagte Retrieval Augmented 

195
00:10:42,680 --> 00:10:44,910
Generation. 
Und da wollen wir uns ein 

196
00:10:44,910 --> 00:10:48,270
bisschen mit beschäftigen, was 
das letzten Endes in der Praxis 

197
00:10:48,270 --> 00:10:50,470
bedeutet. 
Was sich hinter diesem Begriff 

198
00:10:50,470 --> 00:10:52,550
verbirgt. 
Genau. 

199
00:10:52,550 --> 00:10:54,350
Und du hast eigentlich gerade 
schon, wie ich finde ein sehr, 

200
00:10:54,350 --> 00:10:57,390
sehr gutes Beispiel genannt, 
nämlich es kann ja durchaus 

201
00:10:57,390 --> 00:10:59,950
sinnvoll sein, dass ich ein 
eigenes Modell trainiere, man 

202
00:10:59,950 --> 00:11:02,230
nennt das dann übrigens 
finetuning, wenn man ein 

203
00:11:02,230 --> 00:11:05,110
normales Modell nimmt und dann 
nochmal eigene, also ein großes,

204
00:11:05,110 --> 00:11:08,110
bereits bestehendes Modell nimmt
und dann nochmal die eigenen 

205
00:11:08,110 --> 00:11:10,590
Daten anreichern, um das ein 
bisschen zu tunen. 

206
00:11:10,990 --> 00:11:13,590
Wenn ich jetzt sage, ich baue 
einen Large Level Model, du hast

207
00:11:13,590 --> 00:11:16,590
gerade Jura als als Bereich 
gegeben, vielleicht mache ich 

208
00:11:16,590 --> 00:11:21,360
ein Feintuning mit. 
Bestehenden und auch vergangenen

209
00:11:21,360 --> 00:11:24,800
Gesetzestexten um ein eigenes 
Modell zu bauen, was ein 

210
00:11:24,800 --> 00:11:27,760
besseres Verständnis von 
juristischen. 

211
00:11:29,480 --> 00:11:31,960
Regeln und Rechtsverständnis hat
und so weiter. 

212
00:11:33,750 --> 00:11:36,910
Was ich natürlich aber nicht als
und wenn ne, das verwende ich ja

213
00:11:36,910 --> 00:11:39,310
jetzt irgendwie in einer, in 
einer, in einer Anwaltskanzlei, 

214
00:11:39,310 --> 00:11:41,110
weil sich da natürlich nicht mit
rein trainiere, sind die 

215
00:11:41,110 --> 00:11:44,790
konkreten aktuellen Fälle und 
und die Namen und und 

216
00:11:44,790 --> 00:11:47,310
Gegebenheiten meiner Mondanten, 
an denen ich gar nicht, in den 

217
00:11:47,310 --> 00:11:49,670
ich gerade arbeite. 
Bei mir, na ja, jetzt aber 

218
00:11:49,670 --> 00:11:52,470
helfen soll, bestimmte 
Rechtsfragen zu beantworten, 

219
00:11:52,470 --> 00:11:55,190
muss das natürlich im Kontext 
dieser Mandanten und dieser 

220
00:11:55,190 --> 00:11:57,870
Rechtsfälle passieren, und das 
ist die Information, die ich 

221
00:11:57,870 --> 00:11:59,110
jetzt dynamisch da reingeben 
muss. 

222
00:11:59,110 --> 00:12:01,790
Aber wenn jetzt morgen in einem 
Verfahren ne neue Information 

223
00:12:01,790 --> 00:12:04,390
auftaucht, dann muss ich eben 
dynamisch reingehen und kann ja 

224
00:12:04,390 --> 00:12:05,670
nicht noch mal neu 
reintrainieren. 

225
00:12:07,110 --> 00:12:09,670
Und noch eine Sache, bevor wir 
dann wirklich in das Rack 

226
00:12:09,670 --> 00:12:13,150
Pattern einsteigen ist, was ich 
immer ganz anschaulich dazu 

227
00:12:13,150 --> 00:12:17,110
finde, ist einfach sich Sachen 
anzuschauen wie Chat, GPT und zu

228
00:12:17,110 --> 00:12:20,830
schauen, OK wie wie funktioniert
denn eigentlich Chat GPT denn 

229
00:12:20,830 --> 00:12:23,830
was was man sich bewusst machen 
muss ist das Chat GPT kein 

230
00:12:23,830 --> 00:12:26,790
Modell ist sondern Chat. 
GPT ist einfach auch nur eine AI

231
00:12:26,790 --> 00:12:31,390
Anwendung die unten drunter das 
Modell nämlich GPT 4 oder GP 35.

232
00:12:33,080 --> 00:12:36,880
Verwendet und Jet GPT ist ja 
einfach so ein chatbasierter 

233
00:12:36,880 --> 00:12:38,840
Ablauf. 
Das heißt wenn ich wenn ich 

234
00:12:38,840 --> 00:12:44,800
jetzt GPT reintippe Hallo, mein 
Name ist Robin Manuel, dann 

235
00:12:44,800 --> 00:12:48,160
schickt Chat GPT das an dieses 
Open AI Model wenn ich jetzt 

236
00:12:48,160 --> 00:12:52,040
kein Premium habe dann open AI 
35 und dann haben wir dieses 

237
00:12:52,040 --> 00:12:54,640
Modell antworten mit zum 
Beispiel Hallo Robin Manuel, wie

238
00:12:54,640 --> 00:12:58,480
kann ich dir helfen? 
Jetzt muss man aber wissen, dass

239
00:12:58,480 --> 00:13:03,590
diese Modelle an sich. 
Doof sind die haben keinen, also

240
00:13:03,590 --> 00:13:06,350
die Leben nur auf der Basis 
ihrer trainierten Daten, die 

241
00:13:06,350 --> 00:13:09,790
haben keinen keinen Zugriff auf 
die Welt da draußen, die haben, 

242
00:13:09,790 --> 00:13:12,910
die können nicht von sich aus 
irgendwelche APIS aufrufen, 

243
00:13:13,110 --> 00:13:16,190
irgendwelche datenbankabfragen 
stellen, die können sich auch 

244
00:13:16,190 --> 00:13:18,790
nicht an irgendwas erinnern. 
Also wenn ich jetzt einfach nur 

245
00:13:18,790 --> 00:13:23,550
das gleiche Modell ohne die 
Anwendung Chat GPT davor wieder 

246
00:13:23,550 --> 00:13:26,710
fragen würde, hey, wie ist denn 
mein Name dann würde das reine 

247
00:13:26,710 --> 00:13:30,270
Modell mir antworten weiß ich 
nicht, obwohl ich ja eben gesagt

248
00:13:30,270 --> 00:13:32,630
habe mein Name ist Robin Manuel,
aber für das Modell. 

249
00:13:33,920 --> 00:13:36,560
Ist jeder jeder neue Request 
wirklich eine komplett neue 

250
00:13:36,560 --> 00:13:38,280
Session? 
Das hat sich nichts über den 

251
00:13:38,280 --> 00:13:41,920
vorherigen Chatverlauf 
abgespeichert, das heißt wie 

252
00:13:41,920 --> 00:13:46,160
jetzt Chat GPT funktioniert ist,
dass sie gar nicht direkt an das

253
00:13:46,160 --> 00:13:50,320
Modell hi, mein Name ist Robin 
Manuel schicken, das tippe ich 

254
00:13:50,320 --> 00:13:53,080
nur in diese Textbox von der 
Chattenbit die Anwendung ein, 

255
00:13:53,360 --> 00:13:57,320
was die aber in Wirklichkeit 
hinten an das Modell schicken, 

256
00:13:57,840 --> 00:14:00,240
also der eigentliche, man nennt 
das System prompt. 

257
00:14:00,950 --> 00:14:03,150
Der sieht dann so aus, die sagen
dann, Hey, du bist n 

258
00:14:03,150 --> 00:14:04,910
hilfreicher, hilfreicher 
Chatbot. 

259
00:14:05,110 --> 00:14:07,310
Der User hat gerade eine Frage 
gestellt, nämlich Hallo, mein 

260
00:14:07,310 --> 00:14:09,750
Name ist Robin Manuel, was wäre 
deine Antwort? 

261
00:14:10,350 --> 00:14:11,750
Daraufhin antwortet das Ding 
damit. 

262
00:14:11,750 --> 00:14:13,990
Hallo Robin, Manuel, wie kann 
ich dir helfen und schick das 

263
00:14:13,990 --> 00:14:16,990
zurück und wenn ich jetzt im 
nächsten Schritt wieder Frage. 

264
00:14:18,470 --> 00:14:22,710
Wie war noch mal mein Name? 
Dann wird in Wirklichkeit an das

265
00:14:22,710 --> 00:14:24,470
Modell geschickt. 
Hey, du bist n hilfreicher 

266
00:14:24,470 --> 00:14:26,510
Chatbot. 
Du hattest bisher folgende 

267
00:14:26,510 --> 00:14:30,030
Konversation mit dem User, der 
hat gesagt Hallo, mein Name ist 

268
00:14:30,030 --> 00:14:32,750
Robin Manuel, Du hast 
geantwortet Hallo Robin Manuel, 

269
00:14:32,750 --> 00:14:35,230
wie kann ich dir helfen jetzt 
stellt der User eine weitere 

270
00:14:35,230 --> 00:14:36,830
Frage wie heiße ich denn 
nochmal? 

271
00:14:36,830 --> 00:14:40,190
Was wäre deine Antwort und dann 
kann das Modell natürlich 

272
00:14:40,190 --> 00:14:44,350
antworten dein Name ist Robin 
Manuel und das kann es nur weil 

273
00:14:44,350 --> 00:14:47,870
es über den prompt die Info mit 
reinbekommen hat die es braucht.

274
00:14:48,950 --> 00:14:51,350
Er den Zwischendeck der gesamten
öffentlich Zugänge gänglichen 

275
00:14:51,350 --> 00:14:52,630
Internetwelt da irgendwie mit 
drin. 

276
00:14:52,630 --> 00:14:54,950
Da steht natürlich nicht drin, 
wie mein Name ist und es weiß 

277
00:14:54,950 --> 00:14:57,870
auch gar nicht wer ich bin, aber
dadurch, dass es jetzt zur 

278
00:14:57,870 --> 00:15:01,430
Beantwortung der Frage alles was
ins Modell reintrainiert wurde. 

279
00:15:02,110 --> 00:15:04,790
Plus die Information, die aus 
dem Promptom zur Verfügung hat, 

280
00:15:05,110 --> 00:15:07,910
kann es die Frage beantworten, 
weil es heißt, Ah OK, im prompt 

281
00:15:07,910 --> 00:15:12,270
seh ich die bestehende Historie 
unseres Chats und deswegen 

282
00:15:12,270 --> 00:15:15,750
funktioniert die Anwendung Chat 
GPT so gut und deswegen kann ich

283
00:15:15,750 --> 00:15:18,000
auch einfach iterieren auf 
Antworten. 

284
00:15:18,150 --> 00:15:20,030
Da war der immer drin. 
Du hast diese Antwort gegeben, 

285
00:15:20,110 --> 00:15:22,070
der User hat gesagt, bitte 
schreib mir das kürzer in 2 

286
00:15:22,070 --> 00:15:25,790
Sätzen und dann machst du jetzt 
bitte folgende Antwort draus und

287
00:15:25,790 --> 00:15:29,270
auch nur deswegen funktioniert 
sowas wie Chat GPT, weil der 

288
00:15:29,270 --> 00:15:31,510
bestehende Verlauf halt und die 
Information die es zur 

289
00:15:31,510 --> 00:15:33,790
Beantwortung der Frage braucht, 
nicht nur im Modell sind, 

290
00:15:33,790 --> 00:15:36,630
sondern auch im prompt. 
Und genauso kann ich jetzt 

291
00:15:36,630 --> 00:15:40,430
hingehen und eigene Daten in 
diesen prompt mit Reingeben. 

292
00:15:40,430 --> 00:15:43,670
An deinem Beispiel könnte das 
zum Beispiel deine Login 

293
00:15:43,670 --> 00:15:46,350
Informationen sein, du hast dich
vielleicht bei Chat GPT mit 

294
00:15:46,350 --> 00:15:50,230
einem Account angemeldet und 
dann könnte in den prompt auch 

295
00:15:50,670 --> 00:15:53,070
rein. 
Werden Hey gerade angemeldet, 

296
00:15:53,070 --> 00:15:57,110
ist Robin Manuel und schon kann 
das Ai Modell deine Frage nach 

297
00:15:57,110 --> 00:16:00,550
wie ist mein Name beantworten, 
weil natürlich durch den prompt 

298
00:16:00,550 --> 00:16:04,350
diese Login Informationen mit 
Reingegeben werden und dieses 

299
00:16:04,350 --> 00:16:06,470
Beispiel Chat GPT finde ich 
eigentlich ganz gut. 

300
00:16:06,470 --> 00:16:09,670
Ich hatte vorhin auch schon so 
diesen Bing Chat erwähnt, 

301
00:16:09,910 --> 00:16:13,470
andersrum funktioniert das im 
Chat GBT wenn ich auf aktuelle 

302
00:16:13,470 --> 00:16:16,910
Informationen zugreifen möchte 
genauso, das heißt ich kann Chat

303
00:16:16,910 --> 00:16:20,870
GPT fragen Hey fasse mir 
folgenden Blogspots zusammen und

304
00:16:20,870 --> 00:16:24,670
dann gebe ich Chat GPT den Link 
und zumindest wenn ich Chat GPT 

305
00:16:24,670 --> 00:16:29,600
in der bezahlten Variante habe. 
Kann dann Chat GPT über eine API

306
00:16:29,640 --> 00:16:33,440
zum Beispiel eine Bing Suche 
durchführen, dann sich diese 

307
00:16:33,440 --> 00:16:37,560
Domain aufrufen und den Text der
von dieser Website kommt 

308
00:16:37,600 --> 00:16:40,120
entsprechend in den prompt mit 
Reingeben und mit einer 

309
00:16:40,120 --> 00:16:44,280
Zusammenfassung erstellen und 
genauso kann ich dann natürlich 

310
00:16:44,280 --> 00:16:46,560
auch Lookups in andere 
Datenquellen machen. 

311
00:16:46,560 --> 00:16:49,760
Im Fall von Chat GPS ist das 
jetzt in dem Fall nur eine 

312
00:16:49,760 --> 00:16:52,840
Internetsuche und andere 
Kontextinformationen, die in 

313
00:16:52,840 --> 00:16:55,600
diesem prompt reingegeben 
werden, aber hier kann ich mir 

314
00:16:55,600 --> 00:16:59,480
dann auch mit eigenen Gpts und 
Extensions. 

315
00:16:59,630 --> 00:17:03,430
Natürlich Zugriff auf andere 
Informationen ermöglichen und 

316
00:17:03,430 --> 00:17:06,910
genau das gleiche muss ich 
natürlich tun, wenn ich jetzt in

317
00:17:06,910 --> 00:17:11,589
meine eigene Applikation ein 
solches AI Modell einbinde und 

318
00:17:11,589 --> 00:17:14,880
hier auf solche von anderen 
bereits für mich oder? 

319
00:17:15,270 --> 00:17:19,869
Für alle als kommerzielles 
Modell trainierte Basismodelle 

320
00:17:19,869 --> 00:17:22,589
Zurückgreife, da muss ich 
hingehen und dieses Basismodell 

321
00:17:22,589 --> 00:17:24,790
anbinden und dann immer die 
entsprechenden 

322
00:17:24,790 --> 00:17:28,950
Kontextinformationen, die 
relevant sind, hineinfüttern und

323
00:17:29,230 --> 00:17:33,470
da entsprechend über solche 
Techniken wie Rec das Ganze 

324
00:17:33,470 --> 00:17:35,070
implementieren. 
Und da schauen wir jetzt mal im 

325
00:17:35,070 --> 00:17:37,750
Detail rein. 
Genau, denn was ja wichtig ist, 

326
00:17:37,750 --> 00:17:40,310
dass man bei dem Beispiel, was 
du gerade gesagt hast, malte, 

327
00:17:40,310 --> 00:17:44,190
auch hier macht das Large 
Language Modell nicht den nicht 

328
00:17:44,190 --> 00:17:47,070
die websuche oder ruft nicht 
diesen Link auf von dem Blog 

329
00:17:47,070 --> 00:17:49,630
Post, den wir zusammenfassen 
lassen möchtest, sondern die 

330
00:17:49,630 --> 00:17:52,630
Anwendung Chetgypty der 
Developer oder das Developer 

331
00:17:52,630 --> 00:17:55,550
Team was Chat GPT gebaut hat, 
das sagt Okay wenn ein Link 

332
00:17:55,550 --> 00:17:58,070
reinkommt, dann rufe ich den 
Link rauf und füttere das in dem

333
00:17:58,070 --> 00:18:00,750
prompt rein, denn diesen System 
prompt, also der prompt ja 

334
00:18:00,750 --> 00:18:02,710
eigentlich gegen das Modell 
geht, den Bauen ja wir 

335
00:18:02,710 --> 00:18:05,190
developer, das ist ja unsere 
Aufgabe, deswegen ist Rack auch 

336
00:18:05,190 --> 00:18:09,590
für uns dieses Spannende. 
Wenn man sowas bauen will, dann 

337
00:18:09,710 --> 00:18:12,510
sind so Frameworks wie Semantic 
Kernel, Kernel und lankain. 

338
00:18:12,510 --> 00:18:13,910
Hatten wir schon n paar mal 
erwähnt. 

339
00:18:13,910 --> 00:18:16,870
Im Podcast natürlich n Thema, 
aber jetzt schauen wir uns genau

340
00:18:16,870 --> 00:18:19,790
an wie woher weiß ich denn 
welche Daten gebe ich denn in 

341
00:18:19,790 --> 00:18:22,430
diesen prompt mit rein. 
Also wenn jetzt der malte fragt.

342
00:18:22,710 --> 00:18:27,470
Was war denn die spannendste 
Podcast Folge in diesem Jahr? 

343
00:18:28,070 --> 00:18:32,270
Und woher weiß ich denn? 
Geb ich dem jetzt einfach alle 

344
00:18:32,270 --> 00:18:35,030
Podcast folgen, die ich 
irgendwie meiner Datenbank 

345
00:18:35,030 --> 00:18:37,750
gespeichert habe, mit mit in das
mit den prompt rein? 

346
00:18:38,110 --> 00:18:41,310
Das kann problematisch sein, 
weil diese Prompts haben haben 

347
00:18:41,310 --> 00:18:43,590
natürliche Limitierungen, ich 
kann da also nur so und so viel 

348
00:18:43,590 --> 00:18:46,110
Zeichen mit Reingeben und 
vielleicht ist es ja auch gar 

349
00:18:46,110 --> 00:18:48,110
nicht sinnvoll, da alle mit 
Reinzugeben und vielleicht darf 

350
00:18:48,110 --> 00:18:50,110
der malte auch gar nicht auf 
alle zugreifen, sondern nur auf 

351
00:18:50,110 --> 00:18:53,590
die letzten 10. 
Und dieses Problems nimmt sich 

352
00:18:53,670 --> 00:18:58,100
RAG an. 
Reg steht für Retrieval 

353
00:18:58,100 --> 00:19:01,540
Augmented Generation und 
funktioniert eigentlich wie 

354
00:19:01,540 --> 00:19:05,390
folgt. 
Und zwar muss ich jetzt ja, wenn

355
00:19:05,390 --> 00:19:07,590
eine Anfrage reinkommt, wie zum 
Beispiel, was war die 

356
00:19:07,590 --> 00:19:10,350
spannendste Podcast Folge in 
überhaupt. 

357
00:19:12,190 --> 00:19:15,470
Muss ich jetzt, muss ich jetzt 
entscheiden, welche meiner 

358
00:19:15,470 --> 00:19:19,030
Dokumente oder welche meine 
Datenbank Einträge interessant 

359
00:19:19,030 --> 00:19:21,470
sind, um diese Frage zu 
beantworten. 

360
00:19:22,270 --> 00:19:25,110
Und wie kann ich das machen? 
Das kann ich machen, indem ich 

361
00:19:25,110 --> 00:19:29,950
zuvor alle podcastfolgen oder 
alle meine internen Dokumente 

362
00:19:29,950 --> 00:19:33,270
oder alle datenbankeinträge, die
vielleicht relevant sind, dass 

363
00:19:33,270 --> 00:19:36,190
ich die vorher schon mal einer 
AI gezeigt habe. 

364
00:19:36,670 --> 00:19:39,830
Und dass diese AI dann daraus 
ein so genanntes Embedding 

365
00:19:39,870 --> 00:19:42,910
erstellt hat, diese Ai s, das 
nennt es sind meistens dann 

366
00:19:42,910 --> 00:19:45,670
kleinere Modelle, zum Beispiel 
von Open AI. 

367
00:19:45,670 --> 00:19:47,830
Gibt es das Ada Modell, das 
macht das, das ist ein deutlich 

368
00:19:47,830 --> 00:19:51,390
kleineres Modell und die heißen 
embeddings Modelle. 

369
00:19:51,870 --> 00:19:55,910
Und diese embannings Modelle 
erstellen mir einen, na man 

370
00:19:55,910 --> 00:19:59,070
nennt das Vector, also 
eigentlich nur ein langes Array 

371
00:19:59,070 --> 00:20:04,190
aus positiven und negativen. 
Zahlen, was die Informationen, 

372
00:20:04,190 --> 00:20:07,870
die das AI Modell gesehen hat, 
in ganz, ganz, ganz ganz, ganz 

373
00:20:07,870 --> 00:20:11,150
viele verschiedene Kategorien 
Ranked und einordnet. 

374
00:20:11,150 --> 00:20:14,310
Das heißt, ich zeige diesem 
embedance Modell jede einzelne 

375
00:20:14,310 --> 00:20:16,750
meiner Podcastfolgen, vielleicht
mit Transkript, mit 

376
00:20:16,750 --> 00:20:20,070
Beschreibung, mit Bild und so 
weiter und was ich dann 

377
00:20:20,070 --> 00:20:24,430
rausbekomme aus diesem embedance
Modell ist ein ein langes langes

378
00:20:24,430 --> 00:20:27,670
Array, ein sogenannter Vektor, 
der in ganz ganz vielen 

379
00:20:27,670 --> 00:20:31,110
Kategorien, Kategorien, 
Wertungen vergibt, Punkte 

380
00:20:31,110 --> 00:20:34,910
vergibt, über diese Folge. 
Klassisches Beispiel, wenn ich 

381
00:20:34,910 --> 00:20:37,310
jetzt einfach Äpfel und Birnen 
da reingeben würde. 

382
00:20:38,550 --> 00:20:42,390
Würde in der Kategorie Farbe der
Apfel einen bestimmten Wert 

383
00:20:42,390 --> 00:20:45,950
bekommen, der vielleicht bei der
Kategorie Birne, bei bei der 

384
00:20:45,950 --> 00:20:48,150
Birne in der gleichen Kategorie 
Farbe N ganz anderen Wert 

385
00:20:48,150 --> 00:20:49,790
bekommt, weil sie 
unterschiedliche Farben haben? 

386
00:20:50,550 --> 00:20:52,990
Aber in der Kategorie Obst zum 
Beispiel würden die gleichen, 

387
00:20:52,990 --> 00:20:54,830
würden die beiden wahrscheinlich
einen sehr ähnlichen Wert 

388
00:20:54,830 --> 00:20:56,710
erreichen. 
Und so gibt es nicht nur Farbe 

389
00:20:56,710 --> 00:20:58,550
und Obst, sondern es gibt 
Tausende verschiedene 

390
00:20:58,550 --> 00:21:01,670
Kategorien, in denen für uns gar
nicht so ganz verständlich 

391
00:21:01,750 --> 00:21:03,630
verschiedene Werte einfach 
vergeben werden. 

392
00:21:03,630 --> 00:21:06,270
Das heißt, ich zeige diesem 
embeddings Modell dieser AI 

393
00:21:06,470 --> 00:21:08,590
jetzt einfach alle meine 
Dokumente, alle meine Datenbank 

394
00:21:08,590 --> 00:21:11,590
Einträge und lasse für jedes 
einzelne dieser Dinge einen 

395
00:21:11,590 --> 00:21:14,470
sogenannten Vektor erstellen, 
also dieses lange Array mit den 

396
00:21:14,470 --> 00:21:19,550
ganzen Einordnungen der wie das 
AI die Welt sieht und speichere 

397
00:21:19,550 --> 00:21:22,760
diese Vektoren. 
Dann in einer Vektordatenbank 

398
00:21:22,760 --> 00:21:26,240
das sind extra dafür designte 
und erstellte Datenbanken. 

399
00:21:28,470 --> 00:21:31,870
Und wenn jetzt der User mir ne 
Frage stellt, zum Beispiel, was 

400
00:21:31,870 --> 00:21:33,550
ist denn die spannendste Podcast
Folge? 

401
00:21:34,470 --> 00:21:37,270
Dann mach ich, bevor ich diese 
Frage beantworte und bevor ich 

402
00:21:37,270 --> 00:21:40,590
diese Frage an mein Large 
language Modell schicke, schicke

403
00:21:40,590 --> 00:21:43,550
ich auch diese gleiche Frage. 
Was ist die spannendste Podcast 

404
00:21:43,550 --> 00:21:46,990
Folge an dasselbe embedance 
Modell, was mir auch alle 

405
00:21:46,990 --> 00:21:49,710
anderen Podcastfolgen 
eingeordnet oder Geranked hat, 

406
00:21:49,710 --> 00:21:52,110
das heißt ich zeige demselben 
embassdings Modell Life in dem 

407
00:21:52,110 --> 00:21:55,190
Moment wo die Frage reinkommt, 
die Frage und Sage erstellen wir

408
00:21:55,190 --> 00:21:58,070
auch für diese Frage einen 
Vektor und da bekomme ich auch 

409
00:21:58,070 --> 00:22:01,710
ein ein Array zurück wie das wie
das Modell diese Informationen 

410
00:22:01,710 --> 00:22:03,190
in der großen weiten Welt 
anordnet. 

411
00:22:03,190 --> 00:22:06,670
Der Array der Vector ist genauso
lang, hat also auch die gleichen

412
00:22:06,670 --> 00:22:09,390
Kategorien. 
Nicht und hat dann da 

413
00:22:09,390 --> 00:22:11,070
irgendwelche Werte drin in 
diesem Array? 

414
00:22:11,910 --> 00:22:15,150
Und jetzt kann ich hingehen und 
in meiner Vektordatenbank mit 

415
00:22:15,150 --> 00:22:17,670
diesem Vektor, den ich gerade 
für meine Frage bekommen habe, 

416
00:22:17,910 --> 00:22:21,270
eine sogenannte similarity 
Search, also eine Suche nach 

417
00:22:21,270 --> 00:22:24,990
Ähnlichkeit machen und sagen, 
zeig mir alle Informationen, die

418
00:22:24,990 --> 00:22:29,510
du in der Vektordatenbank hast, 
die einen hinreichend ähnliches 

419
00:22:29,510 --> 00:22:32,390
Array, also einen hinreichenden 
ähnlichen Vektor. 

420
00:22:33,350 --> 00:22:36,910
Haben wie meine Frage und wenn 
meine Frage jetzt in dieser Welt

421
00:22:36,910 --> 00:22:40,630
eingeordnet ist, was ist die 
spannendste Podcast Folge, dann 

422
00:22:40,630 --> 00:22:43,110
werden uns dieser 
Vektordatenbank einige Podcast 

423
00:22:43,110 --> 00:22:45,670
folgen Rauspurzeln, die das 
embedance Model irgendwie in der

424
00:22:45,670 --> 00:22:47,350
Kategorie spannend, 
wahrscheinlich relativ weit 

425
00:22:47,350 --> 00:22:51,080
oben. 
Eingeordnet hat, das heißt, ich 

426
00:22:51,080 --> 00:22:54,680
vergleiche die Frage oder dass 
das Verständnis was das AI 

427
00:22:54,680 --> 00:22:58,560
Modell von meiner Frage hat, 
nämlich den Vektor mit der 

428
00:22:58,560 --> 00:23:01,640
Verständnis, mit dem Verständnis
was das AI Modell von allen 

429
00:23:01,640 --> 00:23:04,960
meinen Informationen hat, 
ebenfalls Vektoren in der 

430
00:23:04,960 --> 00:23:07,600
Vektordatenbank und wenn ich 
jetzt sage, dann nehme ich jetzt

431
00:23:07,600 --> 00:23:13,080
einfach die Top 3 Treffer und 
diese 3 Podcast folgen diese 3 

432
00:23:13,080 --> 00:23:16,000
Treffer die da aus der Datenbank
raus kamen und die die Reihen 

433
00:23:16,000 --> 00:23:19,000
ähnlichsten zu dieser Frage 
sind, das sind dann meine 

434
00:23:19,000 --> 00:23:21,560
Kandidaten die ich in dem prompt
mit Reinfüttert, das heißt der 

435
00:23:21,560 --> 00:23:24,160
prompt den ich dann an das Large
Language Modell stelle ist. 

436
00:23:25,160 --> 00:23:26,160
Hale Liebeslarge language 
Modell. 

437
00:23:27,150 --> 00:23:31,590
Was was war die erfolgreichste 
Podcast Folge by the Way als 

438
00:23:31,590 --> 00:23:34,270
Daten möchtest du vielleicht 
diese 3 Podcast folgen 

439
00:23:34,270 --> 00:23:36,910
Mitberücksichtigen und dann geht
das Modell hin und sucht aus 

440
00:23:36,910 --> 00:23:39,430
seinem ganzen Wissen von der 
ganzen Welt plus diesen 3 

441
00:23:39,430 --> 00:23:42,390
Podcast folgen, denen es durch 
den System prompt jetzt vom 

442
00:23:42,390 --> 00:23:45,110
Developer mit Reingereicht 
bekommen hat und kann dann die 

443
00:23:45,110 --> 00:23:48,070
Frage beantworten. 
Das heißt ich kann dann auch 

444
00:23:48,070 --> 00:23:50,990
einem öffentlich zugänglichen 
Modell von mir aus durch den 

445
00:23:50,990 --> 00:23:55,430
prompt Informationen mit 
Reingeben, den ich gerade erst 

446
00:23:55,510 --> 00:23:58,710
aus meinen Datenbanken 
herausgezogen habe, weil das die

447
00:23:58,710 --> 00:24:01,880
relevanten Ergebnisse. 
Zur Beantwortung meiner Frage 

448
00:24:01,880 --> 00:24:05,800
waren und dieses Pattern, das 
ist RAG, das ist Retrieval 

449
00:24:05,800 --> 00:24:08,640
Augmented Generation. 
Also ich zeige meinem Modell 

450
00:24:08,640 --> 00:24:11,840
vorher meine Daten, lasse die 
Invektoren einordnen, wenn eine 

451
00:24:11,840 --> 00:24:14,000
Frage reinkommt, zeige ich 
demselben Modell, das ist ganz 

452
00:24:14,000 --> 00:24:17,480
wichtig, die Frage lass auch die
Frage in dem Vektor einordnen, 

453
00:24:17,600 --> 00:24:20,880
mach dann diese diese 
ähnlichkeitssuche sage okay was 

454
00:24:20,880 --> 00:24:23,800
sind die Daten, die du hast, die
am ähnlichsten zu dieser Frage 

455
00:24:23,800 --> 00:24:26,120
passen, basierend auf den 
Einordnungen, die du vorher 

456
00:24:26,120 --> 00:24:28,280
gemacht hast und nur diese 
Ergebnisse. 

457
00:24:28,550 --> 00:24:31,550
Die füge ich dann in meinen 
prompt ein, so dass mein System 

458
00:24:31,550 --> 00:24:33,550
prompt, den ich anders als 
Modell dann schicke. 

459
00:24:33,710 --> 00:24:37,150
Meine Frage beinhaltet Plus die 
wahrscheinlich relevanten Daten 

460
00:24:37,150 --> 00:24:42,190
zur Beantwortung der Frage. 
Du hattest vorhin mehrfach das 

461
00:24:42,190 --> 00:24:45,870
Thema Vektoren genannt, das 
heißt, ich erstelle mir solche 

462
00:24:46,150 --> 00:24:50,070
Vektoren aus meinen Einträgen. 
Brauche ich jetzt dafür eine 

463
00:24:50,070 --> 00:24:55,110
spezielle Vektordatenbank oder 
kann ich da mein klassisches 

464
00:24:55,550 --> 00:24:58,350
Datenbankmanagementsystem 
verwenden und dort zusätzliche 

465
00:24:58,350 --> 00:25:01,990
Einträge erstellen, das heißt, 
brauche ich dann zusätzlich noch

466
00:25:01,990 --> 00:25:05,110
neue Technologien, die ich dann 
einführe, oder kann ich dann 

467
00:25:05,110 --> 00:25:08,070
basierend auf meinem bisherigen 
System das Ganze aufbauen? 

468
00:25:08,950 --> 00:25:13,230
Beraterantwort mit Depends in 
der Regel ja. 

469
00:25:14,030 --> 00:25:15,510
Brauche ich eigentlich ne 
Vektordatenbank? 

470
00:25:15,510 --> 00:25:18,190
Klar, am Ende ist der Vektor ein
großes Array von integer zahlen 

471
00:25:18,190 --> 00:25:20,750
kann ich eigentlich speichern wo
ich will, Vektordatenbanken sind

472
00:25:20,750 --> 00:25:23,590
aber spannend, weil sie darauf 
ausgelegt wurden, diese Frage 

473
00:25:23,590 --> 00:25:27,190
nach dieser ähnlichkeitssuche 
Performance zu beantworten. 

474
00:25:28,390 --> 00:25:30,150
Jetzt ist aber deswegen 
Independence, weil es gibt ganz 

475
00:25:30,150 --> 00:25:32,550
viele neue Vektordatenbanken, 
die da irgendwie gerade in der 

476
00:25:32,550 --> 00:25:34,310
Open Source Welt sehr populär 
werden. 

477
00:25:34,310 --> 00:25:38,110
Quadrant ist zum Beispiel da ein
eine Open Source Beispiel, es 

478
00:25:38,110 --> 00:25:40,110
gibt aber auch ganz viele 
Hersteller von bereits 

479
00:25:40,110 --> 00:25:43,910
renommierten Datenbanken, die 
ein eigenes Vektor Plugin zum 

480
00:25:43,910 --> 00:25:47,390
Beispiel anbieten, also zum 
Beispiel kann ich mit PG Vector 

481
00:25:47,390 --> 00:25:51,230
eine postgresql Datenbank dann 
als Vektordatenbank verwenden 

482
00:25:51,590 --> 00:25:54,790
oder es gibt von Mongo DB 
ebenfalls eine Variante wie ich 

483
00:25:54,790 --> 00:25:58,350
meine Mongo DB als 
Vektordatenbank umfunktionieren 

484
00:25:58,350 --> 00:26:00,990
oder um diese Funktionalität 
erweitern kann, das heißt ich 

485
00:26:00,990 --> 00:26:03,910
brauche nicht unbedingt eine 
neue Datenbanktechnologie, wenn 

486
00:26:03,910 --> 00:26:06,230
ich vielleicht schon mit 
Postgress und mongo was wir so 

487
00:26:06,230 --> 00:26:08,310
fast schon mit den beiden 
populärsten. 

488
00:26:09,560 --> 00:26:12,480
Kann ich das Halt verwenden? 
Viele Cloud Provider, wie zum 

489
00:26:12,480 --> 00:26:15,960
Beispiel in der Microsoft Azure 
Welt heißt es mit Azure Azure I 

490
00:26:15,960 --> 00:26:20,440
Search hat fertig quasi eine 
Suchtechnologie, die unten 

491
00:26:20,440 --> 00:26:22,480
drunter auch eine 
Vektordatenbank verwendet, die 

492
00:26:22,480 --> 00:26:24,960
ich dann auch für so ein Rack 
Pattern verwenden würde 

493
00:26:25,640 --> 00:26:27,520
mitgebracht, das heißt da gibt 
es natürlich so fertige 

494
00:26:27,520 --> 00:26:30,080
gemanagte Lösungen, aber auch 
die bestehenden Datenbanken 

495
00:26:30,080 --> 00:26:32,960
haben da Lösungen oder ich nehme
mir eben wirklich eine ganz neue

496
00:26:32,960 --> 00:26:34,880
technische Technologie wie ZB 
Quadrant. 

497
00:26:35,790 --> 00:26:39,430
Mhm bedeutet aber auch, dass 
diese Daten ja durchaus. 

498
00:26:40,390 --> 00:26:42,470
Auch veraltet sein können. 
Das heißt, ich muss ja 

499
00:26:42,470 --> 00:26:46,670
regelmäßig mir diese Vektoren 
neu aufbauen, wenn sich meine 

500
00:26:46,670 --> 00:26:49,110
zugrundeliegenden Daten 
verändern, aber das geht 

501
00:26:49,110 --> 00:26:53,110
natürlich viel schneller, als 
wenn ich so ein Model Feintuning

502
00:26:53,110 --> 00:26:55,950
vornehmen würde, das heißt, ich 
habe da durchaus einmal einen 

503
00:26:55,950 --> 00:26:58,870
Vorbereitungsschritt, um die 
Daten aufzubereiten, damit ich 

504
00:26:58,870 --> 00:27:04,150
sie in meiner Anfrage an das AI 
Modell verwenden kann, aber das 

505
00:27:04,150 --> 00:27:06,830
ist viel schneller, effizienter 
und dementsprechend auch 

506
00:27:06,830 --> 00:27:11,830
günstiger als wenn ich das Ganze
über einen Model Feintuning 

507
00:27:11,830 --> 00:27:14,110
mache was? 
Immer so ein bisschen 

508
00:27:14,510 --> 00:27:18,390
irritierend ist, dass häufig 
bestimmte Themen miteinander 

509
00:27:18,390 --> 00:27:20,350
vermischt werden. 
Zum einen das, was du gerade 

510
00:27:20,350 --> 00:27:24,830
beschrieben hattest, als Rack 
pattern mit solchen Search 

511
00:27:24,830 --> 00:27:30,550
pattern, die halt ne klassische 
Suche machen über Suchsysteme 

512
00:27:30,550 --> 00:27:34,510
kann ne Datenbank sein oder kann
ne Search engine sein, liegt 

513
00:27:34,510 --> 00:27:37,350
halt daran, dass diese Dinge 
halt meistens miteinander 

514
00:27:37,350 --> 00:27:41,350
kombiniert werden oder es kann 
das eine oder das andere oder 

515
00:27:41,350 --> 00:27:45,230
beides gemeinsam verwendet 
werden verwendet werden und der 

516
00:27:45,230 --> 00:27:48,750
Begriff Retrieval Augmented 
könnte ja, wenn man es wörtlich 

517
00:27:48,750 --> 00:27:52,870
interpretiert, auch diese 
suchbasierenden Dinge. 

518
00:27:52,920 --> 00:27:55,840
Bedeuten aber allein in der 
Begrifflichkeit sind diese Dinge

519
00:27:55,840 --> 00:27:57,880
ja voneinander getrennt zu 
betrachten. 

520
00:27:57,880 --> 00:28:01,480
Das heißt, ich hab einmal das 
Reck Pattern, was halt auf 

521
00:28:01,480 --> 00:28:04,880
solchen Vektoren aufsetzt, auf 
solche Vektordatenbanken, die 

522
00:28:04,880 --> 00:28:08,440
ich erstelle und auf der anderen
Seite so ein search base 

523
00:28:08,440 --> 00:28:12,800
pattern, wo ich halt in Echtzeit
eine Suchabfrage mache über. 

524
00:28:13,310 --> 00:28:16,390
Ein Search Tool, was Dokumente 
durchsuchen kann, was Internet 

525
00:28:16,390 --> 00:28:19,710
Informationen durchsuchen kann. 
Was meine interne Datenbank 

526
00:28:19,710 --> 00:28:21,630
durchsuchen kann und dann 
wirklich in Echtzeit diese 

527
00:28:21,630 --> 00:28:25,910
Informationen rausholt und dann 
als Text oder Dokument dann in 

528
00:28:25,990 --> 00:28:27,910
meinen Large Language Model als 
prompt bestanden. 

529
00:28:27,910 --> 00:28:30,990
Bestandteil mit Reingibt, also 
so wie wir es gerade beschrieben

530
00:28:30,990 --> 00:28:35,830
hatten über diese Search 
Extension in Chat GPS, die ja 

531
00:28:35,830 --> 00:28:39,270
kein klassisches Rack pattern 
ist, sondern wirklich so ein 

532
00:28:39,270 --> 00:28:42,110
Semantic Search Pattern, wo da 
eine Internetsuche ausgeführt 

533
00:28:42,110 --> 00:28:44,990
wird und dann werden halt die 
Informationen, die Ergebnisse 

534
00:28:44,990 --> 00:28:48,630
dieser Internetsuche werden dann
Teil des prompt und damit kann 

535
00:28:48,630 --> 00:28:51,910
dann das Dutch Language Model 
auf zusätzliche Informationen 

536
00:28:51,910 --> 00:28:55,270
zurückgreifen und das wird 
natürlich gerade auch in der 

537
00:28:55,270 --> 00:28:56,950
Softwareentwicklung ganz viel 
verwendet. 

538
00:28:56,950 --> 00:28:58,430
Ich meine, wenn man sich so 
etwas wie. 

539
00:28:59,800 --> 00:29:03,600
Source craft Cody anschaut oder 
die neuen Sachen, die jetzt mit 

540
00:29:03,800 --> 00:29:07,440
Copilot Enterprise kommen, wo 
dann ich als Developer eine 

541
00:29:07,440 --> 00:29:10,240
Frage stellen kann in dem Chat 
und dann wird im Hintergrund 

542
00:29:10,240 --> 00:29:13,160
eine Codesuche durchgeführt, da 
werden alle meine. 

543
00:29:13,750 --> 00:29:17,910
Repositories, die ich dort 
freigegeben habe als Grundlage 

544
00:29:17,910 --> 00:29:21,990
einer Suche verwendet und das 
Ergebnis dieser Suche wird dann 

545
00:29:21,990 --> 00:29:26,110
als Teil des Prompts an das AI 
Modell gegeben und damit bekommt

546
00:29:26,110 --> 00:29:28,950
dann halt so ein Chat, der in 
meiner IDE läuft plötzlich. 

547
00:29:30,600 --> 00:29:33,320
Einen Zugriff auf meine gesamte 
Codebasis, die ich im 

548
00:29:33,320 --> 00:29:36,880
Unternehmen habe, ohne dass ich 
ein Model Fine Tuning gemacht 

549
00:29:36,880 --> 00:29:42,120
habe und ohne dass ich zunächst 
eine Art von Training dieser 

550
00:29:42,840 --> 00:29:44,800
dieser Vektoren durchgeführt 
habe. 

551
00:29:44,880 --> 00:29:47,840
Das heißt, diese Dinge kann ich 
getrennt voneinander verwenden 

552
00:29:47,840 --> 00:29:50,600
oder gemeinsam, weil ich glaube,
wenn ich sie gemeinsam verwende,

553
00:29:50,640 --> 00:29:53,480
dann ist natürlich die 
Information. 

554
00:29:55,160 --> 00:29:57,880
Die Anzahl der Informationen, 
die halt mein Modell bekommt am 

555
00:29:57,880 --> 00:30:01,280
größten, aber das ist natürlich 
dann auch die komplexeste Art 

556
00:30:01,280 --> 00:30:04,710
und Weise, das zu tun. 
Genau, und da muss ich natürlich

557
00:30:04,710 --> 00:30:07,590
sehr auf mein Use Case achten, 
weil also die Frage, die auch 

558
00:30:07,590 --> 00:30:10,190
häufig kommt ist, warum lasse 
ich denn meinen LLM nicht 

559
00:30:10,190 --> 00:30:13,070
einfach ne SQL query zum 
Beispiel generieren oder wie du 

560
00:30:13,070 --> 00:30:15,030
halt gesagt hast warum nimmt 
warum lasse ich denn nicht 

561
00:30:15,030 --> 00:30:18,670
traditionell suchen und das ist 
das Augmented in diesem Retreat.

562
00:30:18,790 --> 00:30:22,390
Generation Pattern da sich ja, 
wenn ich jetzt die Frage 

563
00:30:22,510 --> 00:30:25,270
bekomme, was ist denn die 
spannendste Podcast Folge vom to

564
00:30:25,270 --> 00:30:27,150
do cast. 
Wenn ich da jetzt eine 

565
00:30:27,150 --> 00:30:29,990
klassische Textsuche machen 
würde, dann würde ich 

566
00:30:29,990 --> 00:30:33,350
wahrscheinlich ein Ergebnis 
bekommen, wo wir vielleicht mal 

567
00:30:33,350 --> 00:30:34,790
in der Podcast Beschreibung 
geschrieben haben. 

568
00:30:34,790 --> 00:30:37,550
Heute geht es um ein spannendes 
Thema oder wo wir das Wort 

569
00:30:37,550 --> 00:30:39,830
spannend am häufigsten im 
Transkript gesagt haben, aber 

570
00:30:39,830 --> 00:30:42,070
das muss ja nicht zwangsläufig 
die spannendste Folge sein, denn

571
00:30:42,070 --> 00:30:45,510
was wir haben wollen ist, dass 
die NAI mit dem Verständnis von 

572
00:30:45,510 --> 00:30:48,470
der Welt uns sagt, was die 
spannendste Folge ist. 

573
00:30:48,670 --> 00:30:51,150
Und dazu müssen wir eben nicht, 
oder dazu können wir eigentlich 

574
00:30:51,150 --> 00:30:55,190
nicht rein, auf Textsuche gehen,
sondern müssen halt das 

575
00:30:55,190 --> 00:30:59,430
Verständnis was die entwickelt 
hat von dieser Folge das. 

576
00:30:59,750 --> 00:31:02,710
Sicher durchsuchen und das genau
ist ja dieses dieses Embedding 

577
00:31:03,310 --> 00:31:06,590
und das ich glaube, da muss ich 
dann eben auf meinen Use Case so

578
00:31:06,590 --> 00:31:08,710
ein bisschen achten, denn die 
zweite Frage ist, wenn jetzt 

579
00:31:08,710 --> 00:31:11,190
jemand fragt, was ist denn die 
spannendste Podcast Folge, ja, 

580
00:31:11,190 --> 00:31:13,550
wie will ich denn das in der SQL
Query umwandeln? 

581
00:31:13,870 --> 00:31:14,790
Da kann ich vielleicht 
höchstens. 

582
00:31:14,790 --> 00:31:16,830
Also erstmal muss ich überhaupt 
interpretieren, was denn da an 

583
00:31:16,830 --> 00:31:18,990
an Info reinkam. 
Also ich muss ohnehin jetzt 

584
00:31:18,990 --> 00:31:22,190
erstmal irgendwas haben, was aus
diesem Freitext, was die 

585
00:31:22,190 --> 00:31:25,910
spannendste Podcastfolge, 
irgendwelche Informationen raus 

586
00:31:25,910 --> 00:31:28,630
extrahiert, die für ne Queery 
spannend sein könnten, zum 

587
00:31:28,630 --> 00:31:31,070
Beispiel rank ich die vielleicht
nach wie viele Leute haben bis 

588
00:31:31,070 --> 00:31:33,390
zum Ende zugehört, was ist die 
Folge, wo die meisten Leute bis 

589
00:31:33,390 --> 00:31:35,350
zum Ende zugehört haben, aber 
das sind Informationen, die ich 

590
00:31:35,350 --> 00:31:37,790
erstmal irgendwie dann da 
rauskriegen muss und so kann ich

591
00:31:37,790 --> 00:31:39,990
einfach die Frage wie sie ist, 
auch ins Verständnis der 

592
00:31:39,990 --> 00:31:41,910
gleichen Welt oder ins gleiche 
Verständnis der Welt 

593
00:31:41,910 --> 00:31:44,030
reinschmeißen und die dann 
vergleichen. 

594
00:31:45,000 --> 00:31:47,720
Und was so gemanagte Services 
wie, ich kenne es jetzt von 

595
00:31:47,720 --> 00:31:50,000
Azure mit diesem Azure I Search 
machen, ist nämlich genau das, 

596
00:31:50,000 --> 00:31:51,760
was du gerade gesagt hast zu 
kombinieren. 

597
00:31:51,880 --> 00:31:56,240
Die kombinieren eine semantische
klassische Suche mit diesem Rack

598
00:31:56,240 --> 00:31:58,440
Pattern. 
Mit dieser AI suche und können 

599
00:31:58,440 --> 00:32:00,600
mir dann vielleicht die besten 
Ergebnisse anzeigen können sagen

600
00:32:00,600 --> 00:32:03,400
Hey guck mal das sind Sachen die
ich durch traditionelle Suche, 

601
00:32:03,400 --> 00:32:05,280
vielleicht sogar durch, 
vielleicht sogar durch so eine 

602
00:32:05,280 --> 00:32:09,920
Websuche, ich hab's ja mal bei 
Google eingegeben, plus das sind

603
00:32:09,920 --> 00:32:12,080
die Ergebnisse aus vielleicht 
deinen privaten Daten, weil 

604
00:32:12,080 --> 00:32:14,440
vielleicht sind ja solche die 
Transkripte der Folgen, die 

605
00:32:14,440 --> 00:32:16,000
machen wir ja gar nicht 
öffentlich, die haben wir jetzt 

606
00:32:16,000 --> 00:32:18,200
vielleicht bei uns in 
irgendwelchen Textdateien liegen

607
00:32:18,200 --> 00:32:19,520
und vielleicht gebe ich ja die 
rein. 

608
00:32:20,510 --> 00:32:21,510
Die sind aber gar nicht 
öffentlich. 

609
00:32:21,510 --> 00:32:23,430
Die Informationen kann es aber 
kombinieren mit einer 

610
00:32:23,430 --> 00:32:25,390
öffentlichen Suche, um 
vielleicht festzustellen, was 

611
00:32:25,390 --> 00:32:27,630
den Menschen generell spannend 
finden an Podcastfolgen und 

612
00:32:27,630 --> 00:32:28,950
sowas. 
Also das kann man natürlich auch

613
00:32:28,950 --> 00:32:31,830
noch mal kombinieren, aber ich 
versuche ja, das Verständnis der

614
00:32:31,830 --> 00:32:34,790
Welt von dem AI Model mit dem 
Verständnis der Welt von dem AR 

615
00:32:34,790 --> 00:32:37,390
Model, von der Frage die ich zu 
bekommen habe zu vergleichen. 

616
00:32:39,000 --> 00:32:43,280
Ja, und ich glaube, am Ende ist 
die große Kunst, dass man je 

617
00:32:43,280 --> 00:32:47,160
nach Use Case entscheidet, was 
die beste Technik ist, um das 

618
00:32:47,400 --> 00:32:50,880
Ergebnis zu erzeugen. 
Und da sehe ich halt immer mehr,

619
00:32:50,880 --> 00:32:56,120
dass halt unterschiedliche AI 
Modelle miteinander kombiniert 

620
00:32:56,120 --> 00:33:00,440
werden, basierend darauf wie 
groß ist das Modell, wie schnell

621
00:33:00,440 --> 00:33:03,200
ist das Modell, wie groß sind 
auch die Kosten, die mit so 

622
00:33:03,200 --> 00:33:05,720
einem Abruf des Modells 
verbunden sind. 

623
00:33:05,720 --> 00:33:09,120
Ganz viele von uns werden 
vielleicht eine Kombination in 

624
00:33:09,120 --> 00:33:12,680
Zukunft verwenden von Modellen 
die Teil der Applikation sind, 

625
00:33:12,680 --> 00:33:14,800
die quasi selfhosted sind, das 
sind ganz kleine 

626
00:33:14,800 --> 00:33:18,240
leichtgewichtige. 
Spezialisierte Models, die zum 

627
00:33:18,240 --> 00:33:21,990
Beispiel für so ein bisschen. 
Das ganze Reviewing der 

628
00:33:21,990 --> 00:33:26,110
Antworten oder Fragen verwendet 
werden oder intend Recognition 

629
00:33:26,110 --> 00:33:29,670
und basierend auf einer Intent 
Erkennung kann ich dann 

630
00:33:29,670 --> 00:33:33,350
entscheiden was die beste 
Technologie ist um das Wissen 

631
00:33:33,350 --> 00:33:35,630
abzurufen gehe ich jetzt hier in
Richtung. 

632
00:33:35,710 --> 00:33:38,510
Wreck oder gehe ich in Richtung 
einer semantischen Suche? 

633
00:33:38,630 --> 00:33:42,470
Das heißt, wenn jetzt du dem 
Sprachmodell irgendwie sagst, 

634
00:33:42,470 --> 00:33:47,990
Hey, gib mir die die letzten 10 
Folgen des Podcasts basierend 

635
00:33:47,990 --> 00:33:51,750
auf der Bewertung auf Spotify, 
dann reicht es vielleicht 

636
00:33:51,750 --> 00:33:54,510
einfach eine Internetsuche zu 
machen oder meine interne 

637
00:33:54,510 --> 00:33:59,070
Datenbank abzufragen, dann die 
Ergebnisse in mein großes 

638
00:33:59,070 --> 00:34:01,870
Sprachmodell zu geben, um halt 
eine schön formulierte Antwort 

639
00:34:01,870 --> 00:34:05,870
zu bekommen und das Ganze dann 
an den User zurückzugeben oder 

640
00:34:05,870 --> 00:34:08,230
in der Anwendung anzuzeigen, das
heißt? 

641
00:34:08,389 --> 00:34:11,030
Jeweils entscheiden, was ist der
beste Weg, um diese 

642
00:34:11,030 --> 00:34:13,909
Informationen in so ein 
sprachmodell Reinzubekommen? 

643
00:34:13,909 --> 00:34:19,830
Und was ist auch am Ende der der
der kostengünstigste Weg, weil 

644
00:34:19,830 --> 00:34:23,989
sobald ich halt anfange die 
Modelle bei den großen Cloud 

645
00:34:23,989 --> 00:34:28,070
Providern zu nutzen, wo halt 
irgendwie teilweise Token 

646
00:34:28,070 --> 00:34:32,310
basiert abgerechnet wird und ich
dann auch nicht den kompletten 

647
00:34:32,310 --> 00:34:36,270
Token Space verwenden kann jedes
Mal, weil natürlich damit Kosten

648
00:34:36,270 --> 00:34:38,830
verbunden sind, da muss ich mir 
schon sehr genaue Gedanken dazu 

649
00:34:38,830 --> 00:34:41,710
machen wieviel. 
Letzten Endes in so ein prompt 

650
00:34:41,710 --> 00:34:45,350
rein und ich glaub auch der 
Ansatz wie vielleicht am Anfang 

651
00:34:45,510 --> 00:34:49,190
Chat GPT entwickelt wurde wurde 
halt auch ohne Berücksichtigung 

652
00:34:49,190 --> 00:34:51,389
dieser Kosten gemacht, weil halt
der Anbieter gesagt hat wir 

653
00:34:51,389 --> 00:34:53,790
wollen das erstmal groß machen. 
Wir gehen jetzt erstmal n 

654
00:34:53,790 --> 00:34:56,550
relativ simplen Ansatz und dann 
packen wir immer die komplette 

655
00:34:56,550 --> 00:35:00,390
Chat Historie irgendwie wieder 
in den prompt rein damit der 

656
00:35:00,830 --> 00:35:03,550
Chat entsprechend die 
Informationen hat, aber das kann

657
00:35:03,550 --> 00:35:05,670
ich in meiner eigenen Anwendung 
nicht machen wenn ich jetzt auf 

658
00:35:06,590 --> 00:35:11,070
so ein GPT 4 Modell gehe und 
dort das komplette. 

659
00:35:11,760 --> 00:35:14,800
Token Windows Ausnutze und alle 
sagen ich will mehr in den 

660
00:35:14,800 --> 00:35:16,880
Kontext reinpacken. 
Ich brauche ein größeres Token 

661
00:35:16,880 --> 00:35:19,440
Windows, aber wenn ich mich 
jetzt dann mal mit der 

662
00:35:19,440 --> 00:35:23,360
Kostentabelle auseinandersetze, 
wie dann diese API Calls, egal 

663
00:35:23,360 --> 00:35:26,360
ob ich jetzt irgendwie mit Open 
AI oder mit Google oder 

664
00:35:26,360 --> 00:35:28,640
Microsoft oder was auch immer 
spreche, da muss ich mir 

665
00:35:28,640 --> 00:35:33,680
anschauen auf welchem Modell 
sind welche Kosten pro Token 

666
00:35:33,680 --> 00:35:36,880
entsprechend verbunden und wenn 
ich dann jetzt hingehe und ein 

667
00:35:36,880 --> 00:35:40,800
immer größer werdendes Token 
Limit für das AI Modell komplett

668
00:35:40,800 --> 00:35:43,390
mit Informationen. 
Personenfülle dann werden 

669
00:35:43,390 --> 00:35:45,270
gegebenenfalls meine 
Informationen nicht besser, weil

670
00:35:45,270 --> 00:35:47,870
das AI Modell natürlich dann 
viel stärker filtern muss. 

671
00:35:47,990 --> 00:35:51,670
Ich geb viel rein, was ist das 
Relevante, da muss ich mich 

672
00:35:51,670 --> 00:35:53,790
schon konzentrieren, aber zum 
anderen werden natürlich die 

673
00:35:53,790 --> 00:35:56,550
Kosten dann massiv in die Höhe 
getrieben. 

674
00:35:56,630 --> 00:35:59,430
Wenn ich jetzt einfach möglichst
viele Informationen da 

675
00:35:59,430 --> 00:36:01,670
reinschmeiße, weil ich mir 
vielleicht nicht die Mühe machen

676
00:36:01,670 --> 00:36:05,630
will oder nicht über das Wissen 
verfüge, um das schon 

677
00:36:05,630 --> 00:36:09,150
vorzufiltern, damit ich da die 
richtigen Ergebnisse bekomme. 

678
00:36:09,150 --> 00:36:11,880
Und da ist es natürlich 
wertvoll, solche. 

679
00:36:12,030 --> 00:36:14,670
Verschiedenen Techniken zu 
beherrschen, sich da einen 

680
00:36:14,670 --> 00:36:17,550
Überblick zu schaffen und dann 
in Kombination verschiedener 

681
00:36:17,550 --> 00:36:19,230
Sprachmodelle immer das Richtige
zu wählen. 

682
00:36:19,230 --> 00:36:22,550
Mit der richtigen Technik, um 
die eigenen Daten dort auch 

683
00:36:22,550 --> 00:36:24,990
reinzugeben. 
Genau jetzt gibt es natürlich. 

684
00:36:24,990 --> 00:36:26,870
Jetzt gibt es natürlich auch im 
Break Pattern noch ein paar 

685
00:36:26,870 --> 00:36:31,310
Herausforderungen, also die 
Herausforderung, dass ja darf 

686
00:36:31,310 --> 00:36:33,590
der User da die Frage stellt 
denn überhaupt die Dokumente 

687
00:36:33,590 --> 00:36:35,710
sehen, die ich jetzt hier aus 
meiner Vektordatenbank 

688
00:36:35,710 --> 00:36:38,230
rausbekommen habe, also ein 
Berechtigungsproblem? 

689
00:36:38,670 --> 00:36:41,390
Das bleibt nach wie vor, da kann
man sich dann auch, ja kann man 

690
00:36:41,390 --> 00:36:43,870
sich überlegen, ob man dann 
irgendwie die Berechtigungen mit

691
00:36:44,390 --> 00:36:46,710
in die Vektordatenbank mit 
reinschreibt oder ob man erst 

692
00:36:46,710 --> 00:36:50,510
nachdem die Ergebnisse 
rausgekommen sind dann n Filter 

693
00:36:50,510 --> 00:36:52,390
macht, ob überhaupt diese 
Ergebnisse überhaupt welche 

694
00:36:52,390 --> 00:36:54,910
sind, die der User sehen kann. 
Aber ich kann es eben lösen, ich

695
00:36:54,910 --> 00:36:58,830
kann es eben adressieren. 
Klar, die meisten wissen es, 

696
00:36:58,830 --> 00:37:00,710
aber ich beschäftige mich eh 
viel mit Berechtigungen, weil 

697
00:37:00,710 --> 00:37:03,910
wir mit Spaceblogs da ja was was
gebaut haben, was auch genau 

698
00:37:03,910 --> 00:37:07,990
dieses Problem in Reck pattern. 
Also was auch genau dieses 

699
00:37:07,990 --> 00:37:10,190
Problem eben adressiert und sich
vornimmt. 

700
00:37:11,390 --> 00:37:13,790
Aber jetzt hab ich wenigstens ne
Möglichkeit zu lösen, weil ja 

701
00:37:13,790 --> 00:37:16,550
die Informationen nicht in das 
Modell mit Eingebacken sind, 

702
00:37:16,550 --> 00:37:20,070
sondern weil ich sie ja dann 
irgendwie rausziehe und dann 

703
00:37:20,070 --> 00:37:21,710
kann ich halt eben entweder 
überlegen, nachdem ich sie 

704
00:37:21,710 --> 00:37:24,550
rausgezogen habe, welche ob die 
Dokumente überhaupt für den User

705
00:37:24,550 --> 00:37:27,590
geeignet oder gedacht sind. 
Oder ich kann halt vielleicht 

706
00:37:27,590 --> 00:37:30,310
schon clever bei der Frage oder 
beim Erstellen dieses Embeddings

707
00:37:30,310 --> 00:37:32,790
oder beim Speichern der 
Vektordatenbank mitgeben, dass 

708
00:37:32,790 --> 00:37:35,390
dann auch nur die bei dieser 
Ähnlichkeitssuche nachher 

709
00:37:35,390 --> 00:37:38,550
berücksichtigt werden, die dann 
überhaupt relevant sind für das 

710
00:37:38,550 --> 00:37:41,510
Ding. 
Avila am Ende schon gesagt hast.

711
00:37:41,510 --> 00:37:44,470
Ich glaube in richtig coolen 
Anwendungen ist es am Ende so, 

712
00:37:44,870 --> 00:37:47,750
dass es immer ne Kombination aus
ganz vielen Sachen sein wird. 

713
00:37:47,750 --> 00:37:50,990
Das heißt ne Frage oder n Befehl
des Users wird wahrscheinlich 

714
00:37:50,990 --> 00:37:53,790
durch ne Kombination von Calls 
gegen verschiedene Modelle. 

715
00:37:54,830 --> 00:37:57,510
Beantwortet werden oder durch, 
wie du gerade gesagt hast, ne 

716
00:37:57,510 --> 00:37:59,310
websuche. 
Vielleicht muss ne API gecallt 

717
00:37:59,310 --> 00:38:01,190
werden, vielleicht muss n Link 
aufgerufen werden, vielleicht 

718
00:38:01,190 --> 00:38:03,070
muss ich ne Datenbank was 
abfragen, vielleicht muss ich 

719
00:38:03,070 --> 00:38:05,870
mit Rack Pattern relevante 
Dokumente und Daten finden, die 

720
00:38:05,870 --> 00:38:09,270
ich in den prompt mit rein gebe,
vielleicht muss ich irgendwo so 

721
00:38:09,270 --> 00:38:11,390
ne Memory Funktion haben wo ich 
schaue was hab ich denn bisher 

722
00:38:11,390 --> 00:38:12,830
mit dem User überhaupt alles 
gemacht? 

723
00:38:13,350 --> 00:38:16,390
Das heißt es ist am Ende 
wirklich eine Kombination aus 

724
00:38:16,390 --> 00:38:19,550
verschiedenen Sachen, da helfen 
eben so Frameworks relangchain 

725
00:38:19,550 --> 00:38:22,550
und samantic Kernel bei und 
darauf wird es am Ende 

726
00:38:22,550 --> 00:38:24,430
wahrscheinlich hinauslaufen wenn
ich jetzt mehr als nur einen 

727
00:38:24,430 --> 00:38:26,630
simplen Chatbot in meine 
Anwendung einbauen möchte. 

728
00:38:27,990 --> 00:38:31,550
Mhm, was natürlich n großer 
Vorteil ist, dass heutzutage 

729
00:38:31,550 --> 00:38:34,830
viele der Cloud Provider, auf 
denen wir ohnehin unsere 

730
00:38:34,830 --> 00:38:37,590
Anwendung hosten, egal ob es 
jetzt irgendwie Adobe, US, 

731
00:38:37,590 --> 00:38:40,510
Google, Microsoft oder wer auch 
immer ist. 

732
00:38:41,310 --> 00:38:45,870
Gemanagte Services für dieses 
Rack Pattern auch bereitstellen.

733
00:38:46,110 --> 00:38:50,110
Das heißt, wir haben dort 
Dienste, die schon Konnektoren 

734
00:38:50,110 --> 00:38:52,030
mitbringen zu diversen 
Datenquellen. 

735
00:38:52,030 --> 00:38:55,190
Natürlich werden die eigenen 
Storage Dienste dieser Cloud 

736
00:38:55,190 --> 00:38:58,510
Provider unterstützt, aber auch 
Cross Plattform einfach nur als 

737
00:38:58,510 --> 00:39:01,870
Beispiel bei Etabliss kann ich 
zum Beispiel eine Connection zu 

738
00:39:01,870 --> 00:39:05,430
Microsoft sharepoint machen, 
weil sie halt wissen, dass für 

739
00:39:05,430 --> 00:39:08,310
Unternehmen interne Anwendungen 
häufig Daten vielleicht von 

740
00:39:08,310 --> 00:39:11,230
einem sharepoint kommen und so 
gibt es halt ähnliche Dienste 

741
00:39:11,230 --> 00:39:14,510
auch bei den anderen Cloud 
Providern und dementsprechend 

742
00:39:14,590 --> 00:39:17,550
muss ich halt das Wissen haben, 
wie solche Technologien 

743
00:39:17,550 --> 00:39:20,470
funktionieren, ich muss sie aber
gegebenenfalls gar nicht selber 

744
00:39:20,470 --> 00:39:23,350
implementieren und gar nicht 
selber so eine Vektordatenbank 

745
00:39:23,350 --> 00:39:27,590
aufbauen, weil natürlich von den
Cloud Providern das entsprechend

746
00:39:27,590 --> 00:39:29,830
als Managed Service 
bereitgestellt wird und mir da 

747
00:39:29,830 --> 00:39:32,190
über die Konnektoren die 
Möglichkeit bietet das relativ 

748
00:39:32,190 --> 00:39:33,800
einfach. 
Zu verknüpfen. 

749
00:39:35,550 --> 00:39:37,630
Genau das heißt also, als 
Developer ist es wichtig, diese 

750
00:39:37,630 --> 00:39:39,830
Patterns zu kennen, aber gar 
nicht unbedingt über die ganze 

751
00:39:39,830 --> 00:39:42,070
Infrastruktur dahinter 
aufzusetzen, wie er so oft. 

752
00:39:43,800 --> 00:39:46,520
Wie ist denn bei euch? 
Baut ihr gerade in eure 

753
00:39:46,520 --> 00:39:49,360
Anwendungen AI ein? 
Ist das ein Thema für euch? 

754
00:39:49,360 --> 00:39:52,480
Lasst uns das doch gern mal 
wissen, wir haben ja in der 

755
00:39:52,480 --> 00:39:55,720
Umfrage festgestellt, nicht alle
hören uns auf Spotify, aber auf 

756
00:39:55,720 --> 00:39:57,880
Spotify kann man halt wunderbar 
auch irgendwie Kommentare 

757
00:39:57,880 --> 00:40:00,800
hinterlassen, deswegen wenn ihr 
uns auf Spotify hört, lasst das 

758
00:40:00,800 --> 00:40:03,800
doch mal unten in der in dem 
Kommentar da, wenn ihr uns 

759
00:40:03,800 --> 00:40:06,120
woanders hört, schreibt uns auch
gerne eine E-Mail, also ihr 

760
00:40:06,120 --> 00:40:08,200
findet unten in der Beschreibung
vom Podcast auch immer eine 

761
00:40:08,200 --> 00:40:11,080
E-Mail wo ihr es mal schreiben 
könnt, uns würde das einfach 

762
00:40:11,080 --> 00:40:14,120
interessieren, so ihr als unsere
Community wo steht. 

763
00:40:14,270 --> 00:40:16,470
Also ist das denn überhaupt? 
Ist das ne Anforderung die Real 

764
00:40:16,470 --> 00:40:17,710
ist? 
Hat euer Manager jetzt gerade 

765
00:40:17,710 --> 00:40:20,630
über Silvester vielleicht 
irgendwie mit den anderen 

766
00:40:20,630 --> 00:40:23,150
Managern zusammen Fondue oder 
Raclette gegessen und sich 

767
00:40:23,150 --> 00:40:25,430
unterhalten, dass er eigentlich 
ganz dringend einbauen müssen, 

768
00:40:25,430 --> 00:40:27,830
sonst sind wir weg vom Fenster 
in 5 Jahren? 

769
00:40:28,150 --> 00:40:31,510
Oder ist das eigentlich noch 
sehr weit weg für euch? 

770
00:40:31,510 --> 00:40:34,750
Das wird uns einfach mal in 
interessieren, also lasst uns da

771
00:40:34,750 --> 00:40:39,280
gerne n Feedback da. 
Und damit sind wir auch am Ende 

772
00:40:39,280 --> 00:40:41,680
dieser Folge angekommen. 
Ich hoffe, es war spannend, ich 

773
00:40:41,680 --> 00:40:44,280
habe auf jeden Fall wieder was 
Neues dazugelernt, ich glaube, 

774
00:40:44,280 --> 00:40:47,600
man hat immer so ein gewisses 
Grundlagenwissen über das, was 

775
00:40:47,600 --> 00:40:49,600
man in den Nachrichten so 
verfolgt, aber da noch mal 

776
00:40:49,600 --> 00:40:52,600
tiefer reinzugehen, hilft mir 
auf jeden Fall, ich hoffe, es 

777
00:40:52,600 --> 00:40:57,160
war für euch genauso, ansonsten 
würden wir uns wie immer freuen,

778
00:40:57,160 --> 00:41:00,040
wenn euch diese Folge gefallen 
hat, wenn ihr uns positives 

779
00:41:00,040 --> 00:41:04,400
Feedback da lasst auf Spotify 
oder auf Apple Podcast hilft uns

780
00:41:04,400 --> 00:41:08,280
natürlich auch in den Charts 
weiter nach oben zu klettern. 

781
00:41:09,320 --> 00:41:12,960
Dann bleibt uns nichts anderes 
übrig, als euch eine gute Zeit 

782
00:41:12,960 --> 00:41:14,720
zu wünschen. 
Bis in 2 Wochen, denn wir sehen 

783
00:41:14,720 --> 00:41:17,800
uns in 2 Wochen wieder. 
Der TODO Cars erscheint alle 2 

784
00:41:17,800 --> 00:41:20,560
Wochen, wir freuen uns über euer
Feedback, vielen Dank fürs 

785
00:41:20,560 --> 00:41:23,880
Zuhören, habt eine gute Zeit und
schreibt ganz viel Code. 

786
00:41:24,750 --> 00:41:25,830
Bis dahin. 
Tschüss.

