Hallo Du! Bevor du loslegst den Talk zu transkribieren, sieh dir bitte noch einmal unseren Style Guide an: https://wiki.c3subtitles.de/de:styleguide. Solltest du Fragen haben, dann kannst du uns gerne direkt fragen oder unter https://webirc.hackint.org/#irc://hackint.org/#subtitles oder https://rocket.events.ccc.de/channel/subtitles oder https://chat.rc3.world/channel/subtitles erreichen. Bitte vergiss nicht deinen Fortschritt im Fortschrittsbalken auf der Seite des Talks einzutragen. Vielen Dank für dein Engagement! Hey you! Prior to transcribing, please look at your style guide: https://wiki.c3subtitles.de/en:styleguide. If you have some questions you can either ask us personally or write us at https://webirc.hackint.org/#irc://hackint.org/#subtitles or https://rocket.events.ccc.de/channel/subtitles or https://chat.rc3.world/channel/subtitles . Please don't forget to mark your progress in the progress bar at the talk's website. Thank you very much for your commitment! ====================================================================== der nächste Talk ist von mrq vom cccachen er macht gerne Sachen mit Computern und Elektronik spielt gerne mit Robotern und beruflich beschäftigt er sich mit Signalverarbeitung heute wird er uns einfach anwendbare Maschine learning Methoden für das textembedding vorstellen so ja hallo zusammen heute geht's also bei mir geht's um Text embedding und wie man es benutzt dazu vorab ich bin kein kein Profi auf dem Thema machine learning ich beschäftige mich beruflich aber mit Signalverarbeitung und das praktische ist mit den Tools um die es heute geht kann man Technik Signalverarbeitung auf Texte anwenden und das ist halt der große Unterschied im Vergleich zu dem was man sonst so unter learning versteht nämlich oft also das was was quasi die großen Namen macht wie GPT oder D wo dann eine Ausgabe erzeugt wird die für Menschen schön aussieht m da heißt es ist im Prinzip der Computer versteht nicht was reingeht der Computer versteht nicht was rausgeht und der Computer versteht auch nicht was er währenddessen macht und im Gegensatz dazu ist Text embedding erzeugt eben Ausgabe also wie ich jetzt hier in der letzten Zeile zeige erzeugt das eine Ausgabe das ist ein ein Vektor von Zahlen ähm damit kann der Computer umgehen das ist im Prinzip eine ja eine Repräsentation des eingabetextes und ähm da kann man drauf rechnen das funktioniert und wer jetzt erwartet wer jetzt sagt okay ich bin eher so der Compiler Typ ich hätte gerne lieber ein syntaxbaum als ähm also zahlen damit kann ich nicht arbeiten da ist ganz klar gesagt ähm dieser kraftbasierte Ansatz den hat man in 70er mit KI versucht das ist tot das hat nicht funktioniert das kommt einfach mit der Komplexität und mehrdeutlichkeit der menschlichen Sprache nicht hinterher so jetzt mal vorab ein paar Begriffe kennt man vielleicht aus dem Studium wer es nicht hat für den sind die hier Vektorraum ist im allgemeinen einfach Raum also es heißt ja zahlenkörper auf auf dem man Addition und Skalierung durchführen kann das heißt zB ist nicht notwendig dass man die die Elemente eines vektorsraums dividieren kann Koordinaten das sind ist eine Repräsentation eines Vektors jeden Vektor also jedes Element eines Vektorraums kann man durch Zahlen repräsentieren Dimensionen sind die Freiheitsgrade vereinfacht gesagt in dem Vektorraum und es gibt auch Vektorräume mit unendlich vielen Dimensionen und z.B der der Raum der 2P periodischen Signale ein Vektorraum muss auch nicht immer anschaulich auf einer Zeichenebene dargestellt werden können so z.B die Ströme und Spannungen in einer elektrischen Schaltung das ist auch ein Vektorraum da kann man auch ganz gut mit Rechnen embedding jetzt begriff aus dem machine learning ist ein relativ niedrig dimensionaler dichtbesetzter Vektorraum relativ niedrig dimensional der deswegen weil man typischerweise bei machine learning 100 000 Dimensionen hat und dann das embedding ein paar hundert Dimensionen sind Text encoding ist die eigentliche Abbildung des Textes in den embedding Raum ich werde wahrscheinlich öfter Text embedding als encoding sagen einfach weil encoding so ein Begriff ist der in allen möglichen Kontexten verwendet wird ja das deswegen W W eher sagen ähm zur Einordnung künstlich neuronal Netze nehmen nur Vektoren fester länger als Input das heißt erstmal ein bisschen ungeignet für Text Trick ist dann Text sequentiell einzugeben also Symbol für Symbol wenn man allerdings den Text jetzt als aski Sequenz eingeben würde wäre das ziemlich ungeeignet weil man W ja mit aski nicht rechnen kann also ein kleine Abweichung von ein aski Wert führt schon zu einem komplett anderen Text oder aski Repräsentation kann man nicht Mitteln und die Lösung davon ist dann tokenizing das heißt man macht aus aus wortfragmenten Wortfragmente bildet man auf Zahlen ab das sind typischerweise so einige einige 100000 Tokens die die man verwendet und damit macht man R hot encoding das heißt diese 10000 Tokens werden abgebildet auf ein Vektor mit 10.000 Dimensionen der überall Null ist auß er an einer Stelle die dem Index des Tokens entspricht das ist natürlich das ist anwendbar für wenn zum Textverarbeitung an sich geht aber wenn man im Prinzip den Text nur nutzen will wenn man nur das nutzen will was der Mensch da geschrieben hat dann kommen wir zu den embeddings eine der ersten Algorithmen an der Stelle war Word embedding gerade word to we das ist so renzimplementierung da wird ein festen Wortschatz embedding Z also hei nicht ein paar dimensionale zahlen und jetzt als nächstes nächster Schritt ist sentence Edding oder textembedding als allgemeines wo dann ganzen Sätzen Sinn entsprechende Vektoren zugeordnet werden ja machine learning ist sehr stark im Fluss also könnte man jetzt überlegen ja ist das denn nicht ein ein Thema wenn ich mich jetzt ein Jahr damit beschäftige dass es schon längst wieder out ist würde ich in dem Fall sagen ganz klar nein also erste Vorteil ist man hat eine sehr schmale API man hat eine Funktion die nimmt ein String entgegen und gibt ein Vektor raus selbst wenn man jetzt sagt hier ich will nicht diesen Open Source Sachen benutzen die ich hier vorstelle sondern ich will von dem Unternehmen open ai Produkt benutzen selbst dann ist die AP genauso lässt die sich genauso Rappen also jed Text Eding was kommen wird ist String raus we String rein Vektor raus dann das Grund dahinter ist dann auch oder eine Folge ist man kann fremde encodings durch basistransformation anbinden das heißt angenommen hat schon in sehr groten großen Datenbestand der mit einem encoding erzeugt wurde kann man es dann das ganze fortführen eventuell mit einem anderen encoding indem man eine basistransformation Macht und jetzt gerade bei diesen Text Image Systemen hat man dann festgestellt dass das dieses dieser textverarbeitungsschritt sehr wichtig ist das Zitate habe ich aus dem paper von imagen ke covery generic generic large Text Models Ex T5 prain on Text onlyingingt im das Heß die sagen im Prinzip wir können nur deswegen so gut ein pandaber in der Küch e beim Backen malen weil wir vorher als Text verstanden haben also dass wir Programm geschrieben haben was den Text ich hätte gerne ein Bild eines Pandas der gerade in der Küche backt versteht und deswegen gerade weil man neulich also es war jetzt hier mai festgestellt hat dass das ein wichtiger Schritt ist wird es auf jeden Fall bleiben und es wird weiterhin wichtig sein ich werde hier eine Familie von Modellen vorstellen die heißen esbert ist von dem Auto des originalpers da gibt es diese Webseite sbad.net siis bal Encoder presentation for Transformers wie gesagt ich bin kein machine learning Profi da gibtchen paper was gelesen und nicht verstanden habe der praktische Vorteil an der Stelle ist aber ein anderer es ist Open Source und es gibt open Modelle das heißt der Code ist Open Source und die paar 100 megaby die man da an floats noch für braucht kann man sich frei runterladen unter pachci 2 Lizenz aber die ich würde sagen der Tipp an der Stelle ist die Lizenz ist eher frag einen Anwalt weil diese ganze machine learning Sache noch nicht wirklich gerichtserprobt ist und es hat sich noch keiner richtig da durchgeklagt es wird noch keinen Fall vor Gericht verteidigt aber ich glaube hier bei diesem Fall bei embeddings ist es relativ entspannt weil man ja kein abgeleitetes Werk erzeugt es wird ja im Prinzip nicht aus einem vorhandenen Gedicht ein neues Gedicht erzeugt so dass jemand sagen könnte okay mal ein originalgedicht ist in diesem kpus gelandet also habe ich daran anteilige Urheberechte sondern es wird eine Zahl erzeugt die der ursprüngliche Autor der verarbeiteten Texte gar nicht geschrieben hat M ja und der andere Vorteil ist es ist Python es ist ähm es ist läuft auf einem ganz normalen PC eventuell auf einer mittleren VM also Python batteries included man kann im Prinzip sofort loslegen und das werde ich jetzt auch zeigen die Datei heißt mein erstes embedding.pie das findet ihr auf der fechance in dem pretix da da ist habe ich die datil hochgeladen ansonste n seht ihr sie in voller Länge auch auf dem Bildschirm Schritt Nummer 1 ist PIP install senenten Transformers das lädt dann noch pytorch runter wenn ihr die neueste Version davon nicht habt also noch mal irgendwie so 400 megb Python Code also wenn man eventuell das noch mal getrend installieren die Abhängigkeiten um nicht alles im lokalen User installiert zu haben und dann geht's weiter diese Datei da die ersten zwei Zahlen ähm sind im Prinzip nur imports das heißt KT man first Python die dritte Zeile lädt das Modell äh Mini LLM ähm Mini LM L6 runter das ist dann etwa 100 megb die werden runtergeladen und in so bei Linux jetzt in dot casche gespeichert ähm wird wenn man die neueste Version hat nur einmal runtergeladen wenn man irgendwie das Gefühl hat ähm dass dass die Datei mehrmals runtergeladen wurde also dass das eben nicht innerhalb von 2 Sekunden durchläuft Zeile 3 sondern mehrere Sekunden dann kann man statt dieser statt diesem identifier auch den fah in D Cash nehmen einfach da suchen was für wo die neueste Datei angelegt wurde dann findet man's m so Zeile 5 bis 9 da werden Sätze an angegeben die ersten beiden Sätze sprechen über sag mal Verkehrsverhältnisse er ist im Bus gefahren sie ist ein Taxi im staustecken geblieben beides geht um Verkehr danach geht's um Essen und der Satz in wahschein mit Raute 3 markiert hab ist komplett unrelatiert Zeile 11 ist die eigentliche Magie wie gesagt dieser Einzeiler wie ich eben sagte model. andcode normalize embedings sollte man vielleicht kurz mal im Kopf behalten komme ich später noch dazu und in Zeilen 13 bis 16 wird einfach nur die Ähnlichkeit dieser Sätze ausgegeben die Ausgabe davon sieht man da drunter und wie man sieht die größte Ähnlichkeit von Sätzen sind die ersten beiden also genau in der linken Spalte ist der erste Satz in der mittleren Spalte ist der zweite Satz und rechts ist die Ähnlichkeit man sieht also ähnlich wie man es erwartet die größte Ähnlichkeit haben die ersten beiden Sätze die beide um Verkeh r gehen die zweitgrößte Ähnlichkeit ist zwischen im Prinzip einer der ersten beiden Sätzen mit the ordered Pizza for lunch und die dritte Zeile die einfach eine mathematische Rechnung ist hat zu allen anderen Zeilen eigentlich gar keine Ähnlichkeit jetzt habe ichesagt da wird Mini m L6 runtergeladen das ist jetzt war bisher einfach so eine Magic number aber da gibt's natürlich noch mehr was man auswählen kann und das sind jetzt einfach Maline Auswahl an an Modellen die ich bisher benutzt habe dieser erste Modell da ist der große Vorteil es ist sehr klein also 114 megb hinter im RAM und es ist schnell 66 sette pro Sekunde und das ist auch wird gilt als eins der schnellsten Modelle es geht natürlich noch schneller ne aber dann Leid irgendwann die Qualität die näch Modell des til space mtilingular cased V1 habe ich häufiger benutzt einfach weil die deutsche Sprache da drin ist die unterstützen angeblich 15 Sprachen auf der Website stehen aber nur diese 13 also keine Ahnung was die anderen beiden sind haben so selbst nicht rausgefunden 19 Sätze pro Sekunde auf meinem Rechner das ist das hängt ab ne also Speicherbedarf ist wahrscheinlich bei jedem gleich kann man sich dann direkt abschätzen wenn man im online Dienst machen will wie groß man VM mieten muss ja clipfit LS 14 ist noch interessant das ist ein Modell das Bilder und Texte verarbeiten kann das heißt man kann da die Ähnlichkeit zwischen Bildern und Texten herausfinden das wird also dieses die sag mal der hinterstehende Code aber nicht unbedingt die gleichen Gewichte werden von stable diffusion wende das ist so ein texterzeugungs nicht texterzeugungs bilderzeugungs Netzwerk wo man dann mit Szen beschreibt was für ein Bild erzeugt werden soll auf diesem dieser Website kann man dann noch weitere sich ansehen der obere das ist so ein bisschen mit Anleitung da findet manch Textbeschreibung zu jedem Modell und der untere Link ist eigentlich nur eine Highscore ist ein bisschen aktueller aber dafür ohne ohne Einleitung s ozusagen dann wollte ich noch kurz was zeigen hier sieht man auf Zeite 11 normaliz embeding cas true das heißt die Länge jedes einzelnen embedding Vektors ist ein ist eine sinnvolle Sache also Nachteil ist natürlich man verliert eine Dimension Länge 1 heißt wie in diesem Beispiel was ich zeige zimensionaler Raum wird reduziert auf eine eindimensionale Kreis auf eindimensionalen Kreisrand ist aber nicht so tragisch W 512 Dimensionen hat weil ob man jetzt 512 Freiheitsgrade oder 511 Freiheitsgrade hat macht keinen großen Unterschied der Vorteil ist aber jeder Punkt auf dem KIS bzw jeder Punkt auf einer hochdimensionalen Sphäre ist gleichberechtigt es gibt keine Ecken wo ein Punkt im Mittel deutlich weiter von allen anderen entfernt ist als jetzt ein Punkt der näher am Ursprung liegt und es Ausgaben also von diesem algorithmusen e fast normalisiert ähm braucht man also also ist man verliert nichts man gewinnt vergleichbarere Ausgaben deswegen Normalisierung ist allgemein sinnvoll außer man will noch lineare Operationen ausführen also z.B noch eine Ebene extrahieren dann sollte man das erst ganz am Schluss normalisieren weil äh weil ansonsten Ebene die man in Daten gefunden hat gekrümmt wird durch diese Normalisierung jetzt noch ich geh mal kurz zurück die zahen so Zeile 15 da ist similarity GLE NP dot der beiden Sätze das heißt ich vergleiche die Ähnlichkeit der Sätze durch eine punktmultiplikation ähm Punk heißt galam Produkt was da auf der rechten Seite schreibe normalerweise würde man die L2 Norm nehmen also denoklitischen Abstand äh ist auf auf Sphären egal also wenn man im Prinzip die die Kreis sowieso schon auf der kreisoberfläche ist dann kommt man bei beiden Normen sowohl L2 Normen als auch Skalarprodukt auf die gleiche ja auf die gleiche Sortierung und L2 Norm ist besser konditioniert für für sehr nahe Werte also wenn man jetzt z.B guckt angenommen hier ist der Punkt um den es geht und man hat daneben einen Punkt wo man den Abstand bestimmen will dann hat man bei L2 Norm hat man in der näheren Umgebung ist man immer senkrecht drauf während man bei Skalarprodukt wenn man Skalarprodukt hat was Skalarprodukt bildet zwischen Punkt dran ist und dem da äh dann hat man nur sehr geringe Abweichung dann sind irgendwie 99, noch was äh ist aber eigentlich egal weil bei den Daten die wir hier verarbeiten in der Regel die Abweichung groß sind also man wird man wird es nicht hinbekommen zwei Sätze zu erzeugen die zu 99% Ähnlichkeit haben ja außer man nimmt einen ganzen Absatz und ändt da vielleicht einzeichen oder so ja skalpukt recheneration weniger mion ähm das ist wahrscheinlich der Grund deswegen alle in der Literatur das skalalaprodukt Benutzen ähm damit habe ich dann mal äh Code gemacht der Manpages also diese Linux Manuals äh die eine Suchfunktion im Prinzip darauf macht ich gehe mal relativ schnell hier durch weil ähm das Ergebnis eher ernüchternd ist also ich habe dann die die ähm beiden Sätze mal suchen lassen links etwas was äh gezielt ist auf XEV das war das vierte Ergebnis das fand ich ganz gut weil ich meine in der Regel ist das Problem ja nicht dass äh dass die gesuchte Seite der erste Treffer ist sondern in der Regel ist ja das Problem dass man gar kein gar nicht das passende Stichwort findet unterdem man sucht als dass man se in Ergebnis in der Liste durchlesen muss rechts für das Programm head hat das eigentlich auch ganz gut funktioniert aber ich muss dann tatsächlich sagen alle weiteren Programme die ich dann so gesucht habe nicht mit einem nicht absolut trivialen Beschreibung habe ich dann nicht mehr gut gefunden lag wahrscheinlich daran dass einfach nie die komplette Funktionalität von dem Programm in einer Zeile beschrieben wurde ein Absatz von der mpage beschrieben wurde ja nicht so al so mittel funktioniert aber es gibt Sachen die besser funktionieren und das ist arimetik mit Eigenschaften King min man plus woman g Queen ist ein klassisches Beispiel mit dem word to Weg motiviert wird also dieses embeding V von einzelnen Wörtern und das Szenario ist so man formiert drei einzelne Wörter in diesen embedding Raum und rechnet damit rum also in dem Fall ne King me embedding von King minus embedding von man plus embedding von women und ja guck dann was als Ergebnis rauskommt was für ein embedding und guckt welches Wort in einem Wörterbuch am nächsten dran ist ist das dann wirklich Queen was man erwarten würde und da gibt's Beispiel Literatur wo es nicht so gut geklappt hat aber in dem Fall das war glaube ich Mini LM L6 hat es ganz gut funktioniert also ich habe das komplette acebell en Wörterbuch genommen das sind 126 000 Wörter und tatsächlich wie man links sieht Queen ist Queen ist auf dem obersten eintragen groß geschrieben aber egal allerdings direkt dahinter in der linken Spalte folgt King und dann denkt man sich ja es könnte eventuell ein bisschen knapper Abstand sein Queen zu kegen nur so 1usend also zweite Spalte hier nehmen wir einfach mal ein bisschen mehr m raus und adieren etwas mehr wurmen dann ist der Abstand von Queen zu King deutlich größ und dazwischen fügen sich neue Wörter ein wie in dem Fall Royal also ein geschlechtsneutrale Königlichkeit und diese Rechnung funktioniert auch mit anderen Eigenschaften also bernon minus Germany plus France kommt als erstes Paris raus was auch ja im Prinzip die die Entsprechung ist und Sammer minus hot plus cold ergibt Winter also ich finde das das funktioniert erst gut aber was was soll man damit ne das ist ja also wenn man nicht gerade semantel programmiert ähm ist das ja ist das rein Spielerei aber da kann man sich auch eine nützliche Anwendung überlegen also angenommen man betreibt einen Onlineshop und man stellt dann fest der der Benutzer hat eine Eingabe gemacht die die konnte nicht direkt zugeordnet werden aber aufgrund des Eddings dass man natürlich als onlesbetreiber dann mit machen muss kam heraus das nächste Wort also das nächste Produkt was dran ist ist Stehlampe aber eigentlich hat der Benutzer nach etwas gesucht was größer ist weniger ermüdlich und professioneller es könn z.B sein dass der Benutzer nach Lichtmast gesucht hat aber es ist nur eine stellampe im Angebot und so das ist der Vorteil ist diese wenn man jetzt als webshopbreiber die ganzen nicht gut die schlechten Treffer wo er noch etwas gesucht wurde was nicht im Angebot ist wenn man das Handy analysiert ist ist unmöglich wenn man 100 Kategorien sich geschaffen hat spätestens dann verliert man den Überblick wonach die Leute suchen und ob man das schon mal so ähnlich hatte bei der Suche aber der Vorteil ist diese eigenschaftsvektoren hier größer gemütlicher professioneller da kann man Statistik drüber bilden das kann man aatisiert auswerten und damit möchte ich euch durch die nächsten eher theoretischen Folien Tragen kommen wir am Ende noch mal zu matrixmultiplikation wird meiner Ansicht nach in der Hälfte der wird meistens nicht schön dargestellt wenn man matrixmultiplikation machen will sollte man sie so aufschreiben links die Linke Matrix oben die rechte Matrix nämlich dann sieht man dass immer für jedes Element die Zeile der linke und die Spalte der rechten Matrix elementweise miteinander multipliziert werden aufsummiert werden und dann das Ergebnis ergeben jetzt könnte man hier sagen die Matrix B das sind die Daten und die Matrix A ist die Transformation aber diese Bedeutung lässt sich auch komplett umkehren man kann diese ganze Multiplikation einfach an der Diagonalen Spiegeln und dann kommt im Prinzip auch im Ergebnis die Spiegelung raus es nennt man transposition also die transposition von B mal die transposition von A ist die transposition von C dann gibt's bei Matrizen zwei wichtige Spezialfälle das ist eine Diagonalmatrix das ist einfach Matrix wo nur auf die Diagonalen einräge sind ist eine einfache Skalierung also zu den Farben wollte ich sagen dass diese Farben die ich hier verwende das hat jetzt nichts das hebt nicht die Bedeutung hervor dieser dieses Zelle sondern ist einfach die widerstandsfarbcodie rung von also auf betrateten Widerständen das ist einfach um die Zahlen so ein bisschen hervorzuheben also die ähm ja es wird einfach nur die Einträge skaliert von dem eingabevektor und um das rückgängig zu machen muss man einfach nur die kehrwerte auf der Diagonalen bilden und kriegt dann wieder den ursprünglichen Vektor raus der andere wichtige Spezialfall sind onale Matrizen wir haben die Eigenschaft dass jede Spalte senkrcht auf jeder anderen Spalte ist jede Zeile senkrcht auf jeder anderen Zeile und alle Spalten und Zeilen die Länge 1 [Musik] haben das entspricht dann einer Drehung oder Spiegelung in dem Vektorraum und orthogonale Matrizen invertiert man indem man sie transponiert das heißt entlang der diagonal die Matrix spiegelt und egal also Diagonale Matrizen sind Längen erhalten ich habe hier ein Vektor reingegeben der die Länge 1 hat und der wird auch nach der Multiplikation die Länge 1 behalten jetzt zum wichtigen zentralen Element der singulärwertzerlegung das ist sozusagen das Schweizer Taschenmesser der Datenanalyse es ist sehr universell es gibt aber es gibt in der Regel eine schnellere Methode also lewertzerlegung kann man überall mal drauf drauf werfen gucken ob es funktioniert und meistens gibt's irgendwie eine Methode die ein bisschen schneller ist aber das ist egal wir versuchen ja hier nicht wir sind nicht beim Kampf rechnen und wenn ihr wirklich den Fall habt dass eine Rechnung minutenlang dauert mit S zerlegen dann könnt ihr während die läuft euch Gedanken machen wie es schneller geht hatte ich bisher noch nie singul Zerlegung ist lässt sich auf jede Matrix anwenden das heißt jede Matrix lässt sich darstellen als Multiplikation einer orthogonalen Matrix einer diagonalen Matrix und einer weiteren orthogonalen Matrix letzte Zeile hier auf der Folie ist die Schreibweise in numpai mit numpai API so jetzt einfach mal auf ein Beispiel angewendet hier die Matrix a die ersten beiden Zeilen sind linear unabhängig voneinander die dritte Zeile ist ull und die vierte Zeile ist die Linearkombination der ersten beiden Zahlen das ergibt diese sinlingulärwertzerlegung wie man sofort sieht an der Matrix Sigma nur zwei Einträge auf der Diagonalen das heißt die singulärwer Zerlegung hat direkt festgestellt dass es nur zwei unabhängige Zahlen gibt das heißt aber auch weil die letzten ja die letzten beiden Zahlen von σma und die letzte Spalte von σma 0 ist ist auch die letzte die letzte Zeile von V Stern und die letzten Spalten von U unwichtig die werden eh mit null multipliziert und das heißt man kann di e matrizzen reduzieren auf den oberen linken oberen linken Bereich jetzt kann man da noch nicht direkt erkennen was was das mit a zu tun hat aber wenn man mal sigm Schlange und V Schlange Stern miteinander multipliziert dann hat man schon eine Matrix die sehr ähnlich aussieht wie wie die von A und das im Endeffekt sieht man auch dann den letzten Schritt für ich letzten Schritt wir man sagen okay man sieht schon hier die Einträge an Schlange sind beide gleich ergibt Sinn denn diese beiden einträgeer müssen hinter multipliziert addiert Null ergeben also plausibel ja was kann man da also mit Texten machen mit dem singulärwertzerlegung ich habe hier mal ein Beispiel genommen das ist im Prinzip zwei Artikel aus Tagesschau findet man wenn man einfach nach diesen Sätzen sucht die ich hier auf den Folien hab und diese Artikel von tagesau.de habe ich satzweise in in das embedding reingeworfen also jeden Satz einzeln transformiert kein Tagging keine Zuordnung zu irgendwelchen Artikeln und dann daraus eine singulwerlegung gemacht die in dem Fall wenn man im Prinzip Zeile für Zeile äh in der Matrix als embedding darstellt er gibt sich dann in der Matrix V Stern die die bedeutungsachsen im Ursprungstext das heißt V Stern enthält die einzelnen bedeutungsrichtungen also bedeutungsausprägungen die man im Ursprungstext hat Sigma zeigt an wie oft diese einzelnen mit oder Bedeutungen im ursprünglichen Text vorkommen und Sigma gibt für jeden Eingangssatz an wie sehr in dem die Bedeutung vorhanden ist die durch v Stern repräsentiert wird in diesem Beispiel ist es so dass bei die bedeutungsachsen von v ähm gerade auf den Dimensionen V0 und V1 das sind ich glaube die Zeilen von V ja müssten Zahlen von vor sein ansonsten einfach im Code gucken den ich den ich da auchochgeladen habe also man sieht die zeinen V0 und V1 die scheinen wohl die ess und Fischstäbchen zu trennen also warum habe ich Fischstäbchen genommen na ja weil juli und die fissttion Produktion relativ wenig miteinander zu tun haben und der deswegen auch davon auszugehen ist dass die unabhängig sind in diesem Vektorraum und genau das gleiche sieht man auch nach der Transformation der Ursprung ist verschoben einfach weil na ja weil der Mittelwert abgezogen ist aber man sieht hier könnte sagen hier ist der Ursprung und hier rüber ist die fischstäbchenrichtung und hierüber ist die Julian Richtung also jeder Punkt in diesem Diagramm entspricht einem einem einem Satz der transformiert wurde man sieht aber auch anschließend Dimension V2 ist relativ aussagslos wenn man sich also das anguckt ähm diese ersten beiden diensionen könnte man schon sagen äh man hat hier zwei Vektoren die in diese Richtung zeigen und diese Richtung die schon schon ziemlich senkrcht aufeinander stehen und hier oben ist der ursprungbrung der Bedeutungslosigkeit und wenn man sich guck anguckt welche Sätze das sind wie hier z.B Satz 6 das Problem ist nicht besonders komplex ja also das kann jedes Thema gewesen sein oder Satz 7 doch danach sieht es im Moment nicht aus ich glaube das ist ein Satz den kann man an jede Stelle in ein äh in Artikel einstreuen und es wird es wird äh es wird den Artikel kein ein bisschen verändern im Gegensatz dazu hier Satz 1 der Auslieferungsantrag von Wikileaks Gründer essange an die USA Stöß auf Kritik der ist definitiv einange und ein Satz mehr Fischstäbchen geht schon gar nicht mehr bei dem IKL Produzenten stammen die Fischprodukte aus galaska selags hauptsächlich von amerikanischen Fischereien heißt es von Frozen fish also so viel Fisch in einem Satz da ist sehr verständlich dass der am Ende dieses Vektors zugeordnet wird so also jetzt haben wir im Prinzip wir haben ne wir erkennen hier als rot und blaue pile angedeutet erkennen wir bedeutungsvektoren aber die müssten wir manuell extrahieren das ist ja blöd man will ja in der Regel will dass der Computer einen das für einen macht was man will ist man nimmt das Encoding also ist bei num Multiplikation man nimmt das Encoding macht eine matrix multiplikation mit ein extraktionsmatrix und bekommt danach ein eindeutigen Vektor raus der sagt hier an erster Stelle es geht um J an zweiter Stelle es geht um fischstächen und an dritte Stelle es geht um irgendetwas anderes und wenn man das dann einfach mit Trainingsdaten sich aufschreibt kommt man hinterher raus nach dieser Rechnung dass man von den Trainings embeddings die pseudo invverse bilden muss und die mit den erwarteten Daten multiplizieren muss und dann kriegt man im Prinzip die Matrix die man gerne hätte hier als abbezeichnit in der Rechnung das sieht in Code so aus also Solf as-f.p findet ihr wieder auf der pretix Website und dem Vortrag ich habe hier oben die Trainingsdaten mit dem den Eigenschaften die ich den zuorden will anschließend Zeile 27 bis 31 wird da einfach nur werden die separiert und hier noch hier wird das embedding berechnet in Zeile 28 und dann habe ich hier neue setze und damit will ich überprüfen ob das Ganze funktioniert dann nehme ich aber nicht die komplett komette singuläzerlegung von sondern hier in Zeile 50 bis 52 einen oberen linken Subraum einfach weil wenn man das komplette embedding nehmen würde hat man overfitting diese dieses in dem Fall acht Dimensionen die rauskommen die sind ja die sind ja exakte Repräsentation der Eingangsdaten und wenn ich dann nur eine kleine falsche Zuordnung gemacht hab ja landet man also overfitting ist ein Problem also habe ich das hier unten mal ausgewertet für reduzierter an von Dimension einmal die volle Länge dann sechs Dimensionen und dreidimension und das funktioniert ganz gut hier vorne haben wir den Wert der igkeit hier in der Zeile die fischigkeit des Satzes und hier den Blabla Anteil in dem Satz und wie man hier sieht eigentlich jedes Mal in jeder bei jedem Satz ist mit Abstand größte äh Koordinate ähm ist korrekt zugeordnet aber ich finde mit sechs Dimensionen gab's noch mal besser als mit acht ähm weil da der Abstand zu dem zweiten Platz ein bisschen besser ist ähm es gabt sogar mit drei Vektoren darunter geht's natürlich nicht mehr also wir wollen ja schließlich drei Zahlen rausziehen und wenn wir dann im Prinzip nur noch mit einem Vektor multiplizieren würden werden einfach W nichts mehr zu unterscheiden wenn man seine eigenschaftsvektoren festlegt sollte man ein bisschen aufpassen wie man das macht also das sind jetzt im Prinzip das habe ich nicht alles geprüft aber so würde ich rangehen auch bei anderen Daten die ich die ich Mappen würde also möglichst rund um null keine keine großen Offsets wenn man verschiedene Themen auseinander halten will dann eher one hot eNCOD also ein ein einzelne Koordinate für jedes Thema statt die irgendwie anzuordnen ja Wertebereich komprimieren das muss man am besten noch alles ausprobieren und auch wenn man hinterher feststellt dass es nicht so funktioniert wie ich vorgeschlagen habe dann macht man einfach einfach was anders so letzte Folie mit Kontakt und verweisen Dieb en will ich noch mal kurz durchgehen huggingface.co ist quasi wie das gitub für machine learning das ist eine großartige Website da kann man sich einfach ansehen hier ich habe ich habe folgendes Szenario folgendes Problem man kriegt das Modell sofort man kriegt Beispielanwendung daavort man sieht direkt das gibt's unter folgender Lizenz von folgendem Institut an diesen Daten trainiert und du kannst die direktr runterlagen hast sehr oft dann noch irgendwie so zehn Zahlen Python mit dem man das direkt ausprobieren kann esber.net ist die Website von diesem von dem Code den ich hier vorgestellt habe ist relativ statische Webseite hat sich seit 2020 nichts mehr getan aber trotzdem sehr gut das Einstieg ist auch mehr für Anfänger geeignet als was man bei huging face teilweise findet massive Text embeding Benchmark äh ist einfach das ist ja so ein Highscore an an Text edings ähm kann man sich angucken um zu sehen was aktuell Marktführer ist sozusagen aber teilweise sind das auch riesige embeddings also die brauchen dann was weiß ich 6 GB RAM und so e in bisschen unpraktisch und dann hier der pret Link solange es die Webseite noch gibt findet ihr da die äh ja den Code den ich hier vorgestellt habe so und damit wä ich sch erstmal durch herzlichen dank dir mrq für deine Einführung in das Thema ähm und auch die schönen Beispiele die Du mitgebracht hast die Eigenschaften assigkeit und fischstäb Kite werde ich mir in Zukunft merken und schauen ob es andere anwendungspferde gibt wo ich die verwenden kann äh wir haben eine Frage aus dem eter für dich und zwar ist die zu dem zu knn also künstliche neuronale Netze wenn ich mir das richtig gemerkt habe genau und zwar hast du eingangs erwähnt ah ja genau genau also knn künsliche neuronal Netzwerke für alle die es sich vielleicht auch nicht gemerkt haben eingangs hast Du erwähnt dass die Eingabe von einzelnen Buchstaben nicht gut funktioniert und die fragende Person würde ger gerne wissen ob man gegebenenfalls für eine bessere Verarbeitung ganze Silben verwenden könnte gegebenenfalls modelliert nach der Aussprache damit ähnlich klingende Silben ähnliche Eingaben sind ja das ist das ist tokenizing also was typischerweise als Eingabe bei künstlich nealen Netzen gemacht wird ist die der erste Schritt das ist noch außerhalb des Netzwerks ist tokenizing das heißt es werden der Text wird zerlegt in Teile das ist je nach Sprache dann einzelne Z chinesische Schriftzeichen werden einzeln gemapt bei Deutsch sind es meistens mehrere Silben und die werden auf Tokens abgebildet Silben habe ich nicht gesehen wäre möglich ja also typischerweise hat man als er ersten Schritt wieag toizing danach ein sehr breites sehr viele ion 10000er Ebene wo das danach wieder sehr schnell reduziert wird man könnte mit Silben arbeiten ja m habe ich aber noch nicht gesehen okay super vielen Dank es sind ja jetzt auch einige Beispiele online in der Beschreibung auf PES auch verlinkt also wenn ihr da Interesse habt euch das anzugucken dann wie gesagt seid ihr sehr gerne eingeladen und es gibt jetzt keine weit eren Fragen aus dem eter und wir auch ein bisschen über der Zeit aktuell deswegen mir jetzt nur noch bleibt mich bei der Technik und den Menschen in der Kamera und natürlich ganz ganz herzlich bei mrq zu bedanken und den signalengeln ohne die diese Veranstaltung so sonst nicht möglich wäre auch an die Übersetzer innen natürlich [Musik]