Gå til indhold
atlas

Tankekæde (chain-of-thought)

Også kendt som: CoT, chain-of-thought

At få en sprogmodel til at skrive sine mellemregninger ud før det endelige svar, hvilket ofte hjælper på regnestykker, logik og planlægning.

Kladde - dette opslag er endnu ikke gennemgået.

Formelt

En promptmetode, hvor en stor sprogmodel ledes - med løste eksempler eller en opfordring som “tænk trin for trin” - til at skrive mellemtrin før sit svar; fordi hvert nedskrevet trin bliver input til det næste, kan sværere problemer brydes ned.

Forklaret enkelt

Som en lærer, der kræver, at eleverne viser deres mellemregninger til matematikprøven - at skrive hvert trin ned giver færre fejl og viser, hvor noget gik galt.

I praksis

En planlægger på et vandværk spørger en assistent, hvor mange ledningseftersyn to hold kan nå på en uge; bedt om at tage det trin for trin opstiller den timer, køretid og tid pr. opgave, før den giver totalen.

Hvorfor det betyder noget

Det gør ofte svar på problemer i flere trin bedre, men de nedskrevne trin koster tid og penge og er ikke en tro gengivelse af, hvordan modellen reelt nåede sit svar.

Teknisk uddybning

Wei m.fl. (2022) introducerede chain-of-thought-prompting som few-shot prompting, hvor hvert eksempels svar indledes af en gennemregnet begrundelse. Med otte sådanne eksempler nåede PaLM 540B den dengang bedste præcision på matematikbenchmarket GSM8K med opgaver på grundskoleniveau, og artiklen rapporterede, at gevinsten kun viste sig i tilstrækkeligt store modeller (i størrelsesordenen 100 milliarder parametre), mens mindre modeller skrev flydende, men ulogiske kæder, der kunne sænke præcisionen. Kojima m.fl. (2022) viste derefter zero-shot-varianten: At tilføje "Let's think step by step" løftede text-davinci-002's præcision på MultiArith fra 17,7 % til 78,7 % og på GSM8K fra 10,4 % til 40,7 %, typisk med et ekstra kald for at trække det endelige svar ud af det genererede ræsonnement.

Mekanismen er beregningsmæssig, ikke mystisk. En transformer udfører en begrænset mængde beregning pr. genereret token; når mellemresultater skrives ind i konteksten, kan senere tokens give attention til dem, så modellen reelt får et kladdepapir og flere serielle trin til problemer, der kræver det. Det forklarer, hvor tankekæder hjælper (regning i flere trin, symbolsk manipulation, logiske gåder, planlægning), hvor de tilføjer lidt (faktuel genkaldelse, enkel klassifikation, opgaver, der kan løses i ét trin), og hvorfor de koster flere output-tokens og mere ventetid.

Flere udvidelser bygger på samme idé. Self-consistency (Wang m.fl., 2022) trækker flere kæder med en temperatur over nul og tager flertalsafstemning over de endelige svar. Least-to-most prompting deler et problem op i delspørgsmål, der løses i rækkefølge; Tree of Thoughts (Yao m.fl., 2023) søger over forgrenede delløsninger med eksplicit vurdering; programstøttede metoder lader modellen skrive kode, hvis kørsel giver svaret, så regningen flyttes ud af modellen. Ræsonnementsmodeller har internaliseret lange tankekæder via forstærkningslæring, så eksplicitte "tænk trin for trin"-instruktioner tilføjer lidt, og nogle udbydere fraråder at foreskrive trinene.

Den skrevne kæde er ikke en tro gengivelse af beregningen. Turpin m.fl. (2023) viste, at når few-shot-prompts var skæve - fx med det rigtige svar altid placeret som mulighed A - fulgte modellerne skævheden og skrev derefter troværdige begrundelser, der aldrig nævnte den. Senere arbejde med ræsonnementsmodeller fandt samme mønster med skjulte hints. Tankekædeoutput kan derfor bruges til fejlfinding, til at opdage nogle fejl og som overvågningssignal, men ikke som forklaring på en afgørelse eller som bevis for, at svaret er rigtigt. I produktion skal man også beslutte, om kæden vises for brugerne: Den kan indeholde mellemudsagn, der er forkerte, strider mod retningslinjerne eller citerer følsom kontekst.

Hvad du bør lære først

Alt det, dette bygger på - grundlaget først.

  1. Inferens
  2. →Token
  3. →Forudsigelse af næste token
  4. →Tankekæde (chain-of-thought)

Relationer

Kilder og videre læsning

Hvor dataene kommer fra

Dette opslag er skrevet af en AI ud fra kilderne ovenfor og er endnu ikke gennemgået af et menneske. Brug det som udgangspunkt, og tjek alt vigtigt mod kilderne.

Se gennemgangskøenForeslå en rettelse på GitHubDette begreb som JSON

Test dig selv

Indlæser…

Atlas er i beta.