Zum Inhalt springen

Werk:AI mit Arnie/Finetuning mit Google Colab

aus AufEinWort, der freien Forschung
▶ Kurs AI mit Arnie (KI-Revolution) Open-Source LLMs
📽️ 2 Finetuning von Open Source LLMs mit Google Colab Alpaca + Llama 3 8b, Unsloth für 2x schnelleres (26:13)
🎓 Finetuning mit Google Colab
'
▲ F5 TTS: Stimme klonen (Opensource)
▶ Finetuning mit Google Colab
▼ GPU bei Runpod oder Massed Compute mieten

In diesem Video sehen wir uns das Fine-Tuning an. Wir werden Llama 3 als Beispiel verwenden, und wir werden das in Google Colab machen. Das Google Colab Notebook kommt von Unslot, und Unslot macht das Fine-Tuning so einfach wie möglich und so schnell wie möglich. Und wir können es in Google Colab gratis machen.

Das Notebook wurde speziell so angepasst, dass man die T4-Grafikkarte verwenden kann, und die ist, wie gesagt, komplett gratis verfügbar auf Google Colab. Wenn du eine H100 verwendest auf Google Colab, ja, dann funktioniert das schneller und etwas besser, aber dafür musst du 10$ bezahlen, 10$ im Monat. Und ich will dir hier tatsächlich zeigen, dass es auch im Gratis-Abo funktioniert. Es kann sein, dass ich auf die A100 wechsle, weil ich das Abo hab, und dann funktioniert das Ganze etwas schneller.

Bevor wir starten – Ich will noch ganz, ganz kurz zeigen, was wir im Groben machen. Also, das Konzept ist, dass wir Llama 3 verwenden, wir jagen es durch dieses Colab Notebook, und danach soll es besser reagieren für einen spezifischen Usecase. Da das nur ein Tutorial ist, will ich dir zeigen, an welchen Datensatz wir das Ding trainieren.

Wie gesagt, alles kommt hier von Unslot. Die geben uns sogar den Datensatz und vieles, vieles mehr. Der Datensatz an sich ist so strukturiert: Wir haben immer Output, Input und die Instruction. Das heißt, alle diese Dinge sind ganz, ganz gut geordnet, und wir haben natürlich ganz, ganz, ganz viele Beispiele. Wir haben, wie du hier oben siehst, 51.000 Zeilen tatsächlich. Wenn du runtergehst, dann kannst du dir das Ganze auch ansehen, wie es hier genauer strukturiert ist.

Wir haben z. B. die Instruction. Die Instruction ist "Summarize the given article in 200 words". Danach den Input. Der Input ist hier eine Webseite. Danach der Output: "The recent protests in Belarus are part of a growing wave..." und so weiter. Das heißt, wir bekommen einfach die perfekte Antwort, die wir von unserem Modell erwarten würden.

Danach die nächste Instruction. Also, hier soll eine Klassifizierung gemacht werden. Der Input ist ein Bild, und der Output ist danach, dass es ein "Triangle" ist.

Danach die nächste Instruction: Hier geht es wieder tatsächlich um einen Artikel, danach den Input, diese Webseite, und den Output. Das heißt, du brauchst ein Dataset mit in diesem Fall 50.000 Zeilen,.

Und alles muss ganz, ganz genau strukturiert werden – Instruction, Input, Output. Und du musst die Dinge so reinschreiben, wie sie dir gefallen würden. Das heißt, du kannst hier sogar selbst einen Datensatz erstellen. Ich will dir ganz, ganz kurz zeigen, wie du das machen könntest.

Wenn du die Dinge kopierst und du gehst z. B. in ChatGPT, dann kannst du mit ChatGPT sprechen und sagen, was du machen willst. „Ich will einen Datensatz machen, der so aufgebaut ist…“ Danach würden wir hier unser Beispiel einfügen. Jetzt musst du natürlich reinschreiben, was dir gefällt. Also, die Instruction, meinetwegen willst auch du Zusammenfassungen machen, danach einen Link und zum Schluss den Output.

Und so geht das Ganze eben weiter. Wieder Instruction, Input, Output und selbiges hier. Und danach könnten wir zu ChatGPT sagen: Gib mir drei weitere Beispiele. Und du siehst, wir bekommen hier die Beispiele. Das erste Beispiel von ChatGPT ist natürlich: Instruction: "Translate the following sentence into Spanish." Danach natürlich der Input. Der Input ist danach natürlich ein englischer Satz: "The weather today is sunny and warm." Und danach der Output: "El clima de hoy es soleado y cálido.“ und so weiter, also in Spanisch bin ich nicht so ganz die Nummer 1.

