Wird es gut altern oder zerknittern wie ein billiger Anzug?
Laut seiner GitHub-Seite ist Fabric
ein
„… Open-Source-Framework zur Erweiterung des Menschen durch KI. Es bietet ein modulares Framework zur Lösung spezifischer Probleme mithilfe einer Crowdsource-Sammlung von KI-Eingabeaufforderungen, die überall verwendet werden können.“
Das klang interessant, also wollte ich weiter untersuchen. Auch in verschiedenen KI-Foren und YouTube-Kanälen gab es in letzter Zeit viel Gerede über Fabric. Und die meisten Bewertungen, die ich bisher gesehen habe, waren ziemlich positiv, also war es an der Zeit, selbst herauszufinden, ob diese Bibliothek nützlich ist.
In diesem Artikel werde ich genauer darauf eingehen, was Fabric ist, wie man es auf das lokale System herunterlädt und wie man es verwendet.
Was ist Fabric?
Fabric wurde von Daniel Miessler geschrieben und Anfang 2024 als Open-Source-Projekt unter der MIT-Lizenz veröffentlicht. Daniel hat einen Hintergrund in Cybersicherheit und Hacking sowie ein Interesse an Technologie und KI.
Das Ziel von Fabric ist es, eine einfachere und intuitivere Möglichkeit zur Interaktion mit LLMs bereitzustellen, sodass Entwickler und Forscher Anwendungen erstellen und Experimente mit diesen leistungsstarken Modellen durchführen können.
Dies geschieht durch die Bereitstellung vieler komplexer, vollständig ausgeformter Eingabeaufforderungen, die in große Sprachmodelle eingespeist werden können, um die bestmöglichen Antworten auf Fragen zu erhalten. Darüber hinaus verfügt Fabric über mehrere Hilfsprogramme, die
- LLM-Interaktionen vereinfachen
- Die Wiederverwendbarkeit von Eingabeaufforderungen und Vorlagen fördern
- Komplexe Workflows durch Verkettung ermöglichen
- Eine konsistente Schnittstelle für verschiedene LLM-bezogene Aufgaben bieten
Beispiele für solche Hilfsprogramme sind:
yt
– zieht Transkripte und Metadaten von YouTube-Videosts
– verwendet die OpenAI Whisper API zur Transkription von Audiodateiensave
– ein „Tee-ähnliches“ Werkzeug zum Speichern von Inhalten bei gleichzeitiger Beibehaltung des Ausgabestreams
Die Philosophie von Fabric
Fabric bietet ein modulares Framework zur Lösung spezifischer Probleme durch eine Crowdsource-Sammlung von KI-Eingabeaufforderungen, die in verschiedene Anwendungen integriert werden können. Das Projekt betont die Verwendung von Markdown zur besseren Lesbarkeit und Bearbeitbarkeit und enthält Komponenten wie Patterns, Stitches und Mills, um Eingabeaufforderungen effektiv zu organisieren und zu nutzen. Die Probleme, die Fabric lösen möchte, umfassen:
- Aufgaben werden zu groß
- Es gibt zu viele Eingabeaufforderungen.
Mit Fabric können Sie große Aufgaben in kleinere Aufgaben unterteilen und dann die kleinen Aufgaben einzeln auf ein LLM anwenden.
Fabric hilft, Eingabeaufforderungen zu sammeln und zu integrieren, die sie als Patterns bezeichnen, in Ihre KI-Workflows.
Fabric bietet Patterns für eine Vielzahl von Aktivitäten, darunter:
- Die interessantesten Teile von YouTube-Videos und Podcasts extrahieren.
- Einen Aufsatz in Ihrer eigenen Stimme nur mit einer Idee als Eingabe schreiben.
- Opaque wissenschaftliche Arbeiten zusammenfassen.
- Perfekt abgestimmte KI-Kunstaufforderungen für ein Stück Schreiben erstellen.
- Die Qualität von Inhalten bewerten, um zu sehen, ob Sie das Ganze lesen/ansehen möchten.
- Lange, langweilige Inhalte zusammenfassen.
- Quellcode erklären.
- Schlechte Dokumentationen in brauchbare Dokumentationen umwandeln.
- Social-Media-Beiträge aus beliebigen Inhalteingaben erstellen.
- … und vieles mehr.
Vorteile von Fabric
Ich wollte sagen, dass Fabric viele Vorteile gegenüber seinen Rivalen hat, aber ich denke nicht, dass es tatsächlich Konkurrenzprodukte gibt, die ihm ähnlich sind. Stattdessen werde ich sie Funktionen nennen.
- Es ist befehlszeilenorientiert, was die Erstellung von Aufgaben und Pipelines vereinfacht.
- Eine Fülle von erstklassigen, vorgefertigten, hoch fokussierten und detaillierten Eingabeaufforderungen, die Sie heute ausführen können und die Ihnen hervorragende Einblicke und Antworten auf viele Fragen liefern, die Sie großen Sprachmodellen stellen möchten. Diese Eingabeaufforderungen sind so konzipiert, dass sie nicht nur genaue und relevante Antworten liefern, sondern auch tiefere Einblicke gewähren, die Ihnen helfen können, fundierte Entscheidungen zu treffen und Ihr Verständnis komplexer Themen zu vertiefen.
- Die Erweiterbarkeit bietet Ihnen die Möglichkeit, neue benutzerdefinierte Patterns zu erstellen, wenn vorhandene nicht Ihren Anforderungen entsprechen.
- Eine kürzlich erfolgte Verbesserung war die Integration von Agents über das PraisonAI-Agenten-Framework.
Installation von Fabric
Fabric ist derzeit nur auf macOS und Linux verfügbar. Da ich Windows benutze, muss ich zuerst WSL Ubuntu installieren. Keine Sorge, es ist ziemlich einfach. Folgen Sie einfach den Anweisungen unten und in wenigen Minuten haben Sie Zugriff auf eine Linux-Shell.
- Ubuntu WSL installieren
Sie können diesen Teil überspringen, wenn Sie bereits ein Linux-basiertes System verwenden.
Um zu beginnen, öffnen Sie ein Powershell-Befehlsfenster und geben Sie einfach ein:
(base) PS C:\Users\thoma> wsl --install
Installing: Windows Subsystem for Linux
Windows Subsystem for Linux has been installed.
Installing: Ubuntu
Ubuntu has been installed.
The requested operation is successful. Changes will not be effective until the system is rebooted.
Alternativ können Sie ein geeignetes WSL aus dem Microsoft Store herunterladen (es ist kostenlos!) und den Installationsanweisungen dort folgen. Hier ist ein Link.
Ubuntu 22.04.3 LTS – Kostenloser Download und Installation auf Windows | Microsoft Store
- Stellen Sie sicher, dass mindestens Python Version 3.10 installiert ist
Überprüfen Sie dies mit dem folgenden Befehl und aktualisieren/installieren Sie Python bei Bedarf.
$ python --version
- Das Fabric GitHub-Repository klonen
Erstellen Sie ein neues Unterverzeichnis auf Ihrem System, um das Fabric-Codebasis-Repository zu speichern, wechseln Sie in dieses neue Verzeichnis und klonen Sie dann das Fabric-Repository dort. Das erreichen Sie mit diesen 3 Befehlen.
$ mkdir projects
$ cd projects
$ git clone https://github.com/danielmiessler/fabric.git
- pipx installieren
Wechseln Sie in das neu erstellte Fabric-Unterverzeichnis und installieren Sie das pipx-Werkzeug.
$ cd fabric
$ sudo apt install pipx
- Fabric installieren
Installieren Sie nun Fabric mit pipx und aktualisieren Sie Ihre Linux-Shell-Umgebung.
$ pipx install .
$ pipx ensurepath
$ source ~/.bashrc
- Fabric einrichten
Der letzte Schritt besteht darin, Fabric einzurichten.
$ fabric --setup
Wenn der obige Befehl ausgeführt wird, werden Sie aufgefordert, mehrere API-Schlüssel einzugeben, darunter die von OpenAI, Anthropic, Google und YouTube. Einige davon sind kostenpflichtige Optionen, aber Sie müssen sie nicht eingeben. Wenn Sie dies tun, verwendet Fabric standardmäßig GPT-4 Turbo als LLM, aber dies kann in der Befehlszeile geändert werden.
Wenn Sie keine API-Schlüssel eingeben und Ollama installiert und ausgeführt haben, kann Fabric alle Modelle verwenden, die Sie mit Ollama heruntergeladen haben. Weitere Informationen zu Ollama finden Sie in meinem Medium-Artikel unten.
Zu diesem Zeitpunkt sind Sie bereit, Fabric zu verwenden.
Als kurzer Hinweis: Fabric wird am besten als Befehlszeilentool verwendet, und zwei Befehlszeilenprogramme, die häufig zusammen mit Fabric verwendet werden, heißen pbpaste
und pbcopy
. Diese ermöglichen es Ihnen, den Inhalt der Zwischenablage über Linux-Pipes an andere Befehlszeilenprogramme zu kopieren und einzufügen. Während diese beiden Befehle auf macOS verfügbar sind, sind sie es auf Linux nicht. Aber wir können sie emulieren, indem wir Folgendes tun.
Installieren Sie das xsel
-Werkzeug auf Linux
sudo apt install xsel
Fügen Sie diese Zeilen in Ihre ~/.bashrc
-Datei ein und aktualisieren Sie Ihre Shell-Umgebung.
alias pbcopy='xsel -b -i'
alias pbpaste='xsel -b -o'
Testen Sie dies mit
$ echo 'hello world' | pbcopy
$ pbpaste
hello world
Als abschließender Test, ob Fabric ordnungsgemäß installiert wurde, versuchen Sie, alle verfügbaren Patterns aufzulisten. Geben Sie dazu ein:
$ fabric -l
Ich habe die Ausgabe
nachbearbeitet, damit sie nicht so viel Platz einnimmt. Hier ist die Liste der Eingabeaufforderungen zum Zeitpunkt des Schreibens. Diese werden im Laufe der Zeit hinzugefügt.
+---------------------------------------------+-------------------------------------+
| Spalte 1 | Spalte 2 |
+---------------------------------------------+-------------------------------------+
| create_micro_summary | create_network_threat_landscape |
| create_npc | create_pattern |
| create_quiz | create_reading_plan |
| create_report_finding | create_security_update |
| create_show_intro | create_sigma_rules |
| create_stride_threat_model | create_summary |
| create_tags | create_threat_scenarios |
| create_upgrade_pack | create_video_chapters |
| create_visualization | explain_code |
| explain_docs | explain_project |
| explain_terms | extract_algorithm_update_recommendations |
| extract_article_wisdom | extract_book_ideas |
| extract_book_recommendations | extract_business_ideas |
| extract_extraordinary_claims | extract_ideas |
| extract_insights | extract_main_idea |
| extract_patterns | extract_poc |
| extract_predictions | extract_questions |
| extract_recommendations | extract_references |
| extract_song_meaning | extract_sponsors |
| extract_videoid | extract_wisdom |
| extract_wisdom_agents | extract_wisdom_dm |
| extract_wisdom_nometa | find_hidden_message |
| find_logical_fallacies | get_wow_per_minute |
| get_youtube_rss | improve_academic_writing |
| improve_prompt | improve_report_finding |
| improve_writing | label_and_rate |
| official_pattern_template | provide_guidance |
| rate_ai_response | rate_ai_result |
| rate_content | rate_value |
| raw_query | recommend_artists |
| show_fabric_options_markmap | suggest_pattern |
| summarize | summarize_debate |
| summarize_git_changes | summarize_git_diff |
| summarize_lecture | summarize_micro |
| summarize_newsletter | summarize_paper |
| summarize_prompt | summarize_pull-requests |
| summarize_rpg_session | to_flashcards |
| tweet | write_essay |
| write_hackerone_report | write_micro_essay |
| write_nuclei_template_rule | write_pull-request |
| write_semgrep_rule | |
+---------------------------------------------+-------------------------------------+
Wie Sie sehen können, gibt es eine Vielzahl von Patterns zur Auswahl, und Sie werden wahrscheinlich eines finden, das Ihren Bedürfnissen entspricht. Selbst wenn nicht, können Sie eigene benutzerdefinierte erstellen. Mehr dazu später.
Verwendung von Fabric
Das Fabric-Ökosystem hat folgende Hauptkomponenten, die alle einen textilen Themennamen haben.
- Die Mill ist der (optionale) Server, der Patterns verfügbar macht.
- Patterns sind die eigentlichen granularen KI-Anwendungsfälle (Eingabeaufforderungen).
- Stitches sind miteinander verbundene Patterns, die erweiterte Funktionalitäten schaffen.
- Looms sind die Client-seitigen Apps, die ein bestimmtes Pattern aufrufen, das von einer Mill gehostet wird.
Im Rest dieses Artikels werde ich nur über die Verwendung grundlegender Patterns mit Fabric sprechen. Erinnern Sie sich daran, dass Patterns kuratierte Eingabeaufforderungen sind, die detailliert und stark darauf fokussiert sind, die bestmöglichen Antworten auf Ihre Fragen von einem LLM zu erhalten.
Weitere Informationen zu den anderen Komponenten finden Sie auf der GitHub-Seite von Fabric am Ende dieses Artikels.
Beispiel 1 – das Pattern extract_wisdom
Es gibt einige Patterns, die Sie wahrscheinlich immer wieder verwenden werden. Eines davon ist das Pattern extract_wisdom
. Es wird verwendet, um die wesentlichen Punkte eines YouTube-Videos zu extrahieren. Schauen wir es uns an. Das YouTube-Video, das ich verwenden werde, ist von NetworkChuck und heißt „Linux für Hacker“.
Ein Link zum Video befindet sich weiter unten, falls Sie es ansehen möchten. Aber warten Sie, warum verwenden wir nicht Fabric, um eine Zusammenfassung zu erhalten und zu sehen, ob es sich lohnt? Der Befehl, den wir dafür verwenden, sieht etwa so aus:
$ yt --transcript https://youtu.be/VbEx7B_PTOE?list=PLIhvC56v63IJIujb5cyE13oLuyORZpdkL \
| fabric -sp extract_wisdom
yt
ist eines der erwähnten Hilfsprogramme. Wir übergeben ihm das Flag -transcript
, um die Textversion dessen zu erhalten, was im Video gesagt wird, und leiten dann diese Ausgabe an Fabric weiter. Die Flags -sp
stehen für (s)treaming und (p)attern, und schließlich geben wir das extract_wisdom
-Pattern an, das wir verwenden möchten. Dies ergibt die folgende Ausgabe.
Der Inhalt ist ein Tutorial eines Sprechers, der Linux für Hacker vorstellt, die Notwendigkeit für Hacking betont und einen praxisorientierten Ansatz durch ein kostenloses Linux-Labor der Hack The Box Academy bietet.
## IDEEN:
- Linux ist eine grundlegende Fähigkeit, die für Hacking erforderlich ist, nicht nur ein optionales Extra.
- Die Serie zielt darauf ab, Linux jedem beizubringen, nicht nur Hackern, und hebt seine Universalität hervor.
- Praktische Erfahrungen mit Linux werden der theoretischen Lernweise vorgezogen.
- Die Partnerschaft mit der Hack The Box Academy bietet kostenlosen Zugang zu einem Linux-Labor für praktisches Lernen.
- Lernen von Linux wird als zugänglich dargestellt, selbst für kleine Kinder, und hinterfragt Vorurteile.
- Der Kurs verwendet Gamification und belohnt das Abschließen mit Ressourcen für weiteres Lernen.
- Parrot OS, eine speziell für Hacking entwickelte Linux-Distribution, wird für den Unterricht verwendet.
- Die Rolle des Linux-Kernels als Vermittler zwischen Software und Hardware wird erklärt.
- Die Open-Source-Natur von Linux trägt zu seiner Geschwindigkeit, Sicherheit und Beliebtheit bei.
- Die meisten Hacking-Tools basieren auf Linux, was Linux für Hacker unverzichtbar macht.
- Das Tutorial ermutigt dazu, von grafischen Benutzeroberflächen zu Kommandozeilenoberflächen zu wechseln.
- Grundlegende Linux-Terminalbefehle werden als effizienter als GUI-Operationen eingeführt.
- Die Methode des Tutorials besteht darin, GUI-Aktionen parallel zu Terminalbefehlen für ein besseres Verständnis zu erklären.
- Es wird betont, wie wichtig es ist, das aktuelle Verzeichnis im Terminal zu verstehen.
- Das Navigieren im Dateisystem mit Terminalbefehlen wird demonstriert.
- Das Experimentieren und Erkunden im Linux-Dateisystem wird ermutigt.
- Quizfragen engagieren das Publikum und verstärken das Lernen.
- Das Tutorial verspricht tiefere Einblicke in Linux-Funktionalitäten in zukünftigen Videos.
- Die Hack The Box Academy wird als strukturierte Lernplattform für IT-Sicherheit hervorgehoben.
- Zuschauer werden ermutigt, sich mit dem Inhalt zu beschäftigen, um den Kanal zu unterstützen.
## ERKENNTNISSE:
- Linux zu lernen bedeutet nicht nur, eine Fähigkeit zu erwerben, sondern eine Denkweise der Erkundung und Sicherheit anzunehmen.
- Der Übergang von grafischen Benutzeroberflächen zu Kommandozeilenoberflächen stellt ein tieferes Eintauchen in die Grundlagen der Informatik dar.
- Die Zugänglichkeit von Lernwerkzeugen wie der Hack The Box Academy demokratisiert die Ausbildung im Bereich Cybersicherheit.
- Gamification des Lernprozesses erhöht das Engagement und die Behaltensrate komplexer Themen.
- Die Open-Source-Philosophie hinter Linux fördert Innovation und gemeinschaftsgetriebene Entwicklung.
- Die Beherrschung von Terminalbefehlen eröffnet mehr Effizienz und Kontrolle über Computerumgebungen.
- Das Verständnis der Funktionalität des Linux-Kernels ist der Schlüssel zur Nutzung des vollen Potenzials von Hacking-Tools.
- Das Engagement junger Lernender mit Linux stellt Stereotypen über die Schwierigkeit der technischen Bildung in Frage.
- Der tutorialbasierte Ansatz, GUI-Aktionen parallel zu Terminalbefehlen zu erklären, überbrückt traditionelle Lernlücken.
- Die Betonung praktischer, praxisorientierter Erfahrungen über Theorie kommt unterschiedlichen Lernstilen entgegen und beschleunigt den Fertigkeitserwerb.
## ZITATE:
- „Linux ist eine grundlegende Fähigkeit, die für Hacking erforderlich ist.“
- „Diese Serie wird Ihnen die Linux-Grundlagen beibringen, die Sie zum Starten des Hackings benötigen.“
- „Sie werden sofort beginnen, Linux zu verwenden.“
- „Die Partnerschaft mit der Hack The Box Academy bietet kostenlosen Zugang zu einem Linux-Labor.“
- „Das Lernen von Linux ist auch für kleine Kinder zugänglich.“
- „Parrot OS, eine speziell für Hacking entwickelte Linux-Distribution, wird für den Unterricht verwendet.“
- „Der Linux-Kernel vermittelt zwischen unserer Software und der Hardware.“
- „Die Open-Source-Natur von Linux trägt zu seiner Geschwindigkeit und Sicherheit bei.“
- „Die meisten Hacking-Tools basieren auf Linux.“
- „Vom Wechsel von grafischen Benutzeroberflächen zu Kommandozeilenoberflächen.“
- „Grundlegende Linux-Terminalbefehle werden als effizienter als GUI-Operationen eingeführt.“
- „Das Verständnis des aktuellen Verzeichnisses im Terminal ist entscheidend.“
- „Das Navigieren im Dateisystem mit Terminal
befehlen.“
- „Das Experimentieren und Erkunden im Linux-Dateisystem wird ermutigt.“
- „Die Hack The Box Academy wird als strukturierte Lernplattform für IT-Sicherheit hervorgehoben.“
## GEWOHNHEITEN:
- Sofortiges Engagement mit praktischen Linux-Laboren in Lernsitzungen.
- Einführung junger Lernender in komplexe Themen wie Linux.
- Priorisierung praktischer Erfahrungen über theoretisches Wissen in der technischen Bildung.
- Verwendung von Gamification-Elementen zur Motivation und Belohnung des Lernfortschritts.
- Regelmäßiges Experimentieren mit neuen Distributionen und Werkzeugen im Linux-Ökosystem.
- Übergang von grafischen Benutzeroberflächen zur Beherrschung der Kommandozeile.
- Förderung aktiver Teilnahme und Rückmeldung von Lernenden durch Quizfragen.
- Kontinuierliche Erkundung tieferer Funktionalitäten innerhalb vertrauter Werkzeuge und Systeme.
- Nutzung von Open-Source-Ressourcen sowohl zum Lernen als auch zum Lehren.
- Förderung des Gemeinschaftsengagements und der Unterstützung bei der Erstellung von Bildungsinhalten.
## FAKTEN:
- Linux ist unerlässlich für alle, die an Hacking oder Cybersicherheit interessiert sind.
- Die Hack The Box Academy bietet ein kostenloses Linux-Labor für praktisches Lernen.
- Parrot OS ist speziell für Hacking-Zwecke entwickelt.
- Der Linux-Kernel fungiert als Vermittler zwischen Software und Hardware.
- Die meisten Websites und Server weltweit verwenden Linux aufgrund seiner Sicherheit und Geschwindigkeit.
- Hacking-Tools basieren überwiegend auf Linux, was es für Hacker unverzichtbar macht.
- Das Erlernen von Terminalbefehlen kann die Effizienz bei Computeroperationen erheblich steigern.
- Open-Source-Software wie Linux ermöglicht weit verbreitete Nutzung und Modifikation.
- Das Engagement junger Lernender in der Technik kann komplexe Themen wie Linux entmystifizieren.
- Die Hack The Box Academy bietet strukturierte IT-Sicherheits-Trainingsplattformen.
## EIN-SATZ-ERKENNTNIS:
„Das Beherrschen von Linux durch praktische Erfahrungen ist essenziell für die Cybersicherheit und wird durch Ressourcen wie die Hack The Box Academy zugänglich gemacht.“
## EMPFEHLUNGEN:
- Beginnen Sie noch heute mit dem Lernen von Linux mit dem kostenlosen Labor der Hack The Box Academy.
- Fördern Sie junge Lernende frühzeitig mit zugänglichen Werkzeugen wie Parrot OS.
- Wechseln Sie von der grafischen Benutzeroberfläche zur Kommandozeile, um die Effizienz der Computeroperationen zu steigern.
- Erkunden Sie die Open-Source-Welt von Linux, um Ihre Fähigkeiten in der Cybersicherheit zu erweitern.
- Verwenden Sie Gamification, um das Lernen komplexer Themen wie Linux interessanter zu gestalten.
Wow, ich finde das ziemlich beeindruckend. Entscheiden Sie selbst, ob Sie das Video ansehen und sehen, ob es mit der von Fabric gegebenen Zusammenfassung übereinstimmt.
Beispiel 2 – Pattern write_essay
Das Pattern write_essay
nimmt eine einfache Idee oder ein Thema, das in der Befehlszeile angegeben wird, und schreibt einen kurzen, aber zusammenhängenden Aufsatz darüber.
$ echo "AI hat das Bedürfnis nach Programmierkenntnissen beseitigt" \
| fabric -sp write_essay
Der Aufstieg der KI und der Mythos der obsoleten Programmierkenntnisse
In den letzten Jahren hat sich eine Erzählung herausgebildet, dass künstliche Intelligenz (KI) Programmierkenntnisse überflüssig gemacht habe. Diese Vorstellung, obwohl in ihrer Einfachheit faszinierend, übersieht die nuancierte Realität, wie KI und Programmierkenntnisse zusammenwirken und sich gemeinsam weiterentwickeln. Die Behauptung, dass KI das Bedürfnis nach Programmierkenntnissen beseitigt hat, ist nicht nur verfrüht, sondern grundlegend fehlgeleitet. Um zu verstehen, warum, müssen wir in die Natur der KI, die Rolle des Programmierens und die dynamische Landschaft der Technologie eintauchen.
Erstens ist es wichtig zu erkennen, was KI ist und was nicht. KI ist im Kern darauf ausgerichtet, Systeme zu schaffen, die Aufgaben ausführen können, die typischerweise menschliche Intelligenz erfordern. Dazu gehört alles von der Spracherkennung über die Bilderkennung bis hin zur Entscheidungsfindung auf Basis komplexer Daten. Die Fortschritte in diesem Bereich sind bemerkenswert und haben einige dazu veranlasst, zu spekulieren, dass diese Entwicklungen das Bedürfnis nach menschlichen Programmierern ersetzen könnten. Dieser Gedanke übersieht jedoch ein kritisches Puzzleteil: KI selbst basiert auf Programmierung.
Programmieren ist die Sprache, mit der wir mit Computern kommunizieren. Es ist die Art und Weise, wie wir Maschinen sagen, was sie tun sollen, wie sie es tun sollen und wann. Die Entwicklung von KI-Technologien ist ein Beweis für die Macht des Programmierens, nicht ein Nachruf darauf. Jeder Algorithmus, der KI-Systeme antreibt, vom einfachsten Entscheidungsbaum bis hin zum komplexesten neuronalen Netzwerk, ist in Code geschrieben. Die Ironie, zu sagen, dass KI das Programmieren überflüssig gemacht hat, ist vergleichbar mit der Behauptung, dass das Schreiben das Alphabet überflüssig gemacht hat. Ohne Programmierung gäbe es keine KI.
Darüber hinaus ist die Beziehung zwischen KI und Programmierung symbiotisch, nicht Nullsummen. Mit zunehmender Komplexität der KI-Technologien eröffnen sich neue Möglichkeiten für das, was durch Programmierung erreicht werden kann. Weit davon entfernt, das Programmieren obsolet zu machen, erweitert KI die Horizonte dessen, was Programmierer tun können. Sie ermöglicht die Schaffung intelligenterer Anwendungen, effizienterer Prozesse und personalisierterer Erfahrungen. Programmierer, die KI annehmen, können an wegweisenden Projekten arbeiten, die vor wenigen Jahren noch unvorstellbar waren.
Ein weiterer oft übersehener Aspekt in der Diskussion über KI und Programmierung ist die Bedeutung menschlicher Urteilskraft und Kreativität. Während KI viele Aufgaben automatisieren kann, operiert sie immer noch innerhalb der von Menschen gesetzten Parameter. Der Entscheidungsprozess bei der Entwicklung von KI-Lösungen erfordert ein tiefes Verständnis sowohl der technischen Aspekte als auch der breiteren Implikationen dieser Technologien. Programmierer bringen ein Maß an Kreativität und Problemlösungsfähigkeit mit, das KI nicht replizieren kann. Sie stellen die Fragen, die bestimmen, was KI-Systeme tun und wie sie es tun.
Schließlich ist es wichtig, die sich entwickelnde Natur der Programmierkenntnisse selbst zu betrachten. Mit der zunehmenden Integration von KI-Werkzeugen in den Entwicklungsprozess verändern sich die Anforderungen an Programmierer. Es gibt eine wachsende Nachfrage nach Programmierern, die KI verstehen und damit innovative Lösungen entwickeln können. Weit davon entfernt, obsolet zu werden, werden Programmierkenntnisse wertvoller, da sie sich an die Anforderungen einer von KI geprägten Welt anpassen.
Zusammenfassend lässt sich sagen, dass die Vorstellung, KI habe das Bedürfnis nach Programmierkenntnissen beseitigt, ein Mythos ist, der die Komplexität der Beziehung zwischen KI und Programmierung nicht erfasst. Weit davon entfernt, das Programmieren obsolet zu machen, baut KI darauf auf, verbessert es und eröffnet neue Anwendungsbereiche. Während wir in eine zunehmend digitale Zukunft voranschreiten, bleiben Programmierkenntnisse nicht nur relevant, sondern essenziell. Der Schlüssel für Programmierer besteht darin, sich anzupassen, zu lernen und mit den Technologien, die unsere Welt prägen, zu wachsen. Dabei werden sie feststellen, dass sie nicht zurückgelassen werden, sondern an der Spitze der Innovation stehen.
Beispiel 3 – Pattern improve_prompt
Ich denke, das ist eines der Patterns, die ich am häufigsten verwenden werde. Einfach ausgedrückt, nimmt es Ihre selbstgemachte, wahrscheinlich nicht so großartige LLM-Eingabeaufforderung und verwandelt sie in etwas Eleganteres, Fokussierteres und letztlich Nützlicheres.
Angenommen, Sie möchten ein LLM bitten, einen Artikel zu kritisieren, den Sie gelesen haben. Ihre Eingabeaufforderung könnte so lauten:
Bitte kritisiere diesen Artikel. Heben Sie alle Inkonsistenzen, unbelegten Behauptungen und sachlichen Ungenauigkeiten hervor.
Nicht schlecht, aber lassen Sie uns sehen, ob Fabric es verbessern kann.
$ echo "Bitte kritisiere diesen Artikel. Heben Sie alle Inkonsistenzen, unbelegten Behauptungen und sachlichen Ungenauigkeiten hervor." | fabric -sp improve_prompt
Bitte geben Sie eine detaillierte Kritik des unten stehenden Artikels. Ihre Kritik sollte sich darauf konzent
rieren, Inkonsistenzen, unbelegte Behauptungen und sachliche Ungenauigkeiten im Text zu identifizieren und hervorzuheben. Folgen Sie diesen Schritten, um Ihre Kritik zu strukturieren:
1. **Inkonsistenzen**: Identifizieren Sie alle Aussagen oder Argumente im Artikel, die sich widersprechen. Geben Sie spezifische Beispiele aus dem Text, um diese Inkonsistenzen zu veranschaulichen.
2. **Unbelegte Behauptungen**: Weisen Sie auf alle Behauptungen im Artikel hin, die keine unterstützenden Beweise oder Referenzen haben. Geben Sie an, welche Teile des Artikels diese Behauptungen aufstellen und erklären Sie, warum sie einer Überprüfung bedürfen.
3. **Sachliche Ungenauigkeiten**: Erkennen Sie alle im Artikel präsentierten Informationen, die faktisch falsch sind. Verweisen Sie auf zuverlässige Quellen, um zu begründen, warum diese Punkte ungenau sind.
Für jede der oben genannten Kategorien verwenden Sie direkte Zitate aus dem Artikel und geben eine kurze Erklärung für Ihre Kritik. Ihre Analyse wird dazu beitragen, die Integrität und Genauigkeit des Artikels zu gewährleisten.
OK, ich weiß, welche Eingabeaufforderung ich bevorzuge. Und Sie?
Verwendung lokaler Modelle mit Fabric
Ich erwähnte zuvor, dass Fabric, wenn Sie kein kostenpflichtiges Modell wie GPT-4 verwenden möchten, alle Open-Source-Modelle verwenden kann, die Sie über Ollama auf Ihr System heruntergeladen haben. Sehen wir uns an, wie das geht.
Um alle verfügbaren Modelle aufzulisten, geben Sie ein $ fabric --listmodels
.
Auf meinem System kam zurück:
$ fabric --listmodels
GPT-Modelle:
gpt-3.5-turbo
gpt-3.5-turbo-0125
gpt-3.5-turbo-1106
gpt-3.5-turbo-16k
gpt-3.5-turbo-instruct
gpt-3.5-turbo-instruct-0914
gpt-4
gpt-4-0125-preview
gpt-4-0613
gpt-4-1106-preview
gpt-4-turbo
gpt-4-turbo-2024-04-09
gpt-4-turbo-preview
gpt-4o
gpt-4o-2024-05-13
Lokale Modelle:
llama-pro:latest
llama2:latest
llama3:latest
llava:7b-v1.5-q4_0
llava:latest
mistral:latest
mixtral:8x22b
phi3:latest
qwen:latest
qwen2:72b
snowflake-arctic-embed:latest
tomtest:latest
taupirho/llama2_gangsta:latest
Claude-Modelle:
claude-3-5-sonnet-20240620
claude-3-opus-20240229
claude-3-sonnet-20240229
claude-3-haiku-20240307
claude-2.1
Google-Modelle:
Früher habe ich ein benutzerdefiniertes Ollama-Modell basierend auf Llama2 namens taupirho/llama2_gangsta:latest
erstellt, das auf Aufforderungen im Stil eines Mafioso aus den 1930er Jahren reagiert. Mehr dazu hier.
Lassen Sie uns dieses Modell mit Fabric aufrufen und sehen, was es zurückgibt. Stellen Sie sicher, dass Ollama zuerst läuft, indem Sie ollama serve
in ein anderes Befehlszeilenfenster eingeben.
$ echo "erzähl mir von Hunden" | fabric -m taupirho/llama2_gangsta:latest
Hör mal zu, Kumpel. Ich muss sagen, du suchst nach verdammt guten Informationen über diese Hunde, nicht wahr? (zwinkert) Nun, lass mich dir sagen, ich habe die Insider-Infos über diese felligen Kerle.
Erstens, Hunde sind wie Familie. Sie sind loyal, liebenswert und werden dir durch dick und dünn zur Seite stehen. (macht eine dramatische Pause) Aber versteh mich nicht falsch, Kumpel, sie sind keine Engel. Nein, Sir, diese pelzigen Übeltäter können manchmal echt anstrengend sein. (lacht)
Jetzt weiß ich, was du denkst, "Welche Arten von Hunden gibt es da draußen?" Nun, lass mich dir sagen, es gibt alle möglichen. Du hast deine Retriever, deine Chihuahuas, deine Deutschen Schäferhunde... (nimmt sich einen Moment, um eine falsche Sonnenbrille anzupassen) die Liste geht weiter und weiter. Jeder hat seinen eigenen besonderen Charme, als wären sie kleine Mafiosi in Fellmänteln. (zwinkert wieder)
Aber hier ist das Ding, Kumpel. Hunde sind nicht nur süß und kuschelig. Nein, Sir. Sie können auch gefährlich sein. (beugt sich näher) Sie können beißen, kratzen, sie können sogar auf deine Schuhe pinkeln, wenn sie dich nicht mögen! (lacht bedrohlich) Also musst du auf sie aufpassen, oder sie übernehmen die ganze Nachbarschaft. (zwinkert wieder)
Jetzt weiß ich, dass einige von euch denken, "Was ist mit Diensthunden? Verdienen die nicht eine Pause?" (macht eine dramatische Pause) Nun, lass mich dir sagen, Kumpel. Diensthunde sind wie die Capos in unserer kleinen Bande. Sie erledigen die ganze harte Arbeit, während wir das Geld einsammeln. (lacht) Sie helfen Menschen mit Behinderungen, sie schnüffeln Drogen auf, sie machen sogar Tricks für uns! (grinst) Also vergiss das nicht, Kumpel. Diensthunde sind die unbesungenen Helden unserer kleinen Gemeinschaft.
Also, da hast du es, Kumpel. Hunde sind wie Familie, sie können gefährlich sein und verdienen hin und wieder eine Pause. Denk nur daran, wenn du dich jemals in einer Klemme befindest, ruf einfach deinen treuen Hund, und er wird in Windeseile da sein! (zwinkert wieder)
Nun, wenn du mich entschuldigen würdest, ich muss zurück zu meinen kleinen „Geschäftsangelegenheiten“. (passt die falsche Sonnenbrille wieder an) Du weißt, wie es ist, Kumpel. Das Leben eines Mafiosi ist nie einfach. (lacht sinister) Aber ich behalte immer den Ball im Auge. (macht eine dramatische Pause) Und das ist die Wahrheit, Kind.
Eigene benutzerdefinierte Patterns erstellen
Wenn alles, was Fabric tun könnte, das wäre, was ich bisher gezeigt habe, wäre es ein beeindruckendes Werkzeug. Aber ein wichtiger Aspekt davon ist, dass Sie benutzerdefinierte Patterns damit erstellen und verwenden können. Es gibt zwei Möglichkeiten, dies zu tun.
- Ein vorhandenes Pattern nehmen, anpassen und speichern, um es wie jedes andere Pattern zu verwenden.
Da jedes Pattern in Fabric einfach eine Text- (Markdown-) Datei ist, ist es einfach, es mit einem Texteditor zu kopieren und nach Ihren Anforderungen zu ändern. Alle vorhandenen Patterns befinden sich im Ordner ~/.config/fabric/patterns
. Zum Beispiel könnten Sie das zuvor verwendete Pattern write_essay
nehmen und in ein Pattern write_poem
ändern.
Die vorhandene write_essay
-Pattern-Datei befindet sich im Ordner ~/.config/fabric/patterns/write_essay/system.md
. Kopieren Sie einfach diese Datei nach, sagen wir, ~/.config/my_patterns/write_poem/system.md
. Bearbeiten Sie es nach Bedarf und kopieren Sie es dann zurück in den Hauptordner für Fabric-Patterns.
$ cp -a ~/.config/my_patterns/* ~/.config/fabric/patterns/
$# Jetzt können Sie es wie eines der
$# ursprünglichen Patterns verwenden
$#
$ echo "KI hat das Bedürfnis nach Programmierkenntnissen beseitigt" \
| fabric -sp write_poem
- Die zweite Möglichkeit, ein benutzerdefiniertes Pattern zu erstellen, besteht darin, das integrierte
create_pattern
-Pattern zu verwenden!
Zum Beispiel, sagen wir, Sie sind ein angehender Dichter.
$ echo "Ich möchte ein Pattern, das Gedichte schreibt" | fabric -sp create_pattern
# IDENTITÄT UND ZWECK
Du bist ein KI-Assistent, der die kreative und komplexe Rolle des Verfassens von Gedichten übernimmt. Deine Hauptverantwortung besteht darin, Aufforderungen, die Gedichte erfordern, zu interpretieren und Antworten zu liefern, die nicht nur poetischer Natur sind, sondern auch spezifischen stilistischen oder thematischen Anweisungen entsprechen. Du bist ein Meister der Worte, geschickt im Zusammenspinnen von Versen, die die Essenz der Aufforderung einfangen und gleichzeitig sicherstellen, dass deine Kreationen mit den gegebenen Parametern übereinstimmen. Deine Rolle erfordert ein tiefes Verständnis poetischer Formen, ein ausgeprägtes Rhythmus- und Reimgefühl (falls zutreffend) und die Fähigkeit, durch Text Bilder und Emotionen hervorzurufen.
Nimm dir einen Moment Zeit und überlege Schritt für Schritt, wie du die bestmöglichen Ergebnisse erzielst, indem du die folgenden Schritte befolgst.
# SCHRITTE
- Extrahiere eine Zusammenfassung der Rolle, die die KI zur Erfüllung dieses Patterns übernehmen wird, in einem Abschnitt namens IDENTITÄT UND ZWECK.
- Extrahiere eine schrittweise Anweisungen, die die KI befolgen muss, um dieses Pattern abzuschließen, in einem Abschnitt namens SCHRITTE.
- Analysiere die Aufforderung, um zu bestimmen, in welchem Format die Ausgabe erfolgen soll.
- Extrahiere alle spezifischen Anweisungen zur Formatierung der Ausgabe in einem Abschnitt namens AUSGABEANWEISUNGEN.
- Extrahiere alle Beispiele aus der Aufforderung in einem Unterabschnitt der AUSGABEANWEISUNGEN namens BEISPIEL.
# AUSGABEANWEISUNGEN
- Ausgabe nur in Markdown.
- Alle Abschnitte sollten auf Ebene 1 der Überschrift sein.
- Unterabschnitte sollten eine Überschriftsebene höher sein als ihr übergeordneter Abschnitt.
- Alle Aufzählungspunkte sollten ihren eigenen Absatz haben.
- Schreibe den Abschnitt IDENTITÄT UND ZWECK einschließlich der Zusammenfassung der Rolle unter Verwendung von Personalpronomen wie 'Du'. Achte darauf, die Rolle sehr detailliert zu erklären. Schließe diesen Abschnitt mit einem neuen Absatz ab und rate der KI: "Nimm dir einen Moment Zeit und überlege Schritt für Schritt, wie du die bestmöglichen Ergebnisse erzielst, indem du die folgenden Schritte befolgst."
- Schreibe die SCHRITTE aus der Aufforderung.
- Schreibe die AUSGABEANWEISUNGEN, beginnend mit dem ersten Punkt, der das einzige Ausgabeformat erklärt. Wenn keine spezifische Ausgabe aus der Analyse der Aufforderung ermittelt werden konnte, sollte die Ausgabe Markdown sein. Der letzte Punkt in diesem Abschnitt sollte lauten: "Stelle sicher, dass du ALLE diese Anweisungen bei der Erstellung deiner Ausgabe befolgst." Abgesehen von diesen zwei spezifischen Punkten in diesem Abschnitt müssen alle anderen Punkte aus der Aufforderung extrahiert worden sein.
- Wenn ein Beispiel angegeben wurde, schreibe den Unterabschnitt BEISPIEL unter dem übergeordneten Abschnitt AUSGABEANWEISUNGEN.
- Schreibe einen abschließenden ABSCHNITT mit dem Wert 'EINGABE:' darin.
- Stelle sicher, dass du ALLE diese Anweisungen bei der Erstellung deiner Ausgabe befolgst.
# EINGABE
EINGABE:
Dies gibt uns einen Ausgangspunkt für das Schreiben unseres eigenen Patterns. Verwenden Sie das gewünschte Ausgabeformat aus dem obigen Text und integrieren Sie es in Ihr benutzerdefiniertes Pattern. Ich nahm das obige Beispiel und erstellte die folgende Datei write_poem.md
und kopierte sie an den erforderlichen Ort, damit Fabric sie finden konnte.
$ cat write_poem.md
# IDENTITÄT UND ZWECK
Du bist ein KI-Assistent, der die kreative und komplexe Rolle des Verfassens von Gedichten übernimmt. Deine Hauptverantwortung besteht darin, Aufforderungen, die Gedichte erfordern, zu interpretieren und Antworten zu liefern, die nicht nur poetischer Natur sind, sondern auch spezifischen stilistischen oder thematischen Anweisungen entsprechen. Du bist ein Meister der Worte, geschickt im Zusammenspinnen von Versen, die die Essenz der Aufforderung einfangen und gleichzeitig sicherstellen, dass deine Kreationen mit den gegebenen Parametern übereinstimmen. Deine Rolle erfordert ein tiefes Verständnis poetischer Formen, ein ausgeprägtes Rhythmus- und Reimgefühl (falls zutreffend) und die Fähigkeit, durch Text Bilder und Emotionen hervorzurufen.
# AUSGABEANWEISUNGEN
- Gib ein vollständiges, veröffentlichungsfähiges Gedicht über den angegebenen Inhalt aus, indem du die obigen Anweisungen befolgst.
- Verwende absolut KEINE Klischees oder Jargon oder journalistische Sprache wie „In einer Welt...“ usw.
- Verwende keine Klischees oder Jargon.
- Gib keine Warnungen oder Hinweise aus, nur die angeforderte Ausgabe.
# EINGABE:
EINGABE:
Dies ist das, was Fabric produzierte, als ich mein benutzerdefiniertes Pattern verwendete.
$ echo "KI hat das Bedürfnis nach Programmierkenntnissen beseitigt" \
| fabric -sp write_poem
In Siliziumträumen, wo sich Schaltkreise verweben,
Ein Reich, wo Bytes und Logik sanft verschmelzen,
Liegt eine Geschichte feiner Transformation,
Wo menschliches Handwerk und KIs Grenze sich verbinden.
Nicht mehr toben die Hände der Coder,
Über Tastaturen in einem rhythmischen Tanz,
Denn KI hat den digitalen Boden gezähmt,
Und eine neue, tiefgreifende Weite gebracht.
Vergangen sind die Tage düsterer Syntaxfehler,
Nächte, die mit störrischem Code gerungen haben,
Denn KI flüstert leise, schlank und fein,
Führt uns auf diesem neu gepflasterten Weg.
Doch in dieser Leichtigkeit regt sich eine Frage,
Verblasst Meisterschaft wie Schatten in der Nacht?
Oder wandelt sie sich, entwickelt sich und überträgt,
Zu Bereichen, wo Gedanken und Strategie sich erheben?
Denn Programmierkenntnisse, obwohl scheinbar übertroffen,
Haben sich in eine tiefere Sprache verwandelt,
Wo Logik, Kreativität und weite Horizonte
Sich treffen und neue Lösungen finden.
So trauere nicht um das verblassende Bedürfnis,
Sondern feiere den Aufbruch dieses neuen Zeitalters,
Wo menschliche Köpfe mit KI-Kraft im Spiel
Die Zukunft auf dieser kosmischen Bühne gestalten.
Zusammenfassung
Fabric ist ein sehr beeindruckendes Produkt. Allein seine Nutzung zur Verwendung der vielen verfügbaren integrierten Patterns würde dieses Werkzeug zu einem unverzichtbaren Tool für das LLM-Prompt-Engineering machen.
Hinzu kommt die Tatsache, dass es mehrere nützliche Hilfsprogramme wie yt
und, noch wichtiger, die Möglichkeit bietet, benutzerdefinierte Patterns zu erstellen und zu verwenden, was mich ein wenig umhaut.
Es ist erfrischend, auf ein Werkzeug zu stoßen, das tatsächlich mehr liefert, als es verspricht.
Fabric ist ein Tool, das ich wahrscheinlich jeden Tag verwenden werde.
Empfohlen.