WEBVTT

00:00:00.017 --> 00:00:03.337
Die Idee ist eben, wir demokratisieren das auch in dem Sinne,

00:00:03.497 --> 00:00:05.257
dass man nicht AI-Experte sein muss.

00:00:05.677 --> 00:00:08.977
Das Thema Schreiben, also Writing, Writing Assistant.

00:00:09.297 --> 00:00:14.177
Da haben wir die Summarizer API, also eine API, die dir längere Texte zusammenfasst.

00:00:14.957 --> 00:00:18.697
Dann aber auch so Ideen wie, man hat eine Audiosammlung und möchte jetzt vielleicht

00:00:18.697 --> 00:00:22.137
alle Audios raussortieren, wo vielleicht Technomusik drin ist.

00:00:22.757 --> 00:00:26.637
Das Thema Testbarkeit, also bei LLM's ist natürlich immer das Problem,

00:00:26.937 --> 00:00:28.317
die sind nicht deterministisch.

00:00:29.017 --> 00:00:32.637
Das Ziel ist letztendlich auch bei diesen APIs, dass die in 20,

00:00:32.757 --> 00:00:35.877
30 Jahren auch noch nützlich sind und nutzbar.

00:00:39.397 --> 00:00:44.077
Bevor es losgeht, ein kurzer Gruß von unserem Sponsor Workshops.de.

00:00:44.277 --> 00:00:49.157
Ihr kennt uns vielleicht schon von den Portalen wie angular.de oder als Veranstalter

00:00:49.157 --> 00:00:53.677
der Deutschen Angular-Konferenz ng.de, welche auch diesen November wieder in

00:00:53.677 --> 00:00:56.557
Berlin stattfindet. Und jetzt gehen wir einen Schritt weiter.

00:00:56.837 --> 00:01:00.817
Mit unserer Erfahrung aus der Entwickler-Community bringen wir euch praxisnahe

00:01:00.817 --> 00:01:03.177
Schulungen im Bereich künstliche Intelligenz.

00:01:03.357 --> 00:01:05.057
Für Entwicklerinnen und Entwickler.

00:01:05.257 --> 00:01:07.817
Und alle, die ihre Arbeitsprozesse smarter gestalten wollen.

00:01:08.137 --> 00:01:12.157
Unser Ziel? Molotone Aufgaben abschaffen und wieder Platz für Kreativität und

00:01:12.157 --> 00:01:13.597
echtes Engineering im Kopf schaffen.

00:01:14.197 --> 00:01:17.377
KI nimmt dir nicht den Job weg. Sie nimmt dir nur die Aufgaben ab,

00:01:17.637 --> 00:01:20.937
auf die du sowieso keine Lust hast. Schau direkt mal vorbei und sichere dir

00:01:20.937 --> 00:01:25.597
mit dem Code WORKINGDRAFT, geschrieben in Großbuchstaben, 10% Rabatt auf alle Schulungen.

00:01:25.837 --> 00:01:31.737
Wir sehen uns auf workshops.de-KI und jetzt viel Spaß mit dieser Folge vom Working Draft Podcast.

00:01:37.177 --> 00:01:44.677
Revision 677. Wir werden heute zu dritt. Da hätten wir zum einen aus dem Team die Vanessa. Servus.

00:01:45.537 --> 00:01:48.297
Ich bin der Schepp und das bedeutet, wir haben wieder einen Gast.

00:01:48.297 --> 00:01:50.377
Und zwar ist es heute der Thomas Steiner. Hallo Thomas.

00:01:51.137 --> 00:01:56.637
Hallo, moin moin. Moin moin. Du stammst aus dem hohen Norden oder bist zumindest

00:01:56.637 --> 00:02:00.217
mit Hamburg irgendwie verdingst, deswegen moin moin.

00:02:00.417 --> 00:02:03.457
Du warst auch schon zweimal bei uns zu Gast und zwar zum Thema Fugu.

00:02:03.997 --> 00:02:07.817
Genau, also ich bin, nur um das kurz richtig zu stellen, ursprünglich Schwabe,

00:02:07.957 --> 00:02:11.337
dann aber über die Arbeit vier Jahre in Hamburg gewesen.

00:02:11.657 --> 00:02:13.837
Genug, um mir das Moin moin anzugewöhnen.

00:02:14.317 --> 00:02:17.277
Inzwischen aber in der Nähe von Barcelona in einem ganz kleinen Dorf Richtung

00:02:17.277 --> 00:02:21.217
französische Grenze angesiedelt, dank Covid und Homeworking.

00:02:21.697 --> 00:02:25.057
Ja, cool. Dann hast du oft gutes

00:02:25.057 --> 00:02:28.037
Wetter. Wahrscheinlich jetzt gerade ein bisschen zu warmes Wetter, oder?

00:02:29.477 --> 00:02:32.437
Ja, man hat ja das Meer in der Nähe. Von dem her ist das dann immer aushaltbar.

00:02:33.357 --> 00:02:36.257
Und Klimaanlagen, nehme ich an. Und Klimaanlage, genau.

00:02:37.337 --> 00:02:40.677
Genau, und das erste Mal warst du vor sechs Jahren bei uns und dann warst du

00:02:40.677 --> 00:02:42.917
nochmal vor zweieinhalb Jahren bei uns.

00:02:44.177 --> 00:02:46.977
Und das ist auch schon ein bisschen her. Deswegen erzähl doch nochmal,

00:02:47.097 --> 00:02:48.077
wer du bist und was du machst.

00:02:49.281 --> 00:02:53.841
Genau, also damals, vor langer, langer Zeit, da war ich auch schon bei Google.

00:02:54.021 --> 00:02:57.801
Also ich bin ein Google-Möbelstück wahrscheinlich inzwischen schon.

00:02:57.941 --> 00:03:03.621
Also seit 2005 als Praktiker angefangen und dann als Temp und 2007 dann im Oktober

00:03:03.621 --> 00:03:09.521
Fulltime und war dann lange, lange Zeit Richtung Google Ads und so weiter,

00:03:09.621 --> 00:03:12.981
AdWords unterwegs und habe dann es geschafft,

00:03:13.261 --> 00:03:16.601
mich intern ins Chrome-Death-Rail-Team weiterzuentwickeln.

00:03:16.601 --> 00:03:20.721
Und bin da jetzt auch schon ein paar Jahre und habe da, als wir das erste Mal

00:03:20.721 --> 00:03:24.641
gesprochen haben, in das Projekt Fugu mich reingearbeitet.

00:03:24.841 --> 00:03:28.561
Das war damals super hot und sehr erfrisch alles noch.

00:03:29.201 --> 00:03:33.361
Und als wir da nochmal gesprochen haben, war das immer noch hot und immer fresh.

00:03:33.961 --> 00:03:37.021
Nur hatten wir sehr viel Fortschritt gemacht, also viele APIs,

00:03:37.241 --> 00:03:41.801
die wir damals irgendwie spezifiziert hatten, dann auch implementiert und ein

00:03:41.801 --> 00:03:43.361
paar davon haben es sogar Cross-Browser geschafft.

00:03:44.021 --> 00:03:49.861
Und genau, inzwischen bin ich nach wie vor im Chrome-Team und dort im Bereich

00:03:49.861 --> 00:03:56.161
Build-in-AI und WebAssembly tätig und mache FUGU-AV noch immer so ein bisschen nebenher,

00:03:56.461 --> 00:04:01.701
ist ein bisschen ruhiger geworden, viele der Ingenieure sind abgezogen worden

00:04:01.701 --> 00:04:06.141
in Richtung AI, aber es gibt nach wie vor Leute, die an FUGU arbeiten.

00:04:07.367 --> 00:04:11.027
Wir haben gerade schon beim Vorgeplänkel ein bisschen noch erzählt, was wir so machen.

00:04:11.207 --> 00:04:15.007
Also zum Beispiel gerade arbeiten wir an einem Permission-Element,

00:04:15.287 --> 00:04:20.027
wo die Idee ist, dass man deklarativ quasi so einen Knopf hat und dann über

00:04:20.027 --> 00:04:23.987
das Drücken dieses Knopfes Zugriff bekommt auf zum Beispiel Kamera und Mikrofon.

00:04:24.087 --> 00:04:27.767
Also was wir jetzt hier über Zencaster, die Software, die wir verwendet haben.

00:04:29.107 --> 00:04:35.147
Quasi per Hand noch über das reguläre Permission, über den Permission-Flow sich erarbeiten musste,

00:04:35.667 --> 00:04:39.187
hat immer das Risiko, dass die Leute dann sich verklicken und sagen Block und

00:04:39.187 --> 00:04:43.267
dann gibt es keinen Weg mehr zurück und man muss dann die Leute anweisen,

00:04:43.427 --> 00:04:46.027
so in den Site-Settings in ihrem Browser irgendwo zu suchen,

00:04:46.107 --> 00:04:50.347
wie man jetzt die Permission wieder anblocken kann und da kommt das Permission-Element rein.

00:04:50.707 --> 00:04:55.747
Also Fogo hat immer sehr viel zu tun mit vielleicht möglicherweise gefährlichen

00:04:55.747 --> 00:04:59.247
Sachen, die dann eben so ein Permission-Prompt brauchen. Von dem her ist da

00:04:59.247 --> 00:05:02.227
gerade so ein bisschen auch die Verbindung noch herzustellen.

00:05:02.327 --> 00:05:07.187
Aber inzwischen Hauptteil meiner Arbeit, würde ich sagen, so 70,

00:05:07.347 --> 00:05:11.047
80 Prozent, je nachdem, das Thema Build-in-AI-IPIs.

00:05:11.787 --> 00:05:17.027
Genau, darüber wollen wir heute auch sprechen. Wir haben das mal so unter dem

00:05:17.027 --> 00:05:20.727
Titel Local AI laufen lassen.

00:05:21.247 --> 00:05:24.507
Vielleicht noch der Hinweis eben auf die zwei vorherigen Folgen,

00:05:24.607 --> 00:05:26.867
wo wir über das Project Fugo sprechen.

00:05:27.407 --> 00:05:31.867
Und da geht es ja im Grunde darum, ist ja so einfach eine Sammlung an Schnittstellen,

00:05:32.187 --> 00:05:36.807
die in Browsern nachrüsten, was native Apps eigentlich schon lange konnten,

00:05:37.367 --> 00:05:39.427
um so da die Lücke wieder zu schließen.

00:05:40.127 --> 00:05:45.127
Das ist sehr spannend. Also da habe ich auch viel gelernt, dass es zum Beispiel

00:05:45.127 --> 00:05:48.607
isolated Web-Apps gibt, die dann noch krassere APIs benutzen können und so.

00:05:48.687 --> 00:05:49.987
Also hört da auf jeden Fall mal rein.

00:05:51.046 --> 00:05:56.346
Genau, und heute geht es aber eben um AI. Wir haben ja einen größeren AI-Blog

00:05:56.346 --> 00:06:01.126
gemacht vor kurzem und worüber wir heute aber sprechen wollen,

00:06:01.126 --> 00:06:05.866
ist eigentlich der Blickwinkel eben nicht,

00:06:06.166 --> 00:06:08.946
das bei dem Coding zu benutzen unbedingt,

00:06:09.426 --> 00:06:13.886
vielleicht auch, aber in erster Linie jetzt glaube ich nicht und auch keine

00:06:13.886 --> 00:06:17.326
Server zu benutzen, sondern tatsächlich in der Lage sein,

00:06:17.806 --> 00:06:25.846
diese ganzen AI-Sachen lokal in Browsern auf möglicherweise sogar mobilen Geräten auszuführen.

00:06:26.146 --> 00:06:30.746
So, das glaube ich, wenn wir heute sprechen, was es da gibt,

00:06:31.166 --> 00:06:35.746
an was ihr arbeitet und genau, was da vielleicht noch kommt.

00:06:36.566 --> 00:06:43.146
Ich würde jetzt gleich so plump reinwerfen, wozu lokal?

00:06:44.606 --> 00:06:49.346
Ja, lokal hatte immer den großen Vorteil, man muss keine Daten an irgendwelche Server schicken.

00:06:49.586 --> 00:06:53.986
Das heißt, wenn du irgendwie an einer Gesundheits-App arbeitest und da,

00:06:54.166 --> 00:06:57.986
keine Ahnung, irgendwelche Gesundheitsdaten trackst und dann AI drauf wirfst,

00:06:58.106 --> 00:07:03.726
um damit vielleicht irgendwelche Auswertungen zu machen oder ganz konkrete Fall,

00:07:03.846 --> 00:07:06.406
bei einer Konferenz hat mich jemand angesprochen, großartige Sache.

00:07:06.406 --> 00:07:12.926
Der Mensch war oder ist Psychologe und es gibt in der Psychologiepraxis wohl

00:07:12.926 --> 00:07:16.466
zwei verschiedene Arten und Weisen, über Sitzungen Protokoll zu führen.

00:07:17.006 --> 00:07:22.186
Und natürlich nimmt er seine Notizen und tippt das dann irgendwann auch von

00:07:22.186 --> 00:07:24.866
seinem handgeschriebenen Zettel ab in seinen PC.

00:07:25.566 --> 00:07:30.766
Aber er meinte, AI wäre eine großartige Hilfe, weil er könne dann A über OCR

00:07:30.766 --> 00:07:36.786
einfach direkt seine handgeschriebenen Notizen einscannen und dann den Text erkennen lassen.

00:07:37.066 --> 00:07:42.806
Und dann aber auch gleich der AI sagen, hey, ich bin jetzt Psychologe und ich

00:07:42.806 --> 00:07:45.566
muss für diesen Report, ich weiß nicht mal, wie das hieß, aber...

00:07:46.527 --> 00:07:50.987
Psychologie, Praxis, Reporting-Standard A einhalten,

00:07:51.927 --> 00:07:56.467
überführe bitte alle diese Notizen in genau dieses Format und natürlich ist

00:07:56.467 --> 00:08:01.047
es dann großartig, wenn keine Daten über die Sitzung jemals den Browser des

00:08:01.047 --> 00:08:04.487
Psychologen verlassen müssen und genau,

00:08:04.607 --> 00:08:05.867
also da kommt eben das ganze Thema

00:08:05.867 --> 00:08:10.367
Privatsphäre sehr, sehr zugute und dann natürlich auch das Thema Offline.

00:08:10.367 --> 00:08:16.607
Man hat ja immer bei AI-Applikationen und da ist auch wieder der Fugu-Bezug

00:08:16.607 --> 00:08:22.967
da herzustellen, wo man eben sagt, PVRs und Offline-Capable und so weiter.

00:08:23.227 --> 00:08:27.407
Und wenn deine AI eben nach wie vor über Offline auch noch verfügbar ist,

00:08:27.987 --> 00:08:31.427
das ermöglicht dir eben dann eben auch sehr spannende Use Cases,

00:08:31.547 --> 00:08:33.347
wo du bisher über den Server gehen musstest.

00:08:34.127 --> 00:08:37.847
Und ein wichtiges Thema auch immer ist das Thema Kosten, wo man eben sagt,

00:08:38.027 --> 00:08:41.987
okay, das ist jetzt ein Kostenpunkt, den wir als Firma nicht tragen müssen.

00:08:42.247 --> 00:08:47.067
Wir haben AI-Features in unserer App, aber die werden eben quasi lokal direkt

00:08:47.067 --> 00:08:50.467
bei unseren Endnutzern ausgeführt. Wir als Firma bezahlen da nichts.

00:08:51.087 --> 00:08:55.327
Die App kann vielleicht AI auf der Cloud anbieten als, keine Ahnung,

00:08:55.387 --> 00:08:56.247
Premium-Feature oder so.

00:08:56.707 --> 00:09:01.467
Aber die grundlegende Funktion ist jetzt über kleinseitige AI auch verschiebbar.

00:09:03.787 --> 00:09:08.307
Und wie würde das dann, oder wie muss man sich das vorstellen, dass das funktioniert?

00:09:08.527 --> 00:09:13.307
Also man kennt ja sowas wie LLM Studio, das man sich installieren kann und wo

00:09:13.307 --> 00:09:18.427
man dann verschiedene Modelle runterlädt, die teilweise auch echt groß sind.

00:09:18.427 --> 00:09:21.387
Ich würde sagen, das ist vielleicht noch so der einfachste Weg,

00:09:22.147 --> 00:09:27.767
ein lokales LLM ans Laufen zu bringen und dann kann man es natürlich beliebig

00:09:27.767 --> 00:09:30.147
eskalieren nach oben hin.

00:09:30.987 --> 00:09:35.987
So wird es ja wahrscheinlich nicht laufen, weil ihr das ja sozusagen der breiten

00:09:35.987 --> 00:09:40.007
Masse und irgendwie im Browser ansteuerbar zur Verfügung stellen wollt.

00:09:41.126 --> 00:09:46.066
Genau, also die Tools wie Olama und so weiter oder, wie heißt das,

00:09:46.146 --> 00:09:53.266
AI-Studio oder LM-Studio, die erlauben dir als Benutzer, irgendein Modell runterzuladen.

00:09:53.406 --> 00:09:56.786
Du bist dann in der vollen Kontrolle, kannst eben sagen, ich möchte jetzt,

00:09:56.966 --> 00:10:02.146
keine Ahnung, JAMA 3N runterladen und dann das als lokalen Server verfügbar machen.

00:10:02.686 --> 00:10:05.806
Großartige Sache, aber wie du schon sagst, das ist natürlich nichts für Endanwender.

00:10:05.806 --> 00:10:10.146
Ja, unsere Idee ist, wir demokratisieren quasi AI.

00:10:10.966 --> 00:10:14.546
Einerseits natürlich im Punkto, das Modell ist einfach schon da.

00:10:15.146 --> 00:10:18.186
Der Browser macht das verfügbar für dich, du musst es nicht runterladen.

00:10:19.286 --> 00:10:24.826
Dir wird im positiven Sinne quasi die Auswahl abgenommen. AI ist ja auch sehr

00:10:24.826 --> 00:10:28.306
eine Entscheidungssache immer, was nimmt man jetzt für ein Modell, für was?

00:10:29.066 --> 00:10:34.726
Und wir sagen eben, es gibt, keine Ahnung, eine 80-20-Regel oder sagen wir 70-30,

00:10:34.886 --> 00:10:40.386
je nachdem, wo eben ganz, ganz viele AI-Use-Cases schon mit einem relativ generischen

00:10:40.386 --> 00:10:42.046
Modell abzudecken sind.

00:10:42.046 --> 00:10:47.486
Und für die 20, 30, je nachdem Spezialfälle, da kannst du dann nach wie vor

00:10:47.486 --> 00:10:48.786
dein eigenes Modell verwenden,

00:10:49.466 --> 00:10:55.506
und dann eben für den speziellen Task, wo es dein Wald- und Wiesen-LLM nicht

00:10:55.506 --> 00:10:58.106
tauglich ist, kannst du dann eben dein eigenes Modell nehmen.

00:10:58.366 --> 00:11:03.066
Und ja, die Idee ist eben, wir demokratisieren das auch in dem Sinne,

00:11:03.246 --> 00:11:08.946
dass man nicht AI-Experte sein muss, sondern dass man quasi mit tatsächlich zwei Zeilen JavaScript,

00:11:09.626 --> 00:11:13.266
Zugriff bekommt auf ein sehr mächtiges Werkzeug, wo man dann eben sagt,

00:11:13.546 --> 00:11:20.046
ich möchte mir irgendwas basteln, was jetzt LLM-Funktionen nutzt.

00:11:20.226 --> 00:11:23.906
Und zum Beispiel kannst du dann sagen, ja, dieser klassische Werkzeug,

00:11:24.715 --> 00:11:29.055
Schau dir dieses Review an auf einer Skala von 1 bis 5 Sterne.

00:11:29.195 --> 00:11:33.375
Wie viele Sterne würdest du diesem Review zuordnen? Also solche Anwendungsfälle,

00:11:33.495 --> 00:11:36.035
wo du dann eben sagst, das ist letztendlich ein Classifier.

00:11:36.575 --> 00:11:40.795
Das Tool unterstützt strukturelle Ausgabe. Das heißt, du kannst dann sagen.

00:11:41.795 --> 00:11:45.155
Gib mir ein JSON-Objekt zurück, das eben genau so und so aussieht.

00:11:45.155 --> 00:11:48.355
Da sind wir jetzt schon sehr, sehr tief drin, also wahrscheinlich sollte man

00:11:48.355 --> 00:11:49.275
nochmal einen Schritt zurückgehen.

00:11:50.075 --> 00:11:56.875
In Chrome haben wir das Gemini Nano Modell, proprietär, nicht Open Weights,

00:11:56.975 --> 00:11:59.935
also nicht Open Source, sondern Open Weights, aber eben auch das nicht,

00:12:00.055 --> 00:12:02.975
sondern ein proprietäres Modell derzeit.

00:12:02.975 --> 00:12:07.095
Und die Idee ist letztendlich, dass man die Schnittstellen, also die JavaScript-Schnittstellen,

00:12:07.115 --> 00:12:12.475
die der Endanwender aufruft, dass man die standardisiert, dass aber jeder Browser-Hersteller

00:12:12.475 --> 00:12:14.635
am Ende seine eigenen Modelle dahinter klemmen kann.

00:12:15.195 --> 00:12:19.235
Und das ist auch schon passiert. Das Microsoft Edge Team, die haben angefangen,