"Explain the theory of relativity in simple terms." Den Input, Input brauchen wir hier natürlich keinen, da wir hier natürlich keinen weiteren Input geben. Und der Output hier ist unsere Beschreibung in einfachen Worten. Danach das nächste Beispiel: "Write a short story about a dragon and a knight." Weiteren Input brauchen wir nicht, und wir haben hier den Output von unserer kleinen Geschichte.

Und solche Zeilen müsstest du einige machen. Wenn du trainieren willst, dann brauchst du zumindest 20 Beispiele, die richtig, richtig gut sind. Es kann aber tatsächlich hochgehen bis zu 100.000 Beispielen. Das Beispiel vom Datensatz, das wir verwenden, das ist 50.000 Zeilen lang. Das heißt, ja, man verwendet hier relativ viele Datensätze.

Wie gesagt, willst du etwas speziell für dich trainieren, meinetwegen willst du hier einen Twitter-Agenten machen, du willst ganz einfach nur Tweets machen, dann würdest du das so strukturieren, dass du die Instruction machst – meinetwegen einen witzigen Tweet. Weiteren Input hast du natürlich keinen, und der Output ist natürlich ein Tweet, der dir gefällt.

Ich könnte ja z. B. zu ChatGPT sagen: "Gib mir weitere …gib mir drei weitere Beispiele. Ich will ein Modell haben, das lustige Tweets macht." Und hier siehst du, wie sich das aufbauen würde. Das heißt, jetzt bekommen wir drei Beispiele, und damit könnten wir unser Modell tatsächlich trainieren, damit wir lustige Tweets machen. Ich könnte auch sagen: "Gib mir 20 Beispiele."

Ich denke wirklich, wenn man ein Modell machen wollen würde, das einfach nur witzige Tweets macht, dann könntest du das ganz, ganz genauso machen. Hier bekommen wir jetzt den Output für 20 Tweets, und danach hätten wir unser komplettes Dataset. Und bup jetzt haben wir unser Dataset mit 20 Beispielen.

Das heißt, wir starten hier immer mit der Instruction: "Write a funny tweet about working from home." Input brauchen wir keinen weiteren. Und der Output: "Day 327 working from home. My houseplants just asked me to leave because the need some alone time…“ Zum Schluss noch ein paar Hashtags. Ich denke wirklich, man könnte so ein Modell trainieren, das einigermaßen Sinn macht.

Und wie gesagt, solche Beispiele haben wir jetzt 20. Mindestens 20 Beispiele brauchst du. Instruction, hier die Anweisung. Weiterer Input, falls weiterer Input nötig ist, und der Output genauso, wie wir ihn gerne sehen wollen würden.

Was ist aber der Vorteil von diesem Fine-Tuning? Es hat sich gezeigt, wenn man ein Modell fine-tuned für einen spezifischen Usecase, in diesem Beispiel als kleiner Twitter-Experte, dann wird das Modell besser abschneiden in Benchmarks, alleine an diesen kleinen Tests, als ein breites Modell. Das heißt, wir könnten hier z. B. Llama 3 trainieren als Twitter-Experte, und Llama 3 macht danach bessere Tweets als GPT-4 Omni. Außerdem verwenden wir hier natürlich schon GPT-4 Omni, um die Beispiele zu geben, also bekommen wir schon sehr, sehr, sehr gute Beispiele.

Wichtig ist: Das Dataset muss nicht unbedingt wahnsinnig riesig groß sein, denn Qualität entscheidet. 20 gute Beispiele sind besser als 200 schlechte Beispiele. Und der Optimalfall ist natürlich 50.000 richtig gute Beispiele. Und wenn du das machen willst, dann viel Spaß! Ich kann das leider nicht im Kurs vorzeigen, da man da wirklich lange, lange, lange Zeit damit verbringt, um die Dinge zusammenzutragen.

