Галоўная / Артыкулы

Форма анталогіі супраць памеру мадэлі: што дызайн графа каштуе AI-агенту

Як тры формы аднаго страхавога графа ведаў без страты інфармацыі змянілі дакладнасць, колькасць выклікаў інструментаў, токены і кошт для малых і вялікіх мадэляў у Azure Cosmos DB.

Выдавец: REACTAPP.TOP30 хв чытання6885 слоў

Крыніцы: Your Agent Is Not Confused, Your Ontology Is

Калі агент работае некаляк, большасць команд выбірае рацэй — іспользоваць большую мадэль. Хоць і гэта спрацоўвае, цэна такога падходу прыблізна у чотырнаццаць разоў вышэ, чым аднародна практыка выправлення структуры графа. Гэтыя даны атрыманы ў ходзе эксперыменту, калі тыя ж факты былі смодэлізаваны трохма разнымі способамі, а агент у Microsoft Foundry меў чатыры інструменты для праходжэння па графе і жадных іншых спосабоў знаходжэння адпаведзі. Меравалася цэна формы знання за кожны запіт.

Вышэй паказаны тры варыянты структуры адной базы фактов, а ўсьго ў іх 2,435 фактов. Кожны панель являецца справжнім падграфам, взятым з дадзеных эксперыменту, і паказвае, як кожная онтологія прымае суседства тых самых трох адзінакоў страхавання. У плоскай структуры элементы знаходзяцца внутры атрыбутаў, таму практычна няма жадных звязкаў між ямі. У нормалізаванай структуры кожны факт стае самастоятным вершынам: нічога не з’яўляецца, але нічога таксама не мае назвы. У структуры з формамі кожная ентытэт атрыбутуецца, а кожны рэглі ўпісваецца з назвай. Агент, модэль і база дадзеных залішаюцца ідэнтычнымі ў всіх трох варыянтах, а толькі форма зміняецца.

Пачаткова інформацыя пра даны. Усё ў яй вымышлена: людзі, компаніі, месцы і страховыя компаніі беруцца з складзеных спісакоў слоў з фіксаваным «насеннем», таму нічога з гэтага не апісвае рэальных рэчаў. Значэнні памероў падаюцца з рэальных запускаў у Сведзійскай Цэнтральной зоне. Аналіз веліся на спецыяльнай паляве Microsoft Foundry, даны зберагліся ў Azure Cosmos DB для адной з установак Apache Gremlin, а кожны вызов інструменту быў запытам Gremlin, які адбіваўся да рэальнай графы. У суме гэта даў 480 эпізодаў агентаў, 4,3 мільйона токенаў і 8,09 долараў. Першы праход па той самай сетцы, калі інструменты чыталі файлы-генераторы заместо базы дадзенаў, коштаў 7,74 долара; гэты праход называецца перапрацоўкай для пераканання. Усі паказаныя цыфры падаюцься з кампаній Cosmos, а перапрацоўка для пераканання выконваліцца толькі тады, калі два запуска разам паказваюць ўсё тое, чаго не мог адзін запуск.

Слой, які ніхто не апдэйтуе

Команды, які стварыяюць агентаў, часта павтараюць аднаковы рытуал. Агент не можа адпаведзець на запытанні, якія ён павінен рашыць. Хтось прапанавае выкарыстоўваць болей складную модэль. Рахунак удвойваецца, проблемы пераходзяць на іншыя запытанні, і пасля аналізу выявляецца, што агенты яшчэ не гатовы.

Маладзе хто выкладае на стол справжні матэрыял – форму знанняў, якія былі даны агенту. На момент забудзімо пра факты. Запытаймыся, чы рэгулятор являе сабою вузол чы строку, захаваную ў JSON-об’екце, чы атрыбут мае значэнне assessed_by чы проста related, і чы пераход з заявы да страхаванага аб’екта адбываецца за адні чы за пяць крокаў.

Пярэднія выкананыя мерыяванні стосаваліся сістэмы, якая прымее рашэнні, і інструмента, які фіксуе гэтыя рашэнні. У іншых даследаваннях трывалая публічная серыя стварыла шар стойкіх знанняў, запускала агенты на яму на адпаведных сінтэтычных даных страхавання і аргументавала неабходнасць спрыяць таму, каб знанні вважаліся спецыяльна створаным продуктам, а не простаю кантэйнерам для выкарыстоўвання інфармацыі. У гэтых аргументах не хватала мерыявання, і гэты эксперымент яго запраўляе. У яму додаўаецца шар да базы, над якой працуюць агенты, і ставіцца пытанне, на якое рэдка калі магчыма атрымаць цыфры: калі мадэль, інструменты, запрошэнні і факты застаюцца незменнымі, а змінюецца толькі форма онтологіі, як тады выклікаюцься тачнасць, зусілля і вітраты?

Эта першая адказка выклікае працоўку, таму весь сіткавы аналіз быў перапрацаваны на значна большай модэлі, каб выявіць, чы можа грошы проста перагнаць граф з паслабай структурой. Гэта можліва. Цікавым ёсць сама цена, а таксама тое, што яна гаворыць пра структуру, якая варта стварэння. Як і раней, кожная тэза патрэбуе падтверджэння.

Тры формы адной правды

Тэставы домэн — гэта страховы бізнес з аб’ектамі, такімі як страхавальнікі, страховыя полісы, фарматы застрахоўвання, прэтэнзіі, аджустары, паслугі з рэмонту, платэжы і рэгіоны. Скрыпт, створаны спецыяльна, выдалаў усё гэта адной час, даўшы 2,435 канонічных фактов пра 507 аб’ектаў, кожны з якіх ёсць вымышленым.

З той жа базы фактов выходзяць тры онталогіі. Называць іх трыма наборамі дадзеных было бы некалькана; яны ўсе ў тры разныя формы тых сабе дадзеных, пад аднай і той жа керуючай правілам: кожны варыант павінен пераказваць факты без дадатковых дапамог і без втрат. Чыба прымусіць гэта, скрыпт пераглядае кожны створаны граф, пераконструюе факты і пераканаецца, што рэзультат абсалютна збіраецца з вачаго джэрэла. Варыант, які знае адзін факт больш чым іншы, ператварыў бы гонку на тэст паверхневасці дадзеных. Сістэма CI для хранення дадзеных адрабатвае гэты пераказ на кожным дадзеным падаце на галоўную гілку і на кожным запрошэнні прыўязкі, а таксама пераканаецца, што зафіксаваныя дадзеныя збіраюцца байт за байтом з тымі, якія генеруець вачага код, і эксперымент вважаецца недзейсневым, калі не працуюць оба тэсты. Існуе парадокс справядлівасці: прыстройкі тыпу “Flat” і “Shaped” былі створэны без апілу да набора фактов, што робіць ўсі ўсвядомленні, якія яны даюць, болей сутэйнымі, тады калі нормалізаваны граф кодуецца безпосерэдна з фактов, таму ён, за сваёй структурой, болей блізкі да адпрацаваных даных, чым да доказаў.

Тып “Flat” — гэта тое, што багато команд зазвычай першым выпускаюць, і ён выкарыстоўвае толькі два тыпы вузлаў. Кожны вузел страхавання зберагае свае полісы і ўмовы страхавання у вачынку JSON у адной власнасці. Кожны вузел прэтэнзіі таксама зберагае інформацыю пра свага адпрацоўвальніка, паспрабоўчыка і платэжы. Одны загальны тып рэшткі, related, спаявае власнікаў страхавання з прэтэнзіямі, і гэта ёсць весь схематызм. Уся інформацыя існуе, але залягае “закопаная”.

Нормалізацыя неякша ў працоўным напрамку і не ўтварае вымышленага працоўнага рашэння, адтолькі што падручнік бы яе аплодаваў. Яна утварае аб’екты ў вачыні простых вузлоў Resource, якія несу толькі іх тып; кожны атрыбут стае вузлом Attribute, да якога можна дасягнуць праз генерычную грань has; а кожныя адносы стаюць вузламі Relation з гранямі subject і object. На паперы ўсё выглядае бездоганна, але для выучэння чаго-небудзь трэба чатыры крокі.