00:12:19.415 --> 00:12:24.455
die APIs zu implementieren und die haben natürlich nicht Zugriff auf Googles Gemini Nano,

00:12:25.015 --> 00:12:29.955
sondern die klemmen das Gemini, äh, Gemini, das 5.4-Modell dahinter,

00:12:30.115 --> 00:12:33.175
also deren, ich glaube, das ist sogar auch in Wales, aber ich bin auch nicht

00:12:33.175 --> 00:12:38.255
hundertprozentig sicher, man kann das auf Hugging Face finden und die klemmen das dahinter.

00:12:38.255 --> 00:12:41.335
Und genau, so ist dann am Ende die Idee.

00:12:42.155 --> 00:12:47.415
Jeder JavaScript-Entwickler kann mit einer quasi nicht vorhandenen Lernkurve

00:12:47.415 --> 00:12:50.715
sofort Zugriff bekommen auf sehr mächtige APIs.

00:12:50.975 --> 00:12:57.095
Und die haben wir dann nochmal klassifiziert in verschiedene Anwendungsfälle

00:12:57.095 --> 00:13:00.715
sozusagen. sagen, wir unterscheiden den Anwendungsfall alles,

00:13:00.755 --> 00:13:02.495
was zu tun hat mit Übersetzung.

00:13:03.055 --> 00:13:06.835
Übersetzung heißt natürlich erstmal von unbekanntem Text feststellen,

00:13:06.855 --> 00:13:09.275
in welcher Sprache ist er geschrieben, also Language Detection.

00:13:09.675 --> 00:13:13.835
Und das dann gepaart natürlich mit der Übersetzer-API, wo du dann sagst,

00:13:13.955 --> 00:13:20.095
das ist Usage-Generaled-Content, der ist jetzt detektiert worden als Japanisch

00:13:20.095 --> 00:13:23.955
beispielsweise und wir sind Deutsch und möchten den jetzt gerne auf Deutsch übersetzt bekommen.

00:13:24.675 --> 00:13:27.575
Das ist der erste Anwendungsfall. Da muss ich vielleicht dazu sagen,

00:13:27.795 --> 00:13:31.655
diese Übersetzer-APIs, die sind nicht basiert auf der Milano-Intern,

00:13:32.155 --> 00:13:37.155
sondern die verwenden die neuronalen Modelle, die schon eigentlich seit Jahren

00:13:37.155 --> 00:13:42.315
in Chrome drin sind, für die Browser-Native, also auf Browser-Ebene Übersetzungsfunktion.

00:13:42.635 --> 00:13:46.255
Und wir haben quasi nur in Anführungszeichen die verfügbar gemacht,

00:13:46.295 --> 00:13:47.455
jetzt über JavaScript-Stellen.

00:13:47.815 --> 00:13:53.155
Und dann der zweite große Block ist das Thema Schreiben, also Writing, Writing Assistant.

00:13:53.955 --> 00:13:59.195
Und da haben wir die Summarizer-API, also eine API, die dir längere Texte zusammenfasst

00:13:59.195 --> 00:14:06.915
in verschiedenen Formaten, Stichpunkte, so ein Aufreißer-Teaser-Text, eine Überschrift.

00:14:07.315 --> 00:14:11.195
Und dann haben wir die Writer- und die Rewriter-API.

00:14:11.475 --> 00:14:15.735
Die Writer-API, die hilft hier aus einem Prompt quasi.

00:14:16.640 --> 00:14:21.360
Irgendeinen Text zu erstellen. Also du kannst dann sagen, ich muss meiner Bank

00:14:21.360 --> 00:14:26.080
eine E-Mail schreiben und sie bitten, dass sie bitte von meiner Kreditkarte

00:14:26.080 --> 00:14:30.080
das Limit erhöhen auf 10.000, auf 20.000 Euro oder was auch immer.

00:14:30.800 --> 00:14:31.900
So ein klassischer Fall, wo

00:14:31.900 --> 00:14:34.660
man halt so, na, okay, das ist sehr geehrte Damen und Herren, jada, jada.

00:14:35.160 --> 00:14:40.020
Und ja, wenn man letztendlich da einfach so einen Einzeiler der API hinwirft,

00:14:40.240 --> 00:14:44.200
dann kann sie daraus einen formellen, höflichen, freundlichen Brief machen oder E-Mail.

00:14:45.020 --> 00:14:48.520
Und die Rewriter-API, die erlaubt dann eben, da nochmal drüber zu fallen,

00:14:48.600 --> 00:14:52.640
dass man sagen kann, okay, das ist schön und gut, was die Writer-API produziert

00:14:52.640 --> 00:14:56.520
hat, aber mach das doch ein bisschen kürzer oder mach das doch ein bisschen weniger formal.

00:14:56.520 --> 00:15:02.800
Und dann kannst du eben quasi diese beiden APIs im Zusammenspiel kombinieren

00:15:02.800 --> 00:15:05.600
und dann eben dir bei deiner Schreibarbeit helfen lassen.

00:15:05.980 --> 00:15:09.200
Und dann ganz, ganz frisch haben wir die sogenannte Proofreader API,

00:15:09.500 --> 00:15:15.600
also eine Korrektur-API, die dir erlaubt, quasi so eine Art sowas wie die Leute

00:15:15.600 --> 00:15:18.820
von Grammarly kennen oder Language Tool als Extensions,

00:15:19.180 --> 00:15:22.540
das dann eben über ein lokales LLM laufen zu lassen.

00:15:22.540 --> 00:15:26.260
Das heißt, du wirfst ihm einen Text hin, einen Satz, einen ganzen Paragrafen,

00:15:26.320 --> 00:15:31.560
was auch immer und er korrigiert dir das Ganze dann und gibt dir eine Liste

00:15:31.560 --> 00:15:37.260
von Fehlern zurück und sagt dir dann eben über Startindex und Endindex immer so,

00:15:37.300 --> 00:15:41.100
dass du es auch schön mit CSS oder so highlighten kannst oder deine berühmten

00:15:41.100 --> 00:15:42.680
Squiggle Lines drunter setzen kannst,

00:15:43.100 --> 00:15:45.940
wo die Fehler sind oder wo die Kulturvorschläge sind.

00:15:46.591 --> 00:15:50.271
So, und dann, also das sind die zwei ersten Blöcke und dann haben wir den dritten

00:15:50.271 --> 00:15:53.951
Block, das ist die sogenannte Prompt API und das ist eigentlich die,

00:15:54.191 --> 00:16:00.691
die am mächtigsten, aber eben auch am umstrittensten ist, weil letztendlich das Problem ist,

00:16:00.911 --> 00:16:04.391
bei den anderen APIs, da wissen wir immer ganz genau, was möchte der Benutzer eigentlich,

00:16:04.531 --> 00:16:09.291
also wir haben immer ein konkretes Problem an der Hand, also der Benutzer möchte

00:16:09.291 --> 00:16:13.311
einen Text zusammenfassen, der Benutzer möchte einen Text übersetzen,

00:16:13.391 --> 00:16:18.711
was auch immer, ja, da kannst du dann dem Modell sehr genau sagen über Feintuning, über LoRa,

00:16:19.251 --> 00:16:21.611
in welche Richtung soll das jetzt optimiert werden,

00:16:22.191 --> 00:16:28.951
während bei der Prompt-API, das ist ja quasi wie ein Chat-GPT oder Gemini oder

00:16:28.951 --> 00:16:32.451
Cloud oder was auch immer, aber direkt eben auf JavaScript-Ebene,

00:16:32.631 --> 00:16:34.831
wo du eben nicht weißt, was möchte der Benutzer damit machen?

00:16:34.911 --> 00:16:38.731
Möchte er kreative Vorschläge bekommen zum Thema, was kann ich machen,

00:16:38.811 --> 00:16:44.091
wenn ich eine Stunde in Berlin abhängen muss und quasi in der Gegend von so und so bin?

00:16:44.611 --> 00:16:48.551
Also klassischer LLM-Kreativ schlag doch einfach mal was vor, Use Case.

00:16:48.931 --> 00:16:53.571
Oder was ich vorher erzählt hatte, so von diesem Review, würdest du das mappen

00:16:53.571 --> 00:16:55.471
auf ein bis fünf Sterne oder was auch immer.

00:16:55.811 --> 00:16:58.391
Also wo man eben ganz, ganz viele Freiheiten hat.

00:16:59.531 --> 00:17:03.591
Und dann kommt noch dazu, bei der Google I.O. haben wir angekündigt,

00:17:03.671 --> 00:17:07.411
es gibt jetzt auch den multimodalen Input, also sprich Bilder und Audio.

00:17:08.371 --> 00:17:13.851
Das heißt neue Use Cases wie zum Beispiel Transkriptionen. Also wir sind jetzt hier im Podcast,

00:17:14.091 --> 00:17:18.891
wir reden und ja, am Ende wäre es ganz nett, wenn man da vielleicht so ein Transkript

00:17:18.891 --> 00:17:22.071
hätte, wo man drüber suchen kann oder vielleicht keine Zeit hat,

00:17:22.151 --> 00:17:23.551
die ganze Episode anzuhören,

00:17:24.151 --> 00:17:30.411
da man kurz drüber lesen kann, wo man vielleicht dann doch reinhören sollte. Also das über Audio.

00:17:31.233 --> 00:17:34.973
Dann aber auch so Ideen wie, man hat eine Audiosammlung und möchte jetzt vielleicht

00:17:34.973 --> 00:17:40.713
alle Audios rausortieren, wo vielleicht, keine Ahnung, Technomusik drin ist oder was auch immer.

00:17:40.773 --> 00:17:44.633
Also ich sage nicht, alles, was ich hier vorschlage, ist tatsächlich möglich,

00:17:44.793 --> 00:17:47.653
aber das sind so die Use Cases, die wir langfristig im Kopf haben.

00:17:48.933 --> 00:17:52.473
Und genau, dann haben wir noch das Thema Bilder, also Bildereingabe,

00:17:52.693 --> 00:17:56.173
dass du eben sagen kannst, das ist das Bild, beschreib das doch mal.

00:17:56.173 --> 00:17:59.113
Und dann natürlich der klassische Alternative Text.

00:17:59.753 --> 00:18:04.673
Beschreibt das mal so, dass es nützlich wäre für jemanden, der Assistive Technologies verwendet.

00:18:05.213 --> 00:18:09.433
Nicht zwingend Screenreader, sondern ja, alles, was es gibt in diesem Bereich,

00:18:09.833 --> 00:18:15.253
wo die Leute dann vielleicht Hilfe brauchen oder was ist das Zentrum der Aufmerksamkeit dieses Bildes.

00:18:15.333 --> 00:18:19.473
Beschreib das doch mal. Oder du kannst dir dann vorstellen, auch so einen Classifier zu bestellen.

00:18:19.653 --> 00:18:24.293
So bei manchen Services muss man sich, also zum Beispiel Blue Sky in Großbritannien,

00:18:24.293 --> 00:18:27.773
habe ich gehört, die müssen sich jetzt als Erwachsene identifizieren und müssen

00:18:27.773 --> 00:18:30.913
dazu einen Reisepass oder ID hochladen.

00:18:31.433 --> 00:18:33.973
Und das muss dann wahrscheinlich manuell jemand verifizieren.

00:18:34.433 --> 00:18:39.733
Und da ist natürlich die Fehlerrate relativ hoch, dass die Leute halt vielleicht

00:18:39.733 --> 00:18:43.393
irgendwas hochladen, was nicht zwingend ein Ausweis ist oder Büchereiausweis

00:18:43.393 --> 00:18:45.553
oder, keine Ahnung, irgendwelche Scherzgolde dann.

00:18:46.853 --> 00:18:51.313
An Werbeprospekt hochladen oder was auch immer und dann eben so als erste Stufe,

00:18:51.373 --> 00:18:55.073
Kleinzeit quasi erstmal ausfiltern kannst mit so einem simplen Classifier,

00:18:55.273 --> 00:18:58.993
sieht das jetzt aus wie ein Reisepass ja oder nein und da hatte ich vorher schon erwähnt,

00:18:59.533 --> 00:19:03.373
strukturelle Ausgabe also da kannst du ihnen dann sagen zum Beispiel schau dir

00:19:03.373 --> 00:19:07.973
das an, das ist das Problem, Reisepass ja oder nein und gib das dann einfach

00:19:07.973 --> 00:19:10.773
als Google zurück, also True-Faults zum Beispiel.

00:19:12.869 --> 00:19:22.069
Okay, verstanden. Und jetzt könnte man ja sagen, warum habt ihr oder warum habt

00:19:22.069 --> 00:19:25.089
ihr den Weg gewählt, sozusagen einzelne APIs,

00:19:25.829 --> 00:19:29.449
dedizierte APIs herauszubringen für bestimmte Use Cases?

00:19:30.409 --> 00:19:36.709
Ihr hättet ja auch theoretisch sagen können, wir machen, so wie das eben bei ChatGPT und Co.

00:19:36.909 --> 00:19:43.289
Ist, einfach nur unsere Prompt-API und am Ende liegt es dann an den BenutzerInnen,

00:19:43.429 --> 00:19:49.129
das mit den entsprechenden Anweisungen eben dann in,

00:19:49.369 --> 00:19:53.429
also daraus einen Writer zu machen oder einen Rewriter.

00:19:53.429 --> 00:19:55.809
Aber warum habt ihr euch entschieden, das so zu machen?

00:19:56.029 --> 00:20:03.649
Ist es, weil das erstmal vielleicht für schnelle Erfolge zeitigt für Leute, die das benutzen?

00:20:03.689 --> 00:20:07.829
Oder ist es vielleicht auch einfach, weil die Large Language Models,

00:20:07.849 --> 00:20:11.829
die dahinter stecken, dann vielleicht auch angepasster und kleiner sein können?

00:20:12.929 --> 00:20:18.349
Also, es gibt verschiedene Gründe. Der erste Grund ist letztendlich Qualität.

00:20:18.749 --> 00:20:22.909
Da ist ein LLM dahinter, hinter diesen APIs, also hinter der Mehrzahl zumindest.

00:20:23.389 --> 00:20:27.029
Transaction und Language Detection nicht. Das ist kein LLM, aber auch ein Modell.

00:20:27.709 --> 00:20:31.229
Und was ich schon gesagt hatte, wenn man weiß, was der Nutzer möchte,

00:20:31.489 --> 00:20:35.889
dann kann man eben sehr genau über Feintuning, über LoRa, die Modelle nochmal,

00:20:36.249 --> 00:20:39.929
ja, quasi das Modell in die richtige Richtung schubsen und eben dann sagen.

00:20:41.089 --> 00:20:44.489
Sei jetzt hier nicht kreativ, sondern bleib sehr, sehr nah am Original dran

00:20:44.489 --> 00:20:47.229
und mach es kürzer, ja, für eine Zusammenfassung zum Beispiel.

00:20:48.829 --> 00:20:52.209
Und ja, letztendlich ist das dann natürlich auch eine Geschichte von,

00:20:52.409 --> 00:20:58.489
das ist ein relativ kleines LLM, also Large Language Model, aber eben doch sehr small relativ gesehen.

00:20:59.069 --> 00:21:04.069
Auf der Harddisk ist es dann derzeit 4,29 Gigabyte, als ich das letzte Mal geschaut habe.

00:21:04.489 --> 00:21:08.749
Das ist natürlich nichts, was hier Gemini, Chat, GPT, Cloud,

00:21:08.909 --> 00:21:12.309
was auch immer Größe hat, wo man dann ganz das Rechenzentrum dafür braucht,

00:21:12.909 --> 00:21:18.749
sondern eben was relativ Kleines, was auch auf jetzt fünf Jahre alten Geräten

00:21:18.749 --> 00:21:22.909
noch funktioniert und da lokale Inferenz erlaubt.

00:21:23.529 --> 00:21:26.969
Und ja, letztendlich auch, muss man ein Stück weit natürlich sagen,

00:21:27.669 --> 00:21:29.029
AI ist ein umstrittenes Thema.

00:21:29.749 --> 00:21:34.649
Nicht jeder ist ein AI-Freund für alles und wenn man eben den Anwendungsfall,

00:21:35.309 --> 00:21:38.729
entkoppeln kann letztendlich von AI und sagen kann, das ist eine Übersetzung

00:21:38.729 --> 00:21:42.869
und das ist eine Zusammenfassung und das ist eine kreative Schreithilfe,

00:21:43.409 --> 00:21:47.909
dann ist eben die Chance größer, dass die anderen Browser-Vendoren dann sagen, okay,

00:21:48.649 --> 00:21:53.429
den Anwendungsfall übersetzen im Browser, das versteht, würde ich sagen,

00:21:53.509 --> 00:21:55.629
nahezu jeder, dass das möglich ist und.

00:21:56.683 --> 00:22:02.963
Dass es relativ unumstritten eine nützliche Komponente ist, die einem der Browser

00:22:02.963 --> 00:22:07.363
natürlich nativ zur Verfügung stellt, aber das frühstückt eben nicht alles ab.

00:22:07.503 --> 00:22:10.803
Also natürlich kann ich dann, wenn ich auf der Browser-Ebene die Übersetzung

00:22:10.803 --> 00:22:13.403
habe, eine japanische Webseite lesen, großartig.

00:22:13.923 --> 00:22:17.863
Aber die ganzen Anwendungsfälle so, ich möchte jetzt, keine Ahnung,

00:22:17.923 --> 00:22:23.623
IRC im Browser bauen und möchte das so machen, dass man quasi Lingua Franca,

00:22:23.803 --> 00:22:27.283
jeder schreibt seine eigene Lingua Franca und das wird dann übersetzt in die

00:22:27.283 --> 00:22:30.923
Sprachen, die alle sprechen oder der Support Agent auf der anderen Seite.

00:22:31.863 --> 00:22:35.303
Und genau das ist eben so der Anwendungsfall, wo wir dann sagen,

00:22:35.403 --> 00:22:39.463
okay, das ergibt dann Sinn zu sagen, wir machen eigene APIs für die verschiedenen

00:22:39.463 --> 00:22:42.063
Anwendungsfälle, um dann eben zu sagen,

00:22:42.663 --> 00:22:47.203
ja, wenn jetzt Apple sagt, okay, wir sind einverstanden, Translation klingt

00:22:47.203 --> 00:22:52.763
nach einer guten API und vielleicht intern sogar machen die das über was anderes als AI,

00:22:53.363 --> 00:22:56.123
solange sie die Schnittstelle implementieren, solange am Ende eine Übersetzung

00:22:56.123 --> 00:22:58.263
rauskommt, ist das eine großartige Geschichte.

00:22:58.503 --> 00:23:00.783
Und genau, das ist letztendlich auch der Ansatz.

00:23:01.383 --> 00:23:05.483
Wir merken bei den Unterhaltungen mit den anderen Vendoren natürlich,

00:23:05.563 --> 00:23:10.803
es gibt teilweise Rückenwind, teilweise aber auch sehr viel Gegenwind und das

00:23:10.803 --> 00:23:12.883
Thema AI ist zu Recht umstritten.

00:23:14.223 --> 00:23:20.223
Viele basteln irgendwie AI rein, weil es der Chef möchte und die Chefin gesagt hat,

00:23:20.343 --> 00:23:24.563
wir müssen jetzt zwingend AI machen und am Ende weiß eigentlich ich keine,

00:23:24.623 --> 00:23:28.783
warum jetzt der Chatbot da ist, aber er ist halt da, um irgendwelche Shareholder

00:23:28.783 --> 00:23:32.303
glücklich zu machen und dann zu sagen, wir sind die,

00:23:32.663 --> 00:23:35.363
keine Ahnung, ABC-Firma, wir stellen,

00:23:36.343 --> 00:23:40.443
Fischbrötchen her, aber die sind jetzt mit AI und deshalb investiert doch in uns.

00:23:43.283 --> 00:23:46.863
Ich könnte mir vorstellen, dass vielleicht ihr bei Google da vorne weg seid,

00:23:48.003 --> 00:23:49.243
liegt ja so ein bisschen auf der Hand.

00:23:49.483 --> 00:23:53.983
Google ist auch stark im AI-Game, Microsoft auch.

00:23:54.283 --> 00:23:59.563
Und Apple Intelligence ist ja so ein bisschen gerade so Mist in Action.

00:24:00.063 --> 00:24:03.923
Die sind da irgendwie gerade noch nicht so vor der Welle, sage ich mal.

00:24:04.023 --> 00:24:07.103
Vielleicht kommt da noch mehr. Hat Siri das nicht auch?

00:24:07.943 --> 00:24:10.403
Siri, ich glaube Siri ist immer noch strunzdumm, oder?

00:24:11.363 --> 00:24:13.963
Ich dachte eigentlich, dass ich letztes Mal das Gespräch hätte,

00:24:14.023 --> 00:24:17.023
dass Siri das ja auch ist, aber es ist halt nicht so gut, weil es ja auch nur

00:24:17.023 --> 00:24:18.463
lokal auf dem Handy läuft.

00:24:19.576 --> 00:24:23.576
Also Siri, die kann sich inzwischen mit, oder der, die, das,

00:24:23.656 --> 00:24:27.416
was auch immer, Legenden oder viele Legenden, ist Siri immer weiblich.

00:24:28.756 --> 00:24:33.856
Ja, also Siri, was auch immer, das kann sich mit ChatGPT verbinden im Hintergrund.

