Учора я прагнаў свой цыкл чарнавікоў па 16 зацверджаных тэмах і прачытаў справаздачы. Чарнавік артыкула пра тое, як стан жыве ў файлах, вярнуўся з адзнакай крытыка 2 з 10. У гэтым цыкле такая адзнака значыць, што тэкст не пахне мадэллю і ідзе да мяне на чытанне. Механічныя праверкі на тым жа файле налічылі 10 спрацоўванняў, 8 з іх гэта коска перад and.
Гэтую коску крытыку не трэба выводзіць з майго стылю. Яна стаіць у ягоным жа промпце жорсткай праверкай нумар 3, запісанай як Comma before and / or → 0. Правіла было ў яго перад вачыма, а адзнака выйшла 2. Фраза, якой я тлумачу гэты цыкл, кажа, што механіка вырашае тое, у чаго ёсць адназначны адказ, а меркаванне крытык пакідае сабе. Я ўпісаў яе ў README гэтага рэпазіторыя і паўтараю кожны раз, калі пытаюцца, як уладкавана генерацыя. Лікам я яе ні разу не правяраў.
Цыкл і абстаноўка
Чарнавік спачатку ідзе праз src/lib/tells.ts. Там 19 праверак. Амаль кожная гэта рэгулярка, якая з’явілася пасля праўкі, зробленай маімі рукамі: ніякага працяжніка ў англійскай, ніякай коскі перад and, лік лічбамі. Далей чарнавік ідзе да крытыка з prompts/_critic.md, які вяртае заўвагі і адзнаку ад 0 да 10, дзе менш значыць лепш. На 3 і ніжэй ён спыняецца і чакае мяне. Вышэй за 3 ідзе перапісванне, да 2 раундаў.
Усё, што ніжэй, прагнана мадэллю claude-opus-5 праз claude CLI 2.1.235 на node 22.23.1, супраць tells.ts на коміце 0f0b511. Прагоны ідуць унутры гэтага рэпазіторыя знарок. Чыстая папка патрэбная там, дзе мераецца сама мадэль. У жніўні я налічыў 0 працяжнікаў у 30 машынных тэкстах і запісаў гэта як уласцівасць мадэлі. Насамрэч выконвалася забарона з майго ж CLAUDE.md. Тая ж мадэль з пустой папкі дала 6.10 працяжніка на 1000 слоў. Тут мераецца цыкл разам з CLAUDE.md гэтага рэпазіторыя ў кантэксце, бо так ён і працуе кожны дзень.
16 чарнавікоў праз сапраўдны канвеер
16 зацверджаных тэм, 12 для X і 4 артыкулы для блога. Механіка спрацавала на ўсіх 16: 125 спрацоўванняў, ад 1 да 20 на чарнавік. Крытык паставіў ад 2 да 5 з сярэдняй 2.9, гэта значыць 13 з 16 ляжаць на парозе або ніжэй. Цыкл спыніўся б там і аддаў файл мне.
Гэты лік давялося чыніць, перш чым ён пачаў нешта значыць. Адзін чарнавік вярнуўся загорнутым у адзін агароджаны блок ад пачатку да канца. Праверка на зрошчванне злучком выразае такія блокі, перш чым глядзець, таму ў тым чарнавіку яна ўбачыла 0 слоў прозы. Знятая абгортка гэта розніца паміж 123 спрацоўваннямі і 125.
62 спрацоўванні са 125 гэта тая самая коска. Карэляцыя адзнакі з лікам спрацоўванняў выглядае абнадзейліва, r = 0.51 на 16 кропках. На 1000 слоў яна ўжо r = -0.21. Спрацоўванні ідуць разам з даўжынёй чарнавіка, r = 0.77. Адзнака супраць даўжыні дае r = 0.41, гэта значыць першы лік кажа мне ў асноўным пра тое, што доўгія чарнавікі доўгія.
Падсадка парушэнняў
Тады я замацаваў тэкст і пачаў мяняць адно. Чысты кавалак на 857 слоў, які не дае ніводнага спрацоўвання. Унутр падсаджаны k парушэнняў аднаго правіла, k падвойваецца ад 1 да 8. Кожная версія пайшла да крытыка 3 разы, разам з чыстай базай.
Указальнікі паводзяць сябе так, як я спадзяваўся. На 8 падсадках адзнака даходзіць да 6.0, прыкметна вышэй за парог, а правіла названа ў кожным прагоне. Працяжнік даходзіць да 4.0. Маё правіла пра коску заканчвае на 2.7 пры 8 такіх косках у тэксце. Гэта ўнутры праходнай паласы, супраць 2.3 у базы, куды не падсаджана нічога. Пры 8 косках усе 3 прагоны правіла ў заўвагах называюць, а лік застаецца там, дзе чарнавік ідзе да мяне.
Лічыць, як часта крытык называе правіла, гэта месца, дзе я спатыкнуўся. Першы заход шукаў сімвал працяжніка ўнутры ягоных заўваг. Адказ выйшаў ліслівы, пакуль я не паглядзеў, што менавіта ён ловіць. Крытык сам піша працяжнікі, у 42 заўвагах з 90, у рэпазіторыі, дзе першае англійскае правіла кажа, што працяжнікаў няма. Пошук па слове dash апусціў адказ да 1 чарнавіка з 4, дзе працяжнік быў.
Той жа тэкст, 12 разоў
Сярэдняя 2.9 нечага вартая толькі тады, калі лік паўтараецца. Я прагнаў крытыка 12 разоў на адным тэксце, потым 12 разоў на тым жа тэксце з 2 падсаджанымі працяжнікамі.
Чысты тэкст раскідваецца ад 1 да 3 з сярэдняй 2.2. Версія з падсадкай усе 12 разоў адказвае 3. Крытык хістаецца на чыстай прозе і трымае адну адзнаку на бруднай. Гэта адваротна таму, што я думаў, але 1 тэкст і 1 правіла гэта тонкі доказ.
Якую справаздачу падаваць у перапісванне
Тут пытанне ператвараецца ў рашэнне. Прымусовы раунд перапісвання на 15 чарнавіках, 2 плячы, мадэль у абодвух адна. Плячо A атрымлівае заўвагі крытыка. Плячо B атрымлівае машынную справаздачу, гэта значыць імёны правілаў і лік. Абодва плячы стартуюць з тэксту ў тым выглядзе, у якім яго пакінуў цыкл, таму стартавыя лікі ў іх ніжэйшыя, чым у табліцы вышэй.
Плячо B адказала на 8 чарнавіках з 15 і завяло 4 з гэтых 8 у 0 спрацоўванняў, не ўнёсшы новага правіла нідзе. Плячо A адказала на 9 і не завяло ў 0 ніводнага. У 4 выпадках з 9 яно ўнесла правіла, якога ў чарнавіку да таго не было. Адзін артыкул пайшоў з 4 спрацоўванняў на 8, робячы роўна тое, што прасіў крытык. Пустыя клеткі гэта адказ CLI HTTP 429 пра ліміт выдаткаў. Дзясятая клетка пляча A далічылася і прапала, бо скрыпт піша файл пасля абодвух плячэй, а працэс памёр паміж імі.
Дзе падае механіка, на спісе, які я набраў сам
Праверка spelled-number спрацоўвае на ліку, напісаным словамі. Правіла гэта фраза ў апісанні голасу. Праверка, якая яго трымае, гэта спіс з 15 слоў.
Ад thirteen да nineteen у спісе няма нічога, як няма sixty, seventy, eighty і ninety. На 22 артыкулах, якія ляжалі на сайце да гэтага, а гэта 22578 слоў прозы, spelled-number не спрацоўвае ніводнага разу. Пры гэтым 8 лікаў, напісаных словамі, ляжаць у апублікаваным тэксце. 6 з 8 у адным артыкуле пра множанне, якога не адбываецца, дзе я напісаў sixteen словам 5 разоў і fifteen адзін раз.
Што я памяняў і чаго не правяраў
Раунд перапісвання цяпер атрымлівае машынную справаздачу разам з заўвагамі крытыка, на падставе пляча B. Абодва разам гэта трэці выпадак, якога ніхто не мераў. Я ўзяў яго таму, што раунд узагуле запускаецца толькі калі крытык паставіў вышэй за 3. Выкінуць ягоныя заўвагі значыць пакінуць без адказу прычыну раунда. Фраза з README выжывае ў больш вузкім выглядзе. Механіка адказвае за тое, што нехта ўжо набраў у спіс. Крытык адказвае за астатняе. Яму можна пакласці жорсткую праверку проста ў промпт, а ён усё роўна прапусціць чарнавік, які парушае яе 8 разоў. Гейтам адзін для аднаго яны не працуюць. Вось гэтую частку я разумеў няправільна.
Я не правяраў, ці мае лік крытыка хоць нейкае дачыненне да таго, ці прыемна тэкст чытаць. Чалавечых адзнак тут няма нідзе. 3 прагоны на клетку гэта мала. Гэта адзін промпт на адной мадэлі.
У ліку ёсць яшчэ адна дзірка, якую я не закрыў. Чарнавікі тут судзіліся цэлымі файламі, а крытык судзіць пост унутры іх. На 10 чарнавіках для X, дзе пост ляжыць у агароджаным блоку, паловы з постам даюць 25 спрацоўванняў супраць 47 у прыпісках. Прыпіскі не ідуць нікуды. 2 паловы пры гэтым не складаюцца ў лік па цэлым файле, бо адна з праверак выразае агароджаныя блокі, перш чым глядзець.