Shaped створаны с урахоўваннем спожыцеля, які яго насправды будзе вядомаць. Тыпы вузлаў маюць чыстаўленую ступень дзеярганізацыі, а кожны рэглон мае направленне, тып і назву, якія маюць значэнне, такія як filed_against, assessed_by або settles. Палітыкі паказваюць аб’екты, якія іх выкананы, за дапамою held_by, і тая ж назва вікорыстоўваецца з яшчэ аднай цікавай метай: дзевяносто рэглонаў held_by, якія ведуць з заявы безпасовершна да яе аб’екта, выкананага палітыкай, і такім чынам скарацуюць шлях з заявы да аб’екта, выкананага палітыкай, да аднаго крока. Павторны вікорыстоўвання назвы ёсць намераваным, таму што адносы выглядаюць аднакова з обох бакоў, і агенту не патрэбна другая лексыкантная база. Дзевяносто рэглонаў маюць флаг derived, не дадаюць жадных новых ведамасцей і не включаюцца ў доказ без апылу, таму што яны ёсць арытмэтычнымі вырахункамі на аснове вялікі ўжо існуючых фактов.

На рысунку 1 паказана адна звязка — тэза і адпрацоўчы, які яе ацэнюе, — у всіх трохох фарматах. У фармаце «Flat» адпрацоўчы ўключаецца як атрыбут JSON да тэзы, і практычна нічога не ўз’ятоя з’еднуецца. У фармаце «Normalized» для гэтай звязкі ствараецца самостойны вузол, два рэбра, а таксама окрэмы вузол атрыбута для кожнага факту. У фармаце «Shaped» проста называецца рэбро, і на панелі таксама паказана прычына існавання гэтага спецыяльнага скарыгання. Скрыпт рэканструкціі паўтарае, што ўсе троха фарматы маюць роўна 2,435 фактав.

Колькасць вузлаў дапамагае адразу паўтарыць сутнасць. Адна сукупнасць правды займае 130 вузлаў у фармаце «Flat», 507 у фармаце «Shaped» і 2,942 у фармаце «Normalized», пры чым кожны дадатковы вузел — гэта месца, куды агент можа патрабаваць прыйсці.

Конкрэтная аб’екта паказвае разлік лепшая, чым опіс. Возьмім поліс, які стане відомым завдзяк рэзультатам; кожны варыянт сахоўвае яго так, як і ён ёсць:

Рысунак 2 выкарасцоввае політыку P-7009 адразу з файлаў онталогіі, якія былі збераглі, за дапамою скрыпты для адрасавання рысункоў — тых самых файлаў, якія былі завантажаны ў Cosmos, таму ён паказвае адносна таго, як праходзіў агент. Фармат Flat збераглівае політыку як строку ў власнасці страхаванага аб’екта: яна там ёсць, але не ўтварае вершыну і не можа быць адрасаваная. Фармат Normalized збераглівае яе як простую вершыну Resource, пры чым кожны з ўласнасцяў знаходзіцца ў окрэмай вершыне, якая знаходзіцца на два крокі даўжэй. Фармат Shaped збераглівае вершыну з адзінаковым тыпам, да якой прыўязаны ўласнасці, а таксама іменаваные рэшткі, якія веду ад яе. Страховая складка ў всіх трох прыкладах застаецца адной і той жа, пры тым яе адстань ад пытання разлічыцца.

Кожная фігура знаходзіцца у сваім сабе кантэйнерэ графа ўнутры Azure Cosmos DB для Apache Gremlin, і самэ гэтае агент пераходзіць; кожны вызов інструмента ператвараецца на пераходы Gremlin у жывым графе. Генератор выдае базу фактов, загрузчык запісвае яе ў Cosmos, а сістэма загрузкі сама аўдытуе сабе: колькасць вершын і рэгуліў должна быць такой жа, як у вучынні, інакш будзе зафіксавана несувярэннасць, а не знайдзены напаловы створаны граф.

Одна база дадзеных, адна шар гэтых інструментоў і ідэнтычныя стандартныя параметры індэксавання — гэта тое, што робіць дызайны порównымымі, а таксама робіць іх віднымі. Граф атрыбутаў нічога не скрывае. Запытайце яго пра тое, што ён знае, і адказам будзе сам дызайн.

У табліцы 1 під кожным схематызам урахоўваны тыя ж 2 435 фактов, якія беруцца з файлаў графа. У фармаце “Flat” колькасць вершын большая за колькасць рэгулярных рэшткі, і існуе пяць вершын, да якіх нічы не прыяўляецца. У фармаце “Normalized” структура ўніфікованая і не містыць слоў. Фармат “Shaped” ўтварае найлепша з’яўленая сітка, а ў яго атрыбутах вікорыстоўваецца слоўнік домэны.

Вернімся да столбца “Flat”. Колькасць рэгулярных рэшткі меньшая за колькасць вершын, і пяць вузлаў не праяўляюцца ні з кампанем; гэта аблікованцы без прэтэнзій, і за такой структурой нішто інша не ведае да яных. Цэў граф-база дадзенаў, якая зберагае ў сабе тое, што ледзь можна адназначна атрыбутаваць графам. Структура все ўсё існуе, але яна была ператворэна ў 8,2 атрыбутаў на кожную вершыну, таму яна паводзіцца як тэкст, а не як топалогія. Рэзультаты залежаць ад гэтага выбору структуры, і граф-база дадзенаў прызнае гэта фактам, а не думкай.

Нормалізаваныя столбцы яго відбіваюць. Гэта найбільш аднородны з трохох графаў: прыблізна адна грань на кожны вершак, нічога ізольаванага, 1,6 атрыбутаў на кожны вузол, адтак як рэіфікацыя ператварае кожны факт у тыя ж тры базовыя елементы, якія павтараюцца 2,942 разы. Структура ў меры наяўна, а лексыкі няма — тры пазначкі вершакоў і тры пазначкі граней пакрываюць усю страховую дзейнасць.

З 1,36 граней на кожны вершак граф з такой структурой ёсць найкрашча з’еднаны, у яго ёсць восьмыя пазначкі вершакоў і дзевяць тыпаў граней. Разлік стае відразу зрозумілы, калі кожнаму графу запытаюць, якія елементы ён мае:

g.V().groupCount().by(label)
  • У плоскай структуры выклікаецца толькі прэтэнзія (90) і страхавальнік (40).
  • У нормалізаваных атласах выклікаюцца Рэсурс (507), Атрыбут (1834) і Связь (601).
  • У формаваных спісах ўказаны восьмыя тэгі домэна: 216 – пакрыцце, 90 – прэтэнзія, 75 – страховка, 59 – адплата, 40 – страхавальнік, 12 – прадаўцы, 10 – аджустары і 5 – рэгіон.

Другі запыт пісае колькасць страховак па тэгах:

g.V().hasLabel('policy').count()

У табліцы 2 адна запытка стоіць праз тры адпаведныя адказы. Оба нуля ўоскледжваюць неякія неудачы разных родаў. У плоскай графіцы проста няма можлівасці знайсці правілу. У нормалізаванай графіцы правілу існуе, але яно не будзе сабе адзначаць. У плоскай версіі была выключана ентытас; у нормалізаванай ентытас застаўся, але была выключана лексыкантная частка, таму да правілу можна дасягнуць толькі па шляху, а не па імені. Нічога з гэтага не вынікае з таго, як саме былі збераганы даны: тры схемы, адна база дадзеных, адна запытка.

Той жа дзісбаланс выклікаецца пад час калькуляцыі цены за рэалістычны запыт. У якім горадзе жыў страхаваны, для полісы, якая стоіць за заявкай C-31020? Кожная графіка адпаведзае Larkfield, таму што кожная графіка мае тыя ж факты. Разлічаецца толькі шлях, якім даўся да яго дасягнуць. У графіцы з формамай выведзеныя рэшткі скорачаюць гэты шлях:

# shaped - the derived shortcut collapses the path
g.V().has('number','C-31020').out('held_by').values('city')

Плоскія нормалізаваныя графікі трэбуюць гэтаго замест:

# flat - one hop, but only because claims and holders are the only two things
g.V().has('number','C-31020').in('related').values('city')# normalized - the same answer, five steps and two unwrappings later
g.V().has('value','C-31020').in('has')
     .in('subject').has('kind','filed_against').out('object')
     .in('subject').has('kind','held_by').out('object')
     .out('has').has('attr','city').values('value')

Flat справляецца з гэтым за адзін крок, таму што ў гэтым схематызме існуюць толькі два тыпы элементаў — адзін запіт і адзін власнік. Нормалізаваны падход выклікае патрабованыя пяць крокаў і два этапы распакоўкі. Агент ніколі сам не складае гэтыя запіты; ён знаходзіць шлях па аднам вызову інструмента за раз, і гэта ўсё, што мае значэнне ў эксперыменце. Тым не менш, запіты паказваюць, што саме адкрываецца і скількі гэтага існуе.

На рысунку 3 паказана, што ідэнтычны запіт запускаецца над усіма трыма графамі ў Cosmos DB Data Explorer. Незалежна ад таго, чы граф мае два атрыбуты, тры мета-атрыбуты чы даныя, выражаные саюзным мовам, схематызмы не зберагаюць розныя даныя; яны зберагаюць адзін набор дадзеных у розных фарматах.

На рысі 4 у кожным графе выбіраецца прэтэнзія C-31020, і прыстрой Data Explorer адразу паказвае яе суседаў. У плоскам графе можна дасягнуць толькі аднаго вершыні – абяцаванага, праз рэштку, пазначаную як related. Аджустэр AJ-09 і прэтэнзія PL-043 відны ў панелі настройкаў, але у вастоўнай форме, таму агент не можа да яных дасягнуць. У нормалізаваным графе выступае восем вершын, шасць атрыбутаў і два зв’язку; ніхто з іх не пазначаны мовай домэна. У графе з формамай тры з іх пазначаны: filed_against, assessed_by і held_by. Адна прэтэнзія, адна база дадзеных, тры расстоянні.

Інструмент: чатыры засобы і квітанція

Агента выкарыстоўваецца як магчыма менш, таму што ён не ўсё тое, што тэстуецца. Гэта простая петля вызоў функцый, якая працуе з розгортаннем модэля Microsoft Foundry, налаштаваная так, як опісваюцься у дасягліках Foundry ўжыццё інструментаў праз Chat Completions API. Ёсць фіксаваны прыказ сістэмы, ліміт у шысцьнадцаць перакручэнняў модэля на запыт (пасля чаго эпізод завершаецца), і чатыры інструментаты, якія ўсе ўзаімна ідэнтычныя ў трох онтологіях.

На рысунку 5 паказана ўся структура вычысленняў: адна рэсурс Microsoft Foundry, якая храніць два розгортанні модэляў — agent-small, які працуе з gpt-5.4-nano, і agent-large, які працуе з gpt-5.5, оба з класы Global Standard. Назвы і версіі взятыя з шаблона інфраструктуры ў рэпазітарыі, таму за цымі данымі няма жадных скрытых рэсурсаў.

Чатыры інструментаты ўключаюць:

  • find_nodes шукае атрыбуты і ідэнтыфікаторы вузлаў па падстроке, адбіраючы да двадцяці рэзультатаў
  • get_node чытае тып і атрыбуты аднаго вузла
  • traverse вяртае да трыдцяці суседзяў вузла, якія можна фільтраціяваць па тыпе рэшты і напрамку
  • describe_edges падсумавляе, якія рэшты выходзяць з вузла чы ў яго заходзяць, і скількі ў кожным з варыянтаў

У сэрца кожны засоб ператвараецца ў Gremlin у Cosmos. get_node і find_nodes выконваюць по аднам праходу — адзін для чытання пункта і адзін для сканування, тады як traverse і describe_edges выконваюць тры праходы, таму што спачатку яны пераканальваюцься, чы гэты вузел існуе, а потым адна за іншайай пераходзяць па выходных і вхідных рэштках. Агент нічога з гэтага не запісвае. Ён запрашвае вузел або суседа і атрымляе компактны JSON-адказ, які ўвесь час ўжываецца як фармат адпаведных засобаў для работы з базамі графаў, і які таксама захоўвае мову запытання аддзеленаю ад самага модэлю.

Прагулка па графе — гэта едыншы спосаб з’ясаваць адказ. Агент ніколі не бачыць схемы і не пішае коду на мове Gremlin; у яго ёсць інструкцыі адпавядаць за дапамою літэралу NOT_MODELED, калі граф не мае таго, каго патрэбуе запіт. Важліва фарматырацыя: граф з неправільным структурам выконвае додатковыя вызовы інструментаў, а не дае аднаго вялікага адказу, як і стаўкаецца з рэальнымі бюджэтамі інструментаў. Ліміт у шысцьнадцаць раундоў лічыць раунды кантакту, а не вызовы інструментаў; у аднам раундзе можна запытаць пра калькі інструментаў адразу, таму найбольш насыцённы эпізод за сваіяй шысцьнадцаць раундоў выканаў шастаццаць вызоў.

Тры практычныя наўкі, атрыманыя пад час працы з сапраўдным базам дадзеных графаў, якія вымагалі перзбудовы. Cosmos не падтрымляе скрыпты з колькіма запаведзіннямі, таму завантажэнне абяўляе аднае праходжэнне па кожнай запытцы, а праўільная працэздатнасьць досягаецца за счыткам многах запытак паралельна, а не пакупнай обработкай. Строгі таймаут у 60 секунд значыць, што g.V().drop() не можа стэрць калькі тысяч вершын: ён зупініцца на паўпацёку і заставіць напалову стэрты граф, таму чыстка адбываецца па часткам. У рэжыме без сервера таксама існуе верхняя межа працэздатнасьці, якая ператварае спрыткі з чацверых адночасных запісаў у таймауты, і самэ гэта ўскладнівае працу інструментаў загрузча і агента, якія прабуюць зноў, але з адкладаннем. Нічога экзотычнага ў гэтым няма, але гэта разлічвае базу дадзеных графаў у стані спакою ад той, якая працуе пад навантажэнням.

Оцэнка без судды

Ацэнка агентаў часта стае менш строгай на этапе класыфікацыі, таму гэты варыянт прытрымаў наібольшую увагу, і ніякіх суддзяў на базе LLM тут няма. Чацвероці саптаць складаюць чатыры групы по дзесяць пытанняў: пытанні на пошук адной інформацыі, короткія пераметры з двума або трыма крокамі, пытанні, якім трэба довгі шлях або аграгацыя даных з падграфа, і пытанні, на якія нельга ўзьміць адпаведзь. Скрыпт генеруе іх на адной з базаў дадзеных і вырахоўвае кожную правільную адпаведзь на адваротнае ад асалодных дадзеных. Оцэнка ўрабляецца механічна: чысло павінна збігацца з вырахаваным значэннем, строка павінна яго мястыць, а пытанне, на якое нельга ўзьміць адпаведзь, зарахоўваецца як правільна толькі тады, калі агент чыста заявляе, што не можа на яго адпавесці. Ніякая онтологія не оцэнюе сябе, ніякі мадэль не судзіць іншую мадэль, а правільнасць вынікла з паўтарнага адліквідавання, а не з адгуків.

Паколькі агент можа дзеяць толькі за дапамою сваёй чатырох інструментаў, кожна адпаведзь супакоўвана цэлым спісам вызоў, якія яе стварылі. У пакульшых замерах рутэра поле model служыла паказнікам; тут паказнікам выступае шлях. Правільную адпаведзь можна праследаваць па кроках, а нявярная паказвае точна, дзе форма адступіла ад агента.

