News 10/23 –
Turborepo 1.8 // GitHub Updates // TypeScript 5 RC // LLaMA Leak
08.03.2023
- // Podcast
- // News 10/23
Shownotes
Einige News aus dem GitHub-Universum haben sich angestaut: Secret Scanning, Pull Request Merge Queue und GitHub Actions Importer.
TypeScript 5 ist nun im Release Candidate – viel hat sich aber zu News 05/23 nicht geändert.
Das Sprachmodell von Meta wurde geleaked und ist nun öffentlich zugänglich.
Turborepo ist in Version 1.8 verfügbar – und da wir selbst nicht genau wussten, was das eigentlich ist, geht Jojo in dieser Folge etwas mehr ins Detail.
/transkript/programmierbar/news-10-23-turborepo-1-8-github-updates-typescript-5-rc-llama-leak
Hallo und herzlich willkommen zu einer neuen neuen Newsfolge der Programmierbar 10 23. Haben wir schon wieder ein Fünftel des Jahres rum. Ich sitze hier zusammen mit.
Tim.
Sebi.
Tim Fabi und dem Jojo.
Ich bin Dennis und wir freuen uns heute ein bisschen was zu erzählen über Turbo Repo. Es gibt ein paar News rund GitHub TypeScript 5, Major Version ist releast worden. Und natürlich, und zwar ist ja nicht aktuell die Programmierbar, gibt es noch eine Kleinigkeit zu einem. Ai Sprachmodell. Womit möchtet ihr anfangen? Habt ihr eine Präferenz? Yulio, du möchtest bestimmt was über Turbo Repo erzählen.
Ja, wir haben ja hier schon auch einige Male über Turbo Pack gesprochen und das ist, glaube ich, euch wahrscheinlich auch einfach ein Begriff. Aber ich bin darauf gestoßen, dass ich jetzt so eine Blogartikel gelesen habe, dass irgendwie Turbo Repo 1.8 veröffentlicht war und ich dachte okay, was ist denn das? Und ja, es gehört auf jeden Fall sehr eng zusammen zu Turbo Pack. Beide sind nämlich unter dem Turbo Bild System eigentlich aufgehängt und findet man auf der Website mit Turbo Bild. Und da gibt es eigentlich dann so einen einfachen Tockel, wo man dann einfach zwischen Turbo Pack und Turbo Repo unterscheiden oder sich die Dokumentation dann eben anschauen kann. Und beides wird auch maßgeblich von Verselle entwickelt. Wir hatten ja gerade einen Podcast zu Verselle, das ist glaube ich kurz zur Sprache gekommen, aber ich glaube, so der Begriff mit Turbo Repo war uns allen noch nicht ein Begriff. Deswegen dachte ich mal, ist es ganz interessant, das mal zu unterscheiden. Also erst mal Turbo Pack ist ja dieser inkrementelle Wandler, der eben für JavaScript und TypeScript geeignet ist, der auch als Nachfolger von WebPack entstanden ist. Der ist ja total wie aus Koppers ja sehr stark involviert, der damals ja auch der Initiator von WebPack war, der jetzt auch bei WordSell arbeitet seit ungefähr zwei Jahren.
Und was vor allem halt TovoPack eben bietet, sind halt sehr schnelle inkrementelle Builds. Und wie sie das erreichen, ist eben, dass sie halt einen Build Cache etablieren, wo halt alle Build Artefakte, die während des Builds gebaut werden, vorgehalten werden, auch über verschiedene Versionen vielleicht hinweg. Und man kann diesen Cache eben zum einen lokal cachen, also für sich selber vielleicht, wenn sich zum Beispiel ein Test jetzt nicht geändert hat oder eben ein Build Artefakt sich nicht geändert hat, einfach wieder darauf zurückzugreifen beim nächsten Bild. Was aber auch eben möglich ist und das ist einfach eine grundsätzliche Funktionalität von Turbo Pack, dass man sagen kann, man kann auch ein Remote Cache einführen. Das heißt, dass nicht nur ich letztendlich von meinen vorgebauten Bildartefakten profitiere, sondern vielleicht mein ganzes Team davon profitieren kann, wenn einer im Team eben schon mal in einer Version ein Bild oder irgendeinen Prozess durchgeführt hat, irgendeinen Befehl, dass man dann einfach auf diese Artefakte zurückgreifen kann und oftmals zum Beispiel deswegen gar keine Tests mehr ausführen muss, was natürlich sehr viele Schritte in der Entwicklung irgendwie vereinfachen kann. Gerade wenn man sich gegenseitig PRs reviewt, man führt dann auf diesen PR vielleichtich denn die Tests durch, kann ich eigentlich genau das nutzen, was der andere vielleicht schon hinterlegt hat.
Und was Turbo-Repo eben da ein bisschen so drüber stülpt, ist eben ein Tool zum Verwalten von Monorepos, was, ja, ich will nicht sagen, es ist nicht von Lerner inspiriert, aber wir finden gewisse Ähnlichkeiten, also es ist ein ähnlicher Ansatz, wie es Lerner anbietet, dass ja heutzutage Code halt oftmals in Monorepos verwaltet wird oder auch in Poly-Repos. Dafür kann man es genauso nutzen, den Code natürlich an einer Stelle eben haben zu können, auch vielleicht für unterschiedliche Plattformen eben mit einer geteilten Code Basis Code erstellen zu können. Und Mono-Turbo-Repo führt jetzt eigentlich Turbo Pack in diesen einzelnen Bestandteilen des Projektes aus. Also sie nennen das Workspace und nutzen natürlich auch da eben diese Vorteile von dem inkrementellen Build und Caching Ansatz. Führt aber auch so was wie bei Lerner ein, dass ich so ein Top Level Dependency Management habe, also meine NPM Module, die Modules eben nicht in jedem einzelnen Unterprojekt verwaltet wird. Ich glaube, das ist auch etwas, was Jan dann irgendwie eingeführt hat, sondern dass das eben an einer zentralen.
Stelle verwaltet. Ja, ist auch bei mir irgendwie immer noch so ein Punkt, dass wenn ich über Lerner nachdenke ich eigentlich gar nicht so wirklich weiß, was sie eigentlich jetzt mir mehr bringt als Jan Workspace. Wir haben ja mal eine Mono-Repo-Folge gemacht, da war Lerner auf jeden Fall auch Thema, aber ich wüsste überhaupt nicht, warum Lerner noch eine Daseinsberechtigung hat. Aber irgendwie hat es eine Daseinsberechtigung. Ich weiß nicht. Es wird noch...
Es kann noch ein bisschen mehr als diese.
Jan Workspace. Ich glaube, selbst in der Jan Workspace Doku wird Lernr auch noch mal referenziert. Also so ein bisschen vom Konzept. Aber ich verstehe es nicht ganz, was es mir eigentlich mehr bringt.
Aber war das auch nicht abrundend irgendwie? Und dann ist es jetzt erst wieder neu gerefrashed?
Lernr? Ich meineJa, kann auch sein. Ich habe die ganze Entwicklung da nicht mitbekommen. Also gefühlt ist es auf jeden Fall so, dass es natürlich so ganz in die Richtung geht, aber eher natürlich so diesem Ansatz von Jan Workspace entspricht mit diesem Top Level Dependency Management. Und was es eben noch weiterhin darüber hinaus bietet, ist halt eben, dass es sogenannte Task Pipelines definieren kann. Also es gibt natürlich oftmals solche Schritte. Ich habe eben ein Unterprojekt, ein Bild definiert, also zum Beispiel einen Shared Bereich. Wenn ich dann eins meiner Projekte, was dann Shared verwendet, eben dann auch ein Bild auswählen möchte, möchte ich erst mal sicherstellen, dass eben das Bild von dem zentralen geshareden Paket ausgeführt wird. Und das schreibt man sich auch selber in Bildskripten. Und was eben halt dort dann turbo-repo für dich übernehmen kann, das ist halt genau unterscheidet. Man definiert eigentlich nur sozusagen die Abhängigkeit zwischen diesen einzelnen Tasks unter Projekte. Und er kann dann selber entscheiden, in welcher Reihenfolge kann ich die ausführen? Kann ich die irgendwie optimieren und parallel ausführen, sodass man da einfach eine sehr größere Flexibilität hat und oftmals natürlich dann entsprechende Schritte irgendwie eingespart werden können und er einfach selber entscheiden kann, was aber die optimale Ausführungsstrategie letztendlich für einen gewissen Task dann ist.
Und auch hier ist es eben so, dass man genau dieses Remote Caching bei TurboRoop benutzen kann. Also eigentlich die Funktionalität, die von TurboPack angeboten wird, aber dass es eben dann halt zentral für das gesamte Mono-Rot hier direkt konfiguriert ist. Die haben auch so einen Ansatz, dass sie sagen, man soll so wenig wie möglich konfigurieren. Das ist erst mal so, dass das eigentlich für die meisten Anwendungsfälle optimal konfiguriert ist, aber man natürlich auch alle Flexibilität hat, das weiter zu konkretisieren. Und was ich auch nicht wusste, dass Versal so ein Remote Cache anbietet, also auch wenn man nicht auf irgendwie Versal hostet, kann man auch diesen Versal Remote Cache umsonst nutzen. Das heißt, man könnte das einfach anbinden an sein Turbo-Repo, Turbo Pack Setup und sagen: „Wenn ich jetzt diese Vorteile von diesem geshärten Caching für diese Bild-Artefakte haben will, kann ich das einfach über eine Verseal Remote Cache machen. Wenn ich natürlich auf „Wer soll noch hosten?, habe ich vielleicht noch die Vorteile, dass es direkt integriert ist. Und was jetzt eigentlich in dieser Version 1.8 dazugekommen ist, ist, dass man eben die Arbeitsbereiche irgendwie einfacher konfigurieren kann. Also vorher war es eben so, man hatte nur eine globale Konfigurationsdatei für das gesamte Mono-Repo und jetzt wird es eben unterstützt, dass jedes Unterpaket eben eine eigene Turbo.
Json Datei beinhalten kann, wo ich dann für das Paket die spezifischen Befehle und Operationen hinterlege, aber sozusagen das in den Gesamt-Scope. Ich kann auch aus jedem anderen Scope letztendlich alle Unterbereiche oder die Befehle aus diesen Unterpaketen aufrufen. Aber es ist eben deutlich einfacher, dass ich das nicht mehr in dieser globalen Konfiguration machen kann, sondern eben an der Stelle, wo sie eigentlich dann hingehören, was halt einfach gerade in sehr großen Mono-Repositorys, wo vielleicht auch die Zuständigkeit der einzelnen Bestandteile eines Mono-Repos dann bei unterschiedlichen Teams liegt, das vereinfacht das so ein bisschen dann zu verwalten, sodass nicht immer diese zentrale Stelle verwaltet werden kann. Und das passiert auch eben automatisch, dieses Scoping. Das heißt, wenn ich mich irgendwo in einem Unterordner befinde und dann turbo, was ein globaler Befehl ist, eben ausführe, wird automatisch identifiziert. Okay, ich bin jetzt in dem Scope, deswegen spreche ich wahrscheinlichsten diese Befehle, diese Operation von diesem Scope, von diesem Arbeitsbereich an, kann aber auch an der Stelle natürlich weiter nach oben gehen, globale Sachen oder auch irgendwelche Tasks aus anderen Paketen auszuführen. Ja, das ist so das Zentrale? Ich glaube, wenn man Monorepa hat, sowieso vielleicht irgendwie Turbo Pack verwenden möchte oder darüber nachdenkt und vielleicht auch auf Börse hostet, ist das einfach eine gute Integration, die einfach so bestimmte Dinge einfach noch mal vereinfacht und einfach da ein sehr einfaches Setup.
Also auch da so in der Dokumentation sehr schön nachzuvollziehen, ist sehr ausführlich, wie einfach man das auf ein bestehendes Turbo-Repo anwenden kann oder wie man mit diesem Tool zum Beispiel auch komplett neue Turbo-Repos erstellen kann, die dann schon bestimmten Code-Konventionen und Pfad-Organisationen vornehmen, das einfacher zu gestalten.
Und es ist wirklich so, dass es eigentlich schon Produktion-Rally ist? Ist Turbo Pack eigentlich schon stabil?
Oh, da fragst du mich was. Zumindest sieht die Seite sehr professionell aus, dass ich nicht hinterfragt hatte. Und ich denke, eine 1.8er Version.
1.8 klingt nach...
Produktion ready.
Denke schon.
Ja, glaubt uns ist Produktion ready.
Nutzt es. Einfach einsetzen und ihr sagt uns dann, ob es Produktion ready war oder nicht.
Turbo Pack ist Toronto in Alpha. It is not ready for Produktion. We apprecieer your support and feedback at the work to make it ready for everyone.
Gut. Also es.
Steht bei Turbo Pack, also bei Turbo Repo. Aber ich glaube.
Bei Turbo Repo tatsächlich.
Bei Turbo Repo steht es nicht. Es steht bei Turbo Pack.
Aber wenn es natürlich unter Turbo Pack verwendet wird alles, ist es doch vielleicht ein bisschen mit Vorsicht zu genießen. Gut für diese Info Fabi, dass du.
Das Info bereit hattest. Auf keinen Fall einsetzen. Große Warnung.
Sehr gut.
Okay, dann gibt es drei kleine Updates zu GitHub, die in den letzten Tagen und Wochen so rausgekommen sind. Glaub ich alle ein bisschen aus unterschiedlichen Bereichen. Das eine, es gibt jetzt für alle verfügbar ein GitHub Actions Importer. Das ist einfach, wenn man aktuell irgendwo anders seine CI/CD Pipeline hat, dann kann man die jetzt relativ einfach in GitHub Actions konvertieren. Das heißt, da gibt es einfach viele Dienste, die sie unterstützen von irgendwie CircleCI, GitLab, Jenkins, JavaScriptCI und so und können einfach von dort dann diese Pipelines überführen und in dann in GitHub Actions umwandeln. Und auch hier, ich bin ja, habe lange keine Zahlen mehr, nach Zahlen gefragt und Zahlen gedropt, aber sie schreiben hier in dem Artikel, einer der größten Kunden, die sie haben, hat 15.000 Pipelines, die sie migrieren mussten. Was sind das? Was sind das für SoftwareStrukturen zu 15.000 CI-Pipelines hast du.
Sie schüttelt nur.
Ist ja wahrscheinlich einfach nicht für ein Produkt, oder? Für ein Produkt, das Company-Welt.
Pro Commit.
Ein großes Monorepro. Wer weiß. Was denn? Ja, gut.
Das nächste ist Secret Scanning Alert. Das heißt, man kann jetzt in allen Public Repositories kostenlos ein sogenanntes Secret Scanning aktivieren, muss man aber proaktiv tun in den Einstellungen des jeweiligen Repositorys. Und was das tut, ist, dass es versucht rauszufinden, ob eventuell irgendwelche Secret aus Versehen eingecheckt wurden.
Wer macht denn so was?
Ja, weil ich gerade...
Sorry.
Ich.
Wollte gerade fragen, haben wir das angemacht?
Ich habe es gerade vor dem Podcast angemacht. Und ja, auf der Programmierbarwebsite haben wir einen Google Public API Key, der gefunden wurde.
Aber das wollte ich gerade sagen, weil das musstest du anmachen, weil ich habe, Github hat mir nämlich den Alert geschickt, weil ich hatte nämlich auch kurzzeitig unseren API Key, kann ich jetzt sagen, weil der schon revoged wurde, unseren API Key für unsere Transkription API eingecheckt. Und da habe ich einen Alert bekommen direkt danach.
Aber jetzt habe ich es, genau, jetzt musste.
Ich es gerade... Deswegen gucke ich gerade mal, weil ich habe den Alert, ich habe es nämlich dann mitbekommen. So, ja Mist, ich wollte den eigentlich rausnehmen und nicht einchecken. Ach so.
Ja, aber wenn ihr irgendwelche Secret und Tokens braucht, geht mal ans Repo von der Programmiererwebsite.
Ja, also wir sind da.
Ja, also genau. Das heißt, ich weiß das. Ich habe jetzt gerade, wie gesagt, ich habe es gerade vor der Podcastfolge für die Programmiererwebsite angeschaltet, da kam der Alert. Ich habe ihn jetzt noch nicht überprüft. Ist das ein API Key, der nicht sein sollte? Wie hast du das direkt schon überblicken können?
Google Public API Key.
Wahrscheinlich für die Google Maps API. Aber das.
Klingt erst mal super.
Klingt erst mal gut. Ich würde sagen, Google Maps irgendwo eingebunden ist wahrscheinlich dafür. Müssen wir mal schauen.
Gut, sollte vielleicht trotzdem nicht darum liegen.
Fabian, falls du zuhörst, sag uns kurz Bescheid, ob wir den rausnehmen sollen.
Ja, also könnt ihr aktivieren und böse Überraschung. Also auch das steht letztendlich in dem. Ich meine, es passiert einfach. Es kann immer wieder passieren, dass es irgendwo drin ist, dass man nicht darauf achtet, auch wenn man sich dem Problem letztendlich bewusst ist. Und ja, also es gibt irgendwie, als wir das angeschaltet haben und 70.000 öffentliche Procitorys das irgendwie mal angemacht haben. Da waren schon tausende Secret drin, die dadurch belegt wurden. Und im Hintergrund ist auch irgendwie so, dass Github da mit Partnern zusammenarbeitet. Das heißts auch irgendwie darüber dann festgestellt werden kann: „Hey, sind das Keys, die da in Benutzung sind? Und beide kriegen dann auch einen Alert. Das heißt, je nach Wahrscheinlichkeit bekommen auch diese Partnerplattformen dann mitgeteilt: „Hey, Vorsicht, dieser Key ist öffentlich.
Das geht aber auch für Private Repositories. Also es ist jetzt sozusagen für Public Repositories einfach umsonst aktivierbar und Private eventuell dann mit bezahlen?
Gute Frage. Gute Frage. Müsste ich nachgucken. Also wie gesagt, für Public ist es kostenlos. Da konnte ich es jetzt gerade anmachen.
Und.
Live können wir das natürlich direkt.
Besser nicht, so viele E-Mails.
Live können wir es natürlich direkt für ein anderes Projekt noch versuchen und wir nehmen das, wo SIBI aktiv ist. Sibi arbeitet da gar nicht aktiv. Nehmen wir Quiz Planning Settings Code Security and Analysis.
Da scheint es noch nichts.
Dran zu sein. Da scheint es noch nichts zu geben. Für Private Repositorials gibt es diese Funktion anscheinend noch nicht. Die sind ja auch überarbeitet. Ja, macht ja, ja, danke.
Die.
Connection hatte ich gerade auch.
Im Kopf. Aber trotzdem sollte man ja auch so diese Sequenz nicht einchecken. Weißt du, falls jemand mal Zugang irgendwie zu deinem Revo bekommt, weißt du, egal.
Das Sehhopfen und Malz.
Ja.
Wer macht denn so was?
Cool. Sehr gut. Und nächstes kleines Update noch sind sogenannte Pull-Request Merge Queues. Das heißt, es gibt jetzt die Möglichkeit, wenn man einen Pull-Request hat, den zu einer Warteschlange einfach hinzuzufügen. Das vor allen Dingen auch, ich denke, je mehr Entwickler in einem Team, desto größer der Vorteil davon, aber eventuell auch schon bei kleineren. Und zwar ist es so, sonst wenn du irgendwie was zurückmergen möchtest auf einen Master-Brand zum Beispiel. Und in der Zwischenzeit hat jemand anderes was darauf gepusht. Dann musst du das ja erst mal wieder in deinen eigenen da zurückholen und danach kannst du dann das Neue wieder auf den Master machen. Und diese Arbeit praktisch abzunehmen, gibt es diese Queue. Und da ist es so, dass das dann einfach hintereinander automatisiert abgearbeitet wird und in jedem Schritt überprüft wird, ob praktisch die ganze CI dann auch funktioniert, sodass man damit dann nichts mehr zu tun hat und letztendlich einfach nur sagen kann, okay, merge das, wenn du ready bist. Man wartet ab, bis die anderen ganzen Pull Requests abgelaufen sind und durchgelaufen sind und kann danach das machen.
Also vor allem relevant, weil letztendlich ja beim Mergen dann entsprechend auch immer irgendwelche Checks ausgeführt werden, also irgendwelche, wie du es ja schon gesagt hast, irgendwelche CIP Jobs. Und das ist halt auch etwas, was wir die Erfahrung gemacht haben. Also teilweise haben wir inzwischen so viele Sachen angeschlossen, dass es irgendwie erst mal fünf Minuten dauern und dann ist in der Zwischenzeit ein neuer Commit irgendwie auf dem ReFU passiert und du musst eigentlich wieder die Endungen reinziehen. Dadurch wird wieder die CIP Pipeline angestoßen und das ist natürlich auf jeden Fall etwas, was wir aktivieren werden, einfach da das dann schon vorbereitet zu haben, weil man dann schneller letztendlich dann nicht darauf warten muss, dass noch mal so ein Feature dann fertig ist. Ja, cool.
Tab Script 5.
Ja, kleine mini mini mini Korrektur, denn es ist also der Release Canidator, hast du es noch nicht veröffentlicht. Oh ja. Aber wir reden ja über alles, was sich so tut, wenn da irgendwas gepumpt wird. Deswegen darf ich ja freudig verkünden, dass wir die meisten Sachen eigentlich schon in der Folge 5 unserer News besprochen haben. Von der TypeScript 5 Beta und Fabi und Jojo sind aber gut vorbereitet. Deswegen was bringt TypeScript 5 denn mit so?
Ich glaube, das hast du in der Folge 5 gesagt hast. Ich glaube, das Major Feature war ja irgendwie, also Decorators gab es ja vorher schon mit dem Experimental Flag, aber irgendwie decorates sie zumindestens von der Syntax her ein bisschen anders sind als die alten, aber jetzt eben nicht mehr im Experimental Flag sind. Beide gehen noch, aber sind nicht mehr, sind zumindest nicht miteinander kompatibel. Die, die mit dem Experimental Flag geschrieben wurden, werden irgendwie anders kompiliert als die neuen so. Schreiben sie irgendwie noch ein bisschen darüber, wie man sie sicher typt, was glaube ich ein bisschen Komplexität mit sich bringt, wenn man die Typ sicher machen möchte, diese Decorators. Und ansonsten gibt es ja irgendwie Kleinigkeiten. Ich finde immer interessant, interessant, dass so ein Feature, das habe ich erst super spät gecheckt, dass es Function Overloads in TypeScript/JavaScript gibt, habe ich erst super spät mitbekommen. Jetzt mit TypeScript 5 gibt es jetzt auch die js Doc Support dafür, dass man Overloads auch richtig dokumentieren kann. Fand ich interessant, weil es irgendwie so ein Feature war. Ich glaube, ich habe es erst irgendwie Mitte letzten Jahres überhaupt erst gecheckt, dass ich die Möglichkeit habe für Function Overloads in JavaScript, also dass irgendeine Funktion mehrere Signaturen haben kann, ich sagen kann, die kann entweder nur einen String als Parameter nehmen oder ein Number und eine zweite Nummer noch mal als Parameter und die alle definieren, kann aber alle in derselben Funktion landen.
Genau. Und dass ich jetzt auch dokumentieren kann, fand ich irgendwie noch mal interessant, weil ich irgendwie so ein Feature war, was ich immer irgendwie dachte, also nie wirklich drüber nachgedacht und dachte, eigentlich gibt es den JavaScript nicht. Na ja, da habe ich was dazugelernt. Und sonst? Ich weiß nicht, gibt es sonst so viele interessante Features? Nee, aber.
Du wolltest... Ich fand es interessant, so eine Rubrik mit so was Großmutter noch wusste. Also so was wie... Erinnert ihr euch noch? Es gibt übrigens, das kann es auch. Finde ich eigentlich ganz spannend. Weil ich glaube, viele Sachen, die hat man irgendwann mal gehört, aber die sind wieder verschütt gegangen im Gehirn.
So was wie die Function Overloads. Ja, ich finde...
Und ich glaube, so ein bisschen so ein kleiner Reminder, so kleine Snackable Reminder finde ich eigentlich ganz cool. Gut, danke Fabi.
Ja, das wäre wieder so ein Reminder aus Omas Küche. Ja, genauOmas erinnern an so Dinge oder denkt dran, Bub. Wenn du morgen wieder auf die Arbeit gehst, denkt an die JavaScript Function Overloads. Vergiss die nicht. Die haben wir damals schon benutzt.
Ich hasse das immer, wenn sie das sagt.
Ja, Oma.
Nicht nur dievergessenen Browser stellen, sind auch die vergessenen Browser Schnittstellen sind auch die vergessenen JavaScript Schnittstellen. Cool.
Hiermit etabliert.
Genau. Spannendstes Feature TypeScript 5 finde ich eigentlich, also persönlich, ich mache nichts mit Decorators. Ich weiß nicht, ob, bin da nicht so oder nicht im Team Decorators. Ich mag die Typ, äh, Konst-Type-Parameter eigentlich.
Am.
Liebsten, dass man als, dass man jetzt konst in Generic Typ-Parameter reinschreiben kann und dann wird ein Array, was aus Strings besteht, nicht als String Array typisiert in der Funktion, sondern vielleicht wirklich die Werte hat oder so. Das stimmt, wie es mich jetzt ausspricht. Aber ich finde es manchmal ganz praktisch für ansonsten so halb spannend eigentlich auch nur ist dann Modular Resolution als Bundler. Also da geht es eigentlich auch diese Resolution Customization Flex, wo es darum geht, dass ich beim Importen war man sich ja nicht so ganz einig, schreibe ich jetzt import. Mjs. Mts. C. Lasse ich es ganz weg und so weiter und ich glaube Modul Resolution Bundler kannst du anschalten und dann lässt du es einfach immer weg und der macht das Richtige. Femish Last Words. So, also sie haben sich ein bisschen Gedanken darum gemacht und dass das halt ein.
Bisschen blöd.
Oder verwirrend war und ich glaube, das zieht so ein paar Sachen glatt. Und mit dem Customization Flags kann man es auch konfigurieren.
Okay.
Sonst noch was?
Ist geil, schnell, angeblich 10 Prozent schneller geworden, glaube ich.
Dann haben wir noch eine Kleinigkeit aus dem Bereich der Leaks, wo wir gerade bei.
Secret waren. Der Leaks, ja. Ich muss mal gucken, ob das GitHub Secret Leaks das auch finden würde. Es ist nämlich das Sprachmodell Lama, LMA von Meta heißt, glaube ich, Laut Language Model Meta AI, was ja Konkurrenz zu Open AI und PAMP von Google sein soll, das aktuell aber noch nicht öffentlich verfügbar ist. Also es gibt ein offizielles Repository dazu, aber es sind halt eben nicht die Wates und so was da auch mit eingecheckt. Also wenn man wirklich Zugriff zum Modell haben will, es austesten will, dann kann man wohl ein Formular ausfüllen, was aber in erster Linie für akademische Zwecke, also zivilgesellschaftliche Forschungslabor sowie akademische Organisation beschränkt ist. Und irgendwie wurde ein Torrent geleakt und der dann sozusagen das komplette Language Model enthalten hat. Und witzigerweise wurde das auch in einem öffentlichen Repository geleakt. Da hat nämlich jemand einfach einen Pull Request erzeugt und in dem Pull Request einfach einen Kommentar geschrieben. Ich schaue jetzt gerade hier, der heißt also der Pull Request heißt Save band with by doing a torrent to distribut more efficiency. Und da gibt es drei Commits, wo dann einfach in der Dokumentation, wo steht hier in order to download the Checkpoints in tokenizer, bitte füllt aus dieses Google Form.
So, dann kommen wir zu euch zurück und hat noch dazu geschrieben, all if we want to save your band with, use this BID-Turrent Link und hat einfach einen BID-Turrent Link dazu gepackt, den man benutzen kann. Aber witzigerweise hat er auch im Pull-Request drei Commits gemacht, weil er sich bei diesem kurzen Satz zweimal verschrieben hat. Fand ich auch sehr witzig. Dieser Pull-Request hat drei Commits, weil er dann immer mit einem Tag Abstand immer noch mal seine Spelling und Punktuation korrigiert hat. Und dann gibt es noch einen Typ, den Jean, der doch gleich einen GitHub Repository raus gemacht hat, weil er keinen Bock auf Torrent hatte und hat das Ganze dann auf einen, also der ist generell in der ML-Community irgendwie ein bisschen unterwegs, hat auch irgendwie eine Seite, wo er es einfach macht, zum Beispiel ChatGPT auszuprobieren mit vielen Beispielen, wo man leichter heranbringen kann, heißt glaube ich GDP4. Org und der hat es da auf seinen Server einfach hochgeladen, sodass du es keuren kannst. Und hat auch im Report geschrieben, wie man sozusagen das Seed mit dem Torrent vergleichen kann, dass er wirklich das ist und er einen nicht verarscht und einfach nur hat, weil er hat keinen Bock auf Torrent gehabt.
Er wollte es mit Körl machen und ist dazu auch noch ein bisschen schneller zum Runterladen. Also wer es mal ausprobieren will, gibt es dieses Gitter-Brief. Er hat auch noch ein bisschen Gedanken dazu geschrieben, ob man jetzt in Probleme damit kommt, dass er das als hostet und so weiter, da ein bisschen was dazu geschrieben hat, was ganz interessant war. Aber auf jeden Fall grundsätzlich interessant, dass es jetzt eben offen ist. Mal schauen, ob Facebook irgendetwas dagegen tun wird oder auch nicht. Ja, aber auf jeden Fall ein weiterer Player im Game und irgendwie zumindest was die Zahlen angeht, soll ja... Also das fand ich ganz interessant. Auf dem GitHub-Repo schreibt schon noch mal dazu, auf was für eine Infrastruktur er dieses Modell aktuell hostet und dass es irgendwie, was hat er hier geschrieben, er lässt das Modell aktuell auf einer Single, was auch immer das heißt wahrscheinlich bezeichnet, den, die Grafik hat ein Single A 180 Gigabyte with 8-bit Quantization, was auch immer das bedeutet. Mich interessiert die Zahl eher hinten dran. Er hat gemeint, ihm kostet es 1,5 Dollar die Stunde, das zu hosten und da ist AI und der Output ist so gut wie das Davinci Modell von Open AI, was er bisher bei seinen Tests hatte.
So, also mit seinen Tests natürlich jetzt irgendwie nicht. Er hat, glaube ich, viel mit diesen Modellen gemacht und zumindest von seinem Gefühl her und kostet irgendwie 1,5 Dollar die Stunde.
Wie groß ist das Repo dann, wenn alle Weights drin sind? Sind das dann irgendwie Gigawatt-Arbeit, die man.
Da runterlädt? Das Repo selbst enthält es nicht, sondern das Repo selbst enthält einen Shell Script, was du ausführen kannst, es runterzuladen. Und das ist dann wiederum die DateiNein, die sind dann auf seinem GPT4. Org Server gehostet, aber da habe ich jetzt nicht reingeschaut, wie groß das ist. Genau das kann ich dir gar nicht ganz genau sagen. Hat es ja irgendwo geschrieben. Er sagt nur, it download all model weights in less than two years on a Chicago Ubuntu Server. Aber er hat eine gewisse Größe und mit 40 Megabyte pro Sekunde. Also was steht hier? Wir können mal ganz kurz. Na ja, also wenn er die Zahl, die er genannt hat, 219 Gigabyte. Könnte sein.
Könnte sein.
219 Gigabyte, er hat ja irgendwas gemeint, so und so viel Bytes in so und so viel Sekunden hat er noch mal runtergerechnet. Wenn ich das jetzt in den Konverter eingebe, knapp über zwei Gigabyte.
Das eigene GBT-Modell, was wir mal trainiert haben, war glaube ich auch so 30 Gigabyte, aber das war halt mit viel weniger Trainingsdaten.
219 Gigabyte. Und wann habt ihr das trainiert?
Das war während dem Gamechanger.
Ja, dann ist ja 219 nicht unbedingt so weit daneben.
Hat er geschrieben, in welcher Cloud er das hat, weil ich sehe gerade bei Google würde eine A100 Instanz 2,80 € die Stunde kosten.
Ja, er hat geschrieben auf irgendwas mit VD. Ai, Moment, wo habe ich das? Er hostet das auf Vest. Ai, VRST. Ai Global CPU Market, kann ich auch vorher nicht, for on demand CPU. Best Price steht hier auch im Vergleich zu manch anderem.
Der CPU Discounter.
Ja, der CPU Discounter könnt ihr aufhören. Best AI.
Billig. Willig. Gut.
Alles klar. Dann haben wir es für die Woche.
Haben wir es.
Sehr gut. Dann wünschen wir euch eine schöne Woche.
Danke fürs Zuhören. Viel Spaß beim Secret herunterladen.
Genau. Geht nicht in unser Report. Lasst unsere Secret in Ruhe. Finger weg.
Bis bald. Macht es gut. Tschüss. Tschüss.
Tschüss. Tschüss.