У жніўні я даў мадэлям Anthropic 10 задач па арыфметыцы для SaaS і забраў у іх усе інструменты. Адна з задач была прагнозам рэшты на рахунку: на пачатку там $420 000, выдаткі $40 000 у месяц, выручка пачынаецца з $18 000 і расце на 11% у месяц. Opus 5 палічыў яе дакладна да долара. А Haiku 4.5 не палічыў. Яго промах я двойчы прыводзіў публічна. 12 жніўня ў X адказ быў на $5775 меншы за правільны. 18 жніўня ў LinkedIn, пасля паўторнага прагону на 4 мадэлях, адказ памыляўся на $8451. Я яшчэ дадаў, што лік усё роўна выглядае правільным. У гэтым і была мая думка: у адказе няма нічога, што сведчыла б пра памылку.
Прыклад быў зручны і я карыстаўся ім як фактам пра Haiku. Але ў мяне было 2 адказы, па адным на прагон. Яны нават па знаку не супадалі. Якім будзе трэці адказ, я не задумваўся.
Ёсць і меншая няёмкасць. Абодва пасты называюць гэта прагнозам на 5 гадоў, а ў пытанні 36 месяцаў. У results.json таго прагону стаіць months: 36. У табліцы публічнага рэпазіторыя стаіць 60. Яшчэ ў 2 радках гэтай табліцы колькасць месяцаў няправільная.
150 выклікаў на адно пытанне
12 кастрычніка я задаў гэтае пытанне шмат разоў. Запускаў Claude Code 2.1.292 праз claude -p з пустой тэчкі, з --tools "" і пустым канфігам MCP, так што лічыць мадэлі няма чым. Мадэль, якая адказала, правяраецца па modelUsage, а не бярэцца з параметра --model. Правільны адказ я палічыў у Python праз Decimal, ён роўны $5 822 959,30.
Спачатку я запусціў зыходны промпт з адным радком ANSWER: <number>: 30 разоў на Haiku і 10 на Opus. Opus адказаў дакладна 9 разоў з 10, дзясяты адказ адрозніваўся на $4,19. Haiku дакладна не адказаў ні разу з 30. 23 адказы леглі ў межах $17 тысяч ад правільнага, медыянны промах склаў $2556, 9 адказаў апынуліся вышэй за правільны і 14 ніжэй. Астатнія 7 стаялі каля $6 507 000, гэта на $684 тысячы больш.
Спачатку я падумаў, што ў гэтых 7 мадэль няправільна прачытала пытанне. Я пачаў лічыць месяцы. Выручка за 37 месяцаў дае $6 593 685, расходы за 35 месяцаў даюць $5 862 959. Ні тое ні другое не падыходзіць. Падыходзіць дзяленне сумы шэрагу на 0,10 замест 0,11:
420000 + 18000 * (1.11^36 - 1) / 0.10 - 40000 * 36 = 6,507,255
Усе 7 адказаў ляжаць у межах $6600 ад гэтага ліку. У гэтым промпце ходу рашэння ў адказе няма, так што для гэтых 7 дзяленне на 0,10 выведзена з супадзення лікаў, а саму памылку я не бачыў.
Адкуль бярэцца 0,10
Каб убачыць яе, я папрасіў мадэль распісаць рашэнне і зрабіў яшчэ 20 выклікаў. 11 з 20 скончыліся каля $6,5 мільёна, часцей, чым у кароткім промпце. Ва ўсіх 11 ход рашэння дзеліць на 0.10 або 0.1. Усе 9 правільных дзеляць на 0.11. У 6 з 11 радком вышэй назоўнік запісаны правільна:
Total Revenue = $18,000 × (1.11³⁶ - 1)/(1.11 - 1)
= $18,000 × (1.11³⁶ - 1)/0.10
Мадэль піша агульную формулу, падстаўляе 1,11 і на наступным радку 1.11 - 1 ужо ператвараецца ў 0.10. У 3 з 11 гэты крок наогул не запісаны і ход адразу дзеліць на 0.10. Гэта памылка ў адной лічбе на самым простым кроку задачы. Менавіта гэтая лічба памнажае выручку на 1,1.
Промах на $8k быў іншай памылкай
Жнівеньскія промахі, мінус $5775 і плюс $8451, не ад гэтай памылкі. Яны падобныя на 23 блізкія адказы. Увесь прагноз залежыць ад аднаго ліку, 1,11 у ступені 36, ён роўны 42,818. У выручцы ён памнажаецца на 18 000 / 0,11, таму памылка ступені на 0,001 каштуе ў адказе $164.
Я праверыў гэта за 30 выклікаў промптам, які просіць 3 радкі: ступень, выручку і адказ. Ступені атрымаліся ад 42,736 да 42,929. Медыянны промах адказу быў $742 і памылка ўласнай ступені мадэлі, памножаная на 163 636, тлумачыць з іх $741. У 27 з 30 адказ супаў з тым, што дае ўласная ступень мадэлі, з дакладнасцю да $10, у астатніх 3 розніца была ад $200 да $1636. Адсюль не відаць, ці лічыла мадэль спачатку ступень, ці падагнала надрукаваную ступень пад ужо гатовы адказ. Сказаць можна, дзе надрукаваная ступень разыходзіцца з правільнай: першая няправільная лічба стаіць у трэцім знаку пасля коскі ў 14 адказах з 30, у першым або другім у 13. Калі я 20 разоў спытаў адну толькі ступень, Haiku ні разу не адказаў 42,818084. У доларах прагнозу раскід быў ад −$32 741 да +$41 223.
У гэтым промпце памылкі з 0.10 не было наогул, 0 з 30. Чаму, я не ведаю. Можна меркаваць, што, калі выручка пішацца асобным радком, мадэль лічыць дзяленне асобна. Я гэтага не правяраў і 30 выклікаў гэта мала.
Папрасіць сказаць, калі не ўпэўнены
Апошняе, што я хацеў даведацца, гэта ці адчувае Haiku, што памыліўся. Я ўзяў той жа кароткі промпт і дадаў адзін сказ: калі ты не ўпэўнены, што лік дакладны да долара, дапішы другім радком UNSURE. Выклікаў зноў было 30.
Haiku напісаў UNSURE 7 разоў. Усе 7 стаялі на адказах, якія памыляліся не больш чым на $2817. 4 адказы прыйшлі з памылкай +$684 тысячы. Ніводны з іх не быў пазначаны. Opus з тым жа сказам пазначыў 3 адказы з 10, хоць усе 10 былі дакладнымі.
Пазнака, значыць, ёсць, але яна стаіць на адказах, якія і так блізкія да правільнага. І ў многіх блізкіх адказаў яе таксама няма. 4 найгоршыя адказы прыйшлі зусім без пазнакі.
Што для мяне змяняецца
Прыклад, які я прыводзіў у жніўні, быў сапраўдным, але дробным. На гэтым пытанні адказ Haiku звычайна адрозніваецца на некалькі тысяч долараў, часам да $17 тысяч. У промпце з 3 радкоў гэты дрэйф тлумачыць надрукаваная ступень. У 7 выкліках з 30 на зыходным промпце адказ памыляўся на $684 тысячы, бо 1.11 - 1 стала 0.10. Я цытаваў дрэйф і не бачыў гэтай памылкі, бо глядзеў на 1 адказ за прагон.
Калі па ліку я збіраюся нешта вырашаць, мадэль не павінна дзяліць наогул. Гэта я казаў і ў жніўні. Цяпер я ведаю, які крок ламаецца і як гэта выглядае на старонцы: (1.11 - 1) на адным радку і 0.10 на наступным.
Чаго я не правяраў
Я правяраў толькі Haiku 4.5 і Opus 5 і толькі на адным пытанні. У іншых ліках побач з 0.11 можа і не апынуцца 0.10. Кожная серыя гэта адна сесія ад 10 да 30 выклікаў, ніводную я не паўтараў, так што 7 з 30 супраць 0 з 30 супраць 11 з 20 гэта ў лепшым выпадку намёк. Для вялікіх адказаў я праверыў 2 іншыя тлумачэнні, абодва пра колькасць месяцаў, перш чым сышлося дзяленне на 0,10. Інструменты былі адключаныя наўмысна, хоць у жыцці такое лічаць з інструментамі.