POLARIS
Station: ej köptInsamling: 0 kr, betalning har inte öppnatForum: öppet för inbjudna

Precision och minne

En modell svarar utifrån texten som får plats i en och samma fråga, och från vikter som sparats med en viss precision. Den här sidan visar hur en lång chatt, en uppladdad PDF eller en mindre modellfil kan ändra svaret, och hur du mäter hastighet och strömförbrukning under en längre körning.

Nybörjare

Varför en lång chatt tappar detaljer

Varje nytt svar räknas fram från ett enda paket: dina instruktioner, eventuella bifogade filer och de tidigare meddelandena som fortfarande får plats. Den gränsen kallas kontextfönster. Modellen mäter paketet i tokens, textbitar som ofta är ett ord eller en del av ett ord. När nästa meddelande inte längre får plats klipper eller kortar chattverktyget ner de äldsta delarna. Ett namn, ett datum eller ett villkor från början av chatten kan därför saknas helt när det senare svaret tas fram.

Var en uppgift hamnar i paketet påverkar också resultatet. Studien Lost in the Middle testade modeller som behövde hitta och använda ett viktigt stycke gömt bland många andra. Resultatet blev oftast bäst när stycket låg i början eller slutet av texten, och sämre när det låg i mitten – även hos modeller som är byggda för att klara långa texter.

Att ladda upp en PDF lägger till ytterligare ett steg där information kan försvinna. Tjänsten gör om sidorna till ren text. Skannade dokument, spalter sida vid sida och tabeller kan tappa celler, rubriker och fotnoter. Många verktyg söker sedan i den texten och kopierar bara över några enstaka stycken till paketet. Det mönstret kallas retrieval-augmented generation: det skrivna svaret följer styckena som sökningen hittade. Ställ samma specifika fråga två gånger. Klistra först in enbart stycket där svaret finns. Skicka sedan hela filen. Jämför båda svaren med sidan i dokumentet. Skiljer de sig åt har filläsningen eller söksteget missat något.

Sådana jämförande tester kan delas i forumet, som under provtiden är öppet för inbjudna.

Se vad paketet fortfarande innehåller

Jag testar vad du fortfarande har koll på.
Fakta att minnas: [klistra in en specifik uppgift, med ett namn och en siffra].
Utfyllnad: [klistra in flera orelaterade stycken].
Fråga: [fråga enbart efter den uppgiften].
Citera uppgiften exakt som du tog emot den efter ditt svar. Om någon del saknas i din bild av samtalet, ange vilken del.

Medel

Behåll tråden du behöver

Starta en ny chatt när uppgiften byts ut. Kopiera över de namn, datum, summor och beslut som den nya uppgiften behöver, och lämna den gamla tråden bakom dig. Om verktyget lägger till en sammanfattning av tidigare meddelanden, läs igenom sammanfattningen innan du litar på nästa svar. En sammanfattning behåller ofta huvudämnet men tappar undantagen.

När det gäller en PDF, be om ett citat innan modellen drar någon slutsats. Citatet ska vara en mening som du kan hitta i filen, med sidnummer om PDF-filen har sidor. Ett svar som inte kan visa meningen är inte färdigt, så öppna sidan själv och kontrollera. Vid en längre rapport, skicka in ett namngivet avsnitt – den del som borde innehålla svaret – och skicka även in hela filen i en separat körning med samma fråga. Se det korta avsnittet som ditt facit. Lägg märke till om ett årtal har ändrats, om en siffra har avrundats eller om ett villkor bara dyker upp i ett av svaren.

En mindre modellfil kompromissar på ett tredje ställe. Kvantisering sparar vikterna – de inlärda talen inuti modellen – med färre bitar så att filen tar mindre minne. llama.cpp har heltalskvantisering från 1,5-bit till 8-bit. Vikter sparade i 4 bitar tar ungefär en fjärdedel så mycket plats som 16-bitars vikter, plus ett litet tillägg för skalan som sparas med varje block. Vid exakta namn, summor och långa instruktioner: kör exakt samma prompt mot den lilla filen och mot en 8-bitars eller 16-bitars fil. När en uppgift som du kan kontrollera i källan ändras, använd filen med högre precision för det jobbet.