Also, ich bin, um ehrlich zu sein, auch nicht der allergrößte Fan vom Fine-Tuning, denn sobald man ein fine-getuntes Modell hat, gibt es irgendwann ein Update bei einem anderen Modell, und danach ist unser fine-getuntes Modell schlechter als das neue Modell. Und wenn man hier Daten zusammenträgt über Wochen und Monate und richtig gute Beispiele gibt und beim nächsten Update ist unser Modell dann schlechter als ein Standardmodell, na ja, also, ich weiß nicht...

Aber nichtsdestotrotz, wie gesagt, wir wollen jetzt weitermachen. Wir können ein Modell anpassen, und wir verwenden dieses Google Colab Notebook. Und jetzt, jetzt will ich dir zeigen, wie das genau funktioniert. Und wir werden den Datensatz verwenden, den uns hier Unslot zur Verfügung stellt, der genauso aufgebaut ist, also Output, Input, Instruction. Alles ist genauso strukturiert.

Was machen wir? Wir gehen in dieses Google Colab Notebook, und wir klicken "Play" bei der ersten Zelle. Sobald du hier im Google Colab Notebook drinnen bist, du solltest eine Grafikkarte verwenden. Hierfür gehst du auf "Laufzeit", auf "Laufzeittyp ändern". Die T4 kannst du gratis verwenden. Damit ich hier etwas schneller arbeiten kann, verwende ich die A100, da ich im Bezahl-Abo bin. Also klicke ich "Speichern".

Dementsprechend habe ich jetzt erweiterten RAM, und das Ding sollte natürlich schneller funktionieren. Oder wisst ihr was? Wir machen das so: Auch ich verwende jetzt die T4. Ich will hier nicht die Dinge schneller machen als jeder, der das gratis verwendet. Das heißt, wir gehen jetzt noch mal auf "Runtime", und wir verbinden uns jetzt mit der T4, damit ich nicht hier den Luxus habe von einer H100.

Ich bin jetzt also verbunden mit der T4, und wir klicken "Play" bei der ersten Zelle. Wir müssen trotzdem ausführen, auch wenn das Ding natürlich nicht von Google kommt. Das funktioniert, um ehrlich zu sein, auch mit der T4 einigermaßen schnell. Ich glaube, ihr braucht so 10 Minuten danach. Das dauert hier jetzt in etwa 50 Sekunden. Sobald der Haken da ist, hat alles geklappt, und wir gehen runter zu der nächsten Zelle.

Und hier verwenden wir wieder die ganzen Bibliotheken von Unslot. Das ist natürlich perfekt. Die Max Sequence Length, hier verwendet Unslot tatsächlich 2048 Token. Wir könnten auch höher gehen mit den Token, denn das Modell hat ein höheres Kontextfenster. Da der Datensatz aber riesig, riesig groß ist, würde ich dir empfehlen, die Dinge so zu lassen, wie sie hier eingestellt haben.

Hier haben sie natürlich immer diese Hashtags dabei, und bei diesen Hashtags beschreiben sie dir ganz, ganz kurz, wofür jede Zeile Code hier tatsächlich funktioniert. Also, ich will das schnell machen... Ich erkläre dir jetzt nicht jede einzelne Zeile.

Was hier unten auch noch wichtig ist, ist dieser Tokenizer. Hier verwenden wir beim Modelname alles von Unslot. Also, wir verwenden die Modelle von Unslot, das ist das Lama-3-8-Billionen-Modell. Und wir werden zum Schluss eine 4-Bit-Quantifizierung machen. Das heißt, wir bekommen am Ende ein 4-Bit-Modell, und wir können das natürlich danach sogar laufen lassen, z. B. in LM Studio.

Das Coole ist also: Die Modelle von Unslot findest du auch hier. Das heißt, wir verwenden hier danach dieses Modell, dieses Llama-3-8-Billionen-Modell, und diese Modelle, die haben diese sogenannten LoRA-Adapter schon mit eingebaut. Das heißt, wir müssen nichts mehr weiter machen, denn hier ist alles mit dabei, so wie wir es brauchen.

Wenn du ein anderes Modell fine-tunen willst, also nicht eines von diesen, dann kannst du natürlich das da oben rauslöschen, deinen HuggingFace Token hier reingeben – das ist dein API Key bei HuggingFace machen – und danach natürlich andere Modelle hier reingeben, wenn du magst. Das steht hier jedoch nicht auf meiner To-Do-Liste. Dementsprechend klicken wir einfach nur "Play" bei dieser Zelle.