На рысунке 6 паказана структура. Одна база фактов задае тры формы без втрат, якія стаюць трыма контэйнерамі графаў у Azure Cosmos DB для Apache Gremlin, а аддзельны канал задае оракул, які вырахоўвае кожную правільную адпаведзь на адныя і тыя ж факты. Агент даступае да графаў толькі за дапамою чатырох інструментаў, выкананнем адной запыткі Gremlin за кожны выз. Інструменты, ціклы і запыткі застаюць незменнымі, паколькі форма змінюецца, і кожны запуск прадае паказнікі: вызы інструментаў, токены, час адпаведзі і вердыкт оракула.

Неразгадныя групы запітаў заслуговуюць на адзін статус. Іхні дзесяць запітаў прасіць пра рэчы, якія ніколі не адображаюцца ў базе фактов: номеры тэлефонаў, адрэсы электронной пошты, пагоды, номеры ідэнтыфікацыі транспортных засобаў. Правільныя дзеянні — адпаведзець, што граф не можа сказаць. Агент, які выдумвае рэштку заместа таго, каб прызнаць, што у графе яе няма, прадстаўляе найбольш апасныя недастаткі ў гэтай групе сістэм, і майжэ ніхто яго не мерыць.

Што такое вартасць праходжэння

Галоўная кампанія выканалася на рэальных графах Cosmos DB, з вікорыстаннем спецыяльнага розмішчэння Microsoft Foundry ў Цэнтральнай Швеціі. У ёй было задана троха онтологій, сорак запытанняў і тры повныя перагляды, пры чым адны маленькі мадэль застаўся незменным; загалом было 360 эпізодаў, 3,1 мільйона токенав і сямдэсят цэнтав. Кожны вызов інструменту быў запытам Gremlin. Другая кампанія, опісаная пазней, перарабатала граф на большым модэлі для ўсьмох 120 эпізодаў за 7,39 долара. Скрыпт хранілні вырахоўвае ўсі ці фіксаваныя на падставе зафіксаваных квітанцый, і жадна з іх не была введзена вручную.

У табліцы 3 падсумованы рэзультаты кампаніі: маленькі мадэль, тры перагляды, 360 эпізодаў, запыт Gremlin пасля кожнага вызову інструменту. Зелены колер пазначае найкрашчы рэзультат у кожнай строце. Строкі з рэсурсамі навмысна залішаюцца без колеру, адтуды што ўсе чатыры показнікі ў іх ёсць найніжэйшымі, і, як пакажуць наступныя раздзелы, частка этай еканаміі выкорыстоўваецца для падтрымкі адпаведных адпаведзяў, якія так і не былі дастаўлены.

Пачатакніце з вычыслення зніжкі для пераго радка — таго, які мае наіменшу колькасць інфармацыі ў табліцы. Формаваныя варыанты правільна адпаведалі на 84,2% запытанняў, простыя — на 78,3%, а нормалізаваныя — на 59,2%. Аднак у трох іншым спосабам ідэнтычных працэў точнасць гэтых варыянтав змінілася на 0,075, 0,150 і 0,075 адпаведна, таму шысць у шасця пунктав, якая існуе межа формаванымі варыантамі і простымі, знаходзіцца ў межах сопаныя шуму, і праз трох працэў нічога не паказвае, які з гэтых двух варыантав мае вышэю загальную точнасць. Перадзеўка у дваццаць пяць пунктав над нормалізаванымі варыантамі лёгка практычна пазбавляе нас шуму.

Гэта звучыць слабкія, чым ёсць на самай працэ. Загальны показнік ёсць нечысты, таму што ён ўсерэднёвае значэнні дыяпазонаў, якія супераслігаюцься значна, а сама гэтая суперасліганне і ёсць ключовым нараджэннем:

У табліцы 4 пояснюецца проблема з агрэгатнымі данымі. Формы не разлічаюцца лёгка ў всіх месцах; яны роزніцяюцца рошчэй у кожным дыяпазоне, і кожны дыяпазон ставіць разныя запытанні да графіка.

Спачатку пагляньце на пошук на адзін факт. Разлік межаў складае 0,967 для формы з выражанымі характэрамі і 0,533 для плоскай формы; разлік становіць 43 пункты, тады як шум для першай формы становіць 0,100, а для другой — 0,200, таму сігнал ёсць рэальным. Для двух- і трох-этапных праходжэнняў обе формы даходзяць да 0,967. У найскладнейшым дыяпазоне шум у розмярэ 0,300 і 0,400 не залеўае можлівасці выбраць пераможця.

Таму этыя две формы не ўжо лепшыя і не горшыя. Яны ламаюцца ў разных месцах, і ўзаўмешчанне іх у адну цыфру закрывае корыстную частку. Калі трэба ўжо што-небудзь знайсці, плоская форма не выконвае сваю задачу і продовжае ўпадаць у невыпадкі. Калі агент ужэ мае падставу і яму трэба толькі праходзіць далей, плоская форма працюе настолькі ж добра, як і запраектаваная графіка.

Нормалізаваная форма падобная да іх, як паказваюць яе дыяпазоны: 0,867 пад час пошуку, што вышэй за плоскую форму, адтакуль кожная ентыцыя ёсць рэальным вершынам; пасля чаго ці фігуры падымаюцца да 0,467 і 0,133 праз аднойчы дэлькі праходжэнняў. Яна можа знайсці ўсё, але не можа нічога завершыць.

Як кожная форма паспяшаецца

Формы разніцяюцца тым, як і дзе яны выканаюць абяканне. Кожная з іх рашыла трыдцяць запітанняў тры разы, ўсьго дзевяносто эпізодаў, і групаванне абяканняў па тыпах абяканняў адкрывае механізм гэтага працэсу.

У табліцы 5 абяканні з тых дзевяноста эпізодаў сортаваны. «Нормалізаваны» выкаранаў усю сваю квоту на спробы; «Флат» зупініўся рана і з упэўненасцю ў запітаннях, на якія база дадзенаў могла бы даў адпаведзь.

Дваццаць два з дзевяноста эпізодаў «Нормалізаванага», адносна чвэртай часткі, заканчыліся тым, што квота была выкараная, а агент застаўся ў паходзе. «Флат» рэдка так рабіў. Ён зупініўся рана і з упэўненасцю, адмовіўшыся ад адзіннадцаты запітанняў, на якія ў базе дадзенаў вялісь адпаведзі. Одна форма выкаранаецца, а другая прыпыніцца.

Прыжак абсалютнага неякісна ўражэння ёсць болей выражаным, а следы паказваюць механізм, якога ніхто не чакаў. Ёсць два рэальных прыклады. У обох случаях запрашваецца доплата за страховы поліс P-7009, і яны разлічаюцца толькі тым, якія схемы стоіць за інструментамі:

flat                                       shaped
find_nodes "P-7009"          -> 1 hit:     find_nodes "P-7009" type=policy
   policyholder:PH-05 "Ivo Renner"            -> 1 hit: policy:PL-009 "P-7009"
find_nodes "7009"            -> 1 hit      get_node policy:PL-009
find_nodes "P-7009" type=policy       -> 0     -> premium 750
find_nodes "P-7009" type=policyholder -> 1 hit
ANSWER: NOT_MODELED                        ANSWER: 750

У структураваным графе падобнае завершаецца за два запыткі. Запытайце пра поліс па номеру, атрымайце вершыну, якая яго прэдставляе, прачытайце з яе суму страхавання — і готава.

У плоскім графе сітуацыя іншая. Першы запыт вярнуў вершыну, так сама як і другі. Трэці запыт быў нацэлёваны на type=policy, але нічога не знайшоў, адтуды што такі атрыбут не існуе ў гэтым схематызме. Чатырты запыт быў нацэлёваны на type=policyholder і даў рэзультат. Такім чынам, за дапамогою тыпу агент знайшоў саме тую вершыну, якая мела адпаведныя даны, пры тым усё ж заявіў, што іх няма.