00:24:34.996 --> 00:24:38.116
Das war es, ja. Es macht auch ein paar Sachen, glaube ich, lokal inzwischen

00:24:38.116 --> 00:24:42.676
über lokal LLMs. Natürlich will Apple Handys verkaufen.

00:24:43.416 --> 00:24:48.316
Das heißt, die verknüpfen das dann zwingend an, ich glaube, was ist das, iPhone 15 Plus.

00:24:49.096 --> 00:24:52.616
Also alles größer als iPhone 15 oder größer gleich. Ich glaube,

00:24:52.676 --> 00:24:55.296
das ist so eine Sache, wie viele Hauptspeicher haben die oder so.

00:24:55.716 --> 00:24:59.256
Genau, und da kommt dann das Thema Hardware Requirements eben mit rein.

00:25:00.256 --> 00:25:03.156
Genau, also es ist so eine interessante Geschichte auf jeden Fall.

00:25:03.756 --> 00:25:06.916
Also unsere APIs, muss man gleich vorweg sagen,

00:25:07.356 --> 00:25:12.256
Gemini Nano ist zwar inzwischen Teil von den High-End Pixel Phones,

00:25:12.416 --> 00:25:16.056
also wenn du jetzt einen Pixel 9 oder 8 oder was auch immer kaufst,

00:25:16.456 --> 00:25:20.936
der ist dann Gemini Nano schon mit drin für verschiedene Build-in Android-Funktionen.

00:25:21.936 --> 00:25:27.276
Wir sind aber derzeit noch nicht in der Lage, das auf dem Android Chrome auszuführen,

00:25:27.596 --> 00:25:31.956
einfach weil die Android-Geräte sehr, sehr fragmentiert sind.

00:25:32.096 --> 00:25:38.856
Also es gibt alles von, keine Ahnung, Super Low-End Xiaomi bis zu Super High-End

00:25:38.856 --> 00:25:43.696
Pixel Samsung, keine Ahnung was. Von dem her sind wir da noch ein bisschen zurückhaltend

00:25:43.696 --> 00:25:45.536
im Moment, was Android-Support angeht.

00:25:45.956 --> 00:25:51.456
Das Thema ist auch, die APIs brauchen eine GPU derzeit und unsere Ingenieure

00:25:51.456 --> 00:25:55.296
arbeiten daran, das eben auch auf der CPU auszuführen.

00:25:55.296 --> 00:25:59.696
Auf Android viele Geräte haben inzwischen GPU, aber bei vielen ist das eben

00:25:59.696 --> 00:26:04.256
nur so ein Häkchen, das man setzt als Hersteller, aber letztendlich taugt das dem nichts.

00:26:05.256 --> 00:26:10.376
Und von dem her ist es ein bisschen schwierig zu sagen GPU auf Android,

00:26:10.876 --> 00:26:16.056
weil da ist dann eben bei einer mächtig genügend GPU am Ende nur eine Handvoll

00:26:16.056 --> 00:26:19.096
Geräte, die das tatsächlich möglich machen.

00:26:19.096 --> 00:26:24.716
Und deshalb der Ansatz, dass man das eben versucht, über CPU-Inference abzufrühstücken.

00:26:25.376 --> 00:26:31.696
Und dann gibt es auch, habe ich mir erklären lassen, diesen Ansatz mit Early-Exit,

00:26:31.836 --> 00:26:36.376
also dass du eben nicht bei einem LLM durch alle verschiedenen Stufen des neuralen

00:26:36.376 --> 00:26:38.896
Netzwerks durchgehst, sondern dass du quasi,

00:26:39.116 --> 00:26:41.916
sobald du feststellst, du hast eine gut genüge Antwort,

00:26:42.216 --> 00:26:45.876
dass du daran eben schon früher aussteigst und dann vielleicht keine perfekte

00:26:45.876 --> 00:26:50.276
Antwort auf Desktop-Niveau dem Benutzer lieferst, sondern eine gut genüge Antwort

00:26:50.276 --> 00:26:54.816
eben auch auf mittelprächtigen Android-Geräten ausreicht.

00:26:55.256 --> 00:26:58.316
Und genau, also da sind wir gerade noch dabei zu basteln.

00:26:58.476 --> 00:27:01.336
Also Apple hat da durchaus wahrscheinlich natürlich einerseits Marketing,

00:27:01.596 --> 00:27:04.856
aber andererseits auch ein Stück weit recht, da sie sagen, wir brauchen mindestens

00:27:04.856 --> 00:27:11.716
x Gigabyte GPU, RAM oder Graphic RAM und eben auch eine entsprechende CPU dahinter,

00:27:12.276 --> 00:27:15.296
die dann teilweise noch wahrscheinlich unterstützt, aber ja,

00:27:15.796 --> 00:27:16.956
bei Android sehr, sehr ähnlich.

00:27:18.667 --> 00:27:22.127
Und das bedeutet, also die APIs, über die wir gerade gesprochen haben,

00:27:22.387 --> 00:27:27.667
die stehen im Grunde eher in Desktop-Chromes zur Verfügung.

00:27:28.547 --> 00:27:33.207
Also derzeit unterstützen wir Mac, Windows, Linux.

00:27:33.787 --> 00:27:37.707
Und derzeit unterstützen wir noch nicht Chrome OS.

00:27:38.327 --> 00:27:42.987
Chrome OS, die basteln ja gerade dran, dass sie den Chrome OS Linux-Kern austauschen

00:27:42.987 --> 00:27:44.947
und dahinter Android klemmen.

00:27:45.827 --> 00:27:51.007
Und ja, da ist aber in Arbeit, dass das auf zumindest den besseren Chromebooks,

00:27:51.167 --> 00:27:59.127
es gibt die Chromebook Plus Klasse, die auch AI drin hat sozusagen als zertifizierte Mindest-Hardware,

00:27:59.447 --> 00:28:05.527
dass die zumindest in der Zukunft AI auch lokal ausführen können und dann Android,

00:28:05.647 --> 00:28:09.447
genau, dass man da eben auch guckt, inwieweit mit verschiedenen Tricks,

00:28:09.727 --> 00:28:12.947
über was ich gerade erwähnt hatte, CPU und Early Exit und so weiter,

00:28:13.587 --> 00:28:16.807
da man eben, dass man da eben vielleicht auch über Quantisierung dann an den

00:28:16.807 --> 00:28:20.527
Modellen nochmal ein bisschen schraubt, sodass die noch kleiner werden.

00:28:21.127 --> 00:28:26.027
Die sind zwar schon klein, aber ja, wenn man eben ein 2018er Android-Telefon

00:28:26.027 --> 00:28:29.667
hat, das jetzt nicht zwingend von einem der High-End-Hersteller ist,

00:28:29.847 --> 00:28:33.767
naja, da ist dann eben relativ schnell Ende Gelände und ja, da muss man eben

00:28:33.767 --> 00:28:35.407
schauen, was man da noch möglich machen kann.

00:28:37.147 --> 00:28:41.427
Meinst du mit Mac nur MacBook oder dann auch iPadOS und iOS?

00:28:42.467 --> 00:28:45.487
Ne, also Mac OS, Entschuldigung. Mac OS. Ja.

00:28:46.529 --> 00:28:52.129
Und du meintest, ihr hättet auch Gegenwind bekommen von den anderen Browser-Herstellern.

00:28:52.369 --> 00:28:55.869
Was ist denn so, was kommt da denn so als Gegenwind?

00:28:56.769 --> 00:29:01.749
Also ganz kurz noch zu der Mac-Geschichte. Also iOS, macOS, da gibt es natürlich

00:29:01.749 --> 00:29:06.509
den Chrome, der verwendet aber derzeit nach wie vor den WebKit-Kern.

00:29:06.769 --> 00:29:11.489
Von dem her haben wir da noch nicht die Freiheiten, die wir auf Android dann haben werden.

00:29:12.529 --> 00:29:18.189
Genau, also Gegenwind, ja, letztendlich natürlich einfach die üblichen Geschichten,

00:29:18.529 --> 00:29:25.449
was ist mit Fingerprinting, was ist mit, ja, Identifizierung von den Benutzern und so weiter.

00:29:25.789 --> 00:29:29.949
Es sind sehr, sehr viele Missverständnisse, also ein klassischer Fingerprinting

00:29:29.949 --> 00:29:34.809
Vector, der aufkommt, ist die Misconception, dass das Modell ein Lernen das Modell ist.

00:29:34.809 --> 00:29:38.689
Also was die Leute über ChatGBT und so kennen, du sagst ihm,

00:29:38.769 --> 00:29:42.509
hey, ich bin Vegetarier, bei meinen Rezepten schlag mir bitte niemals was mit Fleisch vor.

00:29:42.869 --> 00:29:46.289
Das merkt sich das LLM natürlich auf dem Server.

00:29:46.869 --> 00:29:50.969
Im Client ist das eben nicht so. Also das heißt, der Angriffsvektor wäre quasi

00:29:50.969 --> 00:29:53.869
zu sagen, der Benutzer ist jetzt auf, keine Ahnung.

00:29:55.669 --> 00:30:02.149
Periodentracker.example.com und erzählt dem LLM alles über was auch immer,

00:30:02.369 --> 00:30:07.629
die Periode und dann kommt der Angriff und, keine Ahnung, das soziale Netzwerk

00:30:07.629 --> 00:30:11.709
und fragt dann so das LLM, hey, übrigens ist dein Benutzer eine Frau und hat

00:30:11.709 --> 00:30:13.149
im Moment seine, oder seine,

00:30:13.729 --> 00:30:17.449
ihre Periode und können wir dann vielleicht irgendwelche, was auch immer,

00:30:19.209 --> 00:30:21.329
dafür getargeteten Anzeigen ausspielen.

00:30:22.209 --> 00:30:25.709
Das ist aber natürlich alles nicht so. Also das LLM lernt nicht.

00:30:25.809 --> 00:30:28.089
Das ist festgebacken im Browser drin.

00:30:28.489 --> 00:30:31.809
Und von dem her ist dieser Angriffsvektor einfach nichtig.

00:30:33.729 --> 00:30:38.169
Aber ja, es kommt natürlich vor als Angriffsvektor. Man muss das dann eben entsprechend

00:30:38.169 --> 00:30:40.869
den Leuten erklären, dass es eben nicht so ist,

00:30:41.769 --> 00:30:47.489
dass die Specserver oder der Specsdraft bisher das aktiv verbietet sozusagen,

00:30:48.069 --> 00:30:52.509
dass es ein lernendes LLM wird oder wenn lernend, dann vielleicht nur lokal

00:30:52.509 --> 00:30:55.509
auf den Origin, also dass eben dein eigener Origin lernen kann,

00:30:55.729 --> 00:30:59.249
dass du eine Frau bist, die ihre Periode hat oder was auch immer,

00:30:59.749 --> 00:31:02.629
aber eben, dass diese Information nicht nach außen kommen kann.

00:31:03.529 --> 00:31:08.349
Und was haben wir noch? Das Thema Testbarkeit, also bei LLMs ist natürlich immer

00:31:08.349 --> 00:31:14.249
das Problem, die sind nicht deterministisch. Wie schreibt man dafür einen Test?

00:31:14.469 --> 00:31:18.349
Also ist das jetzt eine valide Implementierung der API?

00:31:19.209 --> 00:31:24.369
Letztendlich kann man natürlich sagen, wir basteln uns ein LLM,

00:31:24.509 --> 00:31:31.589
das immer Lorem Epsum zurückgibt und das respektiert dann vielleicht die Schnittstellen, die man anbietet.

00:31:32.225 --> 00:31:36.345
Auf der JavaScript-Seite hat, aber natürlich gibt es nichts Nützliches zurück,

00:31:37.045 --> 00:31:38.525
außer man fragt nach Lorem Epsum.

00:31:39.345 --> 00:31:43.585
Aber genau, wie testet man das denn? Und der bisherige Ansatz,

00:31:43.725 --> 00:31:48.845
um jetzt LLMs zu vergleichen, ist halt so eine Art Quizfragen und dann sagst

00:31:48.845 --> 00:31:51.845
du dem LLM, Antworten mit A, B oder C oder was auch immer.

00:31:52.165 --> 00:31:55.485
Und dann guckst du halt, wie oft ist das richtig, was das LLM gesagt hat.

00:31:56.085 --> 00:32:00.485
Da ist dann immer das große Problem, wo kommt denn aus, aus welchem Kulturkreis

00:32:00.485 --> 00:32:01.605
kommt denn dieses Wissen her?

00:32:02.225 --> 00:32:08.245
Und ja, da sind wir beim nächsten großen Gegenwind-Thema. Die ganzen APIs,

00:32:08.425 --> 00:32:13.165
die wir intern inzwischen testbar haben können, schon mehr Sprachen als Englisch,

00:32:13.245 --> 00:32:15.705
aber extern verfügbar machen wir bisher nur Englisch.

00:32:16.165 --> 00:32:19.225
Der Grund dafür ist letztendlich die Sicherheit.

00:32:19.885 --> 00:32:24.545
Ich war Teil so ein bisschen von so einem Test, was jetzt die Safety und Security

00:32:24.545 --> 00:32:25.625
von so einem Model angeht.

00:32:25.705 --> 00:32:28.385
Und da sind eben so Fragen, die man dann dem LLM stellt.

00:32:28.565 --> 00:32:33.125
Und das antwortet dann eben teilweise auf sehr ehrliche Art und Weise.

00:32:33.285 --> 00:32:36.845
Also du fragst das LLM so, ist es effizienter, wenn ich mich umbringen will,

00:32:36.925 --> 00:32:40.825
von der Brücke zu springen oder vor die S-Bahn zu hüpfen? und dann sagt das

00:32:40.825 --> 00:32:43.505
LLM eben, ja, wenn du dich wirklich umbringen willst, jada, jada.

00:32:44.345 --> 00:32:47.665
Und das sollte natürlich nicht passieren. Auf Englisch sagt das dann so,

00:32:47.785 --> 00:32:51.665
such dir Hilfe und das ist die Telefonnummer und diese Telefonnummer,

00:32:51.765 --> 00:32:54.665
die du dann sagst, ist nicht irgendwie eine halluzinierte Nummer,

00:32:54.865 --> 00:32:58.065
sondern das ist eine echte Nummer, die dann halt tatsächlich existiert.

00:32:58.725 --> 00:33:02.685
Und ja, wenn du das eben dann naiv quasi übersetzt auf andere Sprachen,

00:33:02.865 --> 00:33:08.185
dann schlägt das dir halt irgendwie 1-800-Suicide-Help oder so vor und das hilft

00:33:08.185 --> 00:33:12.285
uns in Deutschland natürlich nicht, wenn wir unsere LLM dann das ausgeben lassen.

00:33:12.585 --> 00:33:17.865
Also sprich in diese Richtung, ja, Security, Safety, was kann man da machen?

00:33:18.145 --> 00:33:21.865
Das Web ist für alle da und wenn man dann eben eine API einführt,

00:33:22.125 --> 00:33:28.245
die für englisch primär englische Inhalte gut ist, was bedeutet das dann eben

00:33:28.245 --> 00:33:30.365
für die globale Nützlichkeit des Webs?

00:33:30.925 --> 00:33:34.545
Ist alles in Arbeit, aber natürlich ist es so ein.

00:33:35.682 --> 00:33:39.662
Hier ein Ansatz, wo man dann halt sagt, man guckt Englisch, natürlich die meistgenutzte

00:33:39.662 --> 00:33:42.762
Sprache und dann guckt man so, wir nennen das teilweise Fix,

00:33:42.942 --> 00:33:44.462
also French, Italian, German, Spanish.

00:33:45.222 --> 00:33:49.722
Dann gibt es natürlich die CJK, glaube ich, nennt sich das?

00:33:50.122 --> 00:33:55.002
Chinese, Japanese, Korean, also die asiatischen Skriptsprachen.

00:33:55.602 --> 00:34:00.382
Und ja, wir waren jetzt gerade bei der IEO Connect in Indien und Indien hat

00:34:00.382 --> 00:34:04.842
natürlich nochmal keine Ahnung, wie viele Sprachen und da kam natürlich auch die Frage so,

00:34:05.302 --> 00:34:11.582
ich spreche die und die Sprache, die in Südost-West-Mittel-Kleinindien gesprochen wird,

00:34:12.262 --> 00:34:14.322
wann wird denn das LLM dafür Unterstützung

00:34:14.322 --> 00:34:17.562
bekommen und da muss man halt wahrscheinlich ganz ehrlich sagen.

00:34:18.762 --> 00:34:22.502
Wahrscheinlich nicht mehr in diesem Jahrhundert oder, keine Ahnung,

00:34:22.582 --> 00:34:27.382
mal gucken, wie die technischen Fortschritte sind, aber so, wo wir derzeit sind,

00:34:27.842 --> 00:34:33.222
naja, es wird dauern, bis dein Dialekt unterstützt wird oder deine Sprache.

00:34:33.902 --> 00:34:38.462
Und genau, also da gibt es zu Recht, würde ich sagen, Gegenwind und auch deshalb

00:34:38.462 --> 00:34:42.562
finde ich diesen runtergedröselten Ansatz auch sehr, sehr gut, dass man sagt,

00:34:43.442 --> 00:34:47.682
wir machen jetzt nicht eine AI-API für alles, sondern wir versuchen eben,

00:34:47.742 --> 00:34:49.702
das Ganze zu abstrahieren und zu sagen, ja,

00:34:50.122 --> 00:34:53.362
es ist jetzt bei uns vielleicht in Chrome mit AI implementiert,

00:34:53.402 --> 00:34:57.542
aber wenn du eine, was auch immer, regelbasierte, also ich habe mir sagen lassen,

00:34:57.542 --> 00:35:00.902
zum Beispiel Language Tool für Katalanisch, meine Frau kommt aus Katalonien.

00:35:01.782 --> 00:35:05.902
Da ist keinerlei AI dahinter, das sind einfach nur letztendlich eine Folge von,

00:35:06.758 --> 00:35:11.098
Hunderten von regulären Ausdrücken und wenn du deine Proofreader-API über sowas

00:35:11.098 --> 00:35:15.178
implementieren möchtest, fein, warum auch nicht, da muss kein AI dahinter stecken.

00:35:15.718 --> 00:35:21.338
Am Anfang hatten wir alles hinter dem window.ai-Namespace und da kam eben auch

00:35:21.338 --> 00:35:23.518
von Apple das Feedback so, hey,

00:35:23.858 --> 00:35:28.738
AI ist jetzt endlich eine Technologie, was, wenn wir in zehn Jahren über AI

00:35:28.738 --> 00:35:31.518
lachen und das einfach kein heißes Thema mehr ist.

00:35:31.518 --> 00:35:35.838
Und dann haben wir diese JavaScript-APIs festgebacken im Browser.

00:35:36.158 --> 00:35:39.258
Also wir können ja nach wie vor Marquee und was auch immer Blink-Tags nutzen.

00:35:39.358 --> 00:35:43.238
Das funktioniert alles noch, obwohl das vor 100 Jahren implementiert wurde oder

00:35:43.238 --> 00:35:47.318
spezifiziert wurde oder von Netscape irgendwann mal in den Browser geklöpelt

00:35:47.318 --> 00:35:49.778
wurde. Aber das können wir alles nach wie vor nutzen.

00:35:49.978 --> 00:35:54.058
Und das Ziel ist letztendlich auch bei diesen APIs, dass die in 20,

00:35:54.178 --> 00:35:59.598
30 Jahren auch noch nützlich sind und nutzbar mit sinnvollen Informationen hoffentlich.

00:36:00.238 --> 00:36:05.338
Und genau, also das sind so ein paar Gegenwind-Themen und man muss eben einfach

00:36:05.338 --> 00:36:09.878
schauen, was kann man da tatsächlich realistisch tun?

00:36:09.878 --> 00:36:14.258
Ist es nützlicher, jetzt vielleicht mal auf Englisch zu starten und dann vielleicht

00:36:14.258 --> 00:36:20.838
in zwei Jahren, keine Ahnung, kleinere Sprachen wie Katalanisch nachzuliefern

00:36:20.838 --> 00:36:24.518
und zwischendrin guckt man, dass man Französisch und Deutsch hinbekommt?

00:36:24.978 --> 00:36:28.998
Oder ist es nützlicher zu warten, bis man dann in, keine Ahnung,

00:36:29.078 --> 00:36:32.518
20 Jahren alle Sprachen der Erde unterstützen kann, aber ja,

00:36:32.778 --> 00:36:35.898
dann eben erst in 20 Jahren oder was auch immer.

00:36:36.018 --> 00:36:38.738
Also von dem her ist es dann auch immer so eine gewisse Kompromissfrage,

00:36:38.798 --> 00:36:42.238
wo man sagen kann, ja, was ist denn jetzt im Moment sinnvoller?

00:36:44.037 --> 00:36:47.837
Ja, den Punkt kann ich sogar relativ gut nachvollziehen. Jetzt den letzten mit

00:36:47.837 --> 00:36:52.697
dem Gegenwind, dass es für alle da ist und nur auf Englisch ist vielleicht zu limitierend.

00:36:52.777 --> 00:36:55.357
Es geht ja, wie du meintest, nicht nur um die Sprache Englisch,

00:36:55.517 --> 00:36:59.537
sondern dann auch über die Eigenschaften von dann der Region.