Dieses Notebook sagt dir natürlich auch immer, was hier gerade passiert. Das heißt, der Computer wird jetzt vorbereitet, dass das Fine-Tuning schneller läuft. Alles läuft hier in der Cloud, also dein lokaler Computer wird hier tatsächlich nicht belastet. Das ist richtig, richtig praktisch.

Und in der Zwischenzeit zeige ich dir die nächste Zelle, denn die nächste Zelle können wir auslassen. Hier geht es um die LoRA-Adapter, und du siehst, hier ist alles ausgeblendet. Das heißt, das verwendest du tatsächlich nur, wenn du hier ein anderes Modell verwenden willst zum Fine-Tuning. Aber wie gesagt, ich würde dir empfehlen, erst mal mit diesem Llama 3 hier zu starten, weil eben Unslot alles schon perfekt zur Verfügung stellt, und wir am Ende ein 4-Bit-quantifiziertes Modell bekommen können. Dementsprechend lassen wir diese Zelle jetzt aus,.

Und das nächste ist das Wichtigste: Hier geht es jetzt um "Data Prepare". Denn wir müssen unsere Daten natürlich vorbereiten. Und ich habe es dir ja schon gesagt: Wir bekommen bereits vorbereitete Daten, und zwar von diesem Alpaca Dataset. Das Alpaca Dataset – hier kannst du darauf klicken. Wenn du hier drauf klickst, dann wirst du weitergeleitet zu diesem HuggingFace Space, und hier siehst du, wie die Daten aufgebaut sind. Das habe ich dir schon mal kurz gezeigt tatsächlich.

Also immer so. Und wenn du selbst deinen Datensatz vorbereiten willst, dann weißt du ja mittlerweile schon, wie das geht. Aber für dieses Tutorial verwende ich natürlich diesen Datensatz, damit ich hier nicht noch mehr Datensätze machen muss.

Wir könnten vielleicht auch diesen Datensatz verwenden. Ich brauche aber, um ehrlich zu sein, kein solches Modell, das Tweets macht und das relativ schnell wieder nicht mehr up to date sein wird. Also verwenden wir einfach diesen Datensatz.

Und wenn du hier runter scrollst zu der nächsten Zelle, dann siehst du hier das "Alpaca Prompt". Und drunter steht "Below is an instruction that describes a task", und so weiter. Und du siehst, dass hier der Datensatz genauso aufbereitet werden muss: Instruction, danach die Instruction Input und Response. Das heißt, diese Zelle wird deine Daten noch mal ganz, ganz genau so strukturieren, wie es wichtig ist. Geh sicher, dass du deine Daten bereits so strukturiert hast, und danach sollte diese Zelle funktionieren.

Undnatürlich gebe ich hier als Beispiel einfach nur diesen Datensatz vor. Das heißt, "Dataset ist gleich loaded Dataset", genau das da. Das hier ist tatsächlich der Link bzw. der Datensatz zu diesem Ding hier. Und wenn du natürlich deine Daten verwenden willst, dann solltest du deine Daten natürlich hier reingeben. Die kannst du hier hochziehen in diesen Ordner und den Link hier unten eingeben, wenn du willst. Und es muss ganz einfach sichergestellt werden, dass deine Daten ganz, ganz genauso strukturiert sind. Denn hier machen wir danach die Tokens aus diesen Daten.

Das heißt, alles, was ich jetzt machen muss, ist hier "Play" zu klicken. Und wenn du deine Daten einfügen willst, dann gib die hier unten rein und geh sicher, dass sie so strukturiert sind, damit hier die Tokens so umgesetzt werden können, wie es das Modell für richtig hält.

Ich muss gestehen, ich weiß nicht zu 100 %, wie hier die Tokens im Hintergrund verarbeitet werden. Aber ich habe das mittlerweile einige Male probiert, und diese Dinge funktionieren, um ehrlich zu sein, relativ gut.

Und jetzt siehst du, haben wir hier schon unseren ganzen Datensatz genauso, wie er richtig ist. Und die nächste Zelle ist danach schon, das Modell zu trainieren. Und das Training, das funktioniert mit der HuggingFace Transformer Bibliothek. Und hier siehst du eigentlich, von woher die ganzen Dinge kommen. Das heißt, alles bekommen wir gratis von HuggingFace. Wir haben den Tokenizer von HuggingFace. Alles kommt von HuggingFace.

