{"id":46273,"date":"2024-09-04T14:05:03","date_gmt":"2024-09-04T14:05:03","guid":{"rendered":"https:\/\/fabricegrinda.com\/?p=46273"},"modified":"2024-09-05T14:50:25","modified_gmt":"2024-09-05T14:50:25","slug":"fabrice-ai-den-tekniske-rejse","status":"publish","type":"post","link":"https:\/\/grinda.org\/da\/fabrice-ai-den-tekniske-rejse\/","title":{"rendered":"Fabrice AI: Den tekniske rejse"},"content":{"rendered":"\n<p>Som jeg n\u00e6vnte i det <a href=\"https:\/\/fabricegrinda.com\/da\/vi-praesenterer-fabrice-ai\/\" data-type=\"link\" data-id=\"https:\/\/fabricegrinda.com\/introducing-fabrice-ai\/\" target=\"_blank\" rel=\"noreferrer noopener\">forrige indl\u00e6g<\/a>, viste det sig at v\u00e6re langt mere komplekst end forventet at udvikle <a href=\"https:\/\/fabriceai.fabricegrinda.com\/\" target=\"_blank\" rel=\"noreferrer noopener\">Fabrice AI<\/a>, hvilket tvang mig til at udforske mange forskellige tilgange.<\/p>\n\n<p><strong>Den indledende tilgang: Llama-indeks &#8211; Vektors\u00f8gning<\/strong><\/p>\n\n<p>Mit f\u00f8rste fors\u00f8g p\u00e5 at forbedre Fabrice AI&#8217;s genfindingsevner involverede brugen af Llama-indekset til vektors\u00f8gning.\nKonceptet var enkelt: at tage indholdet fra min blog, konvertere det til Langchain-dokumenter og derefter omdanne dem til Llama-dokumenter.\nDisse Llama-dokumenter ville derefter blive gemt i et vektorindeks, s\u00e5 jeg kunne s\u00f8ge efter relevante oplysninger i dette indeks.  <\/p>\n\n<p>Men da jeg begyndte at teste systemet, blev det tydeligt, at denne tilgang ikke gav de resultater, jeg havde h\u00e5bet p\u00e5.\nN\u00e5r jeg stillede systemet konteksttunge sp\u00f8rgsm\u00e5l som &#8220;Hvad er de st\u00f8rste fejl, som iv\u00e6rks\u00e6ttere beg\u00e5r p\u00e5 markedet?&#8221;, kunne den kunstige intelligens ikke give meningsfulde svar.\nI stedet for at hente det nuancerede indhold, som jeg vidste var indlejret i dataene, returnerede den irrelevante eller ufuldst\u00e6ndige svar.  <\/p>\n\n<p>Denne f\u00f8rste fiasko fik mig til at genoverveje min tilgang.\nJeg inds\u00e5, at det ikke var nok bare at gemme indhold i et vektorindeks; genfindingsmekanismen skulle forst\u00e5 konteksten og nuancerne i de sp\u00f8rgsm\u00e5l, der blev stillet.\nDenne erkendelse var den f\u00f8rste af mange erfaringer, der kom til at forme udviklingen af Fabrice AI.  <\/p>\n\n<p><strong>Opbevaring af viden: MongoDB dokumentlagring og -hentning<\/strong><\/p>\n\n<p>Med begr\u00e6nsningerne i Llama Index-tilgangen i baghovedet unders\u00f8gte jeg derefter muligheden for at gemme Llama-dokumenterne i MongoDB.\nMongoDB&#8217;s fleksible skema og dokumentorienterede struktur virkede som en lovende l\u00f8sning til at h\u00e5ndtere de forskellige typer indhold, jeg havde samlet i \u00e5renes l\u00f8b. <\/p>\n\n<p>Planen var at skabe en mere dynamisk og responsiv s\u00f8geoplevelse.\nMen denne tilgang l\u00f8b hurtigt ind i problemer.\nS\u00f8gefunktionen, som jeg havde forventet ville v\u00e6re mere robust, fungerede ikke som forventet.\nForesp\u00f8rgsler, der skulle have givet relevante dokumenter, gav i stedet ingen resultater eller irrelevant indhold.   <\/p>\n\n<p>Dette tilbageslag var frustrerende, men det understregede ogs\u00e5 en vigtig lektie: Opbevaringsmetoden er lige s\u00e5 vigtig som s\u00f8gestrategien.\nJeg begyndte at overveje andre muligheder, f.eks. at bruge MongoDB Atlas til vektors\u00f8gninger, som potentielt kunne give den pr\u00e6cision og skalerbarhed, jeg havde brug for.\nMen f\u00f8r jeg besluttede mig for dette alternativ, ville jeg udforske andre tilgange for at finde ud af, om der m\u00e5ske var en mere effektiv l\u00f8sning.  <\/p>\n\n<p><strong>Metadata Retriever og Vector Store: P\u00e5 jagt efter specificitet<\/strong><\/p>\n\n<p>En af de n\u00e6ste muligheder, jeg udforskede, var brugen af en metadatahenter kombineret med et vektorlager.\nIdeen bag denne tilgang var at kategorisere den store m\u00e6ngde information i Fabrice AI og derefter hente svar baseret p\u00e5 disse kategorier.\nVed at strukturere dataene med metadata h\u00e5bede jeg at kunne forbedre AI&#8217;ens evne til at give specifikke, m\u00e5lrettede svar.  <\/p>\n\n<p>Men denne metode havde ogs\u00e5 sine begr\u00e6nsninger.\nSelv om den virkede lovende p\u00e5 overfladen, k\u00e6mpede AI&#8217;en med at levere pr\u00e6cise svar p\u00e5 alle typer foresp\u00f8rgsler.\nFor eksempel da jeg spurgte: &#8220;Er forfatteren optimistisk?&#8221;\nSystemet kunne ikke fortolke sp\u00f8rgsm\u00e5let i sammenh\u00e6ng med det relevante indhold.\nI stedet for at give en indsigtsfuld analyse baseret p\u00e5 metadataene, returnerede det enten vage svar eller ingen.    <\/p>\n\n<p>Denne tilgang l\u00e6rte mig en v\u00e6rdifuld lektie om betydningen af kontekst i AI.\nDet er ikke nok blot at kategorisere information; den kunstige intelligens skal ogs\u00e5 forst\u00e5, hvordan disse kategorier interagerer og overlapper hinanden for at skabe en sammenh\u00e6ngende forst\u00e5else af indholdet.\nUden denne dybe forst\u00e5else kan selv de mest sofistikerede genfindingsmetoder komme til kort.  <\/p>\n\n<p><strong>Strukturering af viden: Indekset SummaryTreeIndex<\/strong><\/p>\n\n<p>Da jeg fortsatte med at forfine Fabrice AI, eksperimenterede jeg med at skabe et SummaryTreeIndex.\nDenne tilgang havde til form\u00e5l at opsummere alle dokumenterne i et tr\u00e6format, s\u00e5 den kunstige intelligens kunne navigere gennem disse opsummeringer og hente relevante oplysninger baseret p\u00e5 indholdets struktur. <\/p>\n\n<p>Tanken var, at AI&#8217;en ved at opsummere dokumenterne hurtigt kunne identificere n\u00f8glepunkter og svare p\u00e5 foresp\u00f8rgsler med kortfattet, pr\u00e6cis information.\nMen denne metode stod ogs\u00e5 over for betydelige udfordringer.\nAI&#8217;en k\u00e6mpede med at give meningsfulde svar p\u00e5 komplekse foresp\u00f8rgsler, s\u00e5som &#8220;Hvordan tr\u00e6ffer man vigtige beslutninger i livet?&#8221;\nI stedet for at tr\u00e6kke p\u00e5 det rige, nuancerede indhold, der var gemt i resum\u00e9erne, var AI&#8217;ens svar ofte overfladiske eller ufuldst\u00e6ndige.   <\/p>\n\n<p>Denne erfaring understregede, hvor sv\u00e6rt det er at finde en balance mellem bredde og dybde i AI.\nMens resum\u00e9er kan give et overblik p\u00e5 h\u00f8jt niveau, mangler de ofte den detaljerede kontekst, der er n\u00f8dvendig for at besvare mere komplekse sp\u00f8rgsm\u00e5l.\nJeg inds\u00e5, at enhver effektiv l\u00f8sning ville v\u00e6re n\u00f8dt til at integrere b\u00e5de detaljeret indhold og resum\u00e9er p\u00e5 h\u00f8jt niveau, s\u00e5 AI&#8217;en kunne tr\u00e6kke p\u00e5 begge dele efter behov.  <\/p>\n\n<p>Det er derfor, jeg i den version af Fabrice AI, der er live i \u00f8jeblikket, lader AI&#8217;en f\u00f8rst give et resum\u00e9 af svaret, f\u00f8r den g\u00e5r i detaljer.<\/p>\n\n<p><strong>Udvidelse af horisonten: Vidensgraf-indeks<\/strong><\/p>\n\n<p>I erkendelse af de tidligere metoders begr\u00e6nsninger vendte jeg mig mod en mere sofistikeret tilgang: Knowledge Graph Index.\nDenne tilgang involverede konstruktion af en vidensgraf ud fra ustruktureret tekst, hvilket gjorde det muligt for AI&#8217;en at foretage entitetsbaserede foresp\u00f8rgsler.\nM\u00e5let var at skabe en mere dynamisk og sammenkoblet forst\u00e5else af indholdet, s\u00e5 Fabrice AI kunne besvare komplekse, konteksttunge sp\u00f8rgsm\u00e5l mere effektivt.  <\/p>\n\n<p>P\u00e5 trods af sit l\u00f8fte stod Knowledge Graph Index ogs\u00e5 over for betydelige forhindringer.\nAI&#8217;en k\u00e6mpede med at producere n\u00f8jagtige resultater, is\u00e6r for foresp\u00f8rgsler, der kr\u00e6vede en dyb forst\u00e5else af konteksten.\nFor eksempel kunne AI&#8217;en ikke give et relevant svar p\u00e5 sp\u00f8rgsm\u00e5let &#8220;Hvad er fair Seed &amp; Series A valuations?&#8221;, hvilket understreger, hvor sv\u00e6rt det er at integrere ustruktureret tekst i en sammenh\u00e6ngende vidensgraf.  <\/p>\n\n<p>Selv om denne tilgang i sidste ende ikke lykkedes, gav den vigtig indsigt i udfordringerne ved at bruge vidensgrafer i AI.\nDatakompleksiteten og behovet for pr\u00e6cis kontekst bet\u00f8d, at selv en velkonstrueret vidensgraf kunne have sv\u00e6rt ved at levere de \u00f8nskede resultater.\nEndnu en ulempe ved Knowledge Graph Index var dens langsomme hastighed.\nSvartiden for at finde relaterede dokumenter var meget h\u00f8j i forhold til et vector store-indeks.   <\/p>\n\n<p><strong>Revurdering af data: Gemini<\/strong><\/p>\n\n<p>Efter flere tilbageslag besluttede jeg at tage en anden tilgang ved at udnytte Googles AI, <a href=\"https:\/\/gemini.google.com\/app\" target=\"_blank\" data-type=\"link\" data-id=\"https:\/\/gemini.google.com\/app\" rel=\"noreferrer noopener\">Gemini<\/a>.\nIdeen var at oprette datas\u00e6t fra JSON-CSV-filer og derefter tr\u00e6ne en brugerdefineret model LLM ved hj\u00e6lp af disse data.\nJeg h\u00e5bede, at jeg ved at bruge strukturerede data og en robust tr\u00e6ningsmodel kunne overvinde nogle af de udfordringer, der havde plaget tidligere fors\u00f8g.  <\/p>\n\n<p>Denne tilgang st\u00f8dte dog ogs\u00e5 p\u00e5 problemer.\nTr\u00e6ningsprocessen blev stoppet p\u00e5 grund af forkert dataformatering, som forhindrede modellen i at blive tr\u00e6net effektivt.\nDette tilbageslag understregede vigtigheden af dataintegritet i AI-tr\u00e6ning.\nUden korrekt formaterede og strukturerede data kan selv de mest avancerede modeller ikke fungere som forventet.   <\/p>\n\n<p>Denne erfaring fik mig til at overveje potentialet i at bruge BigQuery til at lagre JSON-data, hvilket giver en mere skalerbar og p\u00e5lidelig platform til at h\u00e5ndtere de store datas\u00e6t, der er n\u00f8dvendige for at tr\u00e6ne Fabrice AI effektivt.<\/p>\n\n<p><strong>Kombination af styrker: Langchain-dokumenter med Pinecone<\/strong><\/p>\n\n<p>P\u00e5 trods af de hidtidige udfordringer var jeg fast besluttet p\u00e5 at finde en l\u00f8sning, der ville g\u00f8re det muligt for Fabrice AI at lagre og hente viden effektivt.\nDenne beslutsomhed fik mig til at eksperimentere med Langchain-dokumenter og Pinecone.\nMetoden gik ud p\u00e5 at oprette et Pinecone-vektorlager ved hj\u00e6lp af Langchain-dokumenter og OpenAI-indlejringer og derefter hente de mest lignende dokumenter baseret p\u00e5 foresp\u00f8rgslen.  <\/p>\n\n<p>Denne metode viste sig at v\u00e6re lovende, is\u00e6r n\u00e5r foresp\u00f8rgslen omfattede dokumentets titel.\nFor eksempel var AI&#8217;en i stand til at hente og opsummere det relevante indhold pr\u00e6cist, n\u00e5r den blev spurgt: &#8220;Hvad er n\u00f8glen til lykke?&#8221;.\nDer var dog stadig begr\u00e6nsninger, is\u00e6r n\u00e5r foresp\u00f8rgslen manglede specifikke n\u00f8gleord eller titler.  <\/p>\n\n<p>Denne tilgang demonstrerede potentialet i at kombinere forskellige teknologier for at forbedre AI&#8217;ens ydeevne.\nVed at integrere Langchain-dokumenter med Pinecones vektorlager var jeg i stand til at forbedre relevansen og n\u00f8jagtigheden af AI&#8217;ens svar, omend med visse begr\u00e6nsninger. <\/p>\n\n<p><strong>Opn\u00e5else af konsistens: GPT-byggeren OpenAI<\/strong><\/p>\n\n<p>Efter at have udforsket forskellige metoder og teknologier vendte jeg mig mod Open AI&#8217;s <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> for at konsolidere og forfine den viden, der var lagret i Fabrice AI.\nVed at uploade alt indholdet til en GPT-videnbase ville jeg skabe en mere konsekvent og p\u00e5lidelig platform til at hente og interagere med min viden. <\/p>\n\n<p>Denne tilgang viste sig at v\u00e6re en af de mest succesfulde, idet den kunstige intelligens var i stand til at give bedre resultater p\u00e5 tv\u00e6rs af en r\u00e6kke foresp\u00f8rgsler.\nN\u00f8glen til denne succes var integrationen af al viden i et enkelt, sammenh\u00e6ngende system, s\u00e5 den kunstige intelligens kunne tr\u00e6kke p\u00e5 hele bredden af indhold, n\u00e5r den besvarede sp\u00f8rgsm\u00e5l. <\/p>\n\n<p>Som jeg n\u00e6vnte i mit tidligere indl\u00e6g, kunne jeg ikke f\u00e5 det til at k\u00f8re p\u00e5 min hjemmeside, og det var kun tilg\u00e6ngeligt for betalende abonnenter p\u00e5 Chat GPT, hvilket jeg f\u00f8lte var for begr\u00e6nsende.\nOg selv om det var bedre, var jeg stadig ikke vild med kvaliteten af svarene, og jeg var ikke tryg ved at offentligg\u00f8re det. <\/p>\n\n<p><strong>Endelig forbedring: GPT-assistenter bruger model 4o<\/strong><\/p>\n\n<p>Den sidste brik i puslespillet i udviklingen af Fabrice AI kom med introduktionen af <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-assistenter<\/a> ved hj\u00e6lp af Model 4o.\nDenne tilgang repr\u00e6senterede kulminationen p\u00e5 alt, hvad jeg havde l\u00e6rt gennem hele projektet.\nVed at bruge en vektordatabase og finpudse sp\u00f8rgsm\u00e5lene fors\u00f8gte jeg at opn\u00e5 det h\u00f8jest mulige niveau af n\u00f8jagtighed og kontekstuel forst\u00e5else i AI&#8217;ens svar.  <\/p>\n\n<p>Metoden gik ud p\u00e5 at uploade al den viden, jeg havde samlet, til en vektordatabase, som derefter blev brugt som grundlag for AI&#8217;ens interaktioner.\nVektordatabasen gjorde det muligt for den kunstige intelligens at udf\u00f8re mere sofistikerede s\u00f8gninger og hente oplysninger baseret p\u00e5 den semantiske betydning af foresp\u00f8rgsler i stedet for udelukkende at basere sig p\u00e5 s\u00f8geordsmatchning.\nDette markerede et betydeligt fremskridt i forhold til tidligere tilgange og gjorde AI&#8217;en i stand til bedre at forst\u00e5 og svare p\u00e5 komplekse, nuancerede sp\u00f8rgsm\u00e5l.  <\/p>\n\n<p>En af de vigtigste nyskabelser i denne tilgang var den omhyggelige forbedring af sp\u00f8rgsm\u00e5lene.\nVed omhyggeligt at udforme og teste forskellige foresp\u00f8rgsler kunne jeg guide den kunstige intelligens til at give mere pr\u00e6cise og relevante svar.\nDet indebar ikke kun at tilpasse ordlyden af sp\u00f8rgsm\u00e5lene, men ogs\u00e5 at eksperimentere med forskellige m\u00e5der at strukturere foresp\u00f8rgslerne p\u00e5 for at f\u00e5 de bedst mulige svar.  <br\/><br\/>Resultaterne var imponerende.\nAI&#8217;en var nu i stand til at h\u00e5ndtere en lang r\u00e6kke foresp\u00f8rgsler med stor n\u00f8jagtighed, selv n\u00e5r sp\u00f8rgsm\u00e5lene var \u00e5bne eller kr\u00e6vede en dyb forst\u00e5else af konteksten.\nFor eksempel da den blev spurgt: &#8220;Hvordan tr\u00e6ffer man de vigtigste beslutninger i sit liv?&#8221;\ngav AI&#8217;en et omfattende og indsigtsfuldt svar, der trak p\u00e5 en r\u00e6kke forskellige kilder og perspektiver for at levere et velafrundet svar.   <\/p>\n\n<p>Denne succes var kulminationen p\u00e5 hundredvis af timers arbejde og utallige eksperimenter.\nDen viste, at det med den rette kombination af teknologi og raffinement var muligt at skabe en AI, der ikke bare kunne lagre og hente information effektivt, men ogs\u00e5 engagere sig i den p\u00e5 en meningsfuld m\u00e5de.\nUdviklingen af GPT Assistants ved hj\u00e6lp af Model 4o markerede det punkt, hvor Fabrice AI virkelig kom til sin ret og opn\u00e5ede det niveau af raffinement og n\u00f8jagtighed, som jeg havde forestillet mig fra starten.\nGPT Assistants API blev derefter integreret i min blog for at give slutbrugerne mulighed for at interagere med Fabrice AI p\u00e5 den m\u00e5de, du ser det p\u00e5 bloggen lige nu.   <\/p>\n\n<p><strong>Reflekterer over rejsen<\/strong><\/p>\n\n<p>Processen med at udvikle Fabrice AI viste, hvor komplekst det er at arbejde med AI, is\u00e6r n\u00e5r det drejer sig om at forst\u00e5 og s\u00e6tte information ind i en sammenh\u00e6ng.\nDet l\u00e6rte mig, at der ikke er nogen genveje i AI-udvikling &#8211; hvert trin, hver iteration og hvert eksperiment er en n\u00f8dvendig del af rejsen mod at skabe noget virkelig effektivt. <\/p>\n\n<p>Fremover gl\u00e6der jeg mig til at forts\u00e6tte med at forfine og udvide Fabrice AI.\nSom n\u00e6vnt i det sidste indl\u00e6g vil jeg gennemg\u00e5 de stillede sp\u00f8rgsm\u00e5l for at supplere vidensbasen, hvor der er huller.\nJeg h\u00e5ber ogs\u00e5, at jeg p\u00e5 et tidspunkt kan udgive en interaktiv version, der ligner og lyder som mig, og som man kan tale med.  <\/p>\n","protected":false},"excerpt":{"rendered":"<p>Som jeg n\u00e6vnte i det forrige indl\u00e6g, viste det sig at v\u00e6re langt mere komplekst end forventet at udvikle Fabrice AI, hvilket tvang mig til at udforske mange forskellige tilgange. &hellip; <a href=\"https:\/\/grinda.org\/da\/fabrice-ai-den-tekniske-rejse\/\" class=\"more-link\">L\u00e6s videre<span class=\"screen-reader-text\"> &#8220;Fabrice AI: Den tekniske rejse&#8221;<\/span><\/a><\/p>\n","protected":false},"author":9,"featured_media":46215,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[514,944],"tags":[],"class_list":["post-46273","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-personlige-overvejelser","category-tekniske-gadgets"],"acf":[],"contentUpdated":"Fabrice AI: Den tekniske rejse. Categories - Personlige overvejelser, Tekniske gadgets. Date-Posted - 2024-09-04T14:05:03 . \n Som jeg n\u00e6vnte i det forrige indl\u00e6g, viste det sig at v\u00e6re langt mere komplekst end forventet at udvikle Fabrice AI, hvilket tvang mig til at udforske mange forskellige tilgange.\n Den indledende tilgang: Llama-indeks &#8211; Vektors\u00f8gning\n Mit f\u00f8rste fors\u00f8g p\u00e5 at forbedre Fabrice AI&#8217;s genfindingsevner involverede brugen af Llama-indekset til vektors\u00f8gning.\n Konceptet var enkelt: at tage indholdet fra min blog, konvertere det til Langchain-dokumenter og derefter omdanne dem til Llama-dokumenter.\n Disse Llama-dokumenter ville derefter blive gemt i et vektorindeks, s\u00e5 jeg kunne s\u00f8ge efter relevante oplysninger i dette indeks.  \n Men da jeg begyndte at teste systemet, blev det tydeligt, at denne tilgang ikke gav de resultater, jeg havde h\u00e5bet p\u00e5.\n N\u00e5r jeg stillede systemet konteksttunge sp\u00f8rgsm\u00e5l som &#8220;Hvad er de st\u00f8rste fejl, som iv\u00e6rks\u00e6ttere beg\u00e5r p\u00e5 markedet?&#8221;, kunne den kunstige intelligens ikke give meningsfulde svar.\n I stedet for at hente det nuancerede indhold, som jeg vidste var indlejret i dataene, returnerede den irrelevante eller ufuldst\u00e6ndige svar.  \n Denne f\u00f8rste fiasko fik mig til at genoverveje min tilgang.\n Jeg inds\u00e5, at det ikke var nok bare at gemme indhold i et vektorindeks; genfindingsmekanismen skulle forst\u00e5 konteksten og nuancerne i de sp\u00f8rgsm\u00e5l, der blev stillet.\n Denne erkendelse var den f\u00f8rste af mange erfaringer, der kom til at forme udviklingen af Fabrice AI.  \n Opbevaring af viden: MongoDB dokumentlagring og -hentning\n Med begr\u00e6nsningerne i Llama Index-tilgangen i baghovedet unders\u00f8gte jeg derefter muligheden for at gemme Llama-dokumenterne i MongoDB.\n MongoDB&#8217;s fleksible skema og dokumentorienterede struktur virkede som en lovende l\u00f8sning til at h\u00e5ndtere de forskellige typer indhold, jeg havde samlet i \u00e5renes l\u00f8b. \n Planen var at skabe en mere dynamisk og responsiv s\u00f8geoplevelse.\n Men denne tilgang l\u00f8b hurtigt ind i problemer.\n S\u00f8gefunktionen, som jeg havde forventet ville v\u00e6re mere robust, fungerede ikke som forventet.\n Foresp\u00f8rgsler, der skulle have givet relevante dokumenter, gav i stedet ingen resultater eller irrelevant indhold.   \n Dette tilbageslag var frustrerende, men det understregede ogs\u00e5 en vigtig lektie: Opbevaringsmetoden er lige s\u00e5 vigtig som s\u00f8gestrategien.\n Jeg begyndte at overveje andre muligheder, f.eks. at bruge MongoDB Atlas til vektors\u00f8gninger, som potentielt kunne give den pr\u00e6cision og skalerbarhed, jeg havde brug for.\n Men f\u00f8r jeg besluttede mig for dette alternativ, ville jeg udforske andre tilgange for at finde ud af, om der m\u00e5ske var en mere effektiv l\u00f8sning.  \n Metadata Retriever og Vector Store: P\u00e5 jagt efter specificitet\n En af de n\u00e6ste muligheder, jeg udforskede, var brugen af en metadatahenter kombineret med et vektorlager.\n Ideen bag denne tilgang var at kategorisere den store m\u00e6ngde information i Fabrice AI og derefter hente svar baseret p\u00e5 disse kategorier.\n Ved at strukturere dataene med metadata h\u00e5bede jeg at kunne forbedre AI&#8217;ens evne til at give specifikke, m\u00e5lrettede svar.  \n Men denne metode havde ogs\u00e5 sine begr\u00e6nsninger.\n Selv om den virkede lovende p\u00e5 overfladen, k\u00e6mpede AI&#8217;en med at levere pr\u00e6cise svar p\u00e5 alle typer foresp\u00f8rgsler.\n For eksempel da jeg spurgte: &#8220;Er forfatteren optimistisk?&#8221;\n Systemet kunne ikke fortolke sp\u00f8rgsm\u00e5let i sammenh\u00e6ng med det relevante indhold.\n I stedet for at give en indsigtsfuld analyse baseret p\u00e5 metadataene, returnerede det enten vage svar eller ingen.    \n Denne tilgang l\u00e6rte mig en v\u00e6rdifuld lektie om betydningen af kontekst i AI.\n Det er ikke nok blot at kategorisere information; den kunstige intelligens skal ogs\u00e5 forst\u00e5, hvordan disse kategorier interagerer og overlapper hinanden for at skabe en sammenh\u00e6ngende forst\u00e5else af indholdet.\n Uden denne dybe forst\u00e5else kan selv de mest sofistikerede genfindingsmetoder komme til kort.  \n Strukturering af viden: Indekset SummaryTreeIndex\n Da jeg fortsatte med at forfine Fabrice AI, eksperimenterede jeg med at skabe et SummaryTreeIndex.\n Denne tilgang havde til form\u00e5l at opsummere alle dokumenterne i et tr\u00e6format, s\u00e5 den kunstige intelligens kunne navigere gennem disse opsummeringer og hente relevante oplysninger baseret p\u00e5 indholdets struktur. \n Tanken var, at AI&#8217;en ved at opsummere dokumenterne hurtigt kunne identificere n\u00f8glepunkter og svare p\u00e5 foresp\u00f8rgsler med kortfattet, pr\u00e6cis information.\n Men denne metode stod ogs\u00e5 over for betydelige udfordringer.\n AI&#8217;en k\u00e6mpede med at give meningsfulde svar p\u00e5 komplekse foresp\u00f8rgsler, s\u00e5som &#8220;Hvordan tr\u00e6ffer man vigtige beslutninger i livet?&#8221;\n I stedet for at tr\u00e6kke p\u00e5 det rige, nuancerede indhold, der var gemt i resum\u00e9erne, var AI&#8217;ens svar ofte overfladiske eller ufuldst\u00e6ndige.   \n Denne erfaring understregede, hvor sv\u00e6rt det er at finde en balance mellem bredde og dybde i AI.\n Mens resum\u00e9er kan give et overblik p\u00e5 h\u00f8jt niveau, mangler de ofte den detaljerede kontekst, der er n\u00f8dvendig for at besvare mere komplekse sp\u00f8rgsm\u00e5l.\n Jeg inds\u00e5, at enhver effektiv l\u00f8sning ville v\u00e6re n\u00f8dt til at integrere b\u00e5de detaljeret indhold og resum\u00e9er p\u00e5 h\u00f8jt niveau, s\u00e5 AI&#8217;en kunne tr\u00e6kke p\u00e5 begge dele efter behov.  \n Det er derfor, jeg i den version af Fabrice AI, der er live i \u00f8jeblikket, lader AI&#8217;en f\u00f8rst give et resum\u00e9 af svaret, f\u00f8r den g\u00e5r i detaljer.\n Udvidelse af horisonten: Vidensgraf-indeks\n I erkendelse af de tidligere metoders begr\u00e6nsninger vendte jeg mig mod en mere sofistikeret tilgang: Knowledge Graph Index.\n Denne tilgang involverede konstruktion af en vidensgraf ud fra ustruktureret tekst, hvilket gjorde det muligt for AI&#8217;en at foretage entitetsbaserede foresp\u00f8rgsler.\n M\u00e5let var at skabe en mere dynamisk og sammenkoblet forst\u00e5else af indholdet, s\u00e5 Fabrice AI kunne besvare komplekse, konteksttunge sp\u00f8rgsm\u00e5l mere effektivt.  \n P\u00e5 trods af sit l\u00f8fte stod Knowledge Graph Index ogs\u00e5 over for betydelige forhindringer.\n AI&#8217;en k\u00e6mpede med at producere n\u00f8jagtige resultater, is\u00e6r for foresp\u00f8rgsler, der kr\u00e6vede en dyb forst\u00e5else af konteksten.\n For eksempel kunne AI&#8217;en ikke give et relevant svar p\u00e5 sp\u00f8rgsm\u00e5let &#8220;Hvad er fair Seed &amp; Series A valuations?&#8221;, hvilket understreger, hvor sv\u00e6rt det er at integrere ustruktureret tekst i en sammenh\u00e6ngende vidensgraf.  \n Selv om denne tilgang i sidste ende ikke lykkedes, gav den vigtig indsigt i udfordringerne ved at bruge vidensgrafer i AI.\n Datakompleksiteten og behovet for pr\u00e6cis kontekst bet\u00f8d, at selv en velkonstrueret vidensgraf kunne have sv\u00e6rt ved at levere de \u00f8nskede resultater.\n Endnu en ulempe ved Knowledge Graph Index var dens langsomme hastighed.\n Svartiden for at finde relaterede dokumenter var meget h\u00f8j i forhold til et vector store-indeks.   \n Revurdering af data: Gemini\n Efter flere tilbageslag besluttede jeg at tage en anden tilgang ved at udnytte Googles AI, Gemini.\n Ideen var at oprette datas\u00e6t fra JSON-CSV-filer og derefter tr\u00e6ne en brugerdefineret model LLM ved hj\u00e6lp af disse data.\n Jeg h\u00e5bede, at jeg ved at bruge strukturerede data og en robust tr\u00e6ningsmodel kunne overvinde nogle af de udfordringer, der havde plaget tidligere fors\u00f8g.  \n Denne tilgang st\u00f8dte dog ogs\u00e5 p\u00e5 problemer.\n Tr\u00e6ningsprocessen blev stoppet p\u00e5 grund af forkert dataformatering, som forhindrede modellen i at blive tr\u00e6net effektivt.\n Dette tilbageslag understregede vigtigheden af dataintegritet i AI-tr\u00e6ning.\n Uden korrekt formaterede og strukturerede data kan selv de mest avancerede modeller ikke fungere som forventet.   \n Denne erfaring fik mig til at overveje potentialet i at bruge BigQuery til at lagre JSON-data, hvilket giver en mere skalerbar og p\u00e5lidelig platform til at h\u00e5ndtere de store datas\u00e6t, der er n\u00f8dvendige for at tr\u00e6ne Fabrice AI effektivt.\n Kombination af styrker: Langchain-dokumenter med Pinecone\n P\u00e5 trods af de hidtidige udfordringer var jeg fast besluttet p\u00e5 at finde en l\u00f8sning, der ville g\u00f8re det muligt for Fabrice AI at lagre og hente viden effektivt.\n Denne beslutsomhed fik mig til at eksperimentere med Langchain-dokumenter og Pinecone.\n Metoden gik ud p\u00e5 at oprette et Pinecone-vektorlager ved hj\u00e6lp af Langchain-dokumenter og OpenAI-indlejringer og derefter hente de mest lignende dokumenter baseret p\u00e5 foresp\u00f8rgslen.  \n Denne metode viste sig at v\u00e6re lovende, is\u00e6r n\u00e5r foresp\u00f8rgslen omfattede dokumentets titel.\n For eksempel var AI&#8217;en i stand til at hente og opsummere det relevante indhold pr\u00e6cist, n\u00e5r den blev spurgt: &#8220;Hvad er n\u00f8glen til lykke?&#8221;.\n Der var dog stadig begr\u00e6nsninger, is\u00e6r n\u00e5r foresp\u00f8rgslen manglede specifikke n\u00f8gleord eller titler.  \n Denne tilgang demonstrerede potentialet i at kombinere forskellige teknologier for at forbedre AI&#8217;ens ydeevne.\n Ved at integrere Langchain-dokumenter med Pinecones vektorlager var jeg i stand til at forbedre relevansen og n\u00f8jagtigheden af AI&#8217;ens svar, omend med visse begr\u00e6nsninger. \n Opn\u00e5else af konsistens: GPT-byggeren OpenAI\n Efter at have udforsket forskellige metoder og teknologier vendte jeg mig mod Open AI&#8217;s GPT Builder for at konsolidere og forfine den viden, der var lagret i Fabrice AI.\n Ved at uploade alt indholdet til en GPT-videnbase ville jeg skabe en mere konsekvent og p\u00e5lidelig platform til at hente og interagere med min viden. \n Denne tilgang viste sig at v\u00e6re en af de mest succesfulde, idet den kunstige intelligens var i stand til at give bedre resultater p\u00e5 tv\u00e6rs af en r\u00e6kke foresp\u00f8rgsler.\n N\u00f8glen til denne succes var integrationen af al viden i et enkelt, sammenh\u00e6ngende system, s\u00e5 den kunstige intelligens kunne tr\u00e6kke p\u00e5 hele bredden af indhold, n\u00e5r den besvarede sp\u00f8rgsm\u00e5l. \n Som jeg n\u00e6vnte i mit tidligere indl\u00e6g, kunne jeg ikke f\u00e5 det til at k\u00f8re p\u00e5 min hjemmeside, og det var kun tilg\u00e6ngeligt for betalende abonnenter p\u00e5 Chat GPT, hvilket jeg f\u00f8lte var for begr\u00e6nsende.\n Og selv om det var bedre, var jeg stadig ikke vild med kvaliteten af svarene, og jeg var ikke tryg ved at offentligg\u00f8re det. \n Endelig forbedring: GPT-assistenter bruger model 4o\n Den sidste brik i puslespillet i udviklingen af Fabrice AI kom med introduktionen af GPT-assistenter ved hj\u00e6lp af Model 4o.\n Denne tilgang repr\u00e6senterede kulminationen p\u00e5 alt, hvad jeg havde l\u00e6rt gennem hele projektet.\n Ved at bruge en vektordatabase og finpudse sp\u00f8rgsm\u00e5lene fors\u00f8gte jeg at opn\u00e5 det h\u00f8jest mulige niveau af n\u00f8jagtighed og kontekstuel forst\u00e5else i AI&#8217;ens svar.  \n Metoden gik ud p\u00e5 at uploade al den viden, jeg havde samlet, til en vektordatabase, som derefter blev brugt som grundlag for AI&#8217;ens interaktioner.\n Vektordatabasen gjorde det muligt for den kunstige intelligens at udf\u00f8re mere sofistikerede s\u00f8gninger og hente oplysninger baseret p\u00e5 den semantiske betydning af foresp\u00f8rgsler i stedet for udelukkende at basere sig p\u00e5 s\u00f8geordsmatchning.\n Dette markerede et betydeligt fremskridt i forhold til tidligere tilgange og gjorde AI&#8217;en i stand til bedre at forst\u00e5 og svare p\u00e5 komplekse, nuancerede sp\u00f8rgsm\u00e5l.  \n En af de vigtigste nyskabelser i denne tilgang var den omhyggelige forbedring af sp\u00f8rgsm\u00e5lene.\n Ved omhyggeligt at udforme og teste forskellige foresp\u00f8rgsler kunne jeg guide den kunstige intelligens til at give mere pr\u00e6cise og relevante svar.\n Det indebar ikke kun at tilpasse ordlyden af sp\u00f8rgsm\u00e5lene, men ogs\u00e5 at eksperimentere med forskellige m\u00e5der at strukturere foresp\u00f8rgslerne p\u00e5 for at f\u00e5 de bedst mulige svar.  Resultaterne var imponerende.\n AI&#8217;en var nu i stand til at h\u00e5ndtere en lang r\u00e6kke foresp\u00f8rgsler med stor n\u00f8jagtighed, selv n\u00e5r sp\u00f8rgsm\u00e5lene var \u00e5bne eller kr\u00e6vede en dyb forst\u00e5else af konteksten.\n For eksempel da den blev spurgt: &#8220;Hvordan tr\u00e6ffer man de vigtigste beslutninger i sit liv?&#8221;\n gav AI&#8217;en et omfattende og indsigtsfuldt svar, der trak p\u00e5 en r\u00e6kke forskellige kilder og perspektiver for at levere et velafrundet svar.   \n Denne succes var kulminationen p\u00e5 hundredvis af timers arbejde og utallige eksperimenter.\n Den viste, at det med den rette kombination af teknologi og raffinement var muligt at skabe en AI, der ikke bare kunne lagre og hente information effektivt, men ogs\u00e5 engagere sig i den p\u00e5 en meningsfuld m\u00e5de.\n Udviklingen af GPT Assistants ved hj\u00e6lp af Model 4o markerede det punkt, hvor Fabrice AI virkelig kom til sin ret og opn\u00e5ede det niveau af raffinement og n\u00f8jagtighed, som jeg havde forestillet mig fra starten.\n GPT Assistants API blev derefter integreret i min blog for at give slutbrugerne mulighed for at interagere med Fabrice AI p\u00e5 den m\u00e5de, du ser det p\u00e5 bloggen lige nu.   \n Reflekterer over rejsen\n Processen med at udvikle Fabrice AI viste, hvor komplekst det er at arbejde med AI, is\u00e6r n\u00e5r det drejer sig om at forst\u00e5 og s\u00e6tte information ind i en sammenh\u00e6ng.\n Det l\u00e6rte mig, at der ikke er nogen genveje i AI-udvikling &#8211; hvert trin, hver iteration og hvert eksperiment er en n\u00f8dvendig del af rejsen mod at skabe noget virkelig effektivt. \n Fremover gl\u00e6der jeg mig til at forts\u00e6tte med at forfine og udvide Fabrice AI.\n Som n\u00e6vnt i det sidste indl\u00e6g vil jeg gennemg\u00e5 de stillede sp\u00f8rgsm\u00e5l for at supplere vidensbasen, hvor der er huller.\n Jeg h\u00e5ber ogs\u00e5, at jeg p\u00e5 et tidspunkt kan udgive en interaktiv version, der ligner og lyder som mig, og som man kan tale med.  \n ","Category":["Personlige overvejelser","Tekniske gadgets"],"_links":{"self":[{"href":"https:\/\/grinda.org\/da\/wp-json\/wp\/v2\/posts\/46273","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/grinda.org\/da\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/grinda.org\/da\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/grinda.org\/da\/wp-json\/wp\/v2\/users\/9"}],"replies":[{"embeddable":true,"href":"https:\/\/grinda.org\/da\/wp-json\/wp\/v2\/comments?post=46273"}],"version-history":[{"count":1,"href":"https:\/\/grinda.org\/da\/wp-json\/wp\/v2\/posts\/46273\/revisions"}],"predecessor-version":[{"id":46275,"href":"https:\/\/grinda.org\/da\/wp-json\/wp\/v2\/posts\/46273\/revisions\/46275"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/grinda.org\/da\/wp-json\/wp\/v2\/media\/46215"}],"wp:attachment":[{"href":"https:\/\/grinda.org\/da\/wp-json\/wp\/v2\/media?parent=46273"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/grinda.org\/da\/wp-json\/wp\/v2\/categories?post=46273"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/grinda.org\/da\/wp-json\/wp\/v2\/tags?post=46273"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}