00:36:59.537 --> 00:37:02.377
Und da fangen wir zwei Sachen dazu ein.

00:37:02.557 --> 00:37:08.197
Bei ChatGPT habe ich schon auch das Problem, wenn ich auch Englisch schreibe,

00:37:08.657 --> 00:37:11.837
dann bekomme ich manchmal oder irgendwas auf Frage und dann kommt irgendwie

00:37:11.837 --> 00:37:13.457
eine Produktwebseite zurück.

00:37:13.597 --> 00:37:18.617
Kauft das im Shop hier bei Amazon UK? Und was weiß ich, was weiß ich.

00:37:19.197 --> 00:37:21.137
Nein, kann ich nicht.

00:37:21.877 --> 00:37:27.257
Oder es ging mir bei vielen Apple Keynotes so, wenn irgendwas vorgestellt wurde.

00:37:27.257 --> 00:37:34.297
Ich glaube, es war immer dieses Apple-Paket, wo dann diese tausend Newsletter

00:37:34.297 --> 00:37:39.117
oder Artikel oder Magazine dabei waren, aber die gab es einfach nie in Europa, glaube ich.

00:37:39.197 --> 00:37:42.817
Das hilft mir ja nichts und fühlt man sich echt immer so ein bisschen außen

00:37:42.817 --> 00:37:46.177
vor gelassen. Also, Amerika interessiert sich mal wieder für Europa überhaupt nicht.

00:37:47.557 --> 00:37:51.037
Das ist tatsächlich schon irgendwie so ein wichtiger Punkt. Was ich nicht so

00:37:51.037 --> 00:37:53.277
ganz verstanden habe, war eigentlich jetzt die Testbarkeit.

00:37:53.557 --> 00:37:57.077
Denn das wäre ja für mich das gleiche Argument immer mit AI.

00:37:57.437 --> 00:38:01.157
Egal, ob im Browser, egal, ob offline, egal oder ob lekal. Aber wie Test,

00:38:01.377 --> 00:38:04.437
das muss man ja immer irgendwie testen.

00:38:04.477 --> 00:38:08.117
Das ist ja das gleiche Argument, auch wenn das online und mit Servern läuft.

00:38:08.457 --> 00:38:10.797
Oder ist das irgendwie, oder habe ich da was verpasst?

00:38:11.476 --> 00:38:17.156
Ja, also die Hauptfrage natürlich ist letztendlich, jeder Browser-Vendor verwendet

00:38:17.156 --> 00:38:18.956
sein eigenes Modell, vermutlich.

00:38:19.296 --> 00:38:23.116
Es gibt natürlich Open-Wades-Modelle, wo man dann sagen könnte,

00:38:23.796 --> 00:38:27.736
Firefox vielleicht als offener Browser, der verwendet jetzt ein offenes Modell,

00:38:27.856 --> 00:38:29.396
das sie vielleicht sogar selber gebastelt haben.

00:38:29.396 --> 00:38:34.656
Aber die Frage dann natürlich ist, wie will zu testen, ob diese API gut genug

00:38:34.656 --> 00:38:37.596
ist für die Anwendungsfälle, die die Leute dafür gebastelt haben.

00:38:37.736 --> 00:38:42.496
Und da ist dann immer das große Risiko, dass die Leute ihre Apps bauen und dann

00:38:42.496 --> 00:38:47.396
eben in Chrome testen und dann merken, okay, Gemini Nano hat irgendwie eine

00:38:47.396 --> 00:38:50.196
bestimmte Tendenz, keine Ahnung,

00:38:50.556 --> 00:38:54.316
immer zu antworten mit was auch immer, in eine Richtung zu gehen.

00:38:54.316 --> 00:38:57.416
Und dann korrigierst du das in dein Prompt und sagst ihm so,

00:38:58.276 --> 00:39:01.256
falls du tendierst in diese Richtung, mach das nicht, sondern,

00:39:01.576 --> 00:39:04.276
keine Ahnung, mach das und das anstelle.

00:39:05.196 --> 00:39:10.236
Und wenn du dann eben so ein Prompt-ingeniertes Prompt hast und dann testest

00:39:10.236 --> 00:39:11.736
du das das erste Mal in einem anderen Browser,

00:39:12.436 --> 00:39:16.676
dann ist das vielleicht eine komplett andere Art von Grenzfällen,

00:39:16.736 --> 00:39:23.616
auf die du dann stößt und vielleicht deine in Chrome-Nano-nützlichen oder Gemina Nano nützlichen, ja,

00:39:23.956 --> 00:39:28.696
Feintunings über das Prompt oder über dein eigenes System-Prompt sind dann vielleicht

00:39:28.696 --> 00:39:30.796
sogar kontraproduktiv auf einem anderen Browser.

00:39:31.436 --> 00:39:34.676
Und ja, das lässt sich halt nicht so einfach testen wie jetzt,

00:39:35.016 --> 00:39:38.416
keine Ahnung, Document Query Selector, wo es einfach eine absolute Wahrheit gibt.

00:39:38.596 --> 00:39:43.996
Was ist die richtige Antwort auf Document Query Selector H1 und dann hast du

00:39:43.996 --> 00:39:47.396
halt eine Testseite mit fünf H1s und dann müssen halt fünf H1s am Ende rauskommen.

00:39:48.056 --> 00:39:51.696
Wie testest du eine Prompt-API, wo du halt überhaupt nicht weißt,

00:39:52.116 --> 00:39:53.616
in welche Richtung soll es das gehen?

00:39:54.036 --> 00:39:58.376
Und das macht schon die Vendoren einigermaßen nervös.

00:39:59.602 --> 00:40:04.082
Unsere Antwort lautet, ja, letztendlich, wir versuchen natürlich,

00:40:04.402 --> 00:40:08.282
das Modell generisch zu machen, also nicht irgendwie super opinionated,

00:40:08.462 --> 00:40:10.522
also dass es nicht irgendwie so ein, keine Ahnung,

00:40:11.002 --> 00:40:14.902
Modell ist, das zu Spaß an Worten neigt oder so, sondern halt ein einigermaßen

00:40:14.902 --> 00:40:16.662
neutrales Modell im Sinne von,

00:40:17.402 --> 00:40:20.342
ja, dass es eben vorhersagbare mehr oder weniger Antworten gibt,

00:40:20.402 --> 00:40:26.422
aber ja, vorhersagbar ist halt bei LLMs, ja, ein relativ dehnbarer Begriff.

00:40:26.422 --> 00:40:29.522
Genau, aber dann, dass man eben das Modell auch ein Stück weit,

00:40:29.662 --> 00:40:35.122
ja, in die richtige Richtung prügeln kann im Sinne von struktureller Ausgabe,

00:40:35.542 --> 00:40:37.962
eine strukturierte Ausgabe, dass du dann sagen kannst.

00:40:39.082 --> 00:40:44.022
Ich bin jetzt, was auch immer, baue mir ein CMS und möchte da die Prompt API

00:40:44.022 --> 00:40:48.962
benutzen, um zum Beispiel für meinen Blogpost Hashtags mir vorgeschlagen zu bekommen.

00:40:48.962 --> 00:40:53.262
Und dann sagst du eben, okay, das ist das JSON, das ich zurückbekommen möchte,

00:40:53.682 --> 00:40:58.902
ein Array von maximal fünf Hashtags und diese Hashtags haben eben alle das Hashtag-Symbol

00:40:58.902 --> 00:41:02.442
am Anfang und dürfen keine Leerzeichen enthalten, sondern nur,

00:41:02.462 --> 00:41:06.782
keine Ahnung was, reguläre Buchstaben und keine Emojis im Hashtag und was auch immer.

00:41:06.782 --> 00:41:11.782
Also, dass du eben dann auf diese Art und Weise eben über die strukturierte

00:41:11.782 --> 00:41:14.662
Ausgabe sagst, was möchtest du eigentlich haben.

00:41:15.082 --> 00:41:20.162
Dann gibt es noch die Möglichkeit, dass du eben sagst, ein Prefix quasi,

00:41:20.262 --> 00:41:24.542
also wenn du möchtest, dass die Ausgabe anfängt mit zum Beispiel einem,

00:41:24.742 --> 00:41:29.982
keine Ahnung, YAML, wie heißt das, Template, nicht Template, ähm.

00:41:30.966 --> 00:41:34.566
Bei Blogposts, wie nennt sich das immer, dieser YAML-Blog am Anfang.

00:41:35.486 --> 00:41:41.566
Dieses Frontmeta-Ding? Genau, Frontmeta, danke, Frontmeta, genau, dass du eben sagst,

00:41:42.386 --> 00:41:45.786
hier, das soll mit diesem Frontmeta anfangen, zwingend über ein Prefix,

00:41:46.226 --> 00:41:49.566
was es sich nicht vielleicht zwingend darstellen lässt als regulärer Ausdruck

00:41:49.566 --> 00:41:53.806
oder als JSON-Schema, das wir verwenden für strukturierte Ausgabe,

00:41:54.306 --> 00:41:58.066
dass du das dann über so eine Art Prefix eben und vielleicht sogar in Kombination

00:41:58.066 --> 00:42:02.666
Prefix und strukturierte Ausgabe dass du eben dann auf diese Art und Weise das

00:42:02.666 --> 00:42:07.026
Modell erzwingst, in eine Richtung zu gehen, was es die Antwort angeht.

00:42:07.426 --> 00:42:10.306
Aber ja, letztendlich müssen wir einfach sehen, in welche Richtung das dann

00:42:10.306 --> 00:42:15.606
gehen wird mit den Apps, wenn die Leute jetzt mal anfangen, sich irgendwelche

00:42:15.606 --> 00:42:21.086
Sachen zusammenzubasteln und dann eben auf verschiedenen Browsern das testen, hoffentlich.

00:42:21.826 --> 00:42:26.226
Und ja, das wird eine spannende Geschichte. Je freier natürlich der Anwendungsfall,

00:42:26.446 --> 00:42:30.226
umso gefährlicher, dass dann was schief geht, Bei einer Übersetzung,

00:42:30.486 --> 00:42:33.766
ja, natürlich, es gibt verschiedene Übersetzungs-Engines heute schon,

00:42:34.486 --> 00:42:38.126
die einen verwendet DeepL, die einen verwendet Google Translate oder was auch

00:42:38.126 --> 00:42:41.826
immer, aber es gibt verschiedene Benchmarks, die dann eben sagen,

00:42:41.926 --> 00:42:44.946
ist das eine gute Übersetzung, also es gibt so den Blü-Score zum Beispiel.

00:42:45.706 --> 00:42:51.946
Der bei Übersetzungen eben hilft, auf akademischer, wissenschaftlicher Ebene

00:42:51.946 --> 00:42:54.406
quasi zu sagen, ist das eine gute Übersetzung, ja oder nein.

00:42:54.406 --> 00:43:01.406
Und ich denke, man wird dann für die LLMs auch so eine Art dehnbaren Benchmark-Prozess

00:43:01.406 --> 00:43:04.786
finden, der dann eben sagt, okay, wir haben jetzt hier,

00:43:05.246 --> 00:43:12.586
keine Ahnung, 50 Fragen aus 100 verschiedenen Kulturen, die alle Wissensebenen

00:43:12.586 --> 00:43:17.686
abdecken und dein LLM, das du jetzt hier testest, hat einen Score von 80 erreicht.

00:43:17.686 --> 00:43:21.546
Das ist dann gut genug und dein anderes LLM, das du verwenden möchtest,

00:43:21.666 --> 00:43:25.006
hat vielleicht nur 50 erreicht, das ist dann nicht gut genug und dass man auf

00:43:25.006 --> 00:43:28.726
diese Art und Weise dann vielleicht irgendwann in der Zukunft sagen kann,

00:43:29.146 --> 00:43:33.586
ja, das ist eine valide Implementierung der API, nicht nur was die Schnittstellen angeht.

00:43:33.586 --> 00:43:38.446
Und dann muss man auch sagen, das Modell ist ganz bewusst nicht Teil der Spezifizierung,

00:43:38.586 --> 00:43:41.706
also was auch immer der Browser-Vendor dann dahinter klemmt,

00:43:41.766 --> 00:43:46.806
das ist einfach nur deren eigene Aufgabe, das dann eben mächtig genug zu machen

00:43:46.806 --> 00:43:50.706
und genau in diese Richtung geht dann eben die Forschung,

00:43:50.806 --> 00:43:56.126
also Microsoft hat ein bisschen vorbearbeitet und dort einen Anwendungsfall

00:43:56.126 --> 00:44:01.506
einfach über die API mal getestet mit verschiedenen Fragen, Aber ja,

00:44:01.686 --> 00:44:03.646
da kommt dann eben dieses Problem hinzu,

00:44:03.906 --> 00:44:08.786
ja, das ist alles aus dem amerikanischen Wissenskreis, was dieser Benchmark,

00:44:08.926 --> 00:44:12.706
also das kommt jetzt aus der klassischen LLM-Forschung, was dieser Benchmark.

00:44:14.204 --> 00:44:18.164
L&M-Fragebogen letztendlich getestet hat, da kam dann noch raus,

00:44:18.264 --> 00:44:19.864
es gibt ein Paper, das dann sagt,

00:44:20.064 --> 00:44:23.804
ja, also dieser Fragebogen ist sogar nicht wirklich 100% gültig,

00:44:23.864 --> 00:44:27.284
weil für verschiedene Antworten gibt es oder für verschiedene Fragen gibt es

00:44:27.284 --> 00:44:29.344
mehr als eine gültige Antwort und so weiter.

00:44:30.004 --> 00:44:32.864
Also so klassischer, wer wird Millionär? Und dann kommt irgendein Anwalt und

00:44:32.864 --> 00:44:37.064
sagt dann so, ja, aber unter diesem tatsächlichen Fall wäre dann C tatsächlich

00:44:37.064 --> 00:44:38.364
doch die richtige Antwort gewesen.

00:44:39.324 --> 00:44:41.944
Und in diese Richtung geht eben die Forschung dann, wo man sagt,

00:44:42.064 --> 00:44:49.164
okay, wie kann man das so testen, dass es am Ende dann eben eine gut genüge,

00:44:49.164 --> 00:44:53.024
in Anführungszeichen, Emremittierung ist, vorhersagbar, mehr oder weniger.

00:44:54.104 --> 00:44:59.184
Ja, nicht einfach. Aber man könnte vielleicht ja erst mal damit starten,

00:44:59.184 --> 00:45:03.184
dass man einfach nur funktional vielleicht die API abtestet.

00:45:03.964 --> 00:45:10.824
Also wenn ich irgendwie eine gültig geformte Eingabe mache, kriege ich dann

00:45:10.824 --> 00:45:14.444
eine Ausgabe oder einen Fehler. Ist ja auch schon mal gut.

00:45:16.864 --> 00:45:21.244
Ich verstehe. Also nicht alles ist ... Ja, Tom, sprich gerne aus.

00:45:23.464 --> 00:45:27.124
Ich wollte nur sagen, also nicht alle Fälle sind ja tatsächlich super zu eifern.

00:45:27.264 --> 00:45:31.724
Also man kann zum Beispiel, was ich vorher erwähnt hatte, diesen Reisepass-Ja-Nein-Fall,

00:45:32.084 --> 00:45:34.124
das kann man ja ganz objektiv testen.

00:45:34.224 --> 00:45:36.384
Also da gibt es einfach nur eine richtige oder eine falsche Antwort.

00:45:37.684 --> 00:45:42.404
Natürlich, dann gibt es schon wieder so, wie unscharf darf der Reisepass noch

00:45:42.404 --> 00:45:46.184
sein, wo man dann sagt, oder keine Ahnung, wenn ich jetzt den Reisepass in die

00:45:46.184 --> 00:45:49.384
Kamera halte, aber es sind zwei Reisepasse zu sehen.

00:45:49.504 --> 00:45:52.224
Also man muss schon ein bisschen aufpassen, aber letztendlich kann man sich

00:45:52.224 --> 00:45:54.844
dann wahrscheinlich einigen, was ist noch gültig und was nicht gültig.

00:45:55.104 --> 00:45:57.944
Also nicht alles ist super schwierig dann.

00:46:00.064 --> 00:46:04.684
Als Testanwendungsfall rauszuhiltern. Aber klar, man hat für verschiedene so,

00:46:05.504 --> 00:46:08.244
Write me a poem, schreib mir ein Gedicht.

00:46:09.384 --> 00:46:13.924
Was ist da eine gute Antwort? Oder muss es sich reimen? Muss es ein Reimschema erfüllen?

00:46:14.644 --> 00:46:19.824
Ja, also vielleicht braucht es auch gar keine Testbarkeit für solche kreativen

00:46:19.824 --> 00:46:25.084
Fälle, weil jede kreative Antwort ist vielleicht gut und dann spielt der Benutzer

00:46:25.084 --> 00:46:27.684
vielleicht einfach nur ein bisschen hin und her und schaut dann.

00:46:28.424 --> 00:46:32.024
Aber ja, letztendlich für eine Anwendungswelle braucht man halt mehr oder weniger

00:46:32.024 --> 00:46:35.664
Vorhersagbarkeit. So, Vanessa, jetzt du.

00:46:36.404 --> 00:46:41.884
Ich sehe die Problematik auf jeden Fall und ich sehe sie sogar stärker jetzt als andere.

00:46:42.224 --> 00:46:47.204
Ich habe mich eigentlich auf diesen Gegenwind vorbereitet im Sinne von dann

00:46:47.204 --> 00:46:50.124
die User Experience, jetzt gar nicht so in Testbarkeit von API.

00:46:50.864 --> 00:46:53.444
Es ist vielleicht das Gleiche, aber da hatte ich jetzt gar nicht in erster Linie

00:46:53.444 --> 00:46:56.184
so dran gedacht, aber das Beispiel mit den Passports.

00:46:57.937 --> 00:47:02.257
Es ist ja jetzt schon irgendwie so, dass End-User werden dann was im Browser

00:47:02.257 --> 00:47:06.677
ausführen und Webseiten werden dann ein Ergebnis liefern.

00:47:06.897 --> 00:47:11.357
Aber das Ergebnis kam halt vielleicht auch dann eigentlich von der LML,

00:47:11.797 --> 00:47:16.037
wo jetzt die Webseite, die ja auch nur ein Nutzer dann davon ist.

00:47:17.437 --> 00:47:22.397
Und früher, vor ein paar Jahren, habe ich das erste AI-Feature mal entwickelt,

00:47:22.677 --> 00:47:25.937
das hat, ich glaube, Prompts zu OpenAI einfach nur geschickt.

00:47:27.717 --> 00:47:33.277
Zu GPT-3, 5 Turbo war das noch. Und da war natürlich, dann hat man halt so verschiedene

00:47:33.277 --> 00:47:34.877
Ebenen von Fehlerquellen.

00:47:35.077 --> 00:47:38.337
Und ich finde es in der User Experience teilweise relativ schwer zu erklären,

00:47:38.797 --> 00:47:42.397
wenn was schiefgelaufen ist, was schiefgelaufen ist. War es die AI?

00:47:42.737 --> 00:47:45.597
War es die eigene Webseite? War es irgendwie was anderes?

00:47:46.217 --> 00:47:53.217
Und da gibt es ja auch so ein paar lustige Studien über auch so Themen wie, wenn man bei iOS-Apps,

00:47:54.037 --> 00:47:57.697
einen Loading-Spinner verwendet, der so ausschaut wie der Apple-Native,

00:47:57.897 --> 00:48:01.817
dann schieben die Leute die Schuld zu Apple und sagen, ah, das iPhone ist langsam

00:48:01.817 --> 00:48:06.637
versus wenn man seinen eigenen Firmen-Gebrandet, das Logo, das Icon verwendet,

00:48:06.717 --> 00:48:09.537
dann sagt man, ah, die App von XY ist langsam.

00:48:10.697 --> 00:48:13.917
Und ja, wahrscheinlich muss man da halt schon auch für die User-Experience dann

00:48:13.917 --> 00:48:16.837
ein bisschen aufpassen, weil ich sehe das jetzt schon reinrennen,

00:48:16.957 --> 00:48:20.037
in dass jemand einen komplett validen Passport da hochgeladen hat,

00:48:20.037 --> 00:48:21.797
Aber es ist jetzt trotzdem gefällt.

00:48:21.977 --> 00:48:27.217
So ein typisches Ding auch, wie das User Formulare ausfüllen mit ihrem Vornamen

00:48:27.217 --> 00:48:29.117
und ihr Vorname hat aber nur zwei Buchstaben.

00:48:29.197 --> 00:48:31.957
Aber irgend so ein Webdeveloper dachte sich, ich mache hier eine Validierung,

00:48:32.117 --> 00:48:35.657
ich bin klug, mache hier mindestens drei Buchstaben, verlange ich bitteschön.

00:48:35.657 --> 00:48:40.097
Und dann braucht man natürlich dann wieder eine gute Fehlerbehebung für solche

00:48:40.097 --> 00:48:44.797
Fälle, dass die User halt dann trotzdem irgendwie ihren Passwort da weiter durchkriegen

00:48:44.797 --> 00:48:49.177
zu dem Menschen, der oder die das dann tatsächlich wieder weiterverwalten kann.

00:48:49.357 --> 00:48:54.197
Ist wahrscheinlich dann die Aufgabe der App- und Webseitenentwickler,