Lange Rede, kurzer Sinn: Falls du deine Daten richtig strukturiert hast und die erste Zelle hier oben ausgeführt hast, dann kannst du die nächste ausführen. Und hier werden wir jetzt alles von HuggingFace verwenden, um dieses Modell eben zu trainieren. Und das Ganze sollte auch recht schnell funktionieren.

Und bevor ich hier "Play" klicke, will ich noch das da zeigen. Übrigens, es gibt hier zwei verschiedene Colab Notebooks, und ich habe jetzt gerade auch das Notebook noch mal gewechselt.

Bevor ich hier noch mal "Play" klicke und starte, will ich dir das da zeigen: Die "Max Train Steps". Hier sind wir aktuell bei 60. Wenn du das hochstellst, dann wird das natürlich besser. Wenn du es zurückstellst, dann wird es etwas schwächer. Das heißt, wir werden hier maximal 60 Schritte machen im Training, und dadurch werden wir höchstwahrscheinlich noch nicht mal am ganzen Datensatz trainieren.

Generell ist mir das hier relativ egal, da das natürlich nur ein Beispiel ist und da ich das Training nicht unnötig in die Länge ziehen will. Aber wenn du die Steps hier hoch machst, dann wird dein Modell etwas besser werden.

Und ich muss hier dazu sagen: Irgendwann läuft man in diese "Diminishing Returns" rein. Das heißt, wenn du die Steps zu hoch machst, dann bekommst du irgendwann nicht mehr bessere Outputs. Und wenn du es viel zu hoch machst, dann bekommst du sogar schlechtere Outputs.

Ich will kurz erklären, was diese Steps sind und was "Epoch" ist. Wenn du ein Epoch verwendest, dann läufst du durch den gesamten Datensatz einmal durch. Verwendest du zwei, läufst du zweimal durch. Verwendest du drei, läufst du dreimal durch. Wenn du z. B. diesen Datensatz verwendest, dann kannst du meinetwegen auch drei, vier, fünf Epochs machen. Alles über 20 ist Overkill. Das heißt, hiermit würde man, wenn du "Epoch 18" eingibst, würdest du durch deinen ganzen Trainingssatz 18 Mal durchlaufen. Und wenn du die Steps auf 60 machst, dann verwendest du ganz einfach nur 60 dieser Beispiele.

Und ich hoffe, du verstehst, dass sich die Zeit des Trainings natürlich wahnsinnig, wahnsinnig erhöht. Das heißt, ich lass diese Steps einfach mal auf 60. Wenn du natürlich den gesamten Datensatz zum Training verwenden willst, dann sagen sie dir auch hier schon: "Number of Train Epoch ist  gleich 1." Und die Max Steps würdest du auf "None" machen. Dementsprechend, wenn du durch den gesamten Datensatz trainieren willst, dann würdest du natürlich das da kopieren, du würdest das einfach hier unten einfügen – einen Beistrich am Ende – und hier diese Max Steps, würde man natürlich "None" reinschreiben. Aber wie gesagt, ich will das hier natürlich nicht machen, denn ich will das, um ehrlich zu sein, etwas schneller machen. Dementsprechend will ich hier nicht einen gesamten Epoch machen. Und die Steps auf 60 passen für mich natürlich super gut. So, jetzt sollte das Ganze wieder laufen.

Und wie gesagt, willst du an mehr trainieren, dann kannst du natürlich den gesamten Epoch verwenden, also einen gesamten Durchlauf. Hast du einen kleinen Datensatz, dann kannst du meinetwegen sogar zwei, drei vier Epochs machen. Wie gesagt, je länger du das Modell trainierst, generell gesprochen, umso besser wird es. Aber irgendwann kommt man an einen Punkt, an dem wir diese "Diminishing Returns" haben. Das heißt, fünf, sechs, sieben, acht Epochs – irgendwann bringt mehr einfach nicht mehr. So ist es einfach mal beim Training dieser Modelle.

Also, wir klicken jetzt ganz einfach "Play", und danach werden wir hier tatsächlich unser Modell trainieren. Und du siehst auch hier schon: Jetzt geht das Training tatsächlich los. Wenn du hier runtergehst, dann siehst du, dass wir 60 Steps mittlerweile durchhaben. Das ist natürlich kein ganzer Epoch, und das Ganze hat sieben Minuten und 41 Sekunden gedauert. Und hier siehst du Step und Training Loss. Das heißt, am Step 1 sind wir bei 1,81, beim Step 2 bei 2,29, und du siehst, das Modell lernt hier über Zeit. Das heißt, diese Zahl, die wird mit der Zeit kleiner.