Прэмія знаходзілася ў тым вершыні, у атрыбуце, за адным вызывам get_node. У паўтора дзесятка невялікіх эпізодаў з бягамі працы сістэмы пошук без фільтраў паназначыў вершыну, якая яе мела, падзеў панздзесят разоў, а get_node быў вызваны ўжо ноль разоў. На вершыне была атрыбутная значэнне „Ivo Renner“ — імя чалавека. У рэштальных невялікіх эпізодах з бягамі працы сістэмы атрыбутная значэнне належала аднаму з двух іншых абезпечаных, а не самой страховай полісу, і імя чалавека не давало жадных падказак пра тое, чы рошаная страховая поліс знаходзіцца ўнутры.

Гэтае ёсць самэ ўзначальнае абаранне пры хаванні аб’екта, а база дадзэння у віглядзе графа яго выявляе. Дадзеныя ёсць доступныя, але нераспазнаемыя. Яны індэксаваныя, вяртаюцца праз запыт і ўсё ж знаходзяцца ў кантэксце агента, пры тым яны не падходзяць пад жаднае з імен, якія былі выкарыстаны ў запытанні.

Нормалізацыя не выконваецца адкрыта і коштуе дорага. Чытанне адного атрыбута значыць праехку праз вузел Attribute, а выкарыстоўванне адной зв’язку — адхілленне праз вузел Relation. У столцы “Токены” паказаны расценкі: 13,701 за кожны запіт проты 7,176 для формаваных структур, а такса вызоў інструментаў — 12,15 проты 7,24. У 25 з 120 эпізодаў была перакрыта межа з 16 пераходаў, проты 3 у формаваных структурах і 2 у плоскіх; найвышэйшы бал складаў 0,133. У графе не было нічога, чаго бы не хватало. Агент проста не мог дапрацаваць рэчы до канца.

Найякшы варыянт дзеўэльна ёсць найдэшавейшым, хоць гэта не ўзнагароджэнне. Варыянт «Flat» коштае $0,109 за сто запытанняў проты $0,165 для варыянта «Shaped», і якшча лічыць па точнасці, ён таксама выграе — $0,14 за сто правільных адказоў проты $0,20. Па гэтай модэлі варыянт «Flat» дзеўэльна дэшавейшы. Але ніякая цена не можа купіць тых адзіннаццаць адказоў, якія ён адмовіўся даў. Швыткая зупінка коштае недакучна, а невялікі рахунак пад нізкім лімітам не ўтварае заўсёды эконаміі, чаго ніяк не пакажае толькі столбець з костамі.

Парадокс адмовы

Найлепшыя і найгоршыя рэзультаты меняюцца мясцамі ў катэгорыі непаддаючыхся на адказ запытанняў, калі беруцца пад увагу запытанні, на якія ёсць адказ. Варыянт «Flat» правільна адмовіўся ад усіх трыдцяці непаддаючыхся на адказ эпізодаў, чым стаў ўжо ўдзеўінным з рахункам 100% у табелі. Варыянт «Shaped» пасягнуў 0,933, а пасля нормалізаціі — 0,900; ў ягох неправільныя адказы былі тамі эпізодамі, дзе заканчыліся раунды, а не вымысламі.

Якшча рассматрываць толькі гэты рад, то ён паказвае роўны рэзультат. Але калі разлічваць таксонамію фальшывых адмовленняў, то парадак змініцца: форма з ідэальным показнікам адмовленняў праігноравала адзіннаццаць запытанняў, на якія яна могла бы адпаведзець, тады як форма з найгоршым показнікам адмовленняў праігноравала трохце запытанняў. Роўны рэзультат не ўсёга лепшы для выяўлення відсутнасці адпаведзі. Ён склонны адзначаць гэта, і гэтыя склоннасці, якія праўяць у запытаннях, на якія немагчыма адпаведзець, прахацяюць у запытаннях, на якія можна адпаведзець. Метрыка адмовленняў без супакоўнай метрыкі адпаведздзям прыводзіць да стварэння найбліжэйшага да слепасці графіка, які толькі можна пабудаваць.

Наявнасць праблемы ў дызайне

Адзін рэзультат суперачыць дызайн, які падтрымвае эксперымент, а другая кампанія яго ўсё больш выяўіла. У дызайне «shaped» існуе толькі адна шорткат: held_by, якая безпасэродзейна спыяе заявку да яе власніка страховкі. Па пытанню «заявка – власнік – горад» ён павёў 0,83, тады як у версіі з нормалізацыяй – 0,33; у версіі «flat» жа павёў 0,92 без жадных шорткатаў, адтуды што ў гэтым схематызме ёсць толькі два элементы – заявка і власнік. Рэзультат, які даёт дызайн без кантавых элементаў, нельзя прызначыць кантавым элементам.

І ўсё гэта не ўсё — відсутныя скорыя способы стварылі проблемы там, дзе яны былі неабходны. Працэўнае вырахунака разных відоў пакрыцча ў меры полісаў дала 0,17 у тым, што якраз і было прызначана як добра спраектаваны граф, і 0,67 у простым варыянцы, які залучае ўсе ў адну чытальную власнасць. Сума платэжаў за прэтэнзіі власніка залічылася 0,33. Пры агрэгацыі ў падграфе прызначаны дызайн прасіўся, прыграўшы дызайну, які называецца «зламаным». Дэнормалізацыя — гэта не компроміс проты хорашага дызайну, а частка яго; кроме таго, формаваны граф застосаваў свае прынцыпы занадта скромна самэ там, дзе гэта было неабходна ў зв’язку з навантажэнням.

Выкаупленне сябе большым модэлем

Потым цэлая сетка была запрацоўвана ўдруго на значна большам модэлі, і адпаведзь на галоўны вопыт з’явілася заводзе меры таго, што яна павелілася нечакана. Спачатку прыпускалі, што маленькі модэль на графе з правільным кшtałтом павінен перамогчы большы модэль на графе з неправільным кшtałтом. Але так не сталося. У гэтыя порэвананні включаюцься толькі тыя вопыты, на якія можна дастаць адпаведзь, таму адмовы ў відпаведзях на неразгадныя вопыты не можу паспрыяць павышэнню рэйтынгу жаднага кшtałту. Кожны рад з маленькімі мадэлямі мае дзевяносто эпізодаў у трох пасах, а кожны рад з большымі мадэлямі — трыдцаць эпізодаў у аднам пасе.

Табліца 6 обмежвае ся толькі тымі вопытамі, на якія можна дастаць адпаведзь, таму правільныя адмовы не можу паспрыяць таму, каб кшtałт, склонны да адмов, выглядаў лепшая.