Jämför ett kort utdrag med hela filen

Fråga: [en fråga där svaret är en specifik siffra, ett datum eller ett villkor].
Del 1. Använd enbart utdraget nedan. Citera meningen du använde och ange sida eller rubrik om det finns.
Utdrag: [klistra in stycket som innehåller svaret].
Del 2. Svara på samma fråga utifrån hela PDF-filen jag laddar upp. Citera meningen du använde.
Om de två svaren skiljer sig åt, lista skillnaderna. Håll isär svaren och låt mig avgöra vad som stämmer.

Expert

Kvantisera, cacha och mät körningen

Skriv upp en rad per körning: datum, maskin, modell, filnamn, kvantisering, samplingstemperatur, kontextlängd, prompt och resultat. Sätt samplingstemperaturen till 0, eller det lägsta värde som erbjuds.

I llama.cpp anger Q4_K_S, Q4_K_M, Q5_K_M och Q8_0 hur vikterna packas. S, M och L styr hur stor del av filen som använder den lägre bitbredden, med en skala sparad intill varje K-quant-block. Kvantisera en gång från 16-bitars eller 32-bitars vikter. Använd en fil med högre precision för en siffra, ett citat eller en klausul, och när en jämförande körning ändrar en uppgift som du kan kontrollera.

Prompt caching i OpenAI API sparar key-value-tillståndet för ett prefix som matchar exakt, inklusive verktyg och instruktioner i början. Lägg den fasta texten först och den föränderliga frågan sist.

Batching kör flera sekvenser mot samma vikter, samtidigt som varje sekvens har ett key-value-tillstånd som växer med längden. Tokens per sekund för maskinen kan öka samtidigt som en enskild användare får vänta längre på sin första token. Logga båda.

Lägg in en mening som filen saknar vid ungefär 10, 50 och 90 procent av en offentlig årsredovisning eller myndighets-PDF. Be om den meningen, ställ sedan en fråga som kräver information från två olika ställen, och bedöm uppgifterna var för sig. Jämför embeddings på MTEB efter uppgift och språk, pipelines på RAGBench och index på ANN-Benchmarks.

Vid en lång körning: logga chiptemperatur, watt från vägguttaget och tokens per sekund med några minuters mellanrum. MLPerf Inference: Datacenter redovisar systemets effektuttag från väggen för Server och Offline, och energi per ström för single-stream och multi-stream. En varm maskin kan tappa fart redan efter första minuten.

En rad för ett precisionstest

Se detta som en mätning. Sätt samplingstemperaturen till 0, eller till det lägsta värde du har stöd för. Ange modell, filnamn, kvantiseringsbeteckning och vilken kontextlängd du använde.
Dokument: [klistra in eller bifoga en offentlig årsredovisning eller myndighets-PDF].
Nål, en mening som inte finns i originalet: "[skriv en unik mening]". Utgå från att den ligger ungefär i mitten av dokumentet.
Uppgift A: Återge nål-meningen exakt.
Uppgift B: [ställ en fråga som kräver information från två separata ställen i dokumentet]. Citera båda ställena.
Svara i en tabell: exakt träff på Uppgift A (ja eller nej), de två citaten för Uppgift B, samt eventuella siffror du inte kunde hitta. Ta bara med det som faktiskt står i dokumentet.

En jämförande körning du kan upprepa

Använd exakt samma formulering för båda körningarna i ett par.

  • Anteckna tjänst eller lokal körmiljö, modellnamn och filnamn, inklusive kvantiseringsbeteckning som Q4_K_M eller Q8_0.
  • Sätt samplingstemperaturen till 0, eller det lägsta värde som erbjuds, och skriv upp siffran.
  • Ställ en fråga där du kan peka på svaret direkt i källan.
  • Kör A mot det korta utdraget eller filen med högre precision. Kör B mot hela den uppladdade filen eller den mindre filen.
  • Kräv ett citat samt sida eller avsnitt för varje körning.
  • Notera en miss om ett årtal, en summa, ett namn eller ett villkor skiljer sig åt, eller om citatet inte finns i filen.
  • För ett nåltest: notera dokumentets längd, djup i procent, exakt matchning och resultatet på den andra frågan som kräver två ställen.
  • För en lång körning: lägg till klockslag, chiptemperatur, watt från väggen och tokens per sekund vid flera tillfällen under körningen.