Erstmal sind wir zwischen 1 und 2,3, und du siehst, diese Zahl wird kleiner, kleiner, kleiner. Irgendwann hier unten, bei Step 60, sind wir eigentlich meistens unter eins. Du siehst also: Das Modell hat tatsächlich gelernt über Zeit.

Und hier siehst du im Übrigen auch: Ja, wir haben die T4-GPU verwendet. Die hat insgesamt 15 oder knapp 15 GB. Wir haben aber nie, nie mehr als 5,5 GB verwendet. Ja, wenn du die Steps sehr, sehr weit erhöhst, dann wirst du mehr Gigabyte brauchen. Es kann auch sein, dass du dann eine H100 verwenden musst. Aber für dieses Beispiel absolut kein Problem.

Und wenn du hier runtergehst, du siehst: Wir haben hier diese Anzahl an Sekunden gebraucht, das sind in etwa knapp acht Minuten vom Training. Die Peak Power, die wir gebraucht haben, sind 7,5 GB. Also, wir hatten noch reichlich Power übrig gehabt. Also keine H100 nötig für dieses Training.

Und danach, der nächste Schritt ist natürlich Inferenz. Das heißt, du kannst Inferenz betreiben mit diesem Modell, auch in diesem Google Colab Notebook drinnen. Hier läuft die Inferenz sehr, sehr schnell. Das heißt, du kannst das Modell auch hier laufen lassen.

Aber du kannst das Modell natürlich auch auf HuggingFace rüberschieben, auf deinen eigenen HuggingFace Account, und danach könntest du es sogar laden in LM Studio.

Und hier siehst du auch, wie sie das Ganze verwendet haben. Also, ihr Inferenzpunkt, sagen sie uns, funktioniert hier zweimal so schnell, als wenn du das in LM Studio verwendest, weil sie halt eben ganz, ganz effizient arbeiten.

Was ist der Alpaca Prompt? Der Alpaca Prompt ist: "Continue the Fibonacci sequence." Das ist hier natürlich die Instruction. Die Fibonacci Sequence ist hier: "1, 1, 2, 3, 5, 8. “ Und danach ist natürlich die Aufgabe vom Modell, die Fibonacci-Sequenz weiterzuführen. Und der Output, der wird hier drunter angezeigt. Das heißt, hier siehst du alles, wie es aufgelistet ist: Hier drunter Instruction und so weiter. Und hier ist der Input aufgelistet. Und danach kommt hier die Response, also die Antwort vom Modell. Und es würde so weitergehen: Also "1, 1, 2, 3, 5, 8". Das ist natürlich noch der Input. Und danach Response, also Output: "Es geht weiter mit 13, 21, 34, 55, 89, 144" und so weiter. Das heißt, man sieht, es ist hier genauso strukturiert, wie wir es eben unserem Modell gelernt haben im Training.

Es ist hier wichtig zu wissen: Ja, das Modell hätte diese Antwort wahrscheinlich auch anders machen können. Aber was halt anzumerken ist, dass die Response, also der Output, wirklich ganz, ganz genau angegeben wird, wie wir es im Fine-Tuning hier vorgegeben haben.

Und ja, ich muss dazu sagen: Ich bin nicht der Riesenfan von Fine-Tuning. Ich muss das einfach hier noch mal loswerden.

Inferenz musst du machen in Google Colab mit diesem komischen Ding hier drinnen. Also komm schon, wozu müssen wir das Fine-Tuning machen? Aber wie gesagt, will das jemand machen, dann go for it. Dann kannst du das natürlich machen.

Du kannst natürlich die Inferenz auch in LM Studio drinnen machen. Aber dann ist es wahnsinnig langsam. Und ich muss auch gestehen: Das Modell, das ich hier jetzt trainiert hab, das bietet uns natürlich absolut keinen Mehrwert, da wir nur 60 Steps gemacht haben.

Natürlich haben sie noch einen zweiten Inferenzpunkt, und den finde ich etwas hübscher, um ehrlich zu sein. Eigentlich ist das hier genau das gleiche Feld wie hier oben. Du siehst auch hier: Wir haben danach den Prompt "Continue the Fibonacci sequence: 1, 1, 2, 3..." und so weiter. Und die Antwort vom Modell ist danach hier unten. Die ist natürlich besser strukturiert.