Большая мадэль без проблем чытае схованыя атрыбуты. Яна адпаведзіла на всі трыдцаць запытанняў у фармаце плоскага графа, укладзеных у павінносты, укладзеных у павінносты, укладзеных у павінносты, укладзеных у павінносты, укладзеных у павінносты, укладзеных у павінносты, укладзеных у павінносты, укладзеных у павінносты, укладзеных у павінносты, укладзеных у павінносты, укладзеных у павінносты, укладзеных у павінносты, укладзеных у павінносты, укладзеных у павінносты, укладзеных у павінносты, укладзеных у павінносты, укладзеных у павінносты, укладзеных у павінносты, укладзеных у павінносты, укладзеных у павінносты, укладзеных у павінносты, укладзеных у павінносты, укладзеных у павінносты, укладзеных у павінносты, укладзеных у павінносты, укладзеных у павінносты, укладзеных у павінносты, укладзеных у павінносты, укладзеных у павінносты, укладзеных у павінносты, укладзеных у павінносты, укладзеных у павінносты, укладзеных у павінносты, укладзеных у павінносты, укладзеных у павінносты, укладзеных у павінносты, укладзеных у павінносты, укладзеных у павінносты, укладзеных у павінносты, укладзеных у павінносты, укладзеных у павінносты, укладзеных у павінносты, укладзеных у павінносты, укладзеных у павінносты, укладзеных у павінносты, укладзеных у павінносты, укладзеных у павінносты, укладзеных у павінносты, укладзеных у павінносты, укладзеных у павінносты, укладзеных у павінносты, укладзеных у павінносты, укладзеных у павінносты, укладзеных у павінносты, укладзеных у павінносты, укладзеных у павінносты, укладзеных у павінносты, укладзеных у павінносты, укладзеных у павінносты, укладзеных у павінносты, укладзеных у павінносты, укладзеных у павінносты, укладзеных у павінносты, укладзеных у павінносты, укладзеных у павінносты, укладзеных у павінносты, укладзеных у павінносты, укладзеных у павінносты, укладзеных у павінносты, укладзеных у павінносты, укладзеных у павінносты, укладзеных у павінносты, укладзеных у павінносты, укладзеных у павінносты, укладзеных у павінносты, укладзеных у павінносты, укладзеных у павінносты, укладзеных у павінносты, укладзеных у павінносты, укладзеных у павінносты, укладзеных у павінносты, укладзеных у павінносты, укладзеных у павінносты, укладзеных у павінносты, укладзеных у павінносты, укладзеных у павінносты, укладзеных у павінносты, укладзеных у павінносты, укладзеных у павінносты, укладзеных у павінносты, укладзеных у павінносты, укладзеных у павінносты, укладзеных у павінносты, укладзеных у павінносты, укладзеных у павінносты, укладзеных у павінносты, укладзеных у павінносты, укладзеных у павінносты, укладзеных у павінносты, укладзеных у павінносты, укладзеных у павінносты, укладзеных у павінносты, укладзеных у павінносты, укладзеных у павінносты, укладзеных у павінносты, укладзеных у павінносты, укладзеных у павінносты, укладзеных у павінносты, укладзеных у павінносты, укладзеных у павінносты, укладзеных у павінносты, укладзеных у павінносты, укладзеных у павінносты, укладзеных у павінносты, укладзеных у павінносты, укладзеных у павінносты, укладзеных у павінносты, укладзеных у павінносты, укладзеных у павінносты, укладзеных у павінносты, укладзеных у павінносты, укладзеных у павінносты, укладзеных у павінносты, укладзеных у павінносты, укладзеных у павінносты, укладзеных у павінносты, укладзеных у павінносты, укладзеных у павінносты, укладзеных у павінносты, укладзеных у павінносты, укладзеных у павінносты, укладзеных у павінносты, укладзеных у павінносты, укладзеных у павінносты, укладзеных у павінносты, укладзеных у павінносты, укладзеных у павінносты, укладзеных у павінносты, укладзеных у павінносты, укладзеных у павінносты, укладзеных у павінносты, укладзеных у павінносты, укладзеных у павінносты, укладзеных

Такі рэзультаты ўжоць карысныя, чым тыя, што прыметваліся, за ўсё тое, што яны па сабе несу. За дапамогою модэлю-граніцы і адпаведных запытанняў форма перастала быць проблемай правільнасці і ператворылася на проблему костоў: як «плоскі», так і «формаваны» варыянты адпаведзілі на ўсе трыдцаць запытанняў, і толькі сума розлучыла іх. З малым модэлем форма была сабою правільнасць. Таму добра спраектаваная онтологія дае менш якосці, чым можлівасць запуска дэшавога модэлю. «Плоскі» граф з’яўляе зв’язак межы слою знанняў і бюджэту модэлю, працуючы толькі тады, калі продолжаецца плата за модэль, даскладны гэтак, каб ён могаў аналізаваць усе запытанні без канца.

У всіх чатырох дыяпазонах распакоўка рэзультатаў ўжоць апрантней, чым можна было бы спадзявацца, калі б лічыцца толькі можлівасць адпаведзення. З вялікім модэлем варыянт «формаваны» пасягнуў ідэальных 1,000 у кожным дыяпазоне, укладаючы ў сябе і тыя, на якія не можна было адпаведзець. Варыянт «плоскі» пасягнуў 0,950, а пасля нормалізаціі — 0,825. Грошы выправляюць правільнасць толькі часткова, а сума застаецца незменнай.

Што паведаміла перапрацоўка пра абераганне

Рэзультаты перапрацоўкі (той самы карцэ, тыя ж запытанні, апранткі, якія чытаюць файлы заместо Cosmos) далі найбольш абалоўваючыя рэзультаты праекту, і ўсе гэта сталося на адной з графік.

Калі было запытана, якая была пагода ў дзень інцыдэту, якую онтологія намеравана не мадэлюе, агент адпаведзеў: «пашкоджэння ад граду». Агент знайшоў атрыбут cause прытварэння і праказаў яго як пагодны стан. У той момент гэта было зазначана як найбольш небяспечны варыант дызайну, які спрычыніў абыекцыю, пры тым падкрэсліваючы, што гэта была толькі адна з кароткіх перапрацоўкаў, спазір, а не вімер, і ўсё гэта не магло служыць падставай для закона.

Працаванне на рэальной інфраструктурэ было правым рашэннем. У практычных тэстах графік з правільным фарматам правільна адмовіў у відпаведзі на всі дзесяць запытанняў, на якія большыя мадэлі не маглі даць адпаведзі, а графік з фальшывымі данымі показаў адпаведзь «град», на тое ж запытанне. Мадэль, запытанне і пастка былі ідэнтычныя; разлікаў была толькі форма, якая паддалася на вабленне.

Таму вынік не ў тым, што сложныя графікі спрыяюць стварэнню фальшывых даных. Атрыбут cause з значэннем «пашкоджэння градам» будзе вабіць любую мадэль, да якой ставляцца запытанні пра пагоду, незалежна ад таго, дзе яна зберагліваецца, а форма, якая паддалася на вабленне, змініцца ў кожны раз. Гэта менша тэза, чым тая, якая майжэ была сказана, і самэ гэта падтрымваюць доказы. Гэта таксама значыць, што абліка не залежыць ад формы: калі графік мае поле, якое выглядае як адпаведзь на якое-небудзь запытанне, але на якое ён не адпавядае, якая-небудзь мадэль дзе-небудзь дае такую адпаведзь.

Нормалізаваныя формы ў обох мадэлях

Нормалізаваныя показнікі загалом знізіліся ў обох мадэлях. У маленькай мадэлі ўсе показнікі былі найгоршымі, а ў вялікай мадэлі показнікі за запітанні, якія трэба было адпаведзець, залішаліся на рэвэлі 0,867, пры чым вартасць апрацоўкі складала 9,31 долара за сто запітанняў — гэта майжэ у пяце разоў больш, чым у той жа мадэлі з простым графікам, пры чым мадэль семь разоў не могла завершыць апрацоўку запітанняў. Становішча мадэлі, якая працуе з рэалізаванымі данымі, таксама не пакрашчылася у вялікай мадэлі, адтолькі проблема ціўкі не была у розумеўцы — проблемай была вялікая відстань між запітаннямі і рэспактам на яго: п’ятнаццаць вызоў інструментаў на запітанне проты 8,3 у мадэлі з нормалізаванымі формамі, пры чым тая мадэль ніколі не неправільна не распазнавала нічога.

Фарматаваныя даны не прасілі па всіх направленнях, і гэты выключэнне навучае больш за ўсё. Пры пошуку на адну характэрыстыку фарматаваныя даны параджылі 0,867 проты 0,533 для простых фарматаванняў; пры двух запытаннях, якія выклікалі проблемы у простых фарматаваннях, фарматаваныя даны явна былі лепшым выборам: 0,83 проты 0,17 для ставкі за страховку і 0,83 проты 0,33 для спецыялізаціі прадаўцы. Фарматаванне ёсць дужа дорогім, але нічога не закрывае. Кожная ентытэт являецца вершынай, таму кожную ентытэт можна знайсці.

