Lieber Zuschauer, dieser Untertitel wurde automatisch generiert von YouTube und dementsprechend (sehr) fehlerhaft. Wenn du kannst, hilf uns bitte gute Untertitel zu erstellen: https://c3subtitles.de/talk/2400 Danke!
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üche 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 ansonsten 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 Verkehr 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
sozusagen 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
widerstandsfarbcodierung 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 die 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
matrixmultiplikation 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 ein 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
weiteren 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]