Vad som ändrades och vad du ska logga

Det du ser Vad du ska logga härnäst
En tidig detalj försvinner efter många meddelanden Antalet tokens i det aktiva paketet, och om äldre meddelanden kortades ner eller sammanfattades
Hela PDF-filen och ett kort utdrag ger olika svar Om varje svar citerar en mening som faktiskt finns i filen, och om sökningen fick upp den sidan
Den mindre filen ändrar en kontrollerbar uppgift Samma prompt mot en fil med högre precision, kvantiserad en gång från 16-bitars eller 32-bitars vikter
Ett cachat anrop går snabbare men missar ändå en uppgift Om det oförändrade prefixet faktiskt innehåller uppgiften
Tokens per sekund sjunker efter de första minuterna Chiptemperatur och watt från väggen under hela körningen

När du ska lämna den minsta filen

Byt upp dig till en fil med högre precision, som 8-bit eller 16-bit, i följande fall.

  • Svaret är en siffra, ett namn, ett datum eller ett villkor som någon annan ska förlita sig på.
  • En jämförande körning har redan ändrat en uppgift som du kan hitta i källan.
  • Dokumentet är långt och raderna du behöver ligger mitt i texten.
  • Du ska publicera raden så att andra kan använda den.

En riktigt liten fil duger fortfarande bra för ett eget utkast. Upprepa de kontrollerbara frågorna mot filen med högre precision innan du sparar resultatet.

En gemensam DGX Station skulle ge en känd maskin med tillräckligt med minne för att upprepa samma prompt på en stor öppen modell, både med en fil med högre precision och med en mindre fil, samt publicera datum, maskinnamn och tokens per sekund. Om den gemensamma stationen

Källor

  • llama.cppLokal inferens i C++, med heltalskvantisering från 1,5-bit till 8-bit. Kvantiseringsverktyget har stöd för en imatrix-fil så att vikter som påverkar resultatet mer kan behålla extra precision. MIT-licens.
  • Lost in the Middle: How Language Models Use Long ContextsNelson F. Liu och hans kollegor visar att förmågan att hitta ett relevant stycke ofta är bättre i början eller slutet av en lång text än i mitten. arXiv-licens för icke-exklusiv distribution.
  • Needle in a HaystackEtt testverktyg som mäter träffsäkerhet över olika kontextlängder och nåldjup, inklusive uppgifter med flera fakta och flera steg. MIT-licens. Ange källan om du återanvänder koden.
  • MTEB leaderboardAktuella resultat för embedding-modeller. Forskningsartikeln (https://arxiv.org/abs/2210.07316) visade att ingen enskild metod var bäst på alla uppgifter, så jämför per uppgift och språk.
  • RAGBenchKod för ett benchmark inom retrieval-augmented generation. Forskningsartikeln (https://arxiv.org/abs/2407.11005, CC BY 4.0) beskriver 100 000 märkta exempel från branschdokument samt TRACe-måtten.
  • MLPerf Inference: DatacenterStandardiserade scenarier för inferenshastighet. Server och Offline redovisar systemets effektuttag från väggen. Single-stream och multi-stream redovisar energi per ström.
  • OpenAI prompt cachingHur ett oförändrat prefix återanvänder sitt key-value-tillstånd. Hur länge cachen sparas, minsta längd och pris beror på modellen, så kontrollera den här sidan innan du budgeterar en körning.
  • ANN-BenchmarksTräffsäkerhet (recall) ställt mot frågor per sekund för approximativ närmaste granne-sökning, inklusive flera vektordatabasalgoritmer. Diagrammen mäter indexet separat från embedding-modellen.

Till toppen