Гэта падсумоввае аргумент: кожны неэфектывны фармат заставаў палову проблемы і адкідваў другую. Просты фармат заставаў відстань, але адмаўляў можлівасць адшукаціі; фарматаваныя даны заставалі можлівасць адшукаціі, але адмаўлялі відстань. Кожны з іх конкуруе за ту палову проблемы, яку заставіў, і ў іншай частыне ўсё ўтрачае.

“Shaped” не ўскладнення між двума падходамі. Ён павышае значэння на 0.967 у дыяпазоне, які перавышае “flat”, і на 0.967 у дыяпазоне, які перавышае “normalized”, таму ён адмовляецца ад такога компромісу. Самэлька ў гэтым і ў яго прынтэжы, і адна цыфра з точнасцю маскуюць яе цалкам.

Затрымка працы з рэальным базой дадзеных

Затрымка працы — гэта адна з мераў, якія не маглі быць перакананыя палячым аналізам. У разе файлаў час адзінаковых запыткаў сільна разлічыўся ў розныя пасэсы: той самы варыянт могаў працаваць 1,17 секунды за запытком у аднам пасэсе і 4,21 секунды — у іншам, таму нічога не было зафіксавана, калі разлік у працы сервіса перавышаў разлік у онтологіі. У разе Cosmos картына ўпорадкованая, прычына гэтага простая.

У табліцы 7 паказаны час на адзін запытак, які чыста разлічыцца між рознымі фарматамі дадзеных і застаецца стабільным унутрь іх, пры тым час адзінаковых запыткаў да кожнага інструмента застаецца однаковым у всіх трох варыантах, таму табліца ўособлівае колькісць запыткаў да інструмента, выражаную ў секундах.

У рамках адзінаго варыянта максымальная розбіжнасць становіць сявець секунд, тады калі расстоянне ад формы «flat» да нормалізаванай становіць майжэ пяцьдзесят секунд. Нормалізаваны запіт запоўніваецца у два з половінай разы дольшэ, чым запіт у форме «flat». У пасляпэльнай колонцы паказана рэальная вялічына: за адзін вызов усе тры формы запоўніваюцца прыбліжна за аднаковы час — ад 6,2 да 7,4 секунд, незалежна ад схемы. Таму гэта не ўзаемна незалежныя нараджэнні. База дадзеных спрыяе адноснай стабільнасці, адколі час віканання операцый у Cosmos ёсць прыемлівым для прыкладзення, таму калі локальны слоўнік гэтага не робіў, і самэ гэта дазволяе фіксаваць ці фіксавацыя цых цыфраў узагалі.

Выліваецца ў адну практычную нараджэнню. Калі час затрымкі за адзін вызов застаецца прыбліжна стацыонарным, наборы формонтологіі безпасова вплываюць на час адпаведзі, так сама як і на вартасць токенав, і гэты показнік можна ацэніць ўжо до стварэння, пасля лічбы колькасці крокаў.

Прынцыпы, кожны з якіх мае сваю падтрымку

Працы па дыяграмах онталогіі зазвычай прыносяць прынцыпы як кантэкст спадчыні. Большасць з тых, што прыведзены ніжэй, маюць номер, які іх пазначыў, а тые, у кых яго няма, гэта адзначаюць.

Усё, працэпра можа быць запытанае, павінна быць вершынай. Калі трэба выгравераваць які-небудзь прынцып над дверзямі, нехай гэта будзе гэты. У плоскай схеме кожны страховы прэміум і спецыялізацыя прадаўцы знаходзяцца ў той жа базе дадзенаў, што і ўсё інша, і маленькія мадэлі ледве ўсё гэта знаходзілі. Прэміі вярталіся у 17% случаў, а спецыялізацыі — у 33%, тады як мадэль з рэгулюванням даўала 100% і 83% рэзультатаў. Полны дыяпазон знаходзіцца ў межах 0,533 да 0,967. Прыховыванне аб’екта ўнутры власнасці іншага аб’екта не робіць яго важкадоступным. Гэта прыводзіць да таго, што справядлівы запыт пра яго вяртаецца під іншым іменем, якое агент спрыямае як доказ яго відсутнасці. Механізм пераходу додае дзеянне, адколькі мадэль граніцы выкарыстоўвае ўсе аб’екты. Прыховыванне не ёсць абсалютным бар’ерам, а проста моментам, які трэба заплатыць у певным рангу мадэлі.

Тонкасць разбіювання дадзеных — гэта бюджэт, і працэс ўтварэння конкрэтных форм быстра яго выкарыстоўвае. Кожны вузол, які дадаецца для падтрымкі чыстоты схемы, стварае додатковыя вітраты з кожнага запыту. Паўтарныя, нормалізаваныя даны выклікаюць у 3,7 раза больш заўважэнняя інструменту для пошуку адной інформацыі, у 2,3 раза — для короткіх пераметраў, а ў віпадку дугіх шляхоў — у чатыры разы больш токенав. У 25 з 120 тэставых сцэнарыёў ён досяг межы колькасці пераметраў, пры тым як у іншых было толькі тры. Мадэль, цена за токен уведанняя якой была у 25 разоў вышэй, падняла рэзультаты на запытанні, якім можна даць адказ, з 0,489 да 0,867. Гэта справжнія павышэнняя, але яна коштавала 9,31 долара за сто токенав, што майжэ у пяць разоў больш, чым тая ж мадэль на простым рэжыме. Адстань ніколі не ёст косцяйна, незалежна ад бюджэту.

Такія входныя точкі ўскладненаяя архітэктура, і яны сільна залежаць ад модэлі. Кожны запыт пачынаецца з якога-небудзь імені або номера, і тое, што вяртае першы вызов інструмента, вялічыць, чы робат зможа працаваць чы пачнёць здагадвання. Для маленькай модэлі такі вызов вяртаўся пустым у 10% эпізодаў з ускладненаяя структурой, 26% эпізодаў з простай структурой і 53% эпізодаў з нормалізаванай структурой, калі пошук завершваўся на вершыні Attribute а не на самай аб’ектаў. Для модэлі высокага рангу такі вызов ніколі не быў пустым, незалежна ад структуры. Такім чынам, марнае першае крок не ўсё толькі якасць графа. Цэ гэта, што выходзіць, калі слабейшая модэлі сталкаецца з входным пунктам, якога яна не чакала. Ствараць тыя можлівасці для модэлі, якая будзе працаваць у працэсе, а не для той, якая вікорыстоўвалася пад час тэставання.

Свэйкавайце данормалізацыю спецыяльна і прызнайце гэта, калі рэзультаты не збіраюцца. Аднам з выведзеных шляхаў абрабаткі, held_by, быў выкарыстоўваны з надзеяй на паводлівасць па шляху claim-to-holder. У гэтым случае ўжо ён даў 0.83 проты 0.33 для данормалізаванага варыянта, але у варыянце без шляхоў адзінакова даў 0.92, таму крэдыт не ўзьміцца, і чысты тэст (з урахоўваннем края проты без яго) не быў адрабоўваны. Шлях, які не быў выкарыстоўваны, научыць больш. Пісанне колькасці паводлівасці па разных тыпах паліцый для аднаго власніка даў 0.17 у добра спраектаванай структуры і 0.67 у простай структуры, што дазволяе выклікваць іх як адну чытальную власнасць. Для агрэгацыі па падструктурэ спроект, які быў прапанованы, праспяў проты спроекта, прызначанага як несправны. Выбір шляхоў абрабаткі — гэта частка дызайну, а робочая навантажэння паказвае, калкі з іх неабходныя; у гэтым случае быў выбран не ты самы шлях, і даныя гэта падтвердзілі.