Das heißt, wir haben erstmal die Instruction, genauso wie wir eben an unserem Datensatz trainiert haben, spuckt uns das Modell die Dinge aus. Das heißt: Instruction, Input und Response, genauso wie du hier sehen kannst – Instruction, Input, Output. Hier wird es jetzt Response genannt, tatsächlich. Und die Response ist hier: "13, 21, 34..." und so weiter. Das heißt, hier ist es etwas hübscher als hier. Hier haben wir alles in einer einzelnen Zeile, und jetzt wird es halt runtergebrochen auf die hübsche Aufteilung, genauso wie wir es eben gerne haben.

Wenn du denkst, dass das Modell für dich wichtig ist, cool ist oder was auch immer, dann ist die nächste Zelle für dich: "Saving and Loading Fine-Tuned Models.“ Das heißt, du kannst diese Modelle natürlich auch speichern, und du hast zwei Möglichkeiten hier. Du kannst es entweder rüberpushen zu HuggingFace, oder du kannst das Modell natürlich auch lokal abspeichern. Wichtig ist, dass es nur die LoRA-Adapter speichert und nicht das komplette Modell.

Wenn du das gesamte Modell speichern willst in GGUF, so dass es danach natürlich in LM Studio funktioniert, dann ist danach die nächste Zelle für dich. Das heißt, scrollen wir hier weiter runter, dann siehst du das da. Wir können es speichern als GGUF. Danach können wir diese GGUF-Modelle natürlich verwenden in allen möglichen Umgebungen, am besten, wie gesagt, in LM Studio.

Das heißt, wir können es speichern in 8-Bit, also Q8. Wir können es speichern in 16-Bit. Und wir können es speichern in Q4. Q4 braucht natürlich am wenigsten Speicherplatz. Dementsprechend würde ich dir fast empfehlen, erstmal die Q4-Quantifizierung zu machen. Denn ich muss ehrlich sein: Das Modell ist sowieso relativ dumm. Wir können das auch noch komprimieren, da es uns sowieso nicht ganz so viel bringt, um ehrlich zu sein.

Dementsprechend kannst du diese Modelle natürlich rüberschicken zu HuggingFace und danach von HuggingFace runterladen auf dein LM Studio.

Ich bin ehrlich: Ich will diesen Schritt hier sparen, da ich denke, dieses Modell bietet uns so überhaupt keinen Mehrwert. Lass mich wissen, ob du gute Erfahrungen hast mit dem Fine-Tuning. Ich muss gestehen: Für mich ist das Fine-Tuning immer so eine Sache. Ja, wenn ein Modell ganz, ganz neu rauskommt, dann kann man damit rumspielen, vielleicht mit kleinen Iterationen, kleinen Datensätzen. Wenn man etwas machen will, das sehr, sehr, sehr speziell ist, ich bin aber eher der Freund, einfach zu warten und das nächstgrößere Modell zu verwenden, sobald das rauskommt. Und dann können wir halt das laufen lassen.

Wie gesagt, lange Rede, kurzer Sinn: Du weißt jetzt, wie das Fine-Tuning funktioniert, wie es am einfachsten funktioniert mit Google Colab. Ja, wir können es auch in Hugging ace machen mit dem AutoTrain. Da bekommen wir, um ehrlich zu sein, etwas die besseren Ergebnisse, und alles ist automatisch gespeichert in HuggingFace. Wir können es quantifizieren auf Q4, Q8, was auch immer. Du kannst auch die 16-Bit-Variation verwenden, wenn dein Computer stark genug ist, um das Ding laufen zu lassen. Und danach kannst du etwas rumspielen, kannst du etwas Spaß haben.

Wie gesagt, ich muss dazu sagen: Ich verwende das Fine-Tuning nicht, da ich ganz einfach immer neue Modelle teste und probiere. Und für mich funktioniert das besser. Wenn du noch mehr Informationen zum Fine-Tuning haben willst, lass es mich wissen. Ich muss dazu sagen, ich bezweifle, dass es dich richtig viel weiterbringt.

Auch wenn ganz, ganz viele Leute auf Social Media sagen, Fine-Tuning ist das große Ding – ich muss dazu sagen, ich verwende es überhaupt nicht. In dem Sinne, wenn du es machen willst: Viel Spaß damit.