{"id":5370,"date":"2024-06-12T22:26:38","date_gmt":"2024-06-12T20:26:38","guid":{"rendered":"https:\/\/jon-lund.com\/main\/?p=5370"},"modified":"2024-06-18T15:17:39","modified_gmt":"2024-06-18T13:17:39","slug":"explainer-saadan-virker-chatgpt","status":"publish","type":"post","link":"https:\/\/jon-lund.com\/main\/explainer-saadan-virker-chatgpt\/","title":{"rendered":"Explainer: S\u00e5dan virker ChatGPT"},"content":{"rendered":"\n<p><strong>Her er forklaringen til dig, der har undret dig over, hvordan ChatGPT \u2013 som jo bare er en computer \u2013 b\u00e6rer sig ad med at virke s\u00e5 intelligent, som den g\u00f8r. Hvordan en maskine kan blive i stand til at svare p\u00e5 n\u00e6sten alt, og g\u00f8re det s\u00e5 nuanceret og tilsyneladende meningsfuldt, at man n\u00e6sten ikke kan lade v\u00e6re med at tro, at den faktisk forst\u00e5r. Blog-posten her er skrevet, s\u00e5 de fleste der interesserer sig kan f\u00f8lge med. Og hvis du er den n\u00f8rdede type, der gerne vil kende og forst\u00e5 alle de hypede ord, der omgiver ChatGPT, er der et helt afsnit til sidst, der f\u00e5r dig ind i fagjargonen ogs\u00e5. (Billede: ChatGPT\/DALL-E).<\/strong><\/p>\n\n\n\n<p>ChatGPT er en statistik- og regnemaskine.&nbsp;Den behandler en masse data. Men den forst\u00e5r ingenting. N\u00e5r den skriver, g\u00f8r den intet andet end hele tiden at g\u00e6tte p\u00e5 det n\u00e6ste ord. Et ord ad gangen. Den er utroligt, men sandt. Tekster, der giver perfekt mening og virker virkeligt elegante kan frembringes af intet andet end en stor sandsynlighedsberegner.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>En tandhjulsindstilling for alle sprogets ord<\/strong><\/h3>\n\n\n\n<p>ChatGPTs statistik- og regnemaskine er stor. Meget stor. Med milliarder af tandhjul som hver is\u00e6r kan indstilles p\u00e5 hver sin m\u00e5de. Det er disse tandhjul og deres indstillinger, der er n\u00f8glen til at forst\u00e5, hvordan ChatGPT virker.<\/p>\n\n\n\n<p>Tandhjulene er indstillet ved at tage uhyre tekstm\u00e6ngder og k\u00f8re dem igennem maskinen, s\u00e6tning for s\u00e6tning og ord for ord, og i processen l\u00f8bende tilpasse tandhjulene, til de giver det \u00f8nskede resultat: at maskinen kan reproducere det rette ord i den rette sammenh\u00e6ng.<\/p>\n\n\n\n<p>At denne tandhjulsindstilling sker s\u00e6tning for s\u00e6tning og ikke kun ord for ord er vigtigt, fordi det betyder, at ChatGPT l\u00e6rer det samme ord at kende i mange sammenh\u00e6nge. Katten i s\u00e6tningen \u201chunden jager katten\u201d, fx, er ikke bare en kat. Det er en jaget kat.<\/p>\n\n\n\n<p>Dette afspejles i tandhjulsindstillingen: den kombination af ChatGPTs milliarder af tandhjulsindstilling, der producerer normale katte, \u00e6ndres en anelse, s\u00e5 den nu bliver endnu bedre til at g\u00e6tte, at det er \u201dkatten\u201d som \u201dhunden jager\u201d i den givne sammenh\u00e6ng. P\u00e5 den m\u00e5de fanger&nbsp;tandhjulsindstillingerne&nbsp;de \u201dskjulte betydninger\u201d som ordet \u201ckat\u201d \u2013 og alle andre ord \u2013 har, afh\u00e6ngig af den kontekst de indg\u00e5r i.<\/p>\n\n\n\n<p>Det er s\u00e5dan ChatGPT l\u00e6rer alt det, den ved.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Fem skridt og svaret falder<\/h3>\n\n\n\n<p>N\u00e5r du sp\u00f8rger ChatGPT om noget, og den skal finde p\u00e5 noget at svare, g\u00e5r den gennem fem skridt. Den starter med at se p\u00e5 de ord, der indg\u00e5r i den foreg\u00e5ende tekst, et for et. Hvis den foreg\u00e5ende tekst er &#8220;hunden jager&#8221; serChatGPT alts\u00e5 p\u00e5 b\u00e5de &#8220;hunden&#8221; og p\u00e5 &#8220;jager&#8221; (Det sp\u00f8rgsm\u00e5l du har stillet er ogs\u00e5 en del af den foreg\u00e5ende tekst. S\u00e5 hvis du fx har spurgt &#8220;hvem jager katten?&#8221; er disse ord ogs\u00e5 med i den f\u00f8rste ordanalyse).<\/p>\n\n\n\n<p>Derefter sl\u00e5r ChatGPT alle ordene op, og afl\u00e6ser hvert ords respektive tandhjulsindstillinger, regner p\u00e5 dem med relativ simpel matematik, og ender op med flere tusind tal for hvert ord, der tilsammen karakteriserer hvert ord og dets skjulte betydninger. Alts\u00e5 flere tusinde tal for &#8220;hunden&#8221;, flere tusinde for &#8220;jager&#8221; osv.<\/p>\n\n\n\n<p>Nu tager ChatGPT&nbsp;&#8211; det er det tredje den g\u00f8r &#8211; og ganger og plusser alle ordenes talv\u00e6rdier&nbsp;med hinanden ved hj\u00e6lp af nogen avancerede, men alment kendte, regnemetoder. Resultatet er et enkelt s\u00e6t st\u00e6rkt modificerede talv\u00e6rdier,&nbsp;der indkapsler ikke bare ordene i dit sp\u00f8rgsm\u00e5l, men ogs\u00e5 deres skjulte betydninger. Ud fra alle de foreg\u00e5ende ords tusinder af talv\u00e6rdier skabes \u00e9t s\u00e6t talv\u00e6rdier, med sine egne betydningsnuancer, som det n\u00e6ste ord i s\u00e6tningen skal passe med.<\/p>\n\n\n\n<p>Det fjerde ChatGPT&nbsp;g\u00f8r er at sammenligne denne maggiterning af tal med alle andre ord den kender, og hvert af disse ords skjulte betydninger. Det ord der matcher bedst, scorer h\u00f8jest, den ord der matcher n\u00e6stbedst scorer lidt lavere osv. Det g\u00f8r ChatGPT for alle de ca. 40-50.000 ord der findes i ordbogen.<\/p>\n\n\n\n<p>Til sidst v\u00e6lger ChatGPT et af de h\u00f8jestscorende ord. Skriver det. Og forts\u00e6tter til n\u00e6ste ord i det svar, den er ved at skrive.<\/p>\n\n\n\n<p>S\u00e5dan virker ChatGPT.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">FAKTA: N\u00d8RDEDE DETALJER OG FR\u00c6KKE ORD<\/h2>\n\n\n\n<p>Hvis du gerne vil et spadestik dybere, er her en liste over nogle af de mest brugte og hypede ord i den aktuelle AI-begreb \u2013 og en forklaring p\u00e5, hvad de betyder og hvad de g\u00f8r for ChatGPT.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">170 milliarder tandhjul<\/h3>\n\n\n\n<ul><li>N\u00e5r ChatGPT er s\u00e5 god til at svare noget, der lyder begavet, er det pga de enormt mange tandhjul inde i dens mave. I ChatGPT&nbsp;3.5 var der 170 milliarder tandhjul.<\/li><li>I den nyeste version over en trillion.<\/li><li>Det er derfor, ChatGPT kan fange s\u00e5 mange nuancer af skjulte betydninger. Derfor den kan g\u00e6tte, hvorn\u00e5r den skal skrive \u201cHunden jager katten\u201d, og hvorn\u00e5r \u201cHunden jager sin egen hale\u201d ville passe bedre.<\/li><\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Self-supervised learning<\/h3>\n\n\n\n<ul><li>L\u00e6g dertil at ChatGPT er blevet tr\u00e6net med enorme m\u00e6ngder tekst fra internettet, indscannede b\u00f8ger og transkriberede Youtube-videoer. Det betyder, at den kender stort set alle sammeh\u00e6nge,&nbsp;ord indg\u00e5r i.&nbsp;<\/li><li>ChatGPT er tr\u00e6net p\u00e5 den m\u00e5de, at den systematisk blanker et enkelt ord ud ad gangen i alle de s\u00e6tninger, der bliver f\u00f8dt med. Og s\u00e5 indstiller den sine tandhjul, indtil den spytter det rigtige ord ud i den anden ende.<\/li><li>ChatGPT k\u00f8rer processen med ud-blankning af ord rigtigt mange gange igennem, og til sidst er alle tandhjulene er indstillet, s\u00e5 ChatGPT rammer mest muligt plet for det maksimale antal ord. Til sidst fastfryses indstillerne og ChatGPT har nu dannet sin sprogmodel, med alle ord og tilh\u00f8rende aflejringer af skjulte betydningslag registreret og sat i forhold til hinanden.<\/li><li>Denne form for tr\u00e6ning kaldes \u201dself-supervised learning\u201d. Det kaldes s\u00e5dan, fordi der ikke er nogen mennesker, der har fortalt ChatGPT, hvad de enkelte ord betyder.<\/li><\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Parametre, v\u00e6gte og konstanter<\/h3>\n\n\n\n<ul><li>Der er selvf\u00f8lgelig ikke rigtige fysiske tandhjul inde i maven p\u00e5 ChatGPT.&nbsp;For ChatGPT er et computerprogram. I virkeligheden er det jeg kalder tandhjul variable i de formler som ChatGPT indeholder.<\/li><li>Disse variable kaldes &#8220;parametre&#8221;. N\u00e5r du h\u00f8rer om, at ChatGPT har 175 milliarder parametre, har det derfor ikke noget at g\u00f8re med, hvor mange data ChatGPT er fodret med. Det er antallet af variable i ChatGPTs indre.<\/li><li>Hvis du vil have endnu et detaljelag p\u00e5, best\u00e5r parametrene af hhv. v\u00e6gte og konstanter.&nbsp;V\u00e6gte er et tal, som der ganges med i ChatGPTs formler. Konstanten er et tal, der tr\u00e6kkes fra eller l\u00e6gges til. <\/li><\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Neurale netv\u00e6rk og large language models<\/h3>\n\n\n\n<ul><li>Alle de formler, ChatGPT indeholder, tager hver deres tal, regner p\u00e5 det, og sender det videre. Formlerne har allesammen samme opbygning og ser s\u00e5dan ud: f[w . x + b]. x det input, der beregnes p\u00e5 og w og b er hhv. v\u00e6gten og konstanten.<\/li><li>Mange formler kan godt sende deres resultater samme sted hen.&nbsp;De instanser \u2013 mellemregninger &#8211;&nbsp;i&nbsp;programmet, hvor resultaterne af mange formlers&nbsp;regnerier samles, kaldes &#8220;neuroner&#8221;.<\/li><li>Neuronerne l\u00e6gger alle de modtagne tal sammen og sender dem videre til andre neuroner, der ogs\u00e5 regner og l\u00e6gger sammen og sender videre igen til endnu andre neuroner i et stort k\u00e6mpestort netv\u00e6rk af neuroner. Det er derfor, ChatGPT&nbsp;er et computerprogram af den slags, der kaldes er et \u201dneuralt netv\u00e6rk&#8221;.<\/li><li>ChatGPT&nbsp;er et neuralt netv\u00e6rk af typen Large Language Models. En Large Language Model er en s\u00e5kaldt &#8220;generativ AI&#8221;, fordi de ikke bare beregner sandsynligheder, men ogs\u00e5 bruger sandsynlighederne til at generere ny tekst.<\/li><\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Tokens, embeddings og vektorer<\/h3>\n\n\n\n<ul><li>Det er en lille tilsnigelse at sige, at det er ord, ChatGPT&nbsp;g\u00e6tter. Strengt taget er det ChatGPT g\u00e6tter s\u00e5kaldte &#8220;tokens&#8221;. En token er en enhed af tekst &#8211; et helt ord (fx &#8220;kat&#8221;), en del af et ord (fx &#8220;inter-&#8221; i &#8220;interessant&#8221;), eller endda et enkelt tegn (fx &#8220;!&#8221;)<\/li><li>Det er strengt taget heller ikke token&#8217;et i sig selv, alts\u00e5 fx. &#8220;kat&#8221;, ChatGPT bruger. For ChatGPT er en computer, der ikke forst\u00e5r ord. I stedet har ChatGPT givet alle de 40-50.000 tokens, der er i sproget,  hvert deres nummer. &#8220;Kat&#8221; har nummer 78.862.<\/li><li>Den skjulte betydning, som ChatGPT har tilf\u00f8jet ordet kat, kaldes ordets &#8220;embedding&#8221;. Det er ikke kun &#8220;kat&#8221; der har en embedding, men alle ord.<\/li><li>Den skjulte betydning &#8211; &#8220;embeddingen&#8221;&nbsp;&#8211; best\u00e5r af tusindvis af tal, der er samlet i en s\u00e5kaldt vektor. En vektor er et matematisk meget veldefineret begreb. Hvert tal i vektoren kan forst\u00e5s som en placering p\u00e5 hver sin dimension. N\u00e5r embeddingen har tusindvis af tal, betyder det derfor, at ordet (fx &#8220;kat&#8221;) er defineret i tusindvis af dimensioner.<\/li><\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Transformer og dot-produkt<\/h3>\n\n\n\n<ul><li>De alment kendte&nbsp;regnemetoder&nbsp;ChatGPT&nbsp;bruger, n\u00e5r den ganger og plusser alle talv\u00e6rdierne for hvert ords&nbsp;tandhjulsindstillinger&nbsp;med hinanden, er regneregler, der g\u00e6lder for vektorer. Blandt andet &#8220;dot produktet&#8221;<\/li><li>N\u00e5r ChatGPT&nbsp;ganger og plusser tandhjulsindstillingerne&nbsp;for de foreg\u00e5ende ord i s\u00e6tningen med hinanden og ender op med et s\u00e6t st\u00e6rkt modificerede tandhjulsindstillinger, siger man, at ChatGPT&nbsp;&#8220;transformerer&#8221; de oprindelige tandhjulsindstillinger.&nbsp;Det er denne transformation, som det sidste &#8220;T&#8221; i ChatGPT&nbsp;st\u00e5r for. (G\u2019et st\u00e5r for generativ, alts\u00e5 at den skal generere ord. P\u2019et for Pretrained, alts\u00e5 at den er tr\u00e6net p\u00e5 meget store tekstm\u00e6ngder, f\u00f8r du begynder at tale med den.)<\/li><\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Self-attention og temperatur<\/h3>\n\n\n\n<ul><li>N\u00e5r man ganger to vektorer med hinanden, vil resultatet v\u00e6re st\u00f8rre, jo mere ens de to vektorer er. Da det er vektorernes tusindvis af tal, der bestemmer et ords skjulte betydning, betyder det, at jo mere to ord har til f\u00e6lles betydningsm\u00e6ssigt, er et h\u00f8jt resultat af gangeriet et tegn p\u00e5, at de to ord har noget med hinanden at g\u00f8re. Det er det, der er den egentlige mening med ChatGPTs gangeri af tandhjulsindstillingerne for de foreg\u00e5ende ord i en s\u00e6tning. Gangeriet udpeger, hvilke ord der i vigtige i sammenh\u00e6ngen. Denne mekanisme kaldes self-attention. Det er derfor, den videnskabelige artikel, der grundlagde ChatGPT-metoden, som ChatGPT&nbsp;bygger p\u00e5, hed derfor &#8220;Attention is all you need&#8221;. En artikel, der i\u00f8vrigt blev skrevet af et hold software ingeni\u00f8rer hos Google.<\/li><li>ChatGPT v\u00e6lger ikke altid det mest sandsynlige n\u00e6ste ord. Det giver nemlig kedelige tekster, har det vist sig. Derfor v\u00e6lger den nogen gange lidt mindre sandsynlige n\u00e6ste ord. Graden af sandsynlighed kaldes modellens &#8220;temperatur&#8221;. Temperaturen 0,8 har vist sig at fungere godt.<\/li><\/ul>\n\n\n\n<p>Hvis du synes ovenst\u00e5ende er sp\u00e6ndende og gerne vil l\u00e6se mere, vil jeg anbefale den relativt korte bog \u201d<a href=\"https:\/\/writings.stephenwolfram.com\/2023\/02\/what-is-chatgpt-doing-and-why-does-it-work\/\">What is ChatGPT doing\u2026 and why does it work<\/a>\u201d af Stephen Wolfram som er gratis tilg\u00e6ngelige fra hans hjemmeside og som blogindl\u00e6gget her er kraftigt inspireret af.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Her er forklaringen til dig, der har undret dig over, hvordan ChatGPT \u2013 som jo bare er en computer \u2013 b\u00e6rer sig ad med at virke s\u00e5 intelligent, som den g\u00f8r. Hvordan en maskine kan blive i stand til at svare p\u00e5 n\u00e6sten alt, og g\u00f8re det s\u00e5 nuanceret og tilsyneladende meningsfuldt, at man n\u00e6sten&hellip;&nbsp;<a href=\"https:\/\/jon-lund.com\/main\/explainer-saadan-virker-chatgpt\/\" class=\"\" rel=\"bookmark\">L\u00e6s mere &raquo;<span class=\"screen-reader-text\">Explainer: S\u00e5dan virker ChatGPT<\/span><\/a><\/p>\n","protected":false},"author":3,"featured_media":5374,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[9],"tags":[],"_links":{"self":[{"href":"https:\/\/jon-lund.com\/main\/wp-json\/wp\/v2\/posts\/5370"}],"collection":[{"href":"https:\/\/jon-lund.com\/main\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/jon-lund.com\/main\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/jon-lund.com\/main\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/jon-lund.com\/main\/wp-json\/wp\/v2\/comments?post=5370"}],"version-history":[{"count":21,"href":"https:\/\/jon-lund.com\/main\/wp-json\/wp\/v2\/posts\/5370\/revisions"}],"predecessor-version":[{"id":5398,"href":"https:\/\/jon-lund.com\/main\/wp-json\/wp\/v2\/posts\/5370\/revisions\/5398"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/jon-lund.com\/main\/wp-json\/wp\/v2\/media\/5374"}],"wp:attachment":[{"href":"https:\/\/jon-lund.com\/main\/wp-json\/wp\/v2\/media?parent=5370"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/jon-lund.com\/main\/wp-json\/wp\/v2\/categories?post=5370"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/jon-lund.com\/main\/wp-json\/wp\/v2\/tags?post=5370"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}