Градење даночни агенти што сами се подобруваат со Codex
Од членови на техничкиот персонал: Aravind Srinivasan и Samay Shamdasani (Thrive Holdings), Arthur Fernandes Araujo и John de Wasseige (OpenAI)
Како Thrive Holdings и OpenAI заеднички го развија Tax AI за сметководителите на Crete со спојување на експертизата на практичарите со јамка водена од Codex
Системите од реалниот свет се однесуваат поинаку во продукција отколку во лабораторија, и се расипуваат на начини што тешко се предвидуваат пред пуштање. Тимовите често ги откриваат тие неуспеси по лансирањето, а потоа поминуваат недели во проверка на гранични случаи, приспособување промптови и претворање на продукциските повратни информации во трајни подобрувања на производот. Јамката за повратни информации е рачна и бавна, и се подобрува само кога инженер ќе ја придвижи. Но денес, со внимателно дизајнирана eval-инфраструктура, директен пристап до практичари и реални средини, и граничните агентски способности на Codex, можете да изградите агенти што сами се подобруваат.
Во овој текст ќе објасниме како го искористивме Codex за да изградиме ваков тип агент. Во изминатите шест месеци, инженери и истражувачи на OpenAI распоредени на терен, заедно со инженерите на Thrive Holdings, соработуваа за да го изградат Tax AI заедно со и за мрежата на Crete(се отвора во нов прозорец) од повеќе од 30 сметководствени фирми, за да помогнат во подготовка на сè посложени даночни пријави. Наместо да се потпира на инженери за да го најдат и поправат секој неуспех, Tax AI го користи Codex за да ја претвори употребата во продукција во структурирани сигнали што поттикнуваат автономно подобрување.
Практичарите во Crete подготвуваат десетици илјади даночни пријави секоја сезона, што бара работа низ милиони основни документи. За поднесоци со средна до висока сложеност, само внесувањето податоци може да одземе осум часа по пријава, често со неуредни извори на податоци, документи од претходна година и рачно извлекување и пресметување. Тие ни укажаа дека даночната подготовка е значајно тесно грло во најзафатениот дел од даночната сезона.
За да го реши овој проблем, Tax AI обработи 7.000 даночни пријави низ фирмите на Crete што учествуваа во пилотот оваа даночна сезона. Системот автоматизира голем дел од временски интензивниот процес на подготовка на даночни пријави 1040 и 1041, но уште повпечатливо од добивките во ефикасност е тоа што самиот систем е мерливо подобар од верзијата што првпат беше пуштена пред три месеци.
Во Tax AI, практичарите прикачуваат изворни датотеки заедно со какви било белешки специфични за клиентот. Потоа Tax AI создава поднесок за даночниот мотор, подготвен за преглед. Тоа им заштедува на практичарите околу една третина од времето за даночна подготовка, изготвува пријави со точност до 97% и го зголемува капацитетот за околу 50%, создавајќи повеќе простор да поминуваат време со клиентите.
Ова подобрување можеме да го квантифицираме со разбирање колку точно Tax AI може да пополни пријава без подоцна да биде потребна корекција. Точноста ја мериме со проверка колкав удел од пријавите достигнува 75%, 90% или 100% правилна пополнетост на полињата. При лансирањето, само четвртина од пријавите беа на 75% правилна пополнетост на полињата, но во рок од шест недели 86% го достигнаа тој праг. Системот покажа уште побрз раст на нивоата од 90% и 100% правилна пополнетост на полињата. Овие прагови ни даваат практичен увид во тоа колку дополнителна работа од практичар сè уште бараат различни пријави.
Во почетокот, Tax AI се справуваше со поедноставна работа, како W-2 и 1099. Како што сезоната одминуваше, премина кон посложени пријави со K-1, распореди и потешки гранични случаи. Секоја нова способност штедеше повеќе време по пријава од претходната, бидејќи задачите што ги преземаше беа потешки и одземаа повеќе време ако се прават рачно. И денес продолжуваме да гледаме постојан напредок.
Следно, ќе објасниме како нашите тимови заеднички го инженеруваа Tax AI за да се самоподобрува потпирајќи се на три клучни столба: 1) повратни информации од експертски практичари, 2) продукциски траги (структурирана историја од влезови до конечен излез), и 3) јамка на итерација водена од Codex врз основа на приспособени evals за да овозможи континуиран и побрз развој на производот. Се надеваме дека нашето искуство ќе им биде корисно на други градители во домени каде што експертизата на практичарите е клучна за обликување на квалитетот на поширокиот систем и на податоците што течат низ него.
Како што Tax AI се прошируваше кон посложени пријави, уделот на оценети пријави што достигнуваа 75%, 90% и целосна пополнетост продолжи да расте во текот на даночната сезона.
Како што навлегувавме во потешките делови од даночната подготовка (K-1, распореди за недвижности за изнајмување и даночни формулари каде што вредностите мораа да се усогласат низ повеќе изворни датотеки), стана очигледно дека вистинскиот предизвик е дали производот може да ги направи сложените продукциски неуспеси видливи, разбирливи и применливи.
Во раните денови на производот, најголемиот дел од корекцијата беше рачен. Практичарите можеа да ги коригираат грешките на системот, но производот не го фаќаше целиот контекст: изменета вредност пред поднесување можеше да одразува вистински пропуст при извлекување, проблем со мапирање, недостиг на поддршка во производот или очекуван шум во работниот тек. Разрешувањето на тие случаи и понатаму бараше дополнителна работа од инженерскиот тим. Инженерите можеа да користат кодирачки агенти, но системот сè уште не беше дизајниран значајно да користи AI во рамките на јамка за подобрување. Немавме сигнал за да го идентификуваме вистинскиот рид за искачување.
Тоа нè наведе да го дизајнираме системот околу три столба:
- Останете блиску до практичарите: Луѓето што ја вршат работата треба да насочуваат што учи производот. Нивната интуиција и разбирање откриваат кои грешки се важни и помагаат да се одреди на кои делови од работниот тек вреди да се фокусираме следно.
- Изградете го производот така што продукцијата создава докази: Производот мора да фаќа повеќе од само влезови и излези; треба да ја фаќа целата патека од изворниот материјал, преку извлечените полиња и нивното потекло, до поднесувањето надолу по текот и експертската корекција.
- Создадете јамка за подобрување водена од Codex: Откако продукциските проблеми ќе станат видливи и структурирани, тие можат да станат наоди, приспособени evals и ограничени инженерски задачи. Потоа Codex може да помогне во истражување, предлагање промени, нивна валидација со насочени и регресиски evals и побрзо придвижување на производот отколку со чисто рачен циклус на итерација.
Примерот со имотите за изнајмување подолу покажува како таа јамка функционира во пракса, водејќи ве низ тоа како корекција од практичар станува структуриран наод, потоа цел за евалуација и конечно инженерска задача ограничена за Codex.
Приходот од имот за изнајмување се пријавува во Schedule E на индивидуална даночна пријава. Од инженерска перспектива, задачата за негово извлекување е едноставна за опишување, но тешка за добро изведување. Системот мора да чита неуреден изворен материјал (рачно напишани белешки, е-пошта, табеларни пресметки и други клиентски датотеки), да ги извлече полињата за имот за изнајмување што системот може со доверба да ги мапира во даночниот мотор и да зачува доволно докази за практичарот да може да го одобри или коригира резултатот. Поедноставениот пример подолу покажува како би можеле да изгледаат тие изворни датотеки и извлечени излези.
Изворниот пакет за имот за изнајмување се нормализира во полиња со цитати пред тие да се мапираат кон поимите на даночниот мотор надолу по текот.
Разликата меѓу вредноста што ја предвидел агентот и вистинската вредност од поднесената даночна пријава може да укажува на вистински пропуст при извлекување, но може да биде и преференција на практичар, вредност пренесена од пријава од претходна година во даночниот мотор или вредност внесена или изменета на друго место во текот на работниот процес на поднесување. Практичарите ни помогнаа да ги разликуваме тие случаи за да можеме да утврдиме кои дејства барале корекција од практичар или блокирале поднесување.
Бидејќи можевме детално да ги видиме овие корекции, го претворивме процесот на преглед од завршен чекор по неуспех во континуиран циклус на учење. Го дизајниравме работниот тек така што експертските дејства да се фаќаат како структурирани податоци. Сега, секоја интервенција ја храни јамката за подобрување на производот со тоа што точно бележи што предложил Tax AI, што изменил практичарот и што на крајот влегло во поднесената пријава.
За сложен работен тек како имотите за изнајмување, системот мора да зачува што се случува меѓу изворните датотеки и поднесената пријава. По тој пат, документите се организираат, делат и класифицираат; полињата за имот за изнајмување се извлекуваат со цитати назад до изворниот материјал; тие вредности се мапираат во даночниот мотор; а практичарите сè уште може да ги коригираат пред поднесување. Тие траги на ниво на производ овозможуваат да се истражи каде настанал неуспехот. За корекциите од практичарите да се претворат во корисни цели за евалуација, системот ги обработува во три чекори:
- Фатете ја разликата: Излезот на Tax AI се споредува со поднесената пријава за да се создадат редови за преглед на ниво на поле што ја бележат очекуваната вредност, предвидената вредност и дали разликата изгледа применлива.
- Групирајте поврзани неуспеси: Сличните редови за преглед се групираат за да се одвојат повторливите неуспеси на производот од очекуваниот шум во работниот тек. На пример, повторените корекции од практичари може да покажат дека Tax AI често ги пропушта полињата „денови на фер изнајмување“, погрешно ракува со „други трошоци“ или меша повеќе имоти за изнајмување во истиот изворен пакет.
- Претворете ги повторените обрасци во цели за евалуација: Откако ќе бидат прегледани и измерени, повторените наоди стануваат јасни цели за евалуација што Codex треба да ги подобри.
Редовите за преглед на имот за изнајмување ги одвојуваат повторливите неуспеси на производот од очекуваниот шум, а потоа применливите случаи ги претвораат во цели за евалуација што му даваат на Codex рид за искачување.
Третиот столб е создавање инженерска јамка способна да дејствува врз овие нови evals. Тука Codex станува централeн.
Да претпоставиме дека нашата eval-линија означува дека Tax AI постојано го пропушта полето „денови на фер изнајмување“, додека практичарите сигурно го пополнуваат. Бидејќи овој наод веќе е спакуван во насочен eval-сет, со репрезентативни изворни пакети и очекувани излези, Codex може директно да ја истражи основната причина во рамките на скелето на производот.
Codex не работи само со слаб краен излез. Тој ги разгледува трагата, eval, репозиториумот и вештините заедно:
- Истражете ја линијата: Проверете ги изворните пакети, шемите за извлекување, однесувањето на маперот и патеките на кодот за да утврдите дали проблемот е неподдржано поле, пропуштен образец за извлекување, проблем со избор на извор, празнина во маперот или проблем со оценувачот.
- Спроведете насочени поправки: Проширете ја шемата за извлекување, подобрете го изборот на извор за документи за имот за изнајмување, ажурирајте го маперот на даночниот мотор или доработете го оценувачот ако очекуваниот шум во работниот тек се брои како неуспех.
- Потврдете и предложете: Повторно извршете го насочениот eval, пуштете пошироки регресиски пакети и прикажете кандидатско барање за повлекување за инженерски преглед.
- Затворете ја јамката: Претворете повторлива корекција од практичар во мерлива инженерска задача. Ако доказите се двосмислени или не можат безбедно да се автоматизираат, случајот се враќа кај тимот за производ наместо насила да се турка низ јамката.
Целосната јамка за самоподобрување: продукциските траги откриваат повторени корекции на ниво на поле, кои стануваат сигнали за неуспех што Codex може да ги испита заедно со трагата, evals, репозиториумот и вештините. Применливите обрасци стануваат ограничени evals и кандидатски промени на производот; двосмислените случаи се враќаат кај инженерите за преглед. Секое испорачано подобрување создава нови продукциски докази за следниот циклус.
Примерот со имот за изнајмување е симболичен за поширок повторно употреблив образец: користење продукциски артефакти и траги за подобрување на способностите на агент. Со прегледани наоди од продукциски податоци, изворни траги, очекуван излез од даночниот мотор, релевантни примери на код и eval-команди како збир на влезови, Codex може значително да ги подобри перформансите и точноста во текот на недели и месеци. Ова се надоврзува на принципите опишани во нашата работа за harness engineering и Symphony, кои објаснуваат како задачите да станат читливи за Codex, како да се обезбедат ограничен контекст и алатки и како валидацијата и човечкиот преглед да останат дел од околината.
Тој доказ не станува задача за Codex автоматски. Корекција од практичар може да одразува пропуст при извлекување, проблем со мапирање, неподдржано однесување на производот, даночна проценка или очекуван шум во работниот тек. Само откако повторените разлики ќе бидат прегледани и групирани во применлив наод, системот ги претвора во ограничена задача со јасен услов за успех.
Оваа автоматизација ја применуваме на ограничен слој од производот. Овој слој врши извлекување и ги мапира изворните документи во даночни работни текови. Инженерите остануваат одговорни за архитектурата, одлуките за производот и испораката. Практичарите ја насочуваат јамката за подобрување преку работата што веќе ја прават: коригирање извлечени вредности, прегледување пријави и одобрување конечни поднесоци.
За Codex, резултатот не е нејасно предупредување, туку ограничена инженерска задача со докази, површини на производот што може да се уредуваат и експлицитни порти за валидација. Контекстот за репрезентативна задача за имот за изнајмување може да се сумира вака:
Истата јамка важи и надвор од имотите за изнајмување. На имотите за изнајмување им беа потребни околу шест недели и значителен инженерски надзор за да достигнат 90% прецизност и одзив, но таа работа создаде повторно употребливи апстракции, артефакти за преглед, eval-конвенции и обрасци за имплементација што го олеснија поддржувањето на слично сложени распореди како Schedule C и Schedule A.
Tax AI покажува пат кон градење агенти што сами се подобруваат. Практичарите создаваат сигнали за повратни информации со висока вредност преку самото извршување на услугата. Работните текови на производот ги зачувуваат тие сигнали како структурирани докази. Инженерските системи поткрепени со eval ги потврдуваат подобрувањата пред да стигнат во продукција, а јамка напојувана од агент го одржува системот во континуиран тек на самоподобрување.
Структурата на Thrive Holdings ни овозможува да ја реплицираме оваа околина во конкретни индустрии. Holdings е и сопственик и оператор, па нашите здружени инженерски тимови можат директно да работат со практичари и продукциски податоци одвнатре во бизниси како Crete, не како добавувач туку како партнери. Ова значи дека технологијата, производот и услугата се под еден покрив за да ни помогнат да се движиме побрзо и да градиме исклучителни производи.
Една виша сметководителка која минатата година потрошила 180 часа на даночна подготовка, оваа година потрошила само 15 часа. Дел од тоа време го вложила во тоа да му се јави на секој свој клиент и да ги помине пријавите со нив, ниво на високо персонализирана услуга што пред една година не беше можно. Остатокот од тоа време го искористила за да преземе нови клиенти и да се прошири со нови услуги.
Заедно, нашите тимови сега го користат истиот триделен дизајн од Tax AI како нацрт за градење работни текови во други домени низ Thrive Holdings(се отвора во нов прозорец); сметководствени работни текови како книговодство и ревизија, и оперативни работни текови како автоматизација на IT help desk. Низ домени и индустрии, поширокото ветување на агентите што сами се подобруваат останува. Најдобрите агенти се насочувани од луѓе за со текот на времето да станат поспособни, подоверливи и повредни.
За да дознаете повеќе за тимот на OpenAI што работеше на овој проект, контактирајте нè.


