![]() | Dies ist das inoffizielle Repository für das Buch: Großsprachenmodelle: Anwenden und Implementieren von Strategien für Großsprachenmodelle (APRESS). Das Buch basiert auf dem Inhalt dieses Repositorys, aber die Notizbücher werden aktualisiert, und ich enthält neue Beispiele und Kapitel. Wenn Sie nach dem offiziellen Repository für das Buch mit den ursprünglichen Notizbüchern suchen, sollten Sie das Apress -Repository besuchen, in dem Sie alle Notizbücher in ihrem ursprünglichen Format finden können, wie sie im Buch angezeigt werden. Kaufen Sie es bei: [Amazon] [Springer] |
Bitte beachten Sie, dass der Kurs auf GitHub nicht alle Informationen enthält, die im Buch enthalten sind.
Dieser praktische freie Kurs über große Sprachmodelle und ihre Anwendungen ist in der dauerhaften Entwicklung? Ich werde die verschiedenen Lektionen und Proben veröffentlichen, während ich sie vervollständige.
Der Kurs bietet ein praktisches Erlebnis mit Modellen aus OpenAI und der umarmenden Gesichtsbibliothek. Wir werden viele Werkzeuge sehen und mit kleinen Projekten praktizieren, die wachsen, da wir das erworbene neue Wissen anwenden können.
Einige der in diesem Abschnitt behandelten Themen und Technologien umfassen: Chatbots, Codegenerierung, OpenAI -API, Umarmungsgesicht, Vektordatenbanken, Langchain, Feinabstimmung, PEFT -Feinabstimmung, Soft -schnelle Stimmen, Lora, Qlora, Evaluieren von Modellen, Wissensdestillation.
Jede Lektion wird durch Notizbücher und Artikel entspricht. Die Notizbücher enthalten ausreichende Informationen, um den Code darin zu verstehen. Der Artikel enthält detailliertere Erklärungen zum Code und das behandelte Thema.
Mein Rat ist, den Artikel neben dem Notizbuch zu öffnen und mitzumachen. Viele der Artikel bieten kleine Tipps zu Variationen, die Sie den Notizbüchern vorstellen können. Ich empfehle ihnen, ihnen zu folgen, um die Klarheit der Konzepte zu verbessern.
Die meisten Notizbücher werden auf Colab gehostet, während einige auf Kaggle sind. Kaggle bietet im Vergleich zu Colab mehr Speicher in der kostenlosen Version, aber ich finde, dass das Kopieren und Teilen von Notizbüchern in Colab einfacher ist und nicht jeder einen Kaggle -Account hat.
Einige der Notizbücher benötigen mehr Speicher als die kostenlose Version von Colab. Während wir mit großen Sprachmodellen arbeiten, ist dies eine häufige Situation, die wiederholt wird, wenn Sie weiterhin mit ihnen arbeiten. Sie können die Notizbücher in Ihrer eigenen Umgebung ausführen oder sich für die Pro -Version von Colab entscheiden.
Jedes Notizbuch wird mit einem mittelgroßen Artikel unterstützt, in dem der Code im Detail erläutert wird.
In diesem ersten Abschnitt des Kurses lernen wir, mit der OpenAI -API zusammenzuarbeiten, indem wir zwei kleine Projekte erstellen. Wir werden uns mit den Rollen von OpenAI befassen und die erforderlichen Anweisungen für das Modell durch die Aufforderung zur Verfügung stellen, um es zu verhalten, wie wir es wünschen.
Das erste Projekt ist ein Restaurant -Chatbot, in dem das Modell Kundenbestellungen entgegennimmt. Aufbauend auf diesem Projekt werden wir einen SQL -Anweisungsgenerator errichten. Hier werden wir versuchen, eine sichere Eingabeaufforderung zu erstellen, die nur SQL Creation -Befehle akzeptiert und sonst nichts.
Wir werden OpenAI GPT-3.5 und Panel verwenden, um einen unkomplizierten Chatbot zu entwickeln, der auf ein Fast-Food-Restaurant zugeschnitten ist. Während des Kurses werden wir die Grundlagen des schnellen Engineerings untersuchen, einschließlich des Verständnisses der verschiedenen OpenAI -Rollen, der Manipulation von Temperatureinstellungen und der Vermeidung von sofortigen Injektionen.
| Artikel Panel / Artikel Gradio | Notebook -Panel / Notebook Gradio |
|---|
Nach dem gleichen Rahmen, der im vorherigen Artikel zum Erstellen des Chatbots verwendet wurde, haben wir einige Änderungen vorgenommen, um SQL -Übersetzer eine natürliche Sprache zu entwickeln. In diesem Fall muss das Modell mit den Tabellenstrukturen bereitgestellt werden, und es wurden Anpassungen an die Eingabeaufforderung vorgenommen, um eine reibungslose Funktionalität zu gewährleisten und mögliche Fehlfunktionen zu vermeiden. Mit diesen Änderungen kann der Übersetzer natürliche Sprachabfragen in SQL -Abfragen umwandeln. @Fmquaglia hat ein Notizbuch mit DBML erstellt, um die Tabellen zu beschreiben, die bei weitem eine bessere Aphonach als das Original sind.
| Artikel / Artikel -Gradio | Notebook / Notebook Gradio / Notebook DBML |
|---|
Wir werden schnelle technische Techniken untersuchen, um die Ergebnisse aus Modellen zu verbessern. Wie die Antwort formatieren und eine strukturierte Antwort mit wenigen Schussproben erhalten.
| Artikel | Notizbuch |
|---|
Eine kurze Einführung in Vector -Datenbanken, eine Technologie, die uns in vielen Lektionen während des gesamten Kurses begleitet. Wir werden an einem Beispiel für die ARRAVAL -Augmented -Generation anhand von Informationen aus verschiedenen in Chromadb gespeicherten Nachrichten -Datensätzen arbeiten.
Wenn es in der Welt der Großsprachenmodelle einen Aspekt erlangt, untersucht dies, wie proprietäre Informationen mit ihnen nutzen können. In dieser Lektion untersuchen wir eine mögliche Lösung, bei der Informationen in einer Vektor -Datenbank, Chromadb in unserem Fall, gespeichert werden und sie verwenden, um angereicherte Eingabeaufforderungen zu erstellen.
| Artikel | Notizbuch |
|---|
Wir haben das Lappensystem durch Einführung einer semantischen Cache -Schicht, die feststellen kann, ob zuvor eine ähnliche Frage gestellt wurde, verbessert. Wenn sie bejaht, werden Informationen aus einem Cache -System abgerufen, das mit FAISS erstellt wurde, anstatt auf die Vektor -Datenbank zuzugreifen.
Der Inspirations- und Basiscode des in diesem Notizbuch vorhandenen semantischen Cache existiert dank des Kurses: https://maven.com/boring-bot/advanced-llm/1/home von Hamza Farooq.
| Artikel | Notizbuch |
|---|---|
| Wip | Notizbuch |
Langchain war eine der Bibliotheken im Universum großer Sprachmodelle, die am meisten zu dieser Revolution beigetragen haben. Es ermöglicht uns, Anrufe zu Modellen und anderen Systemen zu ketten, sodass wir Anwendungen basierend auf großsprachigen Modellen erstellen können. Im Kurs werden wir es mehrmals einsetzen und immer komplexere Projekte erstellen.
In dieser Lektion haben wir Langchain verwendet, um das Notizbuch aus der vorherigen Lektion zu verbessern, in der wir Daten von zwei Datensätzen verwendet haben, um eine angereicherte Eingabeaufforderung zu erstellen. Dieses Mal haben wir mit Hilfe von Langchain eine Pipeline erstellt, die für das Abrufen von Daten aus der Vektor -Datenbank verantwortlich ist und an das Sprachmodell weitergegeben wird. Das Notizbuch ist für die Arbeit mit zwei verschiedenen Datensätzen und zwei verschiedenen Modellen eingerichtet. Eines der Modelle ist für die Textgenerierung ausgebildet, während das andere für die Text2Text -Generation geschult wird.
| Artikel | Notizbuch |
|---|
Wir erstellen ein Kommentarantwortsystem mit einer mit Langchain erstellten Zweimodell-Pipeline. In diesem Setup ist das zweite Modell für die Moderation der vom ersten Modell generierten Antworten verantwortlich.
Ein effektiver Weg, um unser System daran zu hindern, unerwünschte Antworten zu generieren, besteht darin, ein zweites Modell zu verwenden, das keine direkte Interaktion mit den Benutzern hat, um die Reaktionsgenerierung zu verarbeiten.
Dieser Ansatz kann das Risiko von unerwünschten Antworten verringern, die vom ersten Modell als Reaktion auf den Eintrag des Benutzers generiert werden.
Ich werde separate Notizbücher für diese Aufgabe erstellen. Einer wird Modelle von OpenAI betreffen, und die anderen werden Open-Source-Modelle verwenden, die durch Umarmung bereitgestellt werden. Die in den drei Notizbüchern erhaltenen Ergebnisse sind sehr unterschiedlich. Das System funktioniert viel besser mit den Modellen OpenAI und Lama2.
| Artikel | Notizbuch |
|---|---|
| OpenAI -Artikel | Openai Notebook |
| LAMA2-7B ARTIKEL | LAMA2-7B Notebook |
| Kein Artikel | GPT-J Notebook |
Agenten sind eines der mächtigsten Werkzeuge in der Welt der großen Sprachmodelle. Der Agent kann die Anfrage des Benutzers interpretieren und die ihm zur Verfügung stehenden Tools und Bibliotheken verwenden, bis er das erwartete Ergebnis erzielt.
Mit Langchain -Agenten werden wir in nur wenigen Zeilen einen der einfachsten, aber unglaublich mächtigen Agenten schaffen. Der Agent fungiert als Datenanalystenassistent und hilft uns bei der Analyse von Daten, die in einer Excel -Datei enthalten sind. Es wird in der Lage sein, Trends zu identifizieren, Modelle zu verwenden, Prognosen zu machen. Zusammenfassend erstellen wir einen einfachen Agenten, den wir in unserer täglichen Arbeit verwenden können, um unsere Daten zu analysieren.
| Artikel | Notizbuch |
|---|
In diesem Beispiel werden zwei bisher gesehene Technologien kombiniert: Agenten und Vektordatenbanken. Medizinische Informationen werden in Chromadb gespeichert, und es wird ein Langchain -Agent erstellt, wodurch nur bei Bedarf eine angereicherte Eingabeaufforderung erstellt wird, die an das Modell gesendet wird, um die Frage des Benutzers zu beantworten.
Mit anderen Worten, ein Lappensystem wird erstellt, um einen medizinischen Chatbot zu unterstützen.
Aufmerksamkeit!!! Verwenden Sie es nur als Beispiel. Niemand sollte die Empfehlungen des Stiefels als die eines echten Arztes einnehmen. Ich lehne jede Verantwortung für die Verwendung ab, die dem Chatbot gegeben werden kann. Ich habe es nur als Beispiel für verschiedene Technologien aufgebaut.
| Artikel | Notizbuch |
|---|
Die Metriken, die zur Messung der Leistung großer Sprachmodelle verwendet werden, unterscheiden sich stark von denen, die wir in traditionelleren Modellen verwendet haben. Wir verlagern uns von Metriken wie Genauigkeit, F1 -Score oder Rückruf und bewegen uns zu Metriken wie Bleu, Rouge oder Meteor.
Diese Metriken sind auf die spezifische Aufgabe zugeschnitten, die dem Sprachmodell zugewiesen wird.
In diesem Abschnitt werden wir Beispiele für einige dieser Metriken untersuchen und wie sie mithilfe von ihnen feststellen, ob ein Modell für eine bestimmte Aufgabe einem anderen überlegen ist. Wir werden uns mit praktischen Szenarien befassen, in denen diese Metriken uns helfen, fundierte Entscheidungen über die Leistung verschiedener Modelle zu treffen.
Bleu ist eine der ersten Metriken, die zur Bewertung der Qualität der Übersetzungen festgelegt sind. Im Notizbuch vergleichen wir die Qualität einer Übersetzung, die von Google von einem Open -Source -Modell aus dem Umarmungsgesicht von Google hergestellt wurde.
| Artikel WIP | Notizbuch |
|---|
Wir werden die Verwendung der Rouge -Metrik untersuchen, um die Qualität der Zusammenfassungen zu messen, die durch ein Sprachmodell erzeugt werden. Wir werden zwei T5-Modelle verwenden, von denen eines das T5-Base-Modell ist und das andere eine T5-Base-Feinabstimmung speziell für die Erstellung von Zusammenfassungen entwickelt hat.
| Artikel | Notizbuch |
|---|
In diesem ersten Beispiel können Sie feststellen, wie Sie Langsmith verwenden, um den Verkehr zwischen den verschiedenen Komponenten zu überwachen, aus denen der Agent besteht. Der Agent ist ein Lappensystem, das eine vektorielle Datenbank verwendet, um eine angereicherte Eingabeaufforderung zu konstruieren und an das Modell weiterzugeben. Langsmith erfasst sowohl die Verwendung der Werkzeuge des Agenten als auch die vom Modell getroffenen Entscheidungen und liefert jederzeit Informationen über die gesendeten/empfangenen Daten, konsumierten Token, die Dauer der Abfrage und all dies in einer wirklich benutzerfreundlichen Umgebung.
| Artikel | Notizbuch |
|---|
Zuvor im Notebook, Rouge Metrics: Bewertung der Zusammenfassungen, haben wir gelernt, wie man Rouge verwendet, um zu bewerten, welche Zusammenfassung am besten die von einem Menschen erstellten Annäherung annähte. Dieses Mal werden wir die Einbettungsdistanz und Langsmith verwenden, um zu überprüfen, welches Modell Zusammenfassungen erzeugt, die den Referenzländern ähnlicher erzeugen.
| Artikel | Notizbuch |
|---|
Wir nehmen den Agenten, der als medizinischer Assistent fungiert, und beinhalten Giskard, um zu bewerten, ob seine Antworten korrekt sind. Auf diese Weise wird nicht nur die Antwort des Modells bewertet, sondern auch das Informationsabruf in der Vektordatenbank. Giskard ist eine Lösung, mit der eine vollständige Lappenlösung bewertet wird.
| Artikel | Notizbuch |
|---|
Die LM-Eval-Bibliothek von Eleutherai bietet einen einfachen Zugang zu akademischen Benchmarks, die zu Branchenstandards geworden sind. Es unterstützt die Bewertung von Open -Source -Modellen und APIs von Anbietern wie OpenAI und ermöglicht sogar die Bewertung von Adaptern, die mithilfe von Techniken wie Lora erstellt wurden.
In diesem Notizbuch werde ich mich auf ein kleines, aber wichtiges Merkmal der Bibliothek konzentrieren: Bewertung von Modellen, die mit der Transformers Library von Hugging Face kompatibel sind.
| Artikel - WIP | Notizbuch |
|---|
Im Abschnitt Finetuning & Optimization werden wir verschiedene Techniken wie eine schnelle Feinabstimmung oder Lora untersuchen und die umarmende Face Peft-Bibliothek verwenden, um große Sprachmodelle effizient zu optimieren. Wir werden Techniken wie Quantisierung untersuchen, um das Gewicht der Modelle zu verringern.
In diesem Notebook werden zwei Modelle mit einem schnellen Abtauchen aus der PEFT -Bibliothek trainiert. Diese Technik ermöglicht es uns nicht nur, zu trainieren, indem wir die Gewichte sehr wenig Parameter ändern, sondern auch verschiedene spezielle Modelle, die das gleiche Grundmodell verwenden, unterschiedliche spezielle Modelle geladen haben.
Sofortiges Tuning ist eine additive Technik, und die Gewichte des vorgebreiteten Modells werden nicht modifiziert. Die Gewichte, die wir in diesem Fall ändern, sind die von virtuellen Token, die wir zur Eingabeaufforderung hinzufügen.
| Artikel | Notizbuch |
|---|
Nach einer kurzen Erklärung, wie die Feinabstimmungstechnik Lora funktioniert, werden wir ein Modell aus der Bloom-Familie fein stimmen, um es zu lehren, Eingabeaufforderungen zu konstruieren, mit denen große Sprachmodelle unterrichtet werden können.
| Artikel | Notizbuch |
|---|
Wir werden eine kurze Einführung in die Quantisierung sehen, mit der die Größe großer großer Sprachmodelle verringert wird. Mit der Quantisierung können Sie große Modelle laden, die die erforderlichen Speicherressourcen reduzieren. Es gilt auch für den Feinabstimmungsvorgang. Sie können das Modell in einer einzelnen GPU fein abstellen, ohne alle Ressourcen zu konsumieren. Nach der kurzen Erläuterung sehen wir ein Beispiel darüber, wie ein Bloom 7B-Modell in der T4 16GB-GPU auf Google Colab möglich ist.
| Artikel | Notizbuch |
|---|
Dieser Abschnitt befindet sich noch im Bau. Ziel ist es, einen Lehrplan zu erstellen, der uns von den einfachsten Schnitttechniken führt, um ein Modell mit den gleichen Techniken zu erstellen, die von führenden Unternehmen vor Ort wie Microsoft, Google, Nvidia oder OpenAI angewendet werden, um ihre Modelle zu erstellen.
Im ersten Notizbuch wird der Beschneidungsprozess auf die Feedforward -Schichten eines Distilgpt2 -Modells angewendet. Dies bedeutet, dass das Modell in diesen spezifischen Schichten reduziert wird. Die Neuronen zum Beschneiden werden auf der Grundlage ihrer Wichtigkeitswerte ausgewählt, die wir unter Verwendung der L1 -Norm ihrer Gewichte berechnen. Für dieses erste Beispiel kann ein einfacher Acroach verwendet werden, der verwendet werden kann, wenn Sie ein geschnittenes Modell erstellen möchten, das das Basismodell in allen Bereichen nachahmt.
Durch die Änderung der Struktur des Modells muss eine neue Konfigurationsdatei erstellt werden, um sicherzustellen, dass sie korrekt mit der transformers Library funktioniert.
| Notizbuch: Beschneiden eines Distilgpt2 -Modells. |
|---|
In diesem ersten Notizbuch versuchen wir, den mit dem DiffilGPT2 -Modell verwendeten Beschneidungsvorgang zu replizieren, aber auf ein Lama -Modell angewendet. Wenn der Beschneidungsprozess nicht die Eigenschaften des Modells berücksichtigt, führt er zu einem völlig unbrauchbaren Modell. Dieses Notizbuch dient als Übung, um zu verstehen, wie wichtig es ist, die Struktur der Modelle zu kennen, die Beschneidung unterzogen werden.
| Notizbuch: Beschneidung eines LLAMA3.2 -Modells Falsch Acrach. |
|---|
Das zweite Notizbuch befasst sich mit den Problemen, die bei der Anwendung desselben Beschneidungsverfahrens auf das Lama -Modell angewendet wurden, wie es für Distilgpt2 verwendet wurde.
Der korrekte Ansatz besteht darin, die MLP -Schichten des Modells eher als Paare als einzelne Schichten zu behandeln und die Bedeutung der Neuronen zu berechnen, indem beide Schichten zusammen berücksichtigt werden. Darüber hinaus wechseln wir auf das maximale absolute Gewicht, um zu entscheiden, welche Neuronen in den geschnittenen Schichten verbleiben.
| PRUNING LLAMA3 ARTIKEL | Notizbuch: Beschneiden eines LLAMA3.2 Model Correct Acrach. |
|---|
In diesem Notebook werden wir uns ein Beispiel für das Tiefenbeschnitten ansehen, bei dem ganze Schichten aus dem Modell entfernt werden. Das erste, was zu beachten ist, ist, dass das Entfernen ganzer Schichten aus einem Transformatormodell in der Regel einen erheblichen Einfluss auf die Leistung des Modells hat. Dies ist eine viel drastischere architektonische Veränderung im Vergleich zur einfachen Entfernung von Neuronen aus den MLP -Schichten, wie im vorherigen Beispiel zu sehen ist.
| Notizbuch: Tiefenbeschneidung Ein Lama -Modell. |
|---|
In diesem einfachen ersten Projekt entwickeln wir einen SQL -Generator aus der natürlichen Sprache. Wir werden zunächst die Eingabeaufforderung erstellen, zwei Lösungen zu implementieren: eines mit OpenAI-Modellen, die auf Azure laufen, und die andere mit einem Open-Source-Modell aus dem Umarmungsgesicht.
| Artikel | Notizbuch |
|---|---|
| Erstellen Sie eine NL2SQL -Eingabeaufforderung für OpenAI | Sofortige Schöpfung für OpenAI |
| Wip | Erstellung von Defog/SQLCODER |
| Inferenz -Azure -Konfiguration. | Verwenden von Azure -Inferenzpunkt |
In diesem kleinen Projekt werden wir ein neues Modell erstellen, das ein Microsoft-Phi-3-Modell mit DPO ausrichtet und es dann für das umarme Gesicht veröffentlichen.
| Artikel | Notizbuch |
|---|---|
| Wip | Ausrichtung mit DPO A PHI3-3-Modell. |
In dieser ersten Lösung entwerfen wir eine Architektur für ein NL2SQL -System, das in einer großen Datenbank arbeiten kann. Das System soll mit zwei oder drei verschiedenen Modellen verwendet werden. Tatsächlich verwenden wir drei Modelle im Beispiel.
Es handelt sich um eine Architektur, die einen schnellen Projekt -Kickoff ermöglicht, der nur wenige Tabellen in der Datenbank anbietet und es uns ermöglicht, weitere Tabellen in unserem Tempo hinzuzufügen.
In dieser Lösung untersuchen wir die transformative Kraft von Einbettungen und Großsprachemodellen (LLMs) in der Kundenrisikobewertung und der Produktempfehlung in der Finanzbranche. Wir werden das Format ändern, in dem wir Kundeninformationen speichern, und folglich ändern wir auch die Art und Weise, wie diese Informationen innerhalb der Systeme bewegt werden, und erzielen wichtige Vorteile.
Wenn Sie Probleme finden, öffnen Sie bitte ein Problem. Ich werde mein Bestes tun, um es so schnell wie möglich zu beheben und Ihnen Anerkennung zu geben.
Wenn Sie einen Beitrag leisten oder ein Thema vorschlagen möchten, zögern Sie bitte nicht, eine Diskussion zu beginnen. Ich würde mich freuen, Meinungen oder Ratschläge zu erhalten.
Sei nicht schüchtern, teile den Kurs in deinen sozialen Netzwerken mit deinen Freunden. Verbinden Sie sich mit mir auf LinkedIn oder Twitter und teilen Sie gerne alles, was Sie möchten, oder stellen Sie Fragen, die Sie möglicherweise haben.
Geben Sie dem Repository einen Stern. Es hilft mir sehr und ermutigt mich, weiterhin Lektionen hinzuzufügen. Es ist eine gute Möglichkeit, kostenlose Open -Source -Kurse wie diese zu unterstützen.
Tom Kocmi, Christian Federmann, große Sprachmodelle sind hochmoderne Bewerter der Übersetzungsqualität. Bewertung von LLMs mit LLMs.
Pere Martra, Einführung in große Sprachmodelle mit OpenAI
Reaktieren: Synergisierung von Denken und Handeln in Sprachmodellen. Langchain & Agents Abschnitt. Probe für medizinische Assistentin.
Die Skalierungsleistung für parametereffizientes Einort-Tuning. Feinabstimmung und Optimierung. Sofortiges Tuning -Beispiel.
LORA: Low-Rang-Anpassung großer Sprachmodelle. Feinabstimmung und Optimierung. LORA FEIN-TUNING-Probe.
Qlora: Effiziente Finetuning von quantisierten LLMs. Feinabstimmung und Optimierung. Qlora Feinabstimmungsprobe.
So fordern Sie LLMs für Text zu SQL auf: Eine Studie in Einstellungen von Null-Shot-, Single-Domain- und Cross-Domain-Einstellungen. Projekt. Natürliche Sprache zu SQL.
Saurav Muralidharan, Sharath Turuvekere Sreenivas, Raviraj Joshi, Marcin Chochowski, Mostofa Patwary, Mohammad Shoeybi, Bryan Catanzaro, Jan Kautz, Pavlo Molchanov, kompakte Sprachmodelle über Pruning und Knowledge Distillation, "Arxiv -Vorbereitungsmodell 2024. Verfügbar unter: https://doi.org/10.48550/arxiv.2407.14679.