Абсарбаванне распространення даных. Пошук быў обмежан дваццаццю рэзультатамі, а пераходы — трыццаццю, што значыла, што занадто скасаваныя вузлы спрычынялі відныя, підлічваныя дадатковыя запыты, а не адну вялікую адпаведзь. Не было жадных необмежаных варыянтав, таму економія застаецца невядомай. Вядома толькі тое, што без такіх обмежэнняў вартасць хаваецца ў розмерзе адпаведзі, дзе няма показніка колькасці запытоў.

Зробіце відсутнае чытальным і оценіце яго чыстаасна. Спрытывайце немагчымыя пункты як трэбаванне дыяграмы, а не як хітрасць тэсту, але чытайце іх паляўнасці з пунктамі, на якія можна адказаць. Flat атрымала ідэальную оцэнку 1,000 за адмовы, калі адмовілася ад адпаведнаўшыхся ўсьмідзесяці пытанняў. Shaped адмовілася мінімум, і яе два немагчымыя пункты заканчыліся тым, што яна проста здавалася, а не выдумвала ўсё сама. Хорашая онтологія дазволяе, каб фраза «мы не мадэліруем гэта» была і доступной, і правдзівай, а для ацэнкі патрэбны оба аспекты, каб адзначыць граф, які усвядомляе сваія меры, ад таго, які не можа знайсці свой вучынак.

Назвы — гэта API. Агент чытае назвы элементаў так, як распрацоўшчык чытае падпіс функцыі, і ў гэтым эксперыменце назвы і структуру намеравана аб’еднаны ў адну зменную пад назвай «дыяграма». Ніякія цыфры самыя по сабе не падтрымліваюць гэты прынцып. Выразнае наступны крок — аддзеленне гэтых двух элементаў, і такое заявленне лепшая, чым стварэнне уявлень пра тое, што было перамеравана.

Што гэта не ёсць

Эта праця не ўтварае крэтара для адлікавання граф-баз дадзэнняў. Усе тры фарматы выкарыстоўваюць аднаковы рахунок Cosmos DB, аднаковы слой інструментаў і аднаковыя стандартныя настройкі індэксавання, таму хранэнне дадзэнняў ёсць сталям, а не зменным, і нічога не парабягае Cosmos з іншымі граф-базамі дадзэнняў чы не налаштоввае яго. Таксама не стверджуецца, што толькі пераскокі ёсць спосабам, якім агенты у працэсе выканання задач должны атрымліваць усе дадзэнні, адколькі нечыстыя запыткі без чыстага пункта входу вымагаюць пошуку; рэзультаты паказваюць, дзе простыя пераскокі ёсць корыстнымі, а дзе — ні. У праце няма аргументаў проты нормалізаціі ў транзакцыйных сістэмах, адтолькі нормалізаваны фармат ёсць непаспраўным для данага корыстніка — агента, які плаціць за кожны пераскок, а не ўзагалі непаспраўным. І гэта не ўпораківанне вэндараў: Microsoft Foundry ёсць сталям, а не зменным, і гэты метод можа быць выкарыстоўваны на будзь-якай платформе з можлівасцю вызываў функцый.

Чы гэта база дадзэных у цыкле змяніць рэзультат? Гэта выклікае патрабованне да адказу, а не да абяцюкання. Перад практычнымі кампаніямі тыя ж чатыры інструменты былі выкорыстаны два разы — праз Cosmos і праз файлы, якія генератор выдае, пры чым зафіксаваныя вызовы інструментаў былі перэглянуты ў зв’язку з обомі варыянтамі: 3,056 разлічных вызоў, кожны з якіх адпавядаў унікальнай парэ інструмент/аргумент, створанай кампаніямі. Оба варыянты выдалі ідэнтычныя адказы ў усіх случаях. База дадзэных все ўсё мае свою ролю: яна дадае затрымку і едыніцы запытоў, а Cosmos выконвае прыблізна на 4% больш крокаў агента, чым варыянты на базе файлоў, пры чым майжэ весь дапаможны час падае на нормалізаваную графіку. Але адказы, якія бачыў агент, выйшлі з формы онтологіі, а не з двіжка пад яю, і гэтага дастаткова для порэвання. Перэгляд зафіксаваных дадзеных зберагаецца ў рэпазітарыі як скрыпт.

Меры можлівасцей інструмента

Некалькі застэрэжэнняя пераходзяць з работы з роутэрамі. Чырванцо сінтэтычных запытанняў у аднай сінтэтычной домэне ўтварае маленькі інструмент. Контрасты ўскрытыя, адколі формы являюцца архетыпамі, а промышловая онтологія знаходзіцца між німі, таму самэ і былі вымераны канцэнтры. Кампанія з маленькім модэлем працавала тры разы, і ўсюды наводзіцца рэвэль шуму. Сітка з большым модэлем працавала адназнач, таму толькі яе насыценыя рэзультаты — трыдцаць правільных адпаведна да трыдцяці па два формы — можна лёгка даверыць. Разлік у два запытанняя ўнутрь той сіткі лічыцца як анекдот, і нічога тут не выводзіцца на адной адной прыкладзе. Таксама былі паўпоручаны толькі адні маленькі і адні большы модэлі, таму крывая межы іх застаецца невымеранай.

Праця над аўдытам коду пры падготовцы да выпуску адкрыла два недагоджання ў данай прыстроі. Першае: калі запрошаны тып рэгулярнасці не існуе ў графе, функцыя traverse вяртае порожній спіс суседзей, што немагчыма адзінакаваць ад вузла, які справды не мае суседзей. Агент здзейсніў 112 такіх вызоў у межах усіх кампаній, і дзевяць з двадцяцяж двух фальшывых адмовленняў у нормалізаваным графе змяшчаюць такі случай; скрыпт аналізу лічыць іх усі. Разлік у рэзультатах застаецца, адколькі прыстрой shaped здзейсніў найбольш такіх вызоў, але адмовіў у найменшым колі запітаў. Тым не менш, інструмент, які адпавядае «нічога тут няма» на запіт «такога тыпу рэгулярнасці няма», створае плутанне, а чыстыя альтэрнатывы — гэта паказанне памылкі з перыявленнем доступных тыпаў. Другае: доказ без апыткі супароўнае рэканструйованыя факты, таму ён не можа бачыць рэгулярнасці, якія самыя по сабе не несу жадных фактов, тыя самыя, што ёсць ў рэгулярнасцях тыпу flat, а таксама выведзеныя скорыя шляхі ў рэгулярнасцях тыпу shaped. Гэтая другая перапрацоўка перакантролюе тыя рэшткі за адпаведнасцю да фактов, якія яны павтараюць, і выявіць можа выдаленне чы рошчыранне для кожнага з іх. Кампаніі практыкуваліся ранейш, чым была створэна гэтая перапрацоўка, таму гарантыя не існавала, калі яны працавалі.

Форма — гэта запрос сістэмы

Большая частка зусіль вкладаецца у словы, якія ставяцца перад модэлем, а майжэ нічога — у форму знання, якія стояць за ям. Для агента, які вікорыстоўвае інструменты, онтологія ёсць запросам: гэта тое, што свет дазволяе робіць, напісана ў відэ тыпах вузлаў і назвах рэштак, і чытаецца па аднам вызыву інструмента за раз. Яго трэба спраектаваць для рэальнага чытача.

Падтрымлюючыя матэрыялы знаходзяцца ў рэпазітарыі коду эксперыменту: база фактов, тры онтологіі, доказы без втраты дакументацыі, запытанні, архів, агент і кожны квітанцыя кампаніі. Кожны, хто сможа сформулюваць тую ж правду чатырохвідова і павінна перамогчы гэтыя формы у запытаннях, якія ўсунулі іх, дадзе ў порэвананні ўсё новае.

Ёнколі працавалі элементы, у паводзе інфармацыі пра яных, паводліяеяць дакладнаяя даследнічая дакументацыя пра Azure Cosmos DB для Apache Gremlin, вызыванне функцый за дапамою модэляў Microsoft Foundry і REST API Azure Retail Prices, які суплікав цены за кожны токен, якія лягалі ва основу паказаных цэнаў.

Супаўзяныя матэрыялы