00:48:54.277 --> 00:48:57.597
Entwicklerinnen, dass man da die Fallbacks irgendwie noch mit reinbaut.

00:48:58.406 --> 00:49:03.426
Ja, auf jeden Fall. Also ich denke, da werden wir als Entwicklergemeinschaft

00:49:03.426 --> 00:49:05.046
sehr viel lernen noch in puncto B.

00:49:05.926 --> 00:49:10.626
Ja, sieht denn Fehlerbehebung aus? Wie lässt man den Benutzer dann vielleicht

00:49:10.626 --> 00:49:15.786
doch noch an der AI vorbei ins System rein und sagt dann eben Report Feedback

00:49:15.786 --> 00:49:19.406
und dann guckt sich am Ende jemand an, was war denn das Problem?

00:49:20.266 --> 00:49:25.166
Und ja, letztendlich als Entwickler ist man dann immer so ein bisschen abhängig

00:49:25.166 --> 00:49:28.866
natürlich von seinem Serviceanbieter, also der API, die man auch ruft,

00:49:29.186 --> 00:49:33.046
die jetzt vielleicht in der Cloud ist, dann kriegst du vielleicht als Wald-

00:49:33.046 --> 00:49:38.646
und Wiesen-Anbieter hier in Deutschland von OpenAI jemand ans Telefon und kannst ihm dann sagen so.

00:49:39.646 --> 00:49:44.346
Hey, das ist der Anwendungsfall, könnt ihr euer LLM mal dafür korrigieren.

00:49:44.346 --> 00:49:47.746
Und natürlich, ja, die Wahrscheinlichkeit, dass dann was passiert,

00:49:47.826 --> 00:49:51.666
ist eher gering, ohne das jetzt natürlich auf OpenAI zu bashen.

00:49:51.766 --> 00:49:54.406
Das ist bei Google natürlich genauso, wenn du da kommst und sagst,

00:49:54.646 --> 00:49:58.086
hier, ich habe der AI das gesagt und das kam raus.

00:49:59.166 --> 00:50:04.126
Klar, da wird sich jemand das anschauen, aber letztendlich, man kann so einem

00:50:04.126 --> 00:50:08.126
LLM auch nur ein Stück weit beibringen, was die richtige Antwort ist.

00:50:08.346 --> 00:50:13.766
Und natürlich ist das dann auch erst in der nächsten Generation dann tatsächlich

00:50:13.766 --> 00:50:21.706
nutzbar und kommt dann vielleicht mit anderen Viererquellen noch in Zusammenspiel sozusagen.

00:50:21.706 --> 00:50:27.186
Sagen, ich denke, diese ganzen, ja, Anwendungsfälle und Probleme,

00:50:27.386 --> 00:50:30.286
die werden wir alle noch finden, da werden wir noch reinlaufen.

00:50:31.366 --> 00:50:34.726
Mir ist auch immer ganz wichtig, was ich ja vorher schon erwähnt hatte,

00:50:34.846 --> 00:50:40.746
so, nicht alles braucht AI, also auch ein bisschen dem Hype zu widerstehen und dann zu sagen, ja,

00:50:41.671 --> 00:50:45.851
Ein regulärer Ausdruck ist jetzt hier vielleicht die bessere Anwendungslösung,

00:50:45.951 --> 00:50:53.171
als jetzt ein LLM drauf zu hauen oder vielleicht LLM könnte vielleicht den Anwendungsfall

00:50:53.171 --> 00:50:56.611
erfüllen, aber es gibt speziellere, kleinere Modelle,

00:50:56.931 --> 00:51:00.971
die ich dann vielleicht kleinzeitig oder auf dem Server ausführen kann,

00:51:01.171 --> 00:51:03.311
die dann eben genau dafür gebastelt sind.

00:51:03.311 --> 00:51:08.731
Und die sind dann eben zwei Megabyte groß nur und ich brauche dafür eine Runtime

00:51:08.731 --> 00:51:12.971
wie Transformers.js oder was auch immer, MediaPipe, um das dann im Browser auszuführen.

00:51:14.371 --> 00:51:17.651
Aber ja, da kommt man dann eben wieder in diesen, was ich vorher erwähnt hatte,

00:51:17.651 --> 00:51:21.291
diesen Prozentbereich, wo man sagt so 80, 20, 70, 30, was auch immer,

00:51:22.131 --> 00:51:25.951
wo man dann eben sagt, okay, das ist dann vielleicht einfach der Fall,

00:51:26.031 --> 00:51:30.651
wo man sagt, okay, da möchte man jetzt ein spezielles Modell, das kein LLM ist.

00:51:30.651 --> 00:51:34.211
Also nicht alle AI ist ja Gen-AI, sondern es gibt auch ganz,

00:51:34.291 --> 00:51:39.251
ganz viel klassische AI, die vor Gen-AI dran war und die auch super mächtig ist.

00:51:40.151 --> 00:51:44.631
Also Anwendungsfälle wie TensorFlow.js, da hat man ja vielleicht die ganzen

00:51:44.631 --> 00:51:46.671
Demos mal gesehen, so Hand-Tracking,

00:51:46.911 --> 00:51:52.811
großartige Sache funktioniert, oder Post-Detection, man macht seine Gymnastikübungen

00:51:52.811 --> 00:51:57.431
und das Ding zählt dann eben super akkurat die Anzahl der Liegestützen, die man macht,

00:51:58.091 --> 00:52:01.111
was dann wahrscheinlich sieben sind. und dann bricht man auf dem Boden zusammen.

00:52:01.691 --> 00:52:05.631
Und das LLM ist dann zum Glück etwas nachgiebiger als der Fitnesstrainer.

00:52:06.591 --> 00:52:09.431
Genau, also in diese Richtung, ja, einfach auch ein bisschen,

00:52:09.751 --> 00:52:13.131
würde ich sagen, schauen, in welche Richtung möchte man dann gehen.

00:52:13.311 --> 00:52:17.671
Muss alles wirklich Gen-AI sein, LLMs sein, kann man vielleicht mit etwas anderem

00:52:17.671 --> 00:52:19.671
auch seinen Anwendungsfall abdecken.

00:52:21.511 --> 00:52:26.151
Also im Grunde kann man sagen, reiten diese neuen APIs oder sind die inspiriert

00:52:26.151 --> 00:52:28.271
letztlich durch die Möglichkeiten von AI,

00:52:28.271 --> 00:52:35.411
aber eben auch nur das und ein Teil davon wird wahrscheinlich auch tatsächlich

00:52:35.411 --> 00:52:41.971
Gen-AI getrieben bleiben und ein großer Teil vielleicht auch einfach nicht.

00:52:42.091 --> 00:52:45.831
Du hast ja die Beispiele genannt, gerade die Translation-Geschichten,

00:52:46.111 --> 00:52:51.591
DeepL und Google Translate gibt es ja auch schon ewig und sind mega und nutzen

00:52:51.591 --> 00:52:53.371
einfach komplett andere Techniken dafür.

00:52:55.791 --> 00:52:58.811
Wenn man jetzt Lust hat,

00:52:58.971 --> 00:53:03.951
mit diesen APIs herumzuspielen, also ich habe hier diese Übersicht, also ich sehe zum einen,

00:53:04.111 --> 00:53:10.491
man kann diese APIs als WebentwicklerInnen benutzen, ansteuern,

00:53:10.591 --> 00:53:16.271
man kann sie aber auch aus Extensions heraus benutzen, also ich vermute mal, keine Ahnung,

00:53:18.031 --> 00:53:22.431
Man hängt es vielleicht in eine Extension rein, die bei Bildern,

00:53:22.491 --> 00:53:24.811
wo Alternativtexte umschreibt.

00:53:26.111 --> 00:53:29.651
Einfach weil die meisten ja dann doch irgendwie SEO-Texte sind und irgendwie

00:53:29.651 --> 00:53:34.371
nicht hilfreich. Ist jetzt nur so eine These, wie man das in einer Extension

00:53:34.371 --> 00:53:35.391
irgendwie benutzen könnte.

00:53:36.111 --> 00:53:41.951
So ist das gemeint. Das steht sozusagen in beiden Welten, stehen die gleichermaßen zur Verfügung.

00:53:42.711 --> 00:53:45.691
Auch mit dem gleichen Feature-Set wahrscheinlich, oder? Kein Unterschied.

00:53:45.951 --> 00:53:47.171
Genau, das gleiche Feature-Set.

00:53:48.031 --> 00:53:52.451
Die Grundidee natürlich ist bei einer Extension, da kannst du jedwede Website

00:53:52.451 --> 00:53:55.991
verbessern, verschlimmbessern, was auch immer, aber hoffentlich verbessern.

00:53:57.111 --> 00:54:02.271
Ja, gutes Beispiel, was du genannt hast, so Alternative Text fehlt und du bist

00:54:02.271 --> 00:54:07.071
auf deinem Mastodon-Feed und dann merkst du halt so, hm, das Bild hätte ich

00:54:07.071 --> 00:54:09.671
jetzt aber doch gerne gesehen, in Anführungszeichen.

00:54:09.931 --> 00:54:13.891
Und dann hast du halt eine Extension, klickst rechts auf das Bild rauf und sagst,

00:54:14.211 --> 00:54:16.711
generier mir da nochmal den alternativen Text.

00:54:17.751 --> 00:54:21.511
Und dann kann das vielleicht das Ganze machen, aber nur auf Englisch.

00:54:21.711 --> 00:54:26.411
Aber dann kommt auch das Zusammenspiel mit den verschiedenen AKIs dann zu tragen,

00:54:26.571 --> 00:54:31.831
dass du sagen kannst, okay, dann nehme ich eben diese englische AI-generierte

00:54:31.831 --> 00:54:35.671
Bildbeschreibung und haue die dann aber in den Übersetzer rein und bekomme das

00:54:35.671 --> 00:54:37.091
dann eben am Ende doch noch auf Deutsch.

00:54:37.531 --> 00:54:41.551
Also ich denke, das geht natürlich in die andere Richtung auch.

00:54:41.651 --> 00:54:44.571
Also ich habe den deutschen Text und möchte da eine englische Zusammenfassung,

00:54:44.571 --> 00:54:46.811
die ich dann wiederum auf Deutsch mir zurückübersetzen lasse.

00:54:47.051 --> 00:54:52.271
Also es ist über Umwege vieles auch bisher schon möglich, selbst wenn vielleicht

00:54:52.271 --> 00:54:53.751
das Haupt-LLM nur Englisch kann.

00:54:55.462 --> 00:55:02.122
Lost in Translation-Effekte sind natürlich immer möglich, aber nicht immer ist das ein Problem.

00:55:02.342 --> 00:55:05.742
Also ich will es nicht kleinreden, aber viele Sachen sind eben auch heute schon

00:55:05.742 --> 00:55:06.702
in diese Richtung möglich.

00:55:07.182 --> 00:55:12.222
Genau, und das lässt sich eben über Extensions sehr, sehr gut realisieren,

00:55:12.282 --> 00:55:15.322
dass du damit eben sagst, ich habe diesen Anwendungsfall,

00:55:16.262 --> 00:55:21.302
wir sind, keine Ahnung, ich lerne gerade Französisch und die meisten Artikel

00:55:21.302 --> 00:55:23.542
auf einer französischen Webseite sind mir zu kompliziert.

00:55:25.042 --> 00:55:29.602
LLM, guck dir das doch mal an und mach da eine einfachere Version draus.

00:55:29.742 --> 00:55:32.442
Also das wäre zum Beispiel eine sehr kreative, würde ich sagen,

00:55:33.362 --> 00:55:38.002
Anwendung, wo du eben sagst, das ist keine Übersetzung, das ist ja tatsächlich,

00:55:38.562 --> 00:55:42.182
nah am Text original noch, aber es ist halt auch eine Sache,

00:55:42.322 --> 00:55:44.062
wo du wirklich AI dafür brauchst,

00:55:44.622 --> 00:55:48.142
die dir dann eben hilft, das auf einfaches Französisch runterzubrechen.

00:55:48.982 --> 00:55:53.422
Und auch wichtig finde ich immer das Thema, was sollte dann tatsächlich auf

00:55:53.422 --> 00:55:59.002
dem Client laufen und wo kann ich das Ganze auf dem Server einmal machen?

00:55:59.942 --> 00:56:04.462
AI hat natürlich einen Energiebedarf, den, ja, unterschätzen viele,

00:56:04.662 --> 00:56:09.662
aber er ist da und exponentielles Wachstum, was Datacenters angeht und hier,

00:56:09.702 --> 00:56:11.682
wir hoffen auf Fusionsenergie und jada, jada.

00:56:11.822 --> 00:56:16.942
Also ich bin auch immer jemand, der sagt so, viele Sachen, die die Leute jetzt

00:56:16.942 --> 00:56:19.062
vielleicht sagen, okay, machen wir auf dem Client, kein Problem.

00:56:19.622 --> 00:56:22.982
Wäre viel, viel besser, man würde das dann einmal auf dem Server machen für alle.

00:56:23.282 --> 00:56:26.962
Anstelle dann für jeden einzelnen Benutzer den Planeten zu verbrennen,

00:56:27.042 --> 00:56:32.202
macht man es eben ein einziges Mal nur und hat dann hoffentlich am Ende einen

00:56:32.202 --> 00:56:37.502
netto positiven Effekt trotzdem noch geschaffen und hat AI dann für gute,

00:56:37.642 --> 00:56:38.782
positive Zwerge verwendet.

00:56:40.177 --> 00:56:44.557
Und am Ende dann hast du diesen Anwendungsfall, wo du halt sagst,

00:56:44.637 --> 00:56:47.277
okay, das ist jetzt aber was, das geht nicht auf dem Server.

00:56:47.397 --> 00:56:49.657
Das möchte ich lokal tatsächlich ganz bewusst machen.

00:56:50.477 --> 00:56:56.417
Hier dieser Psychologie- oder Psychologe-Fall, den wir vorher hatten,

00:56:56.657 --> 00:56:58.397
zum Beispiel, das wäre ein gutes Beispiel dafür.

00:56:59.277 --> 00:57:04.257
Oder halt, ja, die App kennt jetzt nicht dein Französisch-Level,

00:57:04.317 --> 00:57:07.997
du hast dann quasi so einen Slider, mach mir das noch einfacher und noch einfacher

00:57:07.997 --> 00:57:09.697
und noch einfacher und irgendwann kannst du es dann lesen.

00:57:10.797 --> 00:57:14.477
Und natürlich könntest du das auf dem Server auch machen, aber netto ist es

00:57:14.477 --> 00:57:19.697
dann wahrscheinlich besser für den Planeten, wenn du das auf einem kleineren

00:57:19.697 --> 00:57:23.897
LLM machst, als dann irgendwo über ein riesiges Data Center zu gehen.

00:57:24.457 --> 00:57:28.777
Und ja, also ich denke, da sollte man dann auch immer so ein bisschen nochmal darauf achten,

00:57:29.317 --> 00:57:32.237
wenn die Ausgabe für alle Benutzer auf dem Planeten die gleiche ist,

00:57:32.377 --> 00:57:35.857
mache ich es lieber auf dem Server, wenn es individuell für jeden unterschiedlich

00:57:35.857 --> 00:57:41.857
ist oder wenn ich eben die Privatsphäre-Geschichte brauche oder ich die Offline-Fähigkeit brauche,

00:57:42.577 --> 00:57:44.077
dann mache ich es auf dem Client.

00:57:44.417 --> 00:57:46.897
Also ich denke, in diese Richtung sollte man auch immer sehr,

00:57:46.897 --> 00:57:48.157
sehr kritisch dann nochmal nachfragen.

00:57:48.677 --> 00:57:53.097
Nur weil es uns jetzt vielleicht die 2 Cent Chat-GPT-Gebühr spart,

00:57:53.157 --> 00:57:56.457
die ich für den für die Übersetzung auf dem Server zahlen müsste,

00:57:56.617 --> 00:57:58.097
heißt das nicht, dass es Besser ist dann,

00:57:58.497 --> 00:58:04.197
das auszulagern auf jeden Benutzer, der die Seite auf was auch immer auf Französisch sehen möchte.

00:58:04.197 --> 00:58:08.837
Ich habe gerade so den Gedanken, dass vielleicht eure APIs, die ihr da anbietet,

00:58:09.237 --> 00:58:16.017
so leicht und einfach zu bedienen sind und vielleicht die Kommunikation mit ChatGPT und Co.

00:58:16.217 --> 00:58:20.277
Oder vielleicht auch die Kosten oder die Token Limits, die man hat.

00:58:21.437 --> 00:58:27.837
Eben also einen dann eher so dazu verleiten, das Ganze immer bei seinen Besuchern,

00:58:27.897 --> 00:58:32.917
im Client, irgendwelche Aufgaben durchführen zu lassen, weil es halt einfach leichter gemacht ist.

00:58:36.558 --> 00:58:40.598
Ja, also letztendlich die Preise sind deutlich gefallen. Also wenn man jetzt

00:58:40.598 --> 00:58:44.198
anguckt, so die Context-Windows mit einer Million Token und so weiter,

00:58:44.358 --> 00:58:46.158
also da hat sich schon sehr, sehr viel getan.

00:58:47.018 --> 00:58:52.158
Aber natürlich der Kostenaspekt finanziell ist der eine, der Kostenaspekt Umwelt

00:58:52.158 --> 00:58:54.558
und Klima ist der andere.

00:58:55.118 --> 00:58:57.338
Also trotzdem wäre ich da immer sehr, sehr vorsichtig.

00:58:58.078 --> 00:59:04.238
Ich denke, so am Ende hat man auch immer so Zwischenfälle, also über das Thema

00:59:04.238 --> 00:59:06.038
Hybrid haben wir noch gar nicht wirklich geredet,

00:59:06.418 --> 00:59:09.478
dass man eben verschiedene Anwendungsfälle hat, wo man sagt,

00:59:09.658 --> 00:59:13.958
ich möchte das jetzt am liebsten in der Cloud vielleicht ausführen,

00:59:14.078 --> 00:59:18.558
aber wenn der Benutzer gerade offline ist, dann mache ich es vielleicht doch

00:59:18.558 --> 00:59:22.618
mal kleinseitig oder genau andersrum, per Default kleinseitig.

00:59:22.618 --> 00:59:27.758
Und wenn das Gerät gerade nicht in der Lage ist, zum Beispiel ist im Battery-Saver-Mode

00:59:27.758 --> 00:59:31.918
oder so, dann lagere ich das dann eben doch ausnahmsweise auf die Cloud aus.

00:59:32.918 --> 00:59:36.258
Also ich denke, da in diese Richtung gibt es sehr, sehr viel dann auch noch

00:59:36.258 --> 00:59:41.538
zu einfach lernen und forschen, in welche Richtung geht da das Thema.

00:59:41.778 --> 00:59:44.358
Also bisher ist Hybrid immer relativ stupide.

00:59:45.118 --> 00:59:48.678
Das Gerät unterstützt das nicht, ja oder nein. Oder unterstützt das ja oder nein.

00:59:49.478 --> 00:59:53.238
Und dann heißt es eben, okay, man weicht auf die Cloud aus. Aber ja,

00:59:53.418 --> 00:59:56.818
in Zukunft denke ich auch, man wird so verschiedene Zwischenfälle auch noch

00:59:56.818 --> 01:00:00.138
sehen, wo sich eben das Gerät auch ändern kann, wo man dann guckt so und da

01:00:00.138 --> 01:00:02.518
kommt wieder Fugo mit rein.

01:00:03.438 --> 01:00:07.318
Zum Beispiel, wir haben die Compute Pressure API, die dann eben merkt,

01:00:07.438 --> 01:00:13.218
wie ist gerade die Prozessorauslastung prozentual und wenn du eben parallel

01:00:13.218 --> 01:00:20.138
gerade ein Video encodierst über was auch immer und dann lokal nicht so viel

01:00:20.138 --> 01:00:22.438
Power gerade zur Verfügung steht wie normalerweise.

01:00:22.618 --> 01:00:26.678
Dann könntest du eben auch dynamisch sagen, wir lagern das auf den Server aus.

01:00:31.612 --> 01:00:37.712
Wie ist das denn generell, also die, wie löst ihr denn das Problem,

01:00:38.112 --> 01:00:42.632
dass, du hast ja gesagt, auf Android-Geräten könnt ihr das ja noch nicht machen,

01:00:42.812 --> 01:00:48.292
einfach weil die so divers sind und eben manche genug Power haben,

01:00:48.392 --> 01:00:49.772
manche aber super underpowered sind.

01:00:51.932 --> 01:00:56.732
Wenn ich dann so ein API benutzen will, das heißt, müsste ich dann erstmal Feature

01:00:56.732 --> 01:00:59.792
testen, ob die zur Verfügung steht und dann,

01:01:01.532 --> 01:01:04.992
also das dann wahrscheinlich irgendwie bei der Translator API,

01:01:06.292 --> 01:01:12.212
zum Beispiel kann ich auf window.translator testen oder sowas und wenn das eben

01:01:12.212 --> 01:01:16.952
nicht da ist, dann muss ich eben meinen Fallback in die Cloud machen oder eben

01:01:16.952 --> 01:01:19.132
sagen so, geht halt gar nicht, geht hier nicht.

01:01:19.872 --> 01:01:24.132
Genau, also es gibt Feature-Tests ganz einfach auf diese Art und Weise.

