{"id":46261,"date":"2024-09-04T14:05:04","date_gmt":"2024-09-04T14:05:04","guid":{"rendered":"https:\/\/fabricegrinda.com\/?p=46261"},"modified":"2024-09-05T14:50:25","modified_gmt":"2024-09-05T14:50:25","slug":"fabrice-ai-die-technische-reise","status":"publish","type":"post","link":"https:\/\/grinda.org\/de\/fabrice-ai-die-technische-reise\/","title":{"rendered":"Fabrice AI: Die technische Reise"},"content":{"rendered":"\n<p>Wie ich <a href=\"https:\/\/fabricegrinda.com\/de\/wir-stellen-vor-fabrice-ai\/\" data-type=\"link\" data-id=\"https:\/\/fabricegrinda.com\/introducing-fabrice-ai\/\" target=\"_blank\" rel=\"noreferrer noopener\">bereits<\/a> im <a href=\"https:\/\/fabricegrinda.com\/de\/wir-stellen-vor-fabrice-ai\/\" data-type=\"link\" data-id=\"https:\/\/fabricegrinda.com\/introducing-fabrice-ai\/\" target=\"_blank\" rel=\"noreferrer noopener\">letzten Beitrag<\/a> erw\u00e4hnt habe, erwies sich die Entwicklung der <a href=\"https:\/\/fabriceai.fabricegrinda.com\/\" target=\"_blank\" rel=\"noreferrer noopener\">KI von Fabrice<\/a> als weitaus komplexer als erwartet und zwang mich dazu, viele verschiedene Ans\u00e4tze zu erforschen.<\/p>\n\n<p><strong>Die erste Ann\u00e4herung: Llama Index &#8211; Vektorsuche<\/strong><\/p>\n\n<p>Mein erster Versuch, die Suchf\u00e4higkeiten von Fabrice AI zu verbessern, bestand darin, den Llama-Index f\u00fcr die Vektorsuche zu verwenden.\nDas Konzept war einfach: Ich nahm den Inhalt meines Blogs, wandelte ihn in Langchain-Dokumente um und diese dann in Llama-Dokumente.\nDiese Llama-Dokumente w\u00fcrden dann in einem Vektorindex gespeichert, so dass ich diesen Index nach relevanten Informationen abfragen k\u00f6nnte.  <\/p>\n\n<p>Als ich begann, das System zu testen, wurde jedoch deutlich, dass dieser Ansatz nicht die Ergebnisse lieferte, die ich mir erhofft hatte.\nAls ich das System mit kontextlastigen Fragen wie &#8220;Was sind die gr\u00f6\u00dften Fehler von Marktplatzgr\u00fcndern?\nAnstatt den differenzierten Inhalt abzurufen, von dem ich wusste, dass er in den Daten enthalten war, lieferte sie irrelevante oder unvollst\u00e4ndige Antworten.  <\/p>\n\n<p>Dieser anf\u00e4ngliche Misserfolg veranlasste mich, meinen Ansatz zu \u00fcberdenken.\nIch erkannte, dass es nicht ausreichte, Inhalte einfach in einem Vektorindex zu speichern. Der Abrufmechanismus musste den Kontext und die Nuancen der gestellten Fragen verstehen.\nDiese Erkenntnis war die erste von vielen Lektionen, die die Entwicklung von Fabrice AI pr\u00e4gen sollten.  <\/p>\n\n<p><strong>Wissen speichern: MongoDB &#8211; Speicherung und Abruf von Dokumenten<\/strong><\/p>\n\n<p>Mit den Einschr\u00e4nkungen des Llama-Index-Ansatzes im Hinterkopf, habe ich als n\u00e4chstes die Speicherung der Llama-Dokumente in MongoDB untersucht.\nDas flexible Schema und die dokumentenorientierte Struktur von MongoDB schienen mir eine vielversprechende L\u00f6sung f\u00fcr die Verwaltung der verschiedenen Arten von Inhalten zu sein, die ich im Laufe der Jahre angesammelt hatte. <\/p>\n\n<p>Der Plan war, ein dynamischeres und reaktionsschnelleres Sucherlebnis zu schaffen.\nDieser Ansatz stie\u00df jedoch schnell auf Probleme.\nDie Suchfunktion, von der ich erwartet hatte, dass sie robuster sein w\u00fcrde, funktionierte nicht wie erwartet.\nAbfragen, die relevante Dokumente h\u00e4tten liefern sollen, ergaben keine Ergebnisse oder irrelevante Inhalte.   <\/p>\n\n<p>Dieser R\u00fcckschlag war frustrierend, aber er unterstrich auch eine wichtige Lektion: Die Speichermethode ist genauso wichtig wie die Abrufstrategie.\nIch begann, andere Optionen in Betracht zu ziehen, z. B. die Verwendung von MongoDB Atlas f\u00fcr Vektorsuchen, die m\u00f6glicherweise die Pr\u00e4zision und Skalierbarkeit bieten k\u00f6nnten, die ich ben\u00f6tigte.\nBevor ich mich jedoch auf diese Alternative festlegte, wollte ich andere Ans\u00e4tze untersuchen, um festzustellen, ob es vielleicht eine effektivere L\u00f6sung gibt.  <\/p>\n\n<p><strong>Metadaten-Retriever und Vektorspeicher: Auf der Suche nach Spezifit\u00e4t<\/strong><\/p>\n\n<p>Eine der n\u00e4chsten M\u00f6glichkeiten, die ich untersuchte, war die Verwendung eines Metadatenabrufs in Kombination mit einem Vektorspeicher.\nDie Idee hinter diesem Ansatz war, die riesige Menge an Informationen in der Fabrice-KI zu kategorisieren und dann Antworten auf der Grundlage dieser Kategorien abzurufen.\nDurch die Strukturierung der Daten mit Metadaten hoffte ich, die F\u00e4higkeit der KI zu verbessern, spezifische, gezielte Antworten zu geben.  <\/p>\n\n<p>Doch auch diese Methode hatte ihre Grenzen.\nObwohl sie oberfl\u00e4chlich betrachtet vielversprechend zu sein schien, hatte die KI Schwierigkeiten, auf alle Arten von Abfragen genaue Antworten zu geben.\nAls ich zum Beispiel fragte: &#8220;Ist der Autor optimistisch?&#8221;\nDas System schaffte es nicht, die Frage im Zusammenhang mit dem relevanten Inhalt zu interpretieren.\nAnstatt eine aufschlussreiche Analyse auf der Grundlage der Metadaten zu liefern, gab es entweder vage Antworten oder gar keine.    <\/p>\n\n<p>Dieser Ansatz lehrte mich eine wertvolle Lektion \u00fcber die Bedeutung des Kontexts in der KI.\nEs reicht nicht aus, Informationen einfach nur zu kategorisieren. Die KI muss auch verstehen, wie diese Kategorien zusammenwirken und sich \u00fcberschneiden, um ein zusammenh\u00e4ngendes Verst\u00e4ndnis des Inhalts zu erhalten.\nOhne dieses tiefe Verst\u00e4ndnis k\u00f6nnen selbst die ausgekl\u00fcgeltsten Suchmethoden versagen.  <\/p>\n\n<p><strong>Wissen strukturieren: Der SummaryTreeIndex<\/strong><\/p>\n\n<p>Als ich die KI von Fabrice weiter verfeinerte, experimentierte ich mit der Erstellung eines SummaryTreeIndex.\nDieser Ansatz zielt darauf ab, alle Dokumente in einem Baumformat zusammenzufassen, so dass die KI durch diese Zusammenfassungen navigieren und relevante Informationen auf der Grundlage der Struktur des Inhalts abrufen kann. <\/p>\n\n<p>Die Idee war, dass die KI durch die Zusammenfassung der Dokumente schnell die wichtigsten Punkte erkennen und auf Anfragen mit pr\u00e4gnanten, genauen Informationen antworten k\u00f6nnte.\nDoch auch diese Methode war mit erheblichen Herausforderungen verbunden.\nDie KI hatte Schwierigkeiten, aussagekr\u00e4ftige Antworten auf komplexe Fragen zu geben, z. B. &#8220;Wie trifft man wichtige Entscheidungen im Leben?&#8221;\nAnstatt aus dem reichhaltigen, nuancierten Inhalt der Zusammenfassungen zu sch\u00f6pfen, waren die Antworten der KI oft oberfl\u00e4chlich oder unvollst\u00e4ndig.   <\/p>\n\n<p>Diese Erfahrung unterstreicht die Schwierigkeit, in der KI ein Gleichgewicht zwischen Breite und Tiefe zu finden.\nW\u00e4hrend Zusammenfassungen einen \u00dcberblick auf hohem Niveau bieten k\u00f6nnen, fehlt ihnen oft der detaillierte Kontext, der f\u00fcr die Beantwortung komplexerer Fragen erforderlich ist.\nMir wurde klar, dass eine effektive L\u00f6sung sowohl detaillierte Inhalte als auch Zusammenfassungen auf hoher Ebene integrieren muss, damit die KI bei Bedarf auf beides zur\u00fcckgreifen kann.  <\/p>\n\n<p>Aus diesem Grund habe ich die KI in der aktuellen Version von Fabrice AI dazu veranlasst, zun\u00e4chst eine Zusammenfassung der Antwort zu geben, bevor sie auf weitere Details eingeht.<\/p>\n\n<p><strong>Horizonte erweitern: Knowledge Graph Index<\/strong><\/p>\n\n<p>Da ich die Grenzen der bisherigen Methoden erkannte, wandte ich mich einem anspruchsvolleren Ansatz zu: dem Knowledge Graph Index.\nBei diesem Ansatz wird aus unstrukturiertem Text ein Wissensgraph erstellt, der es der KI erm\u00f6glicht, entit\u00e4tsbasierte Abfragen durchzuf\u00fchren.\nZiel war es, ein dynamischeres und vernetzteres Verst\u00e4ndnis des Inhalts zu schaffen, so dass die KI von Fabrice komplexe, kontextlastige Fragen effektiver beantworten kann.  <\/p>\n\n<p>Trotz seiner vielversprechenden Eigenschaften hatte der Knowledge Graph Index auch mit erheblichen H\u00fcrden zu k\u00e4mpfen.\nDie KI hatte Schwierigkeiten, genaue Ergebnisse zu liefern, insbesondere bei Abfragen, die ein tiefes Verst\u00e4ndnis des Kontexts erfordern.\nAuf die Frage &#8220;Was sind faire Seed- und Series A-Bewertungen?&#8221; konnte die KI zum Beispiel keine relevante Antwort geben, was die Schwierigkeit verdeutlicht, unstrukturierten Text in einen koh\u00e4renten Knowledge Graph zu integrieren.  <\/p>\n\n<p>Dieser Ansatz war zwar letztlich erfolglos, lieferte aber wichtige Erkenntnisse \u00fcber die Herausforderungen bei der Verwendung von Wissensgraphen in der KI.\nDie Komplexit\u00e4t der Daten und die Notwendigkeit eines pr\u00e4zisen Kontexts bedeuteten, dass selbst ein gut konstruierter Wissensgraph Schwierigkeiten haben konnte, die gew\u00fcnschten Ergebnisse zu liefern.\nEin weiterer Nachteil des Knowledge Graph Index war seine langsame Geschwindigkeit.\nDie Antwortzeit, um verwandte Dokumente zu erhalten, war im Vergleich zu einem Vektorspeicherindex sehr hoch.   <\/p>\n\n<p><strong>Neuauswertung der Daten: Zwillinge<\/strong><\/p>\n\n<p>Nach mehreren R\u00fcckschl\u00e4gen beschloss ich, einen anderen Ansatz zu w\u00e4hlen, indem ich die KI von Google, <a href=\"https:\/\/gemini.google.com\/app\" target=\"_blank\" data-type=\"link\" data-id=\"https:\/\/gemini.google.com\/app\" rel=\"noreferrer noopener\">Gemini<\/a>, nutzte.\nDie Idee war, Datens\u00e4tze aus JSON-CSV-Dateien zu erstellen und dann ein benutzerdefiniertes LLM-Modell mit diesen Daten zu trainieren.\nIch hoffte, dass ich durch die Verwendung strukturierter Daten und eines robusten Trainingsmodells einige der Probleme \u00fcberwinden k\u00f6nnte, die bei fr\u00fcheren Versuchen aufgetreten waren.  <\/p>\n\n<p>Allerdings stie\u00df auch dieser Ansatz auf Schwierigkeiten.\nDer Trainingsprozess wurde aufgrund einer falschen Datenformatierung unterbrochen, wodurch das Modell nicht effektiv trainiert werden konnte.\nDieser R\u00fcckschlag unterstreicht die Bedeutung der Datenintegrit\u00e4t beim KI-Training.\nOhne korrekt formatierte und strukturierte Daten k\u00f6nnen selbst die fortschrittlichsten Modelle nicht die erwartete Leistung erbringen.   <\/p>\n\n<p>Diese Erfahrung brachte mich auf die Idee, BigQuery zum Speichern von JSON-Daten zu verwenden, um eine skalierbarere und zuverl\u00e4ssigere Plattform f\u00fcr die Verwaltung der gro\u00dfen Datens\u00e4tze zu schaffen, die f\u00fcr ein effektives Training von Fabrice AI erforderlich sind.<\/p>\n\n<p><strong>St\u00e4rken vereinen: Langchain-Dokumente mit Pinecone<\/strong><\/p>\n\n<p>Trotz der bisherigen Herausforderungen war ich fest entschlossen, eine L\u00f6sung zu finden, die es Fabrice AI erm\u00f6glichen w\u00fcrde, Wissen effektiv zu speichern und abzurufen.\nDiese Entschlossenheit brachte mich dazu, mit Langchain-Dokumenten und Pinecone zu experimentieren.\nDer Ansatz bestand darin, einen Pinecone-Vektorspeicher mit Langchain-Dokumenten und OpenAI-Einbettungen zu erstellen und dann die \u00e4hnlichsten Dokumente auf der Grundlage der Abfrage abzurufen.  <\/p>\n\n<p>Diese Methode erwies sich als vielversprechend, insbesondere wenn die Abfrage den Titel des Dokuments enthielt.\nAuf die Frage &#8220;Was ist der Schl\u00fcssel zum Gl\u00fcck?&#8221; konnte die KI beispielsweise den relevanten Inhalt genau abrufen und zusammenfassen.\nAllerdings gab es immer noch Einschr\u00e4nkungen, insbesondere wenn die Abfrage keine spezifischen Schl\u00fcsselw\u00f6rter oder Titel enthielt.  <\/p>\n\n<p>Dieser Ansatz zeigte das Potenzial der Kombination verschiedener Technologien zur Verbesserung der KI-Leistung.\nDurch die Integration von Langchain-Dokumenten mit dem Vektorspeicher von Pinecone konnte ich die Relevanz und Genauigkeit der KI-Antworten verbessern, wenn auch mit einigen Einschr\u00e4nkungen. <\/p>\n\n<p><strong>Konsistenz erreichen: GPT Builder OpenAI<\/strong><\/p>\n\n<p>Nachdem ich verschiedene Methoden und Technologien untersucht hatte, wandte ich mich an den <a href=\"https:\/\/chatgpt.com\/gpts\/editor\/\" target=\"_blank\" data-type=\"link\" data-id=\"https:\/\/chatgpt.com\/gpts\/editor\/\" rel=\"noreferrer noopener\">GPT Builder<\/a> von Open AI, um das in Fabrice AI gespeicherte Wissen zu konsolidieren und zu verfeinern.\nDurch das Hochladen aller Inhalte in eine GPT-Wissensdatenbank wollte ich eine konsistentere und zuverl\u00e4ssigere Plattform f\u00fcr den Abruf und die Interaktion mit meinem Wissen schaffen. <\/p>\n\n<p>Dieser Ansatz erwies sich als einer der erfolgreichsten, da die KI bei einer Reihe von Abfragen bessere Ergebnisse liefern konnte.\nDer Schl\u00fcssel zu diesem Erfolg war die Integration des gesamten Wissens in ein einziges, zusammenh\u00e4ngendes System, das es der KI erm\u00f6glichte, bei der Beantwortung von Fragen auf die gesamte Breite des Inhalts zur\u00fcckzugreifen. <\/p>\n\n<p>Wie in meinem vorherigen Beitrag erw\u00e4hnt, konnte ich es nicht auf meiner Website zum Laufen bringen, und es war nur f\u00fcr bezahlte Abonnenten von Chat GPT verf\u00fcgbar, was ich als zu einschr\u00e4nkend empfand.\nAuch wenn es besser war, gefiel mir die Qualit\u00e4t der Antworten immer noch nicht und ich f\u00fchlte mich nicht wohl dabei, es f\u00fcr die \u00d6ffentlichkeit freizugeben. <\/p>\n\n<p><strong>Letzte Verfeinerung: GPT-Assistenten mit Modell 4o<\/strong><\/p>\n\n<p>Das letzte Puzzlest\u00fcck bei der Entwicklung von Fabrice AI war die Einf\u00fchrung der <a href=\"https:\/\/platform.openai.com\/docs\/assistants\/overview\" target=\"_blank\" data-type=\"link\" data-id=\"https:\/\/platform.openai.com\/docs\/assistants\/overview\" rel=\"noreferrer noopener\">GPT-Assistenten<\/a> mit dem Modell 4o.\nDieser Ansatz war die Kr\u00f6nung all dessen, was ich w\u00e4hrend des Projekts gelernt hatte.\nDurch die Verwendung einer Vektordatenbank und die Verfeinerung der Eingabeaufforderungen wollte ich ein H\u00f6chstma\u00df an Genauigkeit und kontextbezogenem Verst\u00e4ndnis bei den Antworten der KI erreichen.  <\/p>\n\n<p>Bei dieser Methode wurde das gesamte Wissen, das ich angesammelt hatte, in eine Vektordatenbank hochgeladen, die dann als Grundlage f\u00fcr die Interaktionen der KI diente.\nDie Vektordatenbank erm\u00f6glichte es der KI, anspruchsvollere Suchvorg\u00e4nge durchzuf\u00fchren und Informationen auf der Grundlage der semantischen Bedeutung von Anfragen abzurufen, anstatt sich nur auf den Abgleich von Schl\u00fcsselw\u00f6rtern zu verlassen.\nDies war ein bedeutender Fortschritt gegen\u00fcber fr\u00fcheren Ans\u00e4tzen und erm\u00f6glichte es der KI, komplexe, nuancierte Fragen besser zu verstehen und zu beantworten.  <\/p>\n\n<p>Eine der wichtigsten Innovationen dieses Ansatzes war die sorgf\u00e4ltige Verfeinerung der Eingabeaufforderungen.\nDurch die sorgf\u00e4ltige Ausarbeitung und das Testen verschiedener Eingabeaufforderungen konnte ich die KI dazu bringen, genauere und relevantere Antworten zu geben.\nDazu musste nicht nur der Wortlaut der Aufforderungen angepasst werden, sondern es wurde auch mit verschiedenen M\u00f6glichkeiten der Strukturierung der Fragen experimentiert, um die bestm\u00f6glichen Antworten zu erhalten.  <br\/><br\/>Die Ergebnisse waren beeindruckend.\nDie KI war nun in der Lage, eine breite Palette von Anfragen mit hoher Genauigkeit zu bearbeiten, selbst wenn die Fragen offen waren oder ein tiefes Verst\u00e4ndnis des Kontextes erforderten.\nZum Beispiel auf die Frage: &#8220;Wie treffen Sie die wichtigsten Entscheidungen in Ihrem Leben?\nDie KI lieferte eine umfassende und aufschlussreiche Antwort, die auf eine Vielzahl von Quellen und Perspektiven zur\u00fcckgriff, um eine abgerundete Antwort zu liefern.   <\/p>\n\n<p>Dieser Erfolg war der H\u00f6hepunkt von Hunderten von Arbeitsstunden und unz\u00e4hligen Experimenten.\nEr zeigte, dass es mit der richtigen Kombination aus Technologie und Raffinesse m\u00f6glich war, eine KI zu entwickeln, die Informationen nicht nur effektiv speichern und abrufen, sondern auch auf sinnvolle Weise mit ihnen umgehen kann.\nDie Entwicklung der GPT-Assistenten unter Verwendung des Modells 4o markierte den Punkt, an dem die KI von Fabrice wirklich zu ihrem Recht kam und den Grad an Raffinesse und Genauigkeit erreichte, den ich mir von Anfang an vorgestellt hatte.\nDie GPT-Assistenten-API wurde dann in meinen Blog integriert, damit die Endnutzer mit Fabrice AI so interagieren k\u00f6nnen, wie Sie es jetzt auf dem Blog sehen.   <\/p>\n\n<p><strong>\u00dcber die Reise nachdenken<\/strong><\/p>\n\n<p>Der Prozess der Entwicklung von Fabrice AI hat mir die Komplexit\u00e4t der Arbeit mit KI vor Augen gef\u00fchrt, insbesondere wenn es um das Verst\u00e4ndnis und die Kontextualisierung von Informationen geht.\nIch habe gelernt, dass es bei der KI-Entwicklung keine Abk\u00fcrzungen gibt &#8211; jeder Schritt, jede Iteration und jedes Experiment ist ein notwendiger Teil der Reise, um etwas wirklich Effektives zu schaffen. <\/p>\n\n<p>Mit Blick auf die Zukunft freue ich mich darauf, Fabrice AI weiter zu verfeinern und zu erweitern.\nWie im letzten Beitrag erw\u00e4hnt, werde ich die gestellten Fragen \u00fcberpr\u00fcfen, um die Wissensbasis dort zu vervollst\u00e4ndigen, wo es L\u00fccken gibt.\nAu\u00dferdem hoffe ich, dass ich irgendwann eine interaktive Version herausbringen kann, die aussieht und klingt wie ich und mit der Sie sprechen k\u00f6nnen.  <\/p>\n","protected":false},"excerpt":{"rendered":"<p>Wie ich bereits im letzten Beitrag erw\u00e4hnt habe, erwies sich die Entwicklung der KI von Fabrice als weitaus komplexer als erwartet und zwang mich dazu, viele verschiedene Ans\u00e4tze zu erforschen. &hellip; <a href=\"https:\/\/fabricegrinda.com\/de\/fabrice-ai-die-technische-reise\/\" class=\"more-link\"><span class=\"screen-reader-text\">\u201eFabrice AI: Die technische Reise\u201c<\/span> weiterlesen<\/a><\/p>\n","protected":false},"author":9,"featured_media":46218,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[337,940],"tags":[],"class_list":["post-46261","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-personliche-uberlegungen","category-technische-gadgets"],"acf":[],"contentUpdated":"Fabrice AI: Die technische Reise. Categories - Pers\u00f6nliche \u00dcberlegungen, Technische Gadgets. Date-Posted - 2024-09-04T14:05:04 . \n Wie ich bereits im letzten Beitrag erw\u00e4hnt habe, erwies sich die Entwicklung der KI von Fabrice als weitaus komplexer als erwartet und zwang mich dazu, viele verschiedene Ans\u00e4tze zu erforschen.\n Die erste Ann\u00e4herung: Llama Index &#8211; Vektorsuche\n Mein erster Versuch, die Suchf\u00e4higkeiten von Fabrice AI zu verbessern, bestand darin, den Llama-Index f\u00fcr die Vektorsuche zu verwenden.\n Das Konzept war einfach: Ich nahm den Inhalt meines Blogs, wandelte ihn in Langchain-Dokumente um und diese dann in Llama-Dokumente.\n Diese Llama-Dokumente w\u00fcrden dann in einem Vektorindex gespeichert, so dass ich diesen Index nach relevanten Informationen abfragen k\u00f6nnte.  \n Als ich begann, das System zu testen, wurde jedoch deutlich, dass dieser Ansatz nicht die Ergebnisse lieferte, die ich mir erhofft hatte.\n Als ich das System mit kontextlastigen Fragen wie &#8220;Was sind die gr\u00f6\u00dften Fehler von Marktplatzgr\u00fcndern?\n Anstatt den differenzierten Inhalt abzurufen, von dem ich wusste, dass er in den Daten enthalten war, lieferte sie irrelevante oder unvollst\u00e4ndige Antworten.  \n Dieser anf\u00e4ngliche Misserfolg veranlasste mich, meinen Ansatz zu \u00fcberdenken.\n Ich erkannte, dass es nicht ausreichte, Inhalte einfach in einem Vektorindex zu speichern. Der Abrufmechanismus musste den Kontext und die Nuancen der gestellten Fragen verstehen.\n Diese Erkenntnis war die erste von vielen Lektionen, die die Entwicklung von Fabrice AI pr\u00e4gen sollten.  \n Wissen speichern: MongoDB &#8211; Speicherung und Abruf von Dokumenten\n Mit den Einschr\u00e4nkungen des Llama-Index-Ansatzes im Hinterkopf, habe ich als n\u00e4chstes die Speicherung der Llama-Dokumente in MongoDB untersucht.\n Das flexible Schema und die dokumentenorientierte Struktur von MongoDB schienen mir eine vielversprechende L\u00f6sung f\u00fcr die Verwaltung der verschiedenen Arten von Inhalten zu sein, die ich im Laufe der Jahre angesammelt hatte. \n Der Plan war, ein dynamischeres und reaktionsschnelleres Sucherlebnis zu schaffen.\n Dieser Ansatz stie\u00df jedoch schnell auf Probleme.\n Die Suchfunktion, von der ich erwartet hatte, dass sie robuster sein w\u00fcrde, funktionierte nicht wie erwartet.\n Abfragen, die relevante Dokumente h\u00e4tten liefern sollen, ergaben keine Ergebnisse oder irrelevante Inhalte.   \n Dieser R\u00fcckschlag war frustrierend, aber er unterstrich auch eine wichtige Lektion: Die Speichermethode ist genauso wichtig wie die Abrufstrategie.\n Ich begann, andere Optionen in Betracht zu ziehen, z. B. die Verwendung von MongoDB Atlas f\u00fcr Vektorsuchen, die m\u00f6glicherweise die Pr\u00e4zision und Skalierbarkeit bieten k\u00f6nnten, die ich ben\u00f6tigte.\n Bevor ich mich jedoch auf diese Alternative festlegte, wollte ich andere Ans\u00e4tze untersuchen, um festzustellen, ob es vielleicht eine effektivere L\u00f6sung gibt.  \n Metadaten-Retriever und Vektorspeicher: Auf der Suche nach Spezifit\u00e4t\n Eine der n\u00e4chsten M\u00f6glichkeiten, die ich untersuchte, war die Verwendung eines Metadatenabrufs in Kombination mit einem Vektorspeicher.\n Die Idee hinter diesem Ansatz war, die riesige Menge an Informationen in der Fabrice-KI zu kategorisieren und dann Antworten auf der Grundlage dieser Kategorien abzurufen.\n Durch die Strukturierung der Daten mit Metadaten hoffte ich, die F\u00e4higkeit der KI zu verbessern, spezifische, gezielte Antworten zu geben.  \n Doch auch diese Methode hatte ihre Grenzen.\n Obwohl sie oberfl\u00e4chlich betrachtet vielversprechend zu sein schien, hatte die KI Schwierigkeiten, auf alle Arten von Abfragen genaue Antworten zu geben.\n Als ich zum Beispiel fragte: &#8220;Ist der Autor optimistisch?&#8221;\n Das System schaffte es nicht, die Frage im Zusammenhang mit dem relevanten Inhalt zu interpretieren.\n Anstatt eine aufschlussreiche Analyse auf der Grundlage der Metadaten zu liefern, gab es entweder vage Antworten oder gar keine.    \n Dieser Ansatz lehrte mich eine wertvolle Lektion \u00fcber die Bedeutung des Kontexts in der KI.\n Es reicht nicht aus, Informationen einfach nur zu kategorisieren. Die KI muss auch verstehen, wie diese Kategorien zusammenwirken und sich \u00fcberschneiden, um ein zusammenh\u00e4ngendes Verst\u00e4ndnis des Inhalts zu erhalten.\n Ohne dieses tiefe Verst\u00e4ndnis k\u00f6nnen selbst die ausgekl\u00fcgeltsten Suchmethoden versagen.  \n Wissen strukturieren: Der SummaryTreeIndex\n Als ich die KI von Fabrice weiter verfeinerte, experimentierte ich mit der Erstellung eines SummaryTreeIndex.\n Dieser Ansatz zielt darauf ab, alle Dokumente in einem Baumformat zusammenzufassen, so dass die KI durch diese Zusammenfassungen navigieren und relevante Informationen auf der Grundlage der Struktur des Inhalts abrufen kann. \n Die Idee war, dass die KI durch die Zusammenfassung der Dokumente schnell die wichtigsten Punkte erkennen und auf Anfragen mit pr\u00e4gnanten, genauen Informationen antworten k\u00f6nnte.\n Doch auch diese Methode war mit erheblichen Herausforderungen verbunden.\n Die KI hatte Schwierigkeiten, aussagekr\u00e4ftige Antworten auf komplexe Fragen zu geben, z. B. &#8220;Wie trifft man wichtige Entscheidungen im Leben?&#8221;\n Anstatt aus dem reichhaltigen, nuancierten Inhalt der Zusammenfassungen zu sch\u00f6pfen, waren die Antworten der KI oft oberfl\u00e4chlich oder unvollst\u00e4ndig.   \n Diese Erfahrung unterstreicht die Schwierigkeit, in der KI ein Gleichgewicht zwischen Breite und Tiefe zu finden.\n W\u00e4hrend Zusammenfassungen einen \u00dcberblick auf hohem Niveau bieten k\u00f6nnen, fehlt ihnen oft der detaillierte Kontext, der f\u00fcr die Beantwortung komplexerer Fragen erforderlich ist.\n Mir wurde klar, dass eine effektive L\u00f6sung sowohl detaillierte Inhalte als auch Zusammenfassungen auf hoher Ebene integrieren muss, damit die KI bei Bedarf auf beides zur\u00fcckgreifen kann.  \n Aus diesem Grund habe ich die KI in der aktuellen Version von Fabrice AI dazu veranlasst, zun\u00e4chst eine Zusammenfassung der Antwort zu geben, bevor sie auf weitere Details eingeht.\n Horizonte erweitern: Knowledge Graph Index\n Da ich die Grenzen der bisherigen Methoden erkannte, wandte ich mich einem anspruchsvolleren Ansatz zu: dem Knowledge Graph Index.\n Bei diesem Ansatz wird aus unstrukturiertem Text ein Wissensgraph erstellt, der es der KI erm\u00f6glicht, entit\u00e4tsbasierte Abfragen durchzuf\u00fchren.\n Ziel war es, ein dynamischeres und vernetzteres Verst\u00e4ndnis des Inhalts zu schaffen, so dass die KI von Fabrice komplexe, kontextlastige Fragen effektiver beantworten kann.  \n Trotz seiner vielversprechenden Eigenschaften hatte der Knowledge Graph Index auch mit erheblichen H\u00fcrden zu k\u00e4mpfen.\n Die KI hatte Schwierigkeiten, genaue Ergebnisse zu liefern, insbesondere bei Abfragen, die ein tiefes Verst\u00e4ndnis des Kontexts erfordern.\n Auf die Frage &#8220;Was sind faire Seed- und Series A-Bewertungen?&#8221; konnte die KI zum Beispiel keine relevante Antwort geben, was die Schwierigkeit verdeutlicht, unstrukturierten Text in einen koh\u00e4renten Knowledge Graph zu integrieren.  \n Dieser Ansatz war zwar letztlich erfolglos, lieferte aber wichtige Erkenntnisse \u00fcber die Herausforderungen bei der Verwendung von Wissensgraphen in der KI.\n Die Komplexit\u00e4t der Daten und die Notwendigkeit eines pr\u00e4zisen Kontexts bedeuteten, dass selbst ein gut konstruierter Wissensgraph Schwierigkeiten haben konnte, die gew\u00fcnschten Ergebnisse zu liefern.\n Ein weiterer Nachteil des Knowledge Graph Index war seine langsame Geschwindigkeit.\n Die Antwortzeit, um verwandte Dokumente zu erhalten, war im Vergleich zu einem Vektorspeicherindex sehr hoch.   \n Neuauswertung der Daten: Zwillinge\n Nach mehreren R\u00fcckschl\u00e4gen beschloss ich, einen anderen Ansatz zu w\u00e4hlen, indem ich die KI von Google, Gemini, nutzte.\n Die Idee war, Datens\u00e4tze aus JSON-CSV-Dateien zu erstellen und dann ein benutzerdefiniertes LLM-Modell mit diesen Daten zu trainieren.\n Ich hoffte, dass ich durch die Verwendung strukturierter Daten und eines robusten Trainingsmodells einige der Probleme \u00fcberwinden k\u00f6nnte, die bei fr\u00fcheren Versuchen aufgetreten waren.  \n Allerdings stie\u00df auch dieser Ansatz auf Schwierigkeiten.\n Der Trainingsprozess wurde aufgrund einer falschen Datenformatierung unterbrochen, wodurch das Modell nicht effektiv trainiert werden konnte.\n Dieser R\u00fcckschlag unterstreicht die Bedeutung der Datenintegrit\u00e4t beim KI-Training.\n Ohne korrekt formatierte und strukturierte Daten k\u00f6nnen selbst die fortschrittlichsten Modelle nicht die erwartete Leistung erbringen.   \n Diese Erfahrung brachte mich auf die Idee, BigQuery zum Speichern von JSON-Daten zu verwenden, um eine skalierbarere und zuverl\u00e4ssigere Plattform f\u00fcr die Verwaltung der gro\u00dfen Datens\u00e4tze zu schaffen, die f\u00fcr ein effektives Training von Fabrice AI erforderlich sind.\n St\u00e4rken vereinen: Langchain-Dokumente mit Pinecone\n Trotz der bisherigen Herausforderungen war ich fest entschlossen, eine L\u00f6sung zu finden, die es Fabrice AI erm\u00f6glichen w\u00fcrde, Wissen effektiv zu speichern und abzurufen.\n Diese Entschlossenheit brachte mich dazu, mit Langchain-Dokumenten und Pinecone zu experimentieren.\n Der Ansatz bestand darin, einen Pinecone-Vektorspeicher mit Langchain-Dokumenten und OpenAI-Einbettungen zu erstellen und dann die \u00e4hnlichsten Dokumente auf der Grundlage der Abfrage abzurufen.  \n Diese Methode erwies sich als vielversprechend, insbesondere wenn die Abfrage den Titel des Dokuments enthielt.\n Auf die Frage &#8220;Was ist der Schl\u00fcssel zum Gl\u00fcck?&#8221; konnte die KI beispielsweise den relevanten Inhalt genau abrufen und zusammenfassen.\n Allerdings gab es immer noch Einschr\u00e4nkungen, insbesondere wenn die Abfrage keine spezifischen Schl\u00fcsselw\u00f6rter oder Titel enthielt.  \n Dieser Ansatz zeigte das Potenzial der Kombination verschiedener Technologien zur Verbesserung der KI-Leistung.\n Durch die Integration von Langchain-Dokumenten mit dem Vektorspeicher von Pinecone konnte ich die Relevanz und Genauigkeit der KI-Antworten verbessern, wenn auch mit einigen Einschr\u00e4nkungen. \n Konsistenz erreichen: GPT Builder OpenAI\n Nachdem ich verschiedene Methoden und Technologien untersucht hatte, wandte ich mich an den GPT Builder von Open AI, um das in Fabrice AI gespeicherte Wissen zu konsolidieren und zu verfeinern.\n Durch das Hochladen aller Inhalte in eine GPT-Wissensdatenbank wollte ich eine konsistentere und zuverl\u00e4ssigere Plattform f\u00fcr den Abruf und die Interaktion mit meinem Wissen schaffen. \n Dieser Ansatz erwies sich als einer der erfolgreichsten, da die KI bei einer Reihe von Abfragen bessere Ergebnisse liefern konnte.\n Der Schl\u00fcssel zu diesem Erfolg war die Integration des gesamten Wissens in ein einziges, zusammenh\u00e4ngendes System, das es der KI erm\u00f6glichte, bei der Beantwortung von Fragen auf die gesamte Breite des Inhalts zur\u00fcckzugreifen. \n Wie in meinem vorherigen Beitrag erw\u00e4hnt, konnte ich es nicht auf meiner Website zum Laufen bringen, und es war nur f\u00fcr bezahlte Abonnenten von Chat GPT verf\u00fcgbar, was ich als zu einschr\u00e4nkend empfand.\n Auch wenn es besser war, gefiel mir die Qualit\u00e4t der Antworten immer noch nicht und ich f\u00fchlte mich nicht wohl dabei, es f\u00fcr die \u00d6ffentlichkeit freizugeben. \n Letzte Verfeinerung: GPT-Assistenten mit Modell 4o\n Das letzte Puzzlest\u00fcck bei der Entwicklung von Fabrice AI war die Einf\u00fchrung der GPT-Assistenten mit dem Modell 4o.\n Dieser Ansatz war die Kr\u00f6nung all dessen, was ich w\u00e4hrend des Projekts gelernt hatte.\n Durch die Verwendung einer Vektordatenbank und die Verfeinerung der Eingabeaufforderungen wollte ich ein H\u00f6chstma\u00df an Genauigkeit und kontextbezogenem Verst\u00e4ndnis bei den Antworten der KI erreichen.  \n Bei dieser Methode wurde das gesamte Wissen, das ich angesammelt hatte, in eine Vektordatenbank hochgeladen, die dann als Grundlage f\u00fcr die Interaktionen der KI diente.\n Die Vektordatenbank erm\u00f6glichte es der KI, anspruchsvollere Suchvorg\u00e4nge durchzuf\u00fchren und Informationen auf der Grundlage der semantischen Bedeutung von Anfragen abzurufen, anstatt sich nur auf den Abgleich von Schl\u00fcsselw\u00f6rtern zu verlassen.\n Dies war ein bedeutender Fortschritt gegen\u00fcber fr\u00fcheren Ans\u00e4tzen und erm\u00f6glichte es der KI, komplexe, nuancierte Fragen besser zu verstehen und zu beantworten.  \n Eine der wichtigsten Innovationen dieses Ansatzes war die sorgf\u00e4ltige Verfeinerung der Eingabeaufforderungen.\n Durch die sorgf\u00e4ltige Ausarbeitung und das Testen verschiedener Eingabeaufforderungen konnte ich die KI dazu bringen, genauere und relevantere Antworten zu geben.\n Dazu musste nicht nur der Wortlaut der Aufforderungen angepasst werden, sondern es wurde auch mit verschiedenen M\u00f6glichkeiten der Strukturierung der Fragen experimentiert, um die bestm\u00f6glichen Antworten zu erhalten.  Die Ergebnisse waren beeindruckend.\n Die KI war nun in der Lage, eine breite Palette von Anfragen mit hoher Genauigkeit zu bearbeiten, selbst wenn die Fragen offen waren oder ein tiefes Verst\u00e4ndnis des Kontextes erforderten.\n Zum Beispiel auf die Frage: &#8220;Wie treffen Sie die wichtigsten Entscheidungen in Ihrem Leben?\n Die KI lieferte eine umfassende und aufschlussreiche Antwort, die auf eine Vielzahl von Quellen und Perspektiven zur\u00fcckgriff, um eine abgerundete Antwort zu liefern.   \n Dieser Erfolg war der H\u00f6hepunkt von Hunderten von Arbeitsstunden und unz\u00e4hligen Experimenten.\n Er zeigte, dass es mit der richtigen Kombination aus Technologie und Raffinesse m\u00f6glich war, eine KI zu entwickeln, die Informationen nicht nur effektiv speichern und abrufen, sondern auch auf sinnvolle Weise mit ihnen umgehen kann.\n Die Entwicklung der GPT-Assistenten unter Verwendung des Modells 4o markierte den Punkt, an dem die KI von Fabrice wirklich zu ihrem Recht kam und den Grad an Raffinesse und Genauigkeit erreichte, den ich mir von Anfang an vorgestellt hatte.\n Die GPT-Assistenten-API wurde dann in meinen Blog integriert, damit die Endnutzer mit Fabrice AI so interagieren k\u00f6nnen, wie Sie es jetzt auf dem Blog sehen.   \n \u00dcber die Reise nachdenken\n Der Prozess der Entwicklung von Fabrice AI hat mir die Komplexit\u00e4t der Arbeit mit KI vor Augen gef\u00fchrt, insbesondere wenn es um das Verst\u00e4ndnis und die Kontextualisierung von Informationen geht.\n Ich habe gelernt, dass es bei der KI-Entwicklung keine Abk\u00fcrzungen gibt &#8211; jeder Schritt, jede Iteration und jedes Experiment ist ein notwendiger Teil der Reise, um etwas wirklich Effektives zu schaffen. \n Mit Blick auf die Zukunft freue ich mich darauf, Fabrice AI weiter zu verfeinern und zu erweitern.\n Wie im letzten Beitrag erw\u00e4hnt, werde ich die gestellten Fragen \u00fcberpr\u00fcfen, um die Wissensbasis dort zu vervollst\u00e4ndigen, wo es L\u00fccken gibt.\n Au\u00dferdem hoffe ich, dass ich irgendwann eine interaktive Version herausbringen kann, die aussieht und klingt wie ich und mit der Sie sprechen k\u00f6nnen.  \n ","Category":["Pers\u00f6nliche \u00dcberlegungen","Technische Gadgets"],"_links":{"self":[{"href":"https:\/\/grinda.org\/de\/wp-json\/wp\/v2\/posts\/46261","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/grinda.org\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/grinda.org\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/grinda.org\/de\/wp-json\/wp\/v2\/users\/9"}],"replies":[{"embeddable":true,"href":"https:\/\/grinda.org\/de\/wp-json\/wp\/v2\/comments?post=46261"}],"version-history":[{"count":1,"href":"https:\/\/grinda.org\/de\/wp-json\/wp\/v2\/posts\/46261\/revisions"}],"predecessor-version":[{"id":46263,"href":"https:\/\/grinda.org\/de\/wp-json\/wp\/v2\/posts\/46261\/revisions\/46263"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/grinda.org\/de\/wp-json\/wp\/v2\/media\/46218"}],"wp:attachment":[{"href":"https:\/\/grinda.org\/de\/wp-json\/wp\/v2\/media?parent=46261"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/grinda.org\/de\/wp-json\/wp\/v2\/categories?post=46261"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/grinda.org\/de\/wp-json\/wp\/v2\/tags?post=46261"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}