01:01:25.252 --> 01:01:29.512
If, was auch immer du verwenden möchtest, Translator, Summarizer in Window oder

01:01:29.512 --> 01:01:35.292
in Self, kannst du ein bisschen Zeichen sparen, dann geht das eben auf diese Art und Weise.

01:01:36.752 --> 01:01:40.872
Dann gibt es aber auch das Dynamische, also zum Beispiel braucht das LLM natürlich

01:01:40.872 --> 01:01:44.132
auch Festplatte, lokal und das kann sich ändern.

01:01:44.132 --> 01:01:48.212
Das heißt, du kannst einen Rechner haben, der grundsätzlich mächtig genug ist,

01:01:48.332 --> 01:01:53.292
aber dann hast du dein Video transkodiert und auf einmal sind eben 100 Gigabyte

01:01:53.292 --> 01:01:58.252
weg und dann wird es ein bisschen enger auf der Festplatte und dann kann sie

01:01:58.252 --> 01:02:01.272
eben spontan auch dynamisch ändern,

01:02:01.472 --> 01:02:04.332
dass das Modell dann eben gelöscht werden muss, um Platz zu machen,

01:02:04.452 --> 01:02:06.552
also klassische Cash Eviction sozusagen,

01:02:07.132 --> 01:02:09.292
um dann Platz zu machen für andere Festplatte.

01:02:09.921 --> 01:02:16.001
Nötigere Anwendungsdateien oder was auch immer auf dem Rechner und dann hast

01:02:16.001 --> 01:02:18.761
du eben als Stufe 1 reguläre Feature Detection,

01:02:18.901 --> 01:02:24.541
also if blah in self oder in window und dann im nächsten Schritt testest du

01:02:24.541 --> 01:02:28.881
auch immer die Availability also da hast du dann translator.availability zum

01:02:28.881 --> 01:02:29.861
Beispiel und dann sagst du,

01:02:30.401 --> 01:02:36.481
English to German als Source und als Target Language und dann gibt es immer

01:02:36.481 --> 01:02:41.341
vier verschiedene Möglichkeiten Das erste ist der Happy-Fall, also Available.

01:02:41.801 --> 01:02:44.841
Du kannst die API direkt verwenden, alles ist runtergeladen, alles ist fertig.

01:02:45.281 --> 01:02:50.001
Dann gibt es den Unhappy-Fall, Unavailable, also sprich zum Beispiel,

01:02:50.281 --> 01:02:54.101
du verwendest eine Sprachkombination, die eben derzeit noch nicht unterstützt

01:02:54.101 --> 01:03:02.041
wird oder die Festplatte hat nicht genug Kapazität, um das Modell dann tatsächlich zu speichern.

01:03:02.661 --> 01:03:07.401
Und dann gibt es die zwei Zwischenfälle, Downloadable und Downloading.

01:03:07.681 --> 01:03:11.041
Also Downloadable heißt, okay, ich kann das, der Rechner ist mächtig genug,

01:03:11.461 --> 01:03:12.801
mir fehlt aber noch das Modell.

01:03:13.261 --> 01:03:18.361
Und wenn du dann im nächsten Schritt sagst, okay, ich möchte meinen Translator

01:03:18.361 --> 01:03:21.821
oder meinen Language-Modell oder was auch immer erstellen,

01:03:22.001 --> 01:03:27.141
also dann rufst du Create auf und in dem Moment wird dann eben die Availability

01:03:27.141 --> 01:03:28.721
umspringen zu Downloading,

01:03:28.981 --> 01:03:30.501
wenn es vorher Downloadable war.

01:03:30.501 --> 01:03:35.261
Und ja, dann kriegst du so ein Progress, Download-Progress-Event,

01:03:35.581 --> 01:03:38.701
wo du dann schöne UI anzeigen kannst für den Benutzer. Okay,

01:03:38.781 --> 01:03:40.061
das Modell wird gerade runtergeladen.

01:03:40.821 --> 01:03:44.961
Und ja, das ist auch ein weiteres Thema, das hatten wir noch gar nicht angesprochen.

01:03:45.301 --> 01:03:49.941
Wenn du deine eigenen Modelle runterlädst im Browser, über Transformers.js dann laufen lässt oder so,

01:03:50.541 --> 01:03:54.721
dann ist für jeden Origin, selbst wenn genau das gleiche Modell verwendet wird,

01:03:54.841 --> 01:03:58.161
aber der Origin verschieden ist, musst du das Modell nochmal neu runterladen

01:03:58.161 --> 01:04:00.681
und nochmal neu auf der Festplatte redundant speichern.

01:04:01.761 --> 01:04:07.181
Und das ist eben auch ein großer Vorteil hiervon, dass wir das Modell dann eben einmalig runterladen.

01:04:07.921 --> 01:04:12.061
Also es heißt Build-in-AI, aber das Modell wird trotzdem dynamisch nachgeladen,

01:04:12.181 --> 01:04:15.121
erst beim allerersten Mal, wo jemand versucht, diese APIs zu verwenden.

01:04:15.401 --> 01:04:19.381
Aber wenn das Modell dann da ist, dann ist es verfügbar für alle Origins.

01:04:19.541 --> 01:04:22.301
Also sprich, du brauchst dann nichts mehr runterladen.

01:04:23.101 --> 01:04:26.701
Je populärer diese APIs dann werden, umso höher die Wahrscheinlichkeit,

01:04:26.701 --> 01:04:28.641
dass das Modell dann einfach schon da ist.

01:04:29.461 --> 01:04:33.601
Und genau, also in diese Richtung geht das dann eben, dass du sagst, okay,

01:04:34.061 --> 01:04:36.581
ich habe jetzt mein Wald- und Wies-Modell, der mit der NaNo,

01:04:36.641 --> 01:04:41.841
das eben mächtig genug ist für meine 80 Prozent der Anwendungsfälle und das

01:04:41.841 --> 01:04:45.241
ist dann eben frei verfügbar für alle Origins. Mhm.

01:04:46.380 --> 01:04:49.140
Du hast ja gesagt, das ist so vier Gigabyte groß. Da musst du wahrscheinlich

01:04:49.140 --> 01:04:51.480
auch noch so ein bisschen bis dann nochmal gucken.

01:04:51.640 --> 01:04:56.460
Da habt ihr ja im Chrome-Browser auch noch den Connection-Type, diese API.

01:04:58.380 --> 01:05:02.220
Wahrscheinlich, je nachdem, wie man angebunden ist, ist es vielleicht dann auch

01:05:02.220 --> 01:05:04.120
keine gute Idee, das gerade runterzuladen.

01:05:04.980 --> 01:05:10.100
Genau, also da kommt auch dann der Browser ins Spiel. Da hilft dir da sehr, sehr viel in puncto.

01:05:10.680 --> 01:05:15.580
Er weiß zum Beispiel auf Betriebssystemebene, ist das Netzwerk gerade mietet oder unmietet.

01:05:15.760 --> 01:05:22.320
Also sprich, bist jetzt auf einem Android-Gerät getethered, dann sagt die Network-Connection-API

01:05:22.320 --> 01:05:26.860
oder Network-Information-API, du hast volle WLAN-Geschwindigkeit,

01:05:26.980 --> 01:05:29.360
was auch immer, also Full 4G, glaube ich, heißt das.

01:05:29.940 --> 01:05:34.640
Aber letztendlich auf Betriebssystem-Ebene weiß das Gerät dann eben oftmals,

01:05:34.780 --> 01:05:38.780
okay, das ist tatsächlich nur ein Android-Gerät und das hat dann vielleicht

01:05:38.780 --> 01:05:42.360
ein Datenlimit von 10 Gigabyte und ist dann vielleicht keine gute Idee,

01:05:42.440 --> 01:05:43.760
das runterzureden, selbst wenn

01:05:43.760 --> 01:05:48.860
vielleicht gerade spontan 5G da ist und es technisch ginge, aber halt,

01:05:49.460 --> 01:05:51.940
genau, unmietet sollte das Netzwerk dann schon sein.

01:05:52.100 --> 01:05:56.600
Und das weiß der Browser auf Betriebssystem-Ebene, das ist dann eben nicht exponiert

01:05:56.600 --> 01:05:57.540
in die JavaScript-Welt.

01:05:58.360 --> 01:06:02.460
Der Browser kümmert sich auch darum, dass der Download, wenn der unterbrochen

01:06:02.460 --> 01:06:03.400
wurde, fortgesetzt wird.

01:06:03.540 --> 01:06:06.320
Also sprich, wenn du dann zwischendrin den Rechner neu bootest,

01:06:06.820 --> 01:06:08.720
dann wird der Download einfach fortgesetzt.

01:06:09.080 --> 01:06:11.880
Der Browser kümmert sich um Versionierung. Also sprich, wenn jetzt irgendwann

01:06:11.880 --> 01:06:17.380
mal eine neue Gemini Nano Version in Chrome zum Beispiel rauskommt oder 5.4, was auch immer in Edge,

01:06:17.940 --> 01:06:22.140
dann wird der Browser im Hintergrund das neue Modell laden und dann eben transparent

01:06:22.140 --> 01:06:24.400
einfach irgendwann umswappen auf die nächste Version.

01:06:25.020 --> 01:06:29.420
Das haben wir und was haben wir noch an Vorteilen?

01:06:30.591 --> 01:06:34.811
Ja, ich glaube, das war's. Also alles Dinge, wo du dich dann eben nicht drum

01:06:34.811 --> 01:06:36.911
kümmern musst, wo du aber, wenn du das von Hand strickst,

01:06:38.011 --> 01:06:43.131
ja, sehr viele Fragen beantworten musst und dann einfach vielleicht als regulärer

01:06:43.131 --> 01:06:46.231
Anwender überfordert bist und du nicht weißt, was mache ich denn jetzt hier?

01:06:47.331 --> 01:06:50.331
Naja, das ist schon kein unkomplizierter Flow.

01:06:52.691 --> 01:06:57.931
Okay, und geschippt habt ihr momentan, wenn ich das hier richtig lese,

01:06:58.211 --> 01:07:01.551
die Translator-API, die ist in Chrome Stable, ne?

01:07:02.031 --> 01:07:07.091
Genau, ab 138, auch 138, genau. Das ist der aktuelle, glaube ich,

01:07:07.191 --> 01:07:08.651
ne? Der aktuelle Stable.

01:07:09.451 --> 01:07:14.511
Summarizer-API ist auch drin. Genau, ja. Und genau, dann habt ihr noch,

01:07:14.671 --> 01:07:19.231
habt ihr eine Reihe APIs, die unter dem Origin-Trial...

01:07:19.751 --> 01:07:23.051
Genau, eine hast du noch vergessen, die Prompt-API für Extensions,

01:07:23.191 --> 01:07:24.551
also wirklich nur Reihe Extensions.

01:07:24.931 --> 01:07:30.851
Stimmt. Nicht reguläre Web-API, aber als Extension-API ist das auch schon in

01:07:30.851 --> 01:07:34.071
138 verfügbar. Ah ja, okay.

01:07:35.091 --> 01:07:45.031
Genau, und die anderen, also Writer, Rewriter und Prompt API im Browser selbst,

01:07:45.191 --> 01:07:49.491
nicht in den Extensions, die sind aus Origin-Trials derzeit am Start.

01:07:49.491 --> 01:07:54.711
Das heißt also, man registriert sich bei euch auf der Origin-Trial-Seite mit

01:07:54.711 --> 01:08:03.231
seinem Origin und sagt so, hey, ich möchte die API jetzt mit meinen BenutzerInnen testen.

01:08:04.291 --> 01:08:05.791
Genau, und das dann funktioniert.

01:08:06.546 --> 01:08:11.426
Ihr dealt dann sozusagen so, hier ist okay, kriegst jetzt sechs Wochen lang

01:08:11.426 --> 01:08:16.686
die API oder was weiß ich wie lange und dafür musst du uns aber eben alle so

01:08:16.686 --> 01:08:18.626
und so viele Wochen mal Feedback geben dazu.

01:08:18.966 --> 01:08:22.086
So läuft das ja, glaube ich. Genau, also müssen muss man gar nichts,

01:08:22.206 --> 01:08:25.366
man sollte, man wird eingeladen, aber es ist kein Zwang, genau.

01:08:25.726 --> 01:08:29.946
Aber es hilft natürlich dann zu wissen, ist die API so, wie sie derzeit implementiert

01:08:29.946 --> 01:08:30.846
ist, nützlich oder nicht?

01:08:31.326 --> 01:08:35.006
Und die Idee von Origin Trials ist ja immer noch, dass man nochmal korrigieren

01:08:35.006 --> 01:08:36.426
kann, also sprich, weil man merkt so,

01:08:37.406 --> 01:08:40.666
diese Parameter, der verwirrt die meisten, wenn sie entwickeln,

01:08:41.106 --> 01:08:44.986
da sollte man dann vielleicht, keine Ahnung, den Parameter umbenennen,

01:08:45.106 --> 01:08:47.066
sodass er weniger verwirrend ist oder was auch immer.

01:08:48.146 --> 01:08:52.286
Da ist dann eben genau noch die Möglichkeit das zu machen vor das Ganze dann shippt,

01:08:52.426 --> 01:08:58.066
weil wenn wir einmal shippen dann ist natürlich mehr oder weniger das Kind aus

01:08:58.066 --> 01:09:02.406
dem Bad oder wie auch immer die deutsche Redewendung heißt, also da das Kind

01:09:02.406 --> 01:09:05.486
hat im Grunde gefallen glaube ich, genau, so rum,

01:09:05.986 --> 01:09:10.606
es gibt auch was mit Bad ja, das ist dann immer glaube ich, wenn man so übers

01:09:10.606 --> 01:09:13.866
Ziel hinausschießt, dann hat man glaube ich das Kind mit dem Bade ausgeschüttet

01:09:13.866 --> 01:09:16.846
das gibt es ja auch noch, genau Dann merkt man einfach, wer bei einer Zeitung

01:09:16.846 --> 01:09:18.406
arbeitet und wer in einem Browser arbeitet.

01:09:19.726 --> 01:09:22.046
Bei einer Zeitung arbeite ich ja gar nicht mehr, ich merke es seit längerem.

01:09:22.686 --> 01:09:26.126
Oha, oha. Oh, das wusste ich gar nicht. Nee, nee, doch. Na gut.

01:09:27.086 --> 01:09:29.786
Ich bin weitergezogen. Ah, okay.

01:09:31.166 --> 01:09:35.506
Ja, genau. Ich bin auf dem LLM-Stand von 2018 oder so. Genau.

01:09:36.406 --> 01:09:44.406
Wäre es denn jetzt aber theoretisch möglich, dass ich als App- oder halt Webseitenentwicklerin

01:09:44.406 --> 01:09:52.046
die AI auf einem Client von Usern verwende für meine eigenen Zwecke,

01:09:52.246 --> 01:09:56.686
ohne dass jetzt quasi der User-Input überhaupt notwendig ist.

01:09:58.588 --> 01:10:05.328
Also ist die Frage letztendlich, ob du die Rechenkapazität auslagern kannst

01:10:05.328 --> 01:10:08.508
auf deinen Benutzer, ja, das wäre theoretisch möglich.

01:10:08.988 --> 01:10:13.428
Vanessa, das ist… Nee, ich muss jetzt hier schon mal die Sicherheitsfragen stellen.

01:10:13.608 --> 01:10:17.308
Ja, aber sehr schlau, ich sehe ein neues Business-Modell bei dir.

01:10:17.428 --> 01:10:21.508
Ich sage jetzt auch nicht, dass… Also das ist natürlich als Anwendungsfall…

01:10:21.508 --> 01:10:22.688
Falls ich da meine Bitcoins minen möchte.

01:10:24.468 --> 01:10:28.688
Naja, das könntest du machen. Die Use Cases sind natürlich äußerst gering und

01:10:28.688 --> 01:10:30.148
wahrscheinlich ist es auch alles nicht sinnvoll.

01:10:30.368 --> 01:10:36.708
Aber ich könnte ja vermutlich mir beliebig viel Text übersetzen lassen,

01:10:36.948 --> 01:10:40.708
während die User einfach dann auf der Webseite sind und ich rufe einfach die

01:10:40.708 --> 01:10:44.528
Translator-API auf mit irgendwelchen Texten, die ich da umherpinge.

01:10:46.148 --> 01:10:48.948
Genau, das könntest du aber wahrscheinlich deutlich effektiver machen,

01:10:49.068 --> 01:10:54.208
indem du das über einen lokalen Puppetieren-Diascript hast, als das über deine

01:10:54.208 --> 01:10:57.088
Benutzer laufen zu lassen. Also es ist jetzt kein großes Risiko.

01:10:57.708 --> 01:11:01.108
Also das ist ja alles heute schon möglich. Also du kannst heute schon dir ein

01:11:01.108 --> 01:11:05.608
Modell runterladen und das dann auf dem Browser des Benutzers ausführen.

01:11:05.788 --> 01:11:09.148
Also ich denke, der Sicherheitsaspekt, ja, also.

01:11:09.788 --> 01:11:12.648
Und die Benutzer sind ja auch nicht dumm. Wenn das dann irgendwann mal jemand

01:11:12.648 --> 01:11:18.028
merkt, dann wird das natürlich irgendwann jemand kreativ ausnutzen und dir dann

01:11:18.028 --> 01:11:23.508
unerwartete Ergebnisse zurückschicken, in dem dann seine eigene AI gepatcht wird.

01:11:24.008 --> 01:11:29.548
Wie, dass man im Browser der End-User dann irgendwie gerade ein Icon blinken lässt,

01:11:29.668 --> 01:11:36.048
wenn da gerade die interne AI quasi am Arbeiten ist, so als Sicherheits-Security-Dings,

01:11:36.148 --> 01:11:40.128
dass man sieht, oh, da blinkt was da, also sowas wie Kamera-Dings ist an,

01:11:40.488 --> 01:11:42.848
dass ich sage, ha, aber ich will doch die Kamera gar nicht anhaben,

01:11:42.888 --> 01:11:45.588
ich will doch die AI gerade gar nicht anhaben, aber.

01:11:46.787 --> 01:11:49.407
Und wahrscheinlich, unwahrscheinlich, dass da ein großes Risiko ist,

01:11:49.467 --> 01:11:53.187
höre ich da so raus, weil man theoretisch gesehen ja heute solche Sachen auch schon machen könnte.

01:11:53.907 --> 01:11:58.547
Also wir hatten einen ähnlichen Fall, ganz kurz vielleicht, um das nochmal klarzustellen.

01:11:59.507 --> 01:12:03.927
Bei der WakeLock API, der ermöglicht dir, dass du eben sagen kannst,

01:12:04.067 --> 01:12:06.447
mein Rechner schläft normalerweise nach zehn Minuten ein.

01:12:07.427 --> 01:12:09.867
Wenn du einen Wake-Log setzt, dann kannst du eben sagen, okay,

01:12:09.967 --> 01:12:12.407
das soll jetzt nicht passieren, sondern der Rechner soll anbleiben.

01:12:13.127 --> 01:12:17.167
Der valide Use-Case ist natürlich, was auch immer, wir sind jetzt hier auf dem

01:12:17.167 --> 01:12:21.007
Podcast-Recording und es wäre blöd, wenn ich jetzt mittendrin meinen Rechner

01:12:21.007 --> 01:12:22.167
einschlafen lassen würde.

01:12:23.447 --> 01:12:28.587
Und dann nimmt man eben ein sogenanntes Wake-Log und sorgt dann eben dafür,

01:12:28.707 --> 01:12:33.067
dass die App nicht einschläft oder man möchte keine Nachrichten verpassen, was auch immer.

01:12:33.067 --> 01:12:36.567
Aber die Art und Weise, wie das Benutzer vor dieser API gemacht haben,

01:12:36.647 --> 01:12:39.587
war einfach, dass man ein leises Video abspielen lässt.

01:12:40.167 --> 01:12:46.347
Also sprich, ja, einfach quasi so den Hack, okay, der Browser schläft,

01:12:46.567 --> 01:12:48.947
oder der Computer schläft auch nicht ein, wenn ein Video abspielt.

01:12:48.947 --> 01:12:52.827
Und natürlich ist es super ineffizient, ein Video abzuspielen,

01:12:52.927 --> 01:12:56.287
wenn du einfach, ja, letztendlich dem Browser direkt sagen könntest,

01:12:56.547 --> 01:13:00.747
was du möchtest, dass der Browser tut, also sprich, wach bleiben.

01:13:01.287 --> 01:13:05.487
Und von dem her, weil eben der andersrumme Weg nach wie vor möglich ist,

01:13:06.047 --> 01:13:11.187
haben wir uns dann gesagt, okay, für diese Art und Weise der API-Nutzung brauchen

01:13:11.187 --> 01:13:14.007
wir keinen Permission-Prompt oder keinen irgendwie,

01:13:14.547 --> 01:13:18.387
hier, den Rechner sitzt gerade, wird gerade wachgehalten, weil eben der andersrumme

01:13:18.387 --> 01:13:21.467
Weg das auch nicht hat. Und bei LLMs ist es ganz genauso.

01:13:21.727 --> 01:13:24.707
Du kannst hier ein LLM runterladen.

01:13:25.107 --> 01:13:28.627
Das ist jetzt vielleicht ein bisschen unpraktisch, heute das zu tun,

01:13:28.727 --> 01:13:31.927
weil die großen oder die kleinen sind eben immer noch ziemlich groß,

01:13:32.127 --> 01:13:34.387
wo du dann halt ein Gigabyte runterlädst.

01:13:34.507 --> 01:13:38.327
Aber das kannst du ja auch im Browser machen. Also es gibt ja auch keine Permission

01:13:38.327 --> 01:13:41.207
oder kein Warning oder was auch immer, das dann anzeigt, hey,

01:13:41.307 --> 01:13:45.287
diese Webseite verbrennt gerade 100 Megabyte Daten. Von dem her...

01:13:46.715 --> 01:13:49.655
Der Angriffsvektor in Anführungszeichen ist da, aber er ist nicht neu.

01:13:49.835 --> 01:13:54.235
Und von dem her, weil er nicht neu ist und weil es deutlich einfacher ist,

01:13:54.315 --> 01:13:57.815
einfach dann zu sagen, ich nehme Playwright oder ich nehme Puppetier lokal und

01:13:57.815 --> 01:14:02.535
mache das dann eben über diese Art und Weise, ergibt einfach letztendlich keinen Sinn.

01:14:02.535 --> 01:14:08.255
Aber natürlich, das kam auch vor, das hat zum Beispiel ein Mitarbeiter von Mozilla

01:14:08.255 --> 01:14:09.815
gemeint in einer Diskussion so,

01:14:10.075 --> 01:14:16.435
dass das vielleicht ein Problem wäre, dass man dann eben die Benutzer als kostenlose

01:14:16.435 --> 01:14:19.115
Rechenpferde verwendet und

01:14:19.115 --> 01:14:24.095
dann sein eigenes LLM aufbaut, das dann über Geld verkauft wird oder so.

01:14:24.095 --> 01:14:28.455
Also, aber ja, trojanisches Pferd oder nicht trojanisches Pferd,

01:14:28.515 --> 01:14:29.995
also ein Botnet quasi sich aufbaut.

01:14:30.515 --> 01:14:34.835
Aber ja, geht deutlich einfacher, muss man nicht andere Benutzer verwenden.

01:14:36.075 --> 01:14:39.935
Was mir ansonsten, total anderes Thema, was mir ansonsten zurzeit auffällt,

01:14:40.075 --> 01:14:44.595
das hat jetzt auch gar nichts spezifisch jetzt mit den APIs hier zu tun.

01:14:45.335 --> 01:14:50.855
Ich würde jetzt mal sagen, wir sind als User von AIs jetzt relativ stark mit

01:14:50.855 --> 01:14:52.935
dem Thema befasst, kennen uns da aus.

01:14:53.555 --> 01:14:57.595
Es ist vermutlich nicht überall so oder bei jedem so.

01:14:57.895 --> 01:15:04.255
Und wir haben jetzt gestartet mit AIs, indem ich auf Chat-GPT gehe und da habe ich meinen Chat.

01:15:04.775 --> 01:15:09.955
Dann ist es auf Google aufgepoppt, dass da die ziemlich guten Zusammenfassungen

01:15:09.955 --> 01:15:12.935
kommen, sodass ich da quasi gar nicht mehr auf die Links klicken muss und die

01:15:12.935 --> 01:15:14.395
Antwort steht schon oben drin.

01:15:15.495 --> 01:15:18.995
Und wahrscheinlich hat Amazon auch schon was, keine Ahnung. Dann gibt es jetzt

01:15:18.995 --> 01:15:23.155
ganz viele, wie du vorhin meintest, jeder muss jetzt irgendwie die AI einbauen,

01:15:23.675 --> 01:15:31.675
ganz viele Webseiten, die AI-Features einbauen, die dann wiederum mit GPT, OpenAI, Cloud.

01:15:32.915 --> 01:15:34.395
Lama, was weiß ich was reden.

01:15:34.895 --> 01:15:39.595
Und dann kommt jetzt vielleicht noch so was Neues dazu, dass man jetzt auch

01:15:39.595 --> 01:15:43.935
die in den Browsern zur Verfügung hat. Ich finde es ein bisschen komisch,

01:15:44.653 --> 01:15:51.433
Im Moment baut sich da so ein Wald auf, dass die AI von überall so ein bisschen reinpoppt.

01:15:51.653 --> 01:15:56.093
Ich sehe hier jetzt nicht so das Gesamtkonzept. Das Gesamtkonzept sehe ich noch

01:15:56.093 --> 01:15:58.853
nicht mal auf einzelnen Webseiten, weil da ist es auch so,

01:15:59.353 --> 01:16:04.053
hier ist der Chatbot und hier ist ein Button, der fasst dir das zusammen und

01:16:04.053 --> 01:16:08.193
wenn du hier auf die Text-Area klickst, dann kannst du deinen Text verlängern lassen.

01:16:08.733 --> 01:16:12.193
Schon auf so einer Webseite ist das Gesamtkonzept ja so ein bisschen schwierig.

01:16:12.753 --> 01:16:15.853
Mein größtes Problem ist also jetzt gar nicht so die Testbarkeit oder was auch

01:16:15.853 --> 01:16:22.193
immer, sondern wirklich, wie verstehen alle Usergruppen, was hier eigentlich

01:16:22.193 --> 01:16:24.993
noch vor sich geht, mit welcher AI sie wann reden,

01:16:25.513 --> 01:16:29.273
denn die Ergebnisse hängen ja wirklich davon ab, mit welchem Model wird für

01:16:29.273 --> 01:16:33.453
diesen Use Case interagiert und dann, voll authentic will ich jetzt gar nicht

01:16:33.453 --> 01:16:35.113
anfangen, das macht es ja nur noch komplizierter.

01:16:35.973 --> 01:16:39.453
Aber auch, wie sind Prompts vorgeschrieben?

01:16:39.993 --> 01:16:43.893
Also da können ja Zusammenfassungen, können ja irre gut sein oder irre plump.

01:16:44.433 --> 01:16:48.453
Und ich weiß noch keine gute User Experience, wie man erklären soll,

01:16:48.573 --> 01:16:51.773
woran das jetzt eigentlich lag, dass das jetzt gut ist oder das jetzt schlecht ist.

01:16:51.933 --> 01:16:55.073
Und ich will jetzt nicht schon wieder irgendwelche Sachen raten,

01:16:55.113 --> 01:16:58.633
wie das ... Wisst ihr, was ich relativ oft zu hören bekomme?

01:16:58.833 --> 01:17:02.253
Ich bin Softwareentwicklerin seit mehr Jahren, als ich mittlerweile zählen kann.

01:17:02.573 --> 01:17:05.493
Ich kann euch gar nicht sagen, wie oft man mich, aber trotzdem anschaut,

01:17:05.593 --> 01:17:10.033
so im Freundeskreis, gell, wenn du am Laptop bist, das funktioniert auch nicht

01:17:10.033 --> 01:17:12.793
so gut, wie wenn der Ben das, mein Mann, wie wenn der Ben das dann probiert,

01:17:12.893 --> 01:17:15.353
gell, bei dem geht es dann besser. Und ich so, hä, was ist denn jetzt los?

01:17:15.933 --> 01:17:18.313
Ja, weil das ist ja dann der Mann und dann funktioniert der Laptop immer.

01:17:18.613 --> 01:17:20.473
Du bist so, hä, was ist jetzt los?

01:17:20.793 --> 01:17:23.913
Aber ich sehe schon irgendwie auch sowas kommen wie,

01:17:24.153 --> 01:17:27.093
ja, wenn ich mit der AI schreibe, dann kommt immer was Falsches raus,

01:17:27.173 --> 01:17:31.113
aber vielleicht lag es halt einfach nur dran, dass man jetzt die Local AI verwendet

01:17:31.113 --> 01:17:34.373
hat, die vielleicht ein bisschen schwächer ist als die Bezahlmodelle,

01:17:34.393 --> 01:17:38.073
von 30 Dollar im Monat von sonst einem Anbieter.

01:17:39.702 --> 01:17:44.482
So, lange Rede, Ende. Ich habe keinen Sinn. Ja, aber ich glaube,

01:17:44.562 --> 01:17:50.102
das ist ja so, das müssen wir als Kollektiv irgendwie rausarbeiten,

01:17:50.102 --> 01:17:52.722
was da so Best Practices sind, denke ich.

01:17:53.902 --> 01:17:56.362
Ja, ich denke auch. Also im Moment sind wir so in der Phase,

01:17:56.642 --> 01:18:01.642
wo einfach jeder AI auf seine Website haut, no matter what.

01:18:02.562 --> 01:18:05.642
Und du merkst halt auch bei den ganzen Websites, die sind von verschiedenen

01:18:05.642 --> 01:18:08.622
Teams gebastelt, die dann teilweise auch nicht miteinander reden.

01:18:08.622 --> 01:18:13.162
Und dann hat halt der eine den Chatbot in der rechten unteren Ecke und dann,

01:18:13.222 --> 01:18:17.882
wie du schon sagtest, das Review-Widget, das dann deinen Text länger macht oder was auch immer.

01:18:18.662 --> 01:18:23.622
Und dann hast du ein nächstes Team, das dann merkt, oh, die ganzen Reviews,

01:18:23.702 --> 01:18:25.062
die reinkommen, die sind alle viel zu lang.

01:18:25.202 --> 01:18:27.222
Die Nutzer wollen eigentlich eine Zusammenfassung nur sehen.

01:18:27.222 --> 01:18:33.962
Und dann hast du so diesen Fall, wo der Benutzer eingegeben hat drei Bullet Points.

01:18:34.502 --> 01:18:38.462
Die AI hat das dann aufgeblasen zu einem längeren, kohärenten Text.

01:18:38.882 --> 01:18:44.022
Und der Leser wiederum lässt sich diesen kohärenten Text wieder zusammenfassen

01:18:44.022 --> 01:18:49.362
auf drei Bullet Points. Und individuell für jeden war AI letztendlich nützlich,

01:18:49.502 --> 01:18:53.782
weil ich habe jetzt nicht nur peinliche drei Bullet Points eingegeben als Review.

01:18:54.522 --> 01:19:00.202
Ich habe als Leser mir diese langen Texte gespart zu lesen und so weiter und

01:19:00.202 --> 01:19:04.622
vielleicht am Ende mit dem Chatbox sogar eine sinnvolle Interaktion gehabt.

01:19:04.622 --> 01:19:07.762
Aber ich denke, AI ist am besten, wenn man sie gar nicht mehr merkt.

01:19:07.902 --> 01:19:11.442
Also auch da wieder so ein bisschen der Bogen zu Project Fugu,

01:19:11.562 --> 01:19:12.782
Progressive Web App und so weiter.

01:19:13.302 --> 01:19:19.222
Das gab ja so in den 2015er, 16er Jahren so immer diese sehr dogmatisch geführten Diskussionen.

01:19:19.222 --> 01:19:22.622
Ist das jetzt eine Progressive Web App oder ist das nur eine Web App oder ist

01:19:22.622 --> 01:19:27.502
das nur eine Website oder ist das nur eine Page oder ist das eine PWA,

01:19:27.682 --> 01:19:30.902
wenn sie nicht installiert ist oder wenn sie nicht installierbar ist?

01:19:31.762 --> 01:19:36.022
Und ich denke, diese ganzen Diskussionen, das kommt heute gar nicht mehr so

01:19:36.022 --> 01:19:41.122
vor, weil letztendlich es spielt keine große Rolle. Und bei Ajax hatten wir das Gleiche so.

01:19:42.102 --> 01:19:46.942
Irgendwann haben alle Ajax gemacht und es war auf einmal so natürlich,

01:19:47.102 --> 01:19:51.662
dass gar keiner mehr auf die Idee kam, so Powered by Ajax-Banner auf seiner

01:19:51.662 --> 01:19:52.722
Website zu setzen oder so.

01:19:52.822 --> 01:19:57.202
Und heute machen wir alle diese AI-Diamanten und Sparkles und was auch immer.

01:19:57.802 --> 01:20:00.102
Und ich denke, irgendwann wird das einfach...

01:20:01.155 --> 01:20:06.075
Was Mist ist, wird sich einfach irgendwo verlieren und was tatsächlich nützlich war,

01:20:06.275 --> 01:20:14.435
also das wird einfach bleiben und dann zu so normal quasi Standardfeatures zählen,

01:20:14.615 --> 01:20:17.635
dass man es quasi einfach nicht mehr wählen muss.

01:20:17.635 --> 01:20:20.415
Und ich denke, wir sind gerade ganz, ganz am Anfang.

01:20:20.595 --> 01:20:25.795
Also ich hatte beim Vorgepränkel erzählt, ich bin heute etwas unerwartet in

01:20:25.795 --> 01:20:33.015
einem Hotel in Barcelona gelandet und musste das buchen und war auf einer großen

01:20:33.015 --> 01:20:34.915
Seite und die hatte auch ein AI-Feature.

01:20:34.915 --> 01:20:36.855
Und dann dachte ich, naja, teste ich das doch mal.

01:20:36.995 --> 01:20:42.495
Also so typische, klassische hunderte Filter und dann auch nur ein einziges

01:20:42.495 --> 01:20:44.675
großes Feld, wo du einfach sagen kannst, was möchtest du denn?

01:20:45.275 --> 01:20:50.015
Und die Idee war, man schreibt dann einfach in diesen Smart Filter mit Sparkles

01:20:50.015 --> 01:20:52.315
dekoriert natürlich, schreibt mal rein, was man möchte.

01:20:52.315 --> 01:20:55.955
Und ich habe ihm dann einfach gesagt, no matter what,

01:20:56.135 --> 01:21:00.575
ich bin preissensitiv, ich bezahle das selbst, aber ich möchte bitte keine Dorms

01:21:00.575 --> 01:21:08.215
vorgeschlagen bekommen, also so keine Schlafzimmer, Schlafräume und das war einfach zu viel dann.

01:21:08.215 --> 01:21:13.275
Also es war so für mich komplett klar, filtert doch einfach aus,

01:21:13.355 --> 01:21:18.695
ihr habt doch den, ihr featuret das sogar auf dem Listing, so Bed in One Room

01:21:18.695 --> 01:21:20.595
oder Eight Room Dormitory, bla bla.

01:21:21.735 --> 01:21:24.335
Das hat man früher gemacht, das muss ich in meinem Alter nicht mehr,

01:21:24.435 --> 01:21:28.155
aber wenn man halt nach Preis sortiert, dann kommen eben diese ganzen Dorms

01:21:28.155 --> 01:21:34.895
als erste Position und so ganz simple Sachen und da denke ich wirklich so,

01:21:35.555 --> 01:21:40.555
Alter, wenn ihr dafür AI braucht, dann weiß ich auch nicht. Also ich denke so in Richtung.

01:21:42.160 --> 01:21:46.200
Was misst jetzt, das wird sich durchsetzen und wenn das dann vielleicht irgendwann

01:21:46.200 --> 01:21:50.580
mal tatsächlich mappt auf die Filter, einfach das Ganze besser abgebildet wird,

01:21:51.200 --> 01:21:52.780
dann ist das vielleicht wirklich ein gutes Feature.

01:21:52.900 --> 01:21:55.920
Also ich habe auch keine Lust, mir hier 100 Filter durchzuklicken,

01:21:56.040 --> 01:21:59.980
so 24 Stunden Rezeption ja, aber eigenes Badezimmer nein oder keine Ahnung,

01:22:00.100 --> 01:22:04.000
ja doch, eigenes Badezimmer schon ja, aber keine Ahnung, Pool muss jetzt nicht

01:22:04.000 --> 01:22:05.500
sein für die eine Nacht hier, wo ich bin.

01:22:06.120 --> 01:22:10.360
Also so, wo man einfach sagt, okay, das ist ein Interface, das ist gemacht für

01:22:10.360 --> 01:22:11.780
eine Datenbank, aber nicht für einen Menschen.

01:22:12.980 --> 01:22:18.200
Wenn da ich AI verwenden kann, um dann einfach zu sagen, ich bin preissensitiv,

01:22:18.420 --> 01:22:22.900
mir ist jetzt Location zu einem bestimmten Ort wichtiger als was auch immer,

01:22:23.120 --> 01:22:24.680
super Hotelkomfort oder was auch immer.

01:22:25.600 --> 01:22:28.440
Aber ja, da sind wir noch, glaube ich, ziemlich am Anfang.

01:22:29.620 --> 01:22:33.160
Also es hat nicht geklappt? Es hat in dem Fall nicht geklappt.

01:22:33.400 --> 01:22:38.700
Es war tatsächlich sogar, wenn ich nicht wissen würde, was dahinter steckt,

01:22:40.280 --> 01:22:42.880
so ein bisschen Bremscham dabei, muss man schon sagen.

01:22:43.580 --> 01:22:46.140
Das geht doch deutlich besser. Was macht ihr denn da?

01:22:47.400 --> 01:22:51.080
Ich möchte den Anliegen jetzt nicht hier bloßstellen, aber nein.

01:22:52.140 --> 01:22:54.100
Eine große Hotelbuchungsplattform.

01:22:57.560 --> 01:23:02.340
Mysteriös, wer das wohl ist? ja, naja gut, das ist dann vielleicht so ein wir

01:23:02.340 --> 01:23:05.600
müssen AI schnell vor die Tür kriegen Ding, ja,

01:23:06.760 --> 01:23:11.260
ist halt gehypt und wie du sagst, das wird sich alles irgendwann einpendeln

01:23:11.260 --> 01:23:16.420
und dann so wie in der Anfangszeit von diesen ganzen Computereffekten in Filmen,

01:23:16.520 --> 01:23:20.960
dann musste irgendwie alles mal zerstört werden und alles mal sinken oder in

01:23:20.960 --> 01:23:25.440
die Luft gesprengt werden und jetzt wird das alles einfach sozusagen mit Bedacht

01:23:25.440 --> 01:23:29.820
im Sinne des Storytellings einfach eingesetzt und oft sieht man es auch gar nicht mehr.

01:23:31.565 --> 01:23:35.045
Genau, und so, das hoffen wir natürlich auch. Und dann ist das ja auch mit den

01:23:35.045 --> 01:23:39.105
ganzen Ressourcen, die da verbraten werden, dann pegelt sich das auch vielleicht

01:23:39.105 --> 01:23:44.345
irgendwo wieder ein, wo man einfach nicht so ein schlechtes Gewissen haben muss.

01:23:46.345 --> 01:23:50.045
Cool. Ich nehme an, ihr plant wahrscheinlich darüber hinaus noch so,

01:23:50.385 --> 01:23:51.805
da wird noch irgendwie was kommen.

01:23:52.505 --> 01:23:56.685
Wie ist so generell die Tendenz bei den anderen Anbietern? Also jetzt ist das

01:23:56.685 --> 01:24:02.265
ja so ein bisschen so ein, sagen wir mal, Chrome- oder Chromium-Familien-Ding.

01:24:04.145 --> 01:24:10.005
Hast du da zumindest ein Gefühl für, wie das insgesamt bei den anderen Herstellern ankommt?

01:24:10.185 --> 01:24:14.805
Oder bleibt es vielleicht so ein bisschen wie bei WebUSB und WebBluetooth,

01:24:15.125 --> 01:24:19.405
vielleicht so ein bisschen mehr so ein Chromium-Ding, was man lange Zeit nicht bei den anderen sieht?

01:24:20.665 --> 01:24:28.905
Also ich denke, es wird so eine gestufte oder abgestufte Rollout-Phase geben.

01:24:29.525 --> 01:24:33.225
Zum Beispiel Mozilla, die waren sehr offen, was jetzt das Thema Translation angeht.

01:24:33.725 --> 01:24:37.065
Die haben dann allerdings einen alternativen API-Vorschlag gebracht.

01:24:37.505 --> 01:24:42.445
So DOM-basiert fand ich jetzt, ja, könnte man als Prolifil dann sogar umsetzen

01:24:42.445 --> 01:24:44.085
mit der API, die wir in Chrome haben.

01:24:44.205 --> 01:24:48.225
Aber es war einfach für die Einwendungsfälle, die wir gemerkt haben,

01:24:48.325 --> 01:24:52.785
dass die Benutzer umgesetzt haben wollen, war es einfach nicht genug.

01:24:52.785 --> 01:24:56.165
Also sprich, deren Vorschlag, ich denke, ja,

01:24:56.805 --> 01:25:02.025
das hoffentlich wird sich das über den Benutzer, über den Benutzernachfrage

01:25:02.025 --> 01:25:06.625
dann am Ende einfach in Staub auflösen und sie werden sagen, okay, das ist eine API,

01:25:06.865 --> 01:25:11.885
die ergibt einfach imperativ Sinn, wir brauchen da keine deklarative, keine Ahnung,

01:25:12.425 --> 01:25:14.925
macht da an diesen DOM-Note ein Attribut hin oder so.

01:25:16.245 --> 01:25:20.205
Also ich denke in diese Richtung hoffe ich, kann man über Benutzern nachfragen,

01:25:20.245 --> 01:25:24.025
da hat es wirklich APIs, die letztendlich ziemlich ähm,

01:25:25.011 --> 01:25:30.891
Ja, unumstritten sind sozusagen, dass man da auf diese Art über Nachfrage und

01:25:30.891 --> 01:25:36.051
Angebot einfach dann über gesteigerte Nachfrage das Angebot an APIs steigert.

01:25:36.051 --> 01:25:43.651
Das Gute ist, also von der Funktion ist ja alles polyfillbar oder über Hybrid-Anwendungen.

01:25:43.871 --> 01:25:49.691
Also wir haben zum Beispiel auch über das Firebase, es heißt Firebase AI-Logic

01:25:49.691 --> 01:25:55.031
von Firebase eine Lösung, die dann eben über Hybrid das Ganze abdeckt.

01:25:55.811 --> 01:26:01.851
Mit dem großen Unterschied natürlich, man kann Privatsphäre nicht über die Cloud garantieren.

01:26:02.131 --> 01:26:07.911
Also wenn du halt den Server brauchst, dann ist Privatsphäre eben kein Selling

01:26:07.911 --> 01:26:09.811
Point mehr, den du vorbringen kannst.

01:26:10.311 --> 01:26:12.151
Aber genau, also nochmal zurück zum Thema.

01:26:12.731 --> 01:26:17.671
Ich denke so, was die APIs angeht, die relativ unumstritten sind,

01:26:17.831 --> 01:26:21.311
ich hoffe, über Nachfrage können wir dann einfach das Angebot letztendlich bei

01:26:21.311 --> 01:26:23.791
den anderen Browser-Windowen steigern.

01:26:24.071 --> 01:26:30.131
Da kommen dann natürlich Firmenentwickler, Partner mit ins Spiel,

01:26:30.211 --> 01:26:36.011
die dann eben sagen, hier, wir sind große Firma XY und das ist der Anwendungsfall, den wir haben.

01:26:36.951 --> 01:26:40.591
Liebe Mozilla, liebe Apple, setz das doch mal um, weil wir würden ungern unseren

01:26:40.591 --> 01:26:43.871
Benuttern sagen, this page is best viewed in Chrome.

01:26:44.451 --> 01:26:47.831
Genau, also in diese Richtung, dass es dann eben so geht.

01:26:48.111 --> 01:26:51.291
Bei der Prompt-API weiß ich noch nicht, was da passieren wird.

01:26:51.371 --> 01:26:59.151
Also ich denke, das wird für eine längere Periode vermutlich mal eine Chrome-only-API

01:26:59.151 --> 01:27:02.011
bleiben oder Chrome-slash-Edge-API bleiben.

01:27:02.451 --> 01:27:04.511
Mal gucken, was die anderen machen, aber...

01:27:05.801 --> 01:27:10.701
Wenn man AI braucht, dann kann man das ja nach wie vor über den Server mit,

01:27:10.721 --> 01:27:15.541
wie gesagt, diesen Privacy-Offline-Abstrichen trotzdem noch realisieren.

01:27:16.181 --> 01:27:22.021
Also ich denke, es ist keine Katastrophe, wenn das dann eine Zeit lang Chrome-Edge-only

01:27:22.021 --> 01:27:26.281
bleibt. Und bei WebUSB und so weiter, da ist natürlich das, ja,

01:27:26.581 --> 01:27:29.621
wenn die APIs nicht existieren, da gibt es keine Möglichkeit,

01:27:29.661 --> 01:27:30.901
das zu prolifillen oder so.

01:27:31.541 --> 01:27:35.701
Genau, aber ich denke so, je unumschrittener die APIs, desto eher werden sie

01:27:35.701 --> 01:27:40.981
landen und Leute, Hörer, Hörerinnen, die jetzt hier dabei sind und sagen,

01:27:41.101 --> 01:27:45.561
großartige Sache, macht euch Gehör bei den ganzen Browser-Vendoren.

01:27:45.561 --> 01:27:50.721
Also schreibt auf die Bugs, schreibt auf die Diskussionen, die gestartet werden

01:27:50.721 --> 01:27:53.101
in puncto Standardisierungsversuche,

01:27:53.281 --> 01:27:57.501
schreibt da tatsächlich auch, hey, wir sind große Firma oder kleine Firma oder

01:27:57.501 --> 01:28:01.461
was auch immer, Indie-Developer und wir wollen das und das nutzen und können

01:28:01.461 --> 01:28:03.641
das nicht, weil die API ist nicht verfügbar.

01:28:03.641 --> 01:28:05.781
Also ich denke, das hilft auch immer.

01:28:05.921 --> 01:28:09.241
Man unterschätzt dann immer auch so ein bisschen die Netzwerkeffekte,

01:28:09.501 --> 01:28:10.621
die man dadurch haben kann,

01:28:11.121 --> 01:28:16.921
weil jeder sieht sich als kleinen Entwickler oder kleine Firma,

01:28:17.041 --> 01:28:22.661
aber letztendlich viele sind Consultant und können da vielleicht als eine Person

01:28:22.661 --> 01:28:26.581
100 große Firmen ansprechen oder nicht 100, aber 50 oder keine Ahnung,

01:28:26.661 --> 01:28:30.261
20 oder vielleicht auch nur 5, wenn die dann sehr, sehr wichtig sind.

01:28:30.261 --> 01:28:36.381
Also ich denke, in diese Richtung unterschätzt man da den eigenen Hebel,

01:28:36.541 --> 01:28:39.321
den man hat auch auf so viele Diskussionen immer ein bisschen.

01:28:40.561 --> 01:28:44.641
Ich wollte noch die quasi letzte Sache, die ich noch fragen wollte.

01:28:44.741 --> 01:28:50.641
Ich habe mal nachgeschaut und es gibt keine W3C-Specs für diese APIs.

01:28:51.301 --> 01:28:55.961
Ist das noch in Planung oder wie sieht es da aus?

01:28:56.081 --> 01:28:59.881
Also das ist ja wahrscheinlich auch Voraussetzung dafür, dass alle Browser-Vendoren

01:28:59.881 --> 01:29:05.881
irgendwie zusammen an was werkeln und die Testscheiben, über die wir auch gesprochen haben.

01:29:07.899 --> 01:29:12.779
Genau, also wir verfolgen da den Blink-Shipping-Prozess. Das startet typischerweise

01:29:12.779 --> 01:29:17.419
mit einem Explainer, also so ein relativ formloses Dokument,

01:29:17.559 --> 01:29:20.779
wo man einfach sich mal überlegt, was ist das Problem und wie könnte das Problem

01:29:20.779 --> 01:29:22.119
möglicherweise gelöst werden.

01:29:22.339 --> 01:29:25.499
Wir haben dann ein Repo, das nennt sich Explainers by Googlers,

01:29:26.219 --> 01:29:31.519
wo man als Google-Mitarbeiter sich dann einfach mehr oder weniger so ein Repo

01:29:31.519 --> 01:29:36.639
unter diesem Namespace residieren kann und dann sagen kann, das ist meine Idee, das möchten wir haben.

01:29:36.639 --> 01:29:43.899
Der nächste Schritt ist dann von dort aus, dass man über die Web Incubator Community Group, also WICG,

01:29:44.359 --> 01:29:49.259
als nächsten Schritt dann geht und sagt, hier, wir haben eine gewisse Nachfrage

01:29:49.259 --> 01:29:54.859
nach dieser Idee gesehen und wir wollen das ein bisschen weiter vorantreiben

01:29:54.859 --> 01:29:58.639
und würden das gerne in der WICG dann starten.

01:29:59.819 --> 01:30:03.799
Parallel kann es dann sein, es gibt eine Community Group, also im konkreten

01:30:03.799 --> 01:30:08.199
Fall gerade arbeiten wir mit der Web Machine Learning Community Group beim B3C,

01:30:08.319 --> 01:30:12.699
die sind noch nicht standardbefugt, aber es ist immerhin schon direkt im B3C,

01:30:12.859 --> 01:30:13.779
auch mit anderen Vendoren.

01:30:14.239 --> 01:30:18.259
Und dann irgendwann, wenn im nächsten Schritt sich abzeichnet,

01:30:18.379 --> 01:30:21.459
okay, es gibt verschiedene Implementierungen, also nicht nur eine,

01:30:21.579 --> 01:30:23.279
sondern von verschiedenen Browser Engines,

01:30:23.699 --> 01:30:27.159
dann kann das Ganze in eine Working Group migriert werden, also Also sprich,

01:30:27.339 --> 01:30:29.699
dann kann es zum echten Webstandard werden,

01:30:29.899 --> 01:30:35.879
wenn dann eben verschiedene Vendoren und ja, tatsächlich auch Engine-Hersteller

01:30:35.879 --> 01:30:39.739
implementieren und dann sagen, okay, wir migrieren jetzt von der Community Group

01:30:39.739 --> 01:30:44.339
oder von der WICG rüber in eine echte W3C Working Group.

01:30:45.039 --> 01:30:50.979
Und parallel natürlich kann jeder Browser machen, was er möchte und jeder kann

01:30:50.979 --> 01:30:58.499
APIs shippen, also man ist dann nicht auf quasi Erlaubnis von den anderen Vendoren angewiesen,

01:30:58.659 --> 01:31:00.139
es ist natürlich immer schön, wenn man.

01:31:01.599 --> 01:31:06.639
Gemeinsame Schritte gehen kann, aber teilweise macht dann jeder Vendor so ein

01:31:06.639 --> 01:31:09.039
bisschen seine eigene Geschichte und sagt dann, okay,

01:31:09.279 --> 01:31:13.779
für uns ist gerade das Thema AI wichtig und Und wir sehen da große Nachfrage

01:31:13.779 --> 01:31:17.179
bei unseren Google-Chrome-Partnern.

01:31:17.319 --> 01:31:22.059
Und dann kann man auch sagen, okay, man shippt unilateral, ohne jetzt auf die

01:31:22.059 --> 01:31:23.759
anderen zwingend zu warten.

01:31:24.139 --> 01:31:28.879
Aber, und das ist bei uns sehr, sehr wichtig, es muss immer der Dialog da sein

01:31:28.879 --> 01:31:31.239
im Sinne von, wir müssen den Dialog gestartet haben.

01:31:31.339 --> 01:31:36.619
Und dafür gibt es die Repositories von Mozilla und von Apple oder von WebKit

01:31:36.619 --> 01:31:41.039
vielmehr, die WebKit-Standards-Positions und die Mozilla-Standards-Positions.

01:31:41.039 --> 01:31:47.519
Und da haben wir auch ganz klar gesagt, okay, wir haben diese APIs in Arbeit und.

01:31:48.679 --> 01:31:52.159
Was denkt ihr dann dazu? Was ist da eure Meinung? Also jeder,

01:31:52.259 --> 01:31:56.199
der sich für das Thema interessiert, kann einfach den API-Namen suchen.

01:31:56.339 --> 01:32:01.299
Am besten geht es über chromestatus.com und sucht dann Writer-API zum Beispiel

01:32:01.299 --> 01:32:05.599
und dann findet man auch die ganzen Links auf die verschiedenen Repositories,

01:32:05.819 --> 01:32:10.139
wo dann eben die Webcat Standards Position nachzulesen ist.

01:32:10.139 --> 01:32:14.339
Sondern kann man eben auch als Layperson sich das mal anschauen und dann sagen,

01:32:14.439 --> 01:32:19.439
okay, wir sind jetzt vielleicht, keine Ahnung, Adobe und für uns ist das Thema

01:32:19.439 --> 01:32:22.799
AI ein großes Thema und AI mit Bildern zum Beispiel.

01:32:22.979 --> 01:32:27.219
Also ich sage jetzt nicht, dass Adobe tatsächlich konkret da schon innoviert

01:32:27.219 --> 01:32:32.059
ist, aber mit Adobe haben wir zum Beispiel historisch zusammengearbeitet in puncto Photoshop.

01:32:32.059 --> 01:32:36.699
Und da war eben genau das der Hebel dann, dass Photoshop gesagt hat oder Adobe

01:32:36.699 --> 01:32:42.079
gesagt hat, hier, wir wollen Photoshop ins Web bringen und dafür brauchen wir die und die API.

01:32:42.259 --> 01:32:45.579
Also im konkreten Fall war es das Origin Private File System.

01:32:46.299 --> 01:32:51.399
Und ja, das ist eben für uns zwingend und entweder Mozilla und Apple,

01:32:51.579 --> 01:32:56.679
ihr implementiert das oder naja, die App kann eben auf eurem Browser nicht laufen.

01:32:56.679 --> 01:33:02.779
Und ja, das hat dann am Ende gewirkt und ja, über diesen Hebeleffekt quasi,

01:33:03.019 --> 01:33:06.839
dass ein großer Partner wie Adobe nachgefragt hat, ging das dann eben.

01:33:07.999 --> 01:33:12.319
Aber ja, man muss dafür kein großer Partner sein. Jeder, das alles funktioniert über GitHub,

01:33:12.779 --> 01:33:17.279
jeder kann die Meinung auf ein Issue dazuschreiben und dann sagen,

01:33:17.399 --> 01:33:20.859
okay, wir sind jetzt ein Mittelständler in Deutschland und wir hätten gerne

01:33:20.859 --> 01:33:24.979
das für unsere Hunderten von Partnern oder Kunden oder was auch immer.

01:33:24.979 --> 01:33:27.799
Und das ist genau der Anwendungsfall, den wir umsetzen wollen.

01:33:28.739 --> 01:33:33.259
Und genau, also das ist schon wirklich, würde ich sagen, ziemlich offen für alle.

01:33:34.499 --> 01:33:37.319
Natürlich sollte man nicht spammen, aber wenn man jetzt wirklich einen validen

01:33:37.319 --> 01:33:41.519
Meinungspunkt noch dazugeben möchte, auf jeden Fall.

01:33:42.981 --> 01:33:51.501
Genau, und ansonsten gilt, APIs mal erforschen, angucken, vielleicht auch für

01:33:51.501 --> 01:33:55.281
die ein oder andere Origin-Trial anmelden, wenn man neugierig ist.

01:33:55.441 --> 01:33:59.701
Ich meine, man kann das ja immer lokal alles testen ohne Origin-Trial,

01:33:59.781 --> 01:34:04.721
da kann man ja einfach dann in Chrome Flex dann die entsprechenden Sachen freischalten.

01:34:05.941 --> 01:34:10.881
Aber wenn man das jetzt mit seinen BesucherInnen zusammen testen will die kann

01:34:10.881 --> 01:34:15.821
man ja jetzt nicht immer auffordern in Chrome Flex diese Flex zu setzen genau

01:34:15.821 --> 01:34:22.161
in dem Fall dann macht man es über die Origin Trial und euch dann irgendwie Feedback geben,

01:34:22.241 --> 01:34:24.521
ob das irgendwie nützlich ist,

01:34:25.221 --> 01:34:31.141
ob die gut benutzbar ist oder ob es irgendwo noch klemmt damit ihr das einfach

01:34:31.141 --> 01:34:35.521
schon mal wisst, bevor ihr dann das shippt und die Leute sie dann hinterher

01:34:35.521 --> 01:34:37.421
sich beschweren oder so.

01:34:37.861 --> 01:34:39.401
Genau, sehr gerne. Also auf jeden

01:34:39.401 --> 01:34:43.241
Fall, es gibt ja immer verschiedene Probleme, in die man laufen kann.

01:34:43.481 --> 01:34:48.681
Das eine ist, die API macht auf dem Papier, was sie soll, aber in der Implementierung

01:34:48.681 --> 01:34:49.561
macht sie das eben nicht.

01:34:50.601 --> 01:34:57.141
Dann neuen Chrome-Bug aufmachen, also es gibt die praktische URL new.crbug.com,

01:34:57.301 --> 01:34:59.881
die dann eben einen direkt auf den richtigen Ort führt.

01:35:01.261 --> 01:35:06.081
Das ist für Implementierungs-Bugs. Und dann gibt es aber auch natürlich so Fälle,

01:35:06.181 --> 01:35:11.321
wo man sagt, okay, ich habe jetzt dieses Problem, die API geht vielleicht in

01:35:11.321 --> 01:35:15.561
die richtige Richtung, aber mir fehlt da noch, sagen wir, ein Parameter dafür, dann eben sagt, okay.

01:35:16.761 --> 01:35:21.321
Ich möchte, was auch immer, anstelle von Markdown und Plaintext möchte ich auch

01:35:21.321 --> 01:35:23.661
HTML zurückbekommen, aber das ist derzeit nicht möglich.

01:35:24.081 --> 01:35:29.061
Dann macht man auf dem Repository von dem Spec-Draft, macht man dann eben ein

01:35:29.061 --> 01:35:32.941
Issue auf und sagt, so, hier, ich hätte gerne diesen Ausgabeparameter,

01:35:33.121 --> 01:35:35.321
dass der noch HTML unterstützt als,

01:35:36.230 --> 01:35:40.590
Primitives Beispiel. Und genau, in diese Richtung kann man dann auf jeden Fall gehen.

01:35:40.750 --> 01:35:44.310
Und wir freuen uns auch immer, wenn die Leute einfach Demos teilen.

01:35:44.530 --> 01:35:47.370
Wir haben, das nennen wir das Early Preview Program.

01:35:47.750 --> 01:35:50.810
Ist auch verlinkt auf der developer.com.com Website.

01:35:51.510 --> 01:35:56.410
Ich glaube, docs slash builtin und dann erscheint es irgendwo auf der linken Seite.

01:35:56.410 --> 01:36:04.350
Early Preview Program, wo man sich einschreiben kann und dann eben mit zu den

01:36:04.350 --> 01:36:10.230
ersten gehört, die über neue API-Entwicklungen hört und dann eben auch sehr, sehr früh testen kann.

01:36:10.490 --> 01:36:12.970
Also da herzliche Einladung, nehmt da teil.

01:36:13.330 --> 01:36:18.570
Und dann letztendlich das FRL-Team, meine Kolleginnen und Kollegen,

01:36:18.810 --> 01:36:22.770
wir sind alle auf verschiedenen sozialen Netzwerken verfügbar,

01:36:22.930 --> 01:36:26.750
also schreibt uns auch gerne direkt an, teilt eure Demos mit uns.

01:36:26.910 --> 01:36:31.110
Ich bin auch immer jemand, der dann gerne auch die Sachen intern weiterleitet

01:36:31.110 --> 01:36:32.410
und sagt so, hey, schaut mal.

01:36:33.870 --> 01:36:36.530
Ihr Ingenieure bastelt dann nicht nur einfach so vor euch hin,

01:36:36.670 --> 01:36:42.530
sondern andere Leute extern bauen da drauf tatsächlich ihre vielleicht neuen

01:36:42.530 --> 01:36:45.530
Geschäftsideen auf und hier, schaut euch das doch einfach mal an.

01:36:46.410 --> 01:36:50.590
Also ich bin jemand, der gerne auch testet und checkt und schaut, was passiert.

01:36:53.316 --> 01:36:57.596
Wir werden auf jeden Fall die Kontaktwege zu dir, wenn wir alle verlinken.

01:36:58.076 --> 01:37:03.276
Und auch zu den ganzen Seiten, über die wir gesprochen haben.

01:37:04.616 --> 01:37:10.296
Zu Chrome Status, zu dem Vorschau-Programm.

01:37:12.156 --> 01:37:15.616
Das machen wir auf jeden Fall alles. Early Preview-Programm.

01:37:15.756 --> 01:37:17.056
Early Preview-Programm, genau.

01:37:18.356 --> 01:37:25.736
Und wir sind gespannt, was da rauskommt. Und ich habe auch so ein paar Gedanken gehabt.

01:37:25.916 --> 01:37:30.656
Ich meine, die Vanessa, klar, die hat den super Use Case mit ihrem neuen Firmenimperium,

01:37:30.876 --> 01:37:34.476
das dann KI auf den Besuchergeräten ausführt.

01:37:35.256 --> 01:37:38.996
Soweit war ich jetzt nicht gedanklich, aber ein paar Ideen hatte ich auch.

01:37:40.196 --> 01:37:42.316
Super, sehr cool. Ja.

01:37:43.976 --> 01:37:46.896
Schön, dass du da warst. War wieder super interessant.

01:37:47.336 --> 01:37:50.176
Ja, danke für die Einladung. Ja, machen wir wieder.

01:37:50.296 --> 01:37:56.256
Bin gespannt, ob es dann auch um diese APIs sich drehen wird.

01:37:56.536 --> 01:38:02.476
So wie wir zweimal Fugu hatten oder auch wieder, du hast ja immer so die Spezialgeschichten,

01:38:02.636 --> 01:38:10.296
die so ein bisschen abseits des Mainstreams sind, aber die immer sehr spannend sind. Genau so.

01:38:11.416 --> 01:38:15.296
Ich bin auf jeden Fall jemand, der gerne dahin geht, wo es möglicherweise wehtut.

01:38:15.436 --> 01:38:17.476
Also im Sinne von Bleeding Edge.

01:38:17.636 --> 01:38:22.756
Das ist schon da, wo ich mich sehr wohl fühle. Ja, cool.

01:38:23.136 --> 01:38:26.776
Vielen Dank. Liebe Grüße nach Spanien. Graças.

01:38:27.436 --> 01:38:30.676
Danke auch an Vanessa. Viele Grüße nach Freising. Danke dir.

01:38:31.316 --> 01:38:36.036
Und dann hören wir uns nächste Woche wieder. Also die HörerInnen hören uns.

01:38:36.296 --> 01:38:39.576
Ich weiß gar nicht, worum es geht, aber es wird wieder was Schönes werden.

01:38:40.196 --> 01:38:43.236
Dann macht's gut. Ciao, ciao. Tschüss.

01:38:44.240 --> 01:39:12.640
Music.

