Graphify, OKF і RAG: які пласт кантэксту патрэбны вашай кодавай базе
Бенчмаркі паказваюць, што Graphify не саступае вектарнаму RAG па дакладнасці. Як спалучаюцца Graphify, OKF ад Google і вектарны RAG: трыгеры збояў і матрыца рашэнняў.
Самы файл для тэставання ад Graphify мае рэзультат, які частае ахвалаванне пра праект часта праціжвае. Па паказніку точнасці у адпаведзенні на запыткі ён равнасе з тэхнологіяй dense vector RAG, а па паказніку вярнага аднаходжэння даных ён адстае незначнае. Тым не менш у блогах распрацоўшчыкаў яго называюць „варожыкам RAG“, і ў тым жа месцы корпаратыўныя команды прыўязуюць яго, а таксама фармат Google Open Knowledge Format (OKF), да своіх AI-агентаў для кодавання. Чаму?
Таму што падача гэтай інфармацыі ў суспілстве ўсуперш цяперашняя. Graphify і OKF не конкуруюць за тое, каб заменіць RAG. Бны ўсе трое ўжо ёсць спецыялізаванымі элементамі — адны структурнымі, а другія наратыўнымі — якія знаходзяцца па боку вектарнага індэкса, і кожны з іх ўжо ёсць неабходны толькі ў разы, калі ў вашай сістэме выступае певны спосаб аблукаў. Якшо будзеце ацэнюваць іх як замену RAG, вы змарнаваеце інжынерны час на падтрымку графаў знанняў і апрантаваных пакетаў у фармаце Markdown для проблем, якія у вас нямаюць.
У наступным чытанні паспраўлены інфармацыя пра тое, камплектнае завадзіць кожны слой, чаму справжнім прынтэкстам Graphify ёсць вартасць прыемкі дадзеных, а не вышэйшая скорасць аднаходжэння інфармацыі, а таксама матрыца выбору для базы кода 2026 года.
Што на самай працоўнай дыскеце
Ачыніце BENCHMARKS.md у рэпазітарыі Graphify — там самэ прыказаны цыфры, якія не паказваны ў публікаціях пра рэзультаты тэстаў.
Спачатку рассмотрзім LongMemEval-S з 50 прыкладамі. У рэжыме розгортання графа Graphify атрымлівае 76% тачнасці адпаведнасці і 0.844 recall@10. Жорсткая база вектараў RAG з тым жа модэлем (Kimi K2.6), тым жа інструментам BGE-m3 для інкорпоравання дадзеных і аднаковым бюджэтам токэнаў таксама даходзіць да 76% тачнасці, але з recall@10 у розмерэ 0.848. Такім чынам графы знанняя не маюць перавагы: тачнасць аднакова, а recall на адзін крок ніжэй. Шчэ горшае тое, што сам вырабнік апавядаміў пра набор дадзеных і пераканаўся ў ягонай адрабоўленасці слепа (90.6% згоднасці у оцэнках, Cohen’s kappa 0.81), таму жадны сторонні эксперт не вылучыў паслаблены рэзультат.
У праекце LOCOMO (n=300) сітуацыя падобная, хоча ключавым паказатэлем стаець вартасьць прыймання дадзейнаў.
Graphify параджае з точнасцю 45,3%, а вартасьць прыймання дадзейнаў складае або 1,40 долара. Supermemory параджае з точнасцю 49,7%, але вартасьць прыймання дадзейнаў становіць 15,67 долара, тое ў 11 разоў больш. Такім чынам Graphify таксама не параджае па точнасці; ён параджае па вартасьці і эфектыўнасці.
У обох публічных тэстах гэтыя законамернасці застаюцца. Graphify не перавыплошвае добра настроеныя векторныя сістэмы RAG. Ён дастае тую ж точнасць, як і векторныя сістэмы RAG, пры тым, што яго створэнне коштае значна менш, чым іншыя сістэмы зберагача дадзейнаў. Две прычыны пояснююць яго прынадзі:
- Дэшавае прыймання дадзейнаў, адтак як для парсінгу AST абавесці ўжоткіх вызоў API LLM не трэба.
- Экстракцыя структуры без рызыку галюцынацый, адколькі дэтэрміністычныя методы парсінгу tree-sitter выявляюць точныя зв’язкі ў кодзе (выклікі, імпорты, спадчына класаў) без удзеле модэля ў гэтым працэсе.
Для тых, хто думае, што Graphify заменяе вектарныя базы дадзэнняў, гэта перакраяе пытанне. Рашэнне не ў тым, калькі інструмент будзе лепшы. Ён у тым, калькі шар керуе калькі кантэкстам, і калькі спосабы абяцкі ў стаке агентаў яшчэ не былі рашаны.
Тры шары замест трох канкурэнтав
Разумныя выборы архітэктуры вымагаюць раз’ядрання тэхнічнай рэальнасці ад маркетынгавага мовлення. Сучасныя наладкі агентаў апыраюцца на тры разныя шары кантэксту.
┌─────────────────────────────────────────────────────────────────┐
│ AI CODING AGENT CONTEXT │
└────────────────────────────────┬────────────────────────────────┘
│
┌─────────────────────────────┼─────────────────────────────┐
▼ ▼ ▼
┌───────────────────┐ ┌───────────────────┐ ┌───────────────────┐
│ VECTOR RAG │ │ GRAPHIFY │ │ GOOGLE OKF │
│ (Unstructured) │ │ (Structure) │ │ (Narrative) │
├───────────────────┤ ├───────────────────┤ ├───────────────────┤
│ • Docs & Tickets │ │ • AST Call Graphs │ │ • Architecture │
│ • Slack Threads │ │ • Class Hierarchies│ │ • Data Schemas │
│ • Long Tail Text │ │ • Imports/Exports │ │ • Playbooks & Run │
└───────────────────┘ └───────────────────┘ └───────────────────┘
Vector RAG
Vector RAG раздзеляе неструктураваны тэкст на блакіткі фіксаванага размеру (напрыклад, 512 токенав), ушырвае іх у вектарны прастор і пад час запіту вяртае k-тыя найбліжэйшыя суседзі. Гэта шырока, дышэчая методыка, якая чырпаецца для незалежных, плоскіх дакументацый.
Яго основныя недакладнасці стаюць з структурай: гэта методыка пласкавае іерархію. Аналіз Prism Labs з 2026 года адказвае на гэта так: калі прычына і наследкі не знаходзяцца ў аднам блакітку з 512 токенав, сістэма не мае уявлення пра ўзаеце ўсёго. Лепшыя мадэлі ушырвання не можу гэта парадражаць, таму што гэта ёсць абавязковай часткай раздзелення тэксту на блакіткі.
Graphify
Graphify — гэта локальны, дэтэрміністычны механізм. Ён выкарыстоўвае алгорытм парсінгу AST на аснове Tree-sitter для болейш чым 36 мов працы, укладзячы ў іх Python, TypeScript, Go, Rust, Java, C/C++, Swift, SQL і Terraform/HCL; ён выдэляе элементы коду і стварае структурную графіку з тыпаванымі рэшткамі, такімі як calls, imports, inherits і mixes_in.
Кожная рэштка мае пазначку. EXTRACTED означае, што яна была вычытана безпосерэдна з AST з высокай паверыльнасцю, а INFERRED — што яна была створана за дапамою гістэрычных методаў з меншай паверыльнасцю. Крэм таго, Graphify прыменяе метод аднараджэння спільнатэкаў Leiden, каб аддзеліць натуральныя падсістэмы, і пазначае „бога-вузлы“ — файлы, якія маюцы вялікую центральную ролю і з’яўляюцца ў багацькох модулях.
Выкананне команды /graphify . дае тры локальныя вынікі:
graph.html— гэта інтэрактыўны візуальны атлас графа.GRAPH_REPORT.md— гэта пісьмовы аптакт сабсістэм кодбазы.graph.json— гэта індэкс, які можна чытаць машынай і выканаць у яму запыты.
Фармат адкрытых ведамаў
Google Cloud аанунсаваў OKF у чэрвені 2026 года. Гэта не алгорытм пошуку і не дварчы механізм. Гэта нейтральная па віробніку спецыфікацыя метаданаў у фармаце Markdown. Пакет — гэта каталог звычных файлаў у фармаце UTF-8 Markdown з мінімальным YAML-фронтматэром, дзе толькі адна палата, type, ўсёга ўмовная. Загалоўак выглядае так:
---
type: Architecture Concept
title: Payment Gateway Routing
description: Canonical sequence for multi-tenant payment provider dispatch.
tags: [billing, architecture]
---
Няма рэжыстрару схем і няма моцнага часу выканання. Бандлы павінны знаходзіцца ў Git і чытацца за дапамою звычайных інструментаў шэлу, такіх як cat. OKF зберагае адбораную інстытуцыянальную памяць, напісаную людзьмі або падготавленую агентамі: стабільную наратыўную інфармацыю пра тое, чаму сістэмы будуецца так, як яны ёсць, а не сырые сімволы коду чы роўным лівам чат-логі без адбору.
Як шары дзеляць работу
Разам яны дзеляць работу: Graphify выкарыстоўваецца для выявлення таго, чым ёсць код, OKF фіксуе тое, чаго ведаюць інжынеры, а vector RAG адпрацоўвае неструктураваны залішок.
З твіта да рэпазітарыю з 63 тысячамі звёзд за 90 дзён
Прагненне адразу застосаваць гэтыя інструменты стае болей зрозумелым, якшча паглядзець на часовую шкалу, адколі весь экасістэмы з’явіўся за адзіны перыод у 90 дзён.
2026-04-01: Karpathy posts "LLM Wiki / Knowledge Compiler" concept on X
│
2026-04-03: Safi Shamsi launches Graphify on GitHub (YC S26)
│
2026-06-01: Graphify reaches 58.3K GitHub stars & 1.2M PyPI downloads
│
2026-06-12: Google Cloud releases Open Knowledge Format (OKF) spec
│
2026-07-01: Graphify ↔ OKF hybrid integration toolkit ships (71.5x token claim)
│
2026-07-05: Graphify hits ~78K stars; Level Up Coding scrutinizes "70x token" claims
Той самы летак у прозе:
- 1 кастрычніка 2026 года: Андрэй Карпаты паводзіць эксперыментальную думку на X: паклаць научныя працы, запісі кодавой базы, скрыншоты і дакументы архітэктуры ў адну папку, а потым шукаць інфармацыю за дапамою ШЫ, якое розумее ўзаінтэрэсаванасць этых элементаў, пры чым LLM-ы выпалююць ролю „компілятораў знанняў“.
- 3 кастрычніка 2026 года: Сафі Шамсі публікуе Graphify на GitHub, ператварыўшы гэю ідэю на праект за 48 гадзін. Ён стае часткай пакета S26 ад Y Combinator.
- 1 чэрвеня 2026 года: праект пераканаў 58 300 зірак на GitHub і 1,2 мільйона завантажэнняў з PyPI.
- 12 чэрвеня 2026 года: Google Cloud адкрывае OKF разам з яго адкрытымі спецыфікаціямі, прыкладнымі пакетамі (GA4 для е-камерцыі, Stack Overflow і Bitcoin) і агентам, які выкарыстоўвае метаданы BigQuery.
Андрус, які пасля тагчэйка післявчасна аналізав сітуацыю, зазначыў, што рэзультат у розмярэ 70 разоў эконаміі залежыць ад адной з характэрыстыкаў праекту, якую практычна ніякія публікацыі не адзначаюць відкрыта. этая характэрыстыка — топалогія корпуса. Тэст, які даў цыфру 70 разоў, выкорыстоўваў конкрэтны набор з 52 файлоў (публічныя рэпазітарыі Карпаты, 5 нарадчых прац, 4 дыяграмы), а ў корпоратыўных кодбазах з плоскімі структурамі пакетаў або вялікімі монорэпозітарыямі экономія токеноў значна разніцяцца.
Якія проблемы параганяюць да вікорыстоўвання якога-небудзь інструмента
Ажыянне ажыццёвання не ёсць архітэктурным трэбаваннем, так сама як і неясная незадоволенасць чынным распадам RAG. Новая інфраструктура патрабуе конкрэтнага, спазірванага спосабу выклікання проблем.
Спачатку рэальнае адгукненне
Апыткі, адбытыя ў всій галузі, паказваюць, што частка падпрыемств, якія не дасяглі бажаных рэзультатаў або зусім зазналі нядачы прыблізна за годзіну, становіць 72%. Большасць такіх нядач выклікаея паслабленая структурароўка дадзеных, застарэлыя вектарныя індэксы або няпадходзячыя мадэлі эмбедынгу, а не нехватка базы дадзеных у фармаце графа. Знанняўы граф, прыўязаны да нефункцыональнага каналу адзысквання інформацыі, дае той самы нефункцыональны канал плюс дадатковыя проблемы для рашэння.
┌─────────────────────────────────────────┐
│ Does your AI coding agent underperform? │
└────────────────────┬────────────────────┘
│
┌──────────────────┴──────────────────┐
▼ ▼
[ Sifting multi-file code ] [ Loss of tribal context ]
[ dependencies & calls ] [ across team silos ]
│ │
▼ ▼
Multi-Hop Reasoning Failure Knowledge Sprawl Failure
│ │
▼ ▼
TRIGGER: Add Graphify TRIGGER: Add Google OKF
(AST Structural Graph) (Curated Narrative Spec)
Прыгун 1: адзінкі прычыны, вызваныя непрацэйнасцюямі мнагаэтапнага расчынення (дадзіце Graphify)
Гэтае явіцца тады, калі адказ залежыць ад з’яеднання фактов з кількох файлаў, якія ніколі не дзеляць адзіным фрагментам тэксту.
Тыповы сімптам: агент не можа адпаведаць на запытанні на кшталт "што зламаецца на слою API, якшо змяніцца схема ў db/migrations/04_users.sql?"
Паколькі метод vector RAG укладае кожны блак з адной стороны, ён нічога не ведае пра апісаннія звязаных ключоў, рэалізаціі інтэрфейсаў чы абыякавыя вызовы між файламі. Лепшыя запытанні чы большыя вікна кантэксту не дапаможуць, адтолькі гэтыя зв’язкі ніколі не патрапляюць у вектарны прастор.
Прыгун 2: рассеяныя кампанейскія знанні (дадзіце OKF)
Гэтае явіцца тады, калі важлівы інстытуцыйны кантэкст распадзяўся між каналамі Slack, застарэлымі стораніцамі wiki чы непісанай памяцю распрацоўшчыкаў.
Сімптамам гэтага стану ёсць агент, які пісвае сінтаксычнасцю правільны код, але гэты код наражае на рызык нарушэння внутрэшных архітэктурных прынцыпаў, выкорыстоўвае застарэлыя внутрэшнія API-і або ігнаруе спецыфічныя для домэна бізнес-правіла.
Graphify не можа дапамогчы, таму што парсеры AST чытаюць толькі код адначасова і не можу выявіць бізнес-намеры. OKF заполняе гэты прыемак лёгкай структурой на базе Markdown, версіяванай праз Git, дзе інжынеры фіксуюць стабільныя стандарты сістэмы, якія агенты можу надзеянна парсаваць.
Даследжэнні ў галузі RAG для правовых домэнаў паказалі, што стандартныя інструменты для выкарыстоўвання дадзеных ствараюць халюцынаціі у 17%–33% сложных запытанняў, адтыму што самае выкарыстоўвання дадзеных не можа адтворыць логіку, якая распрастраńваецца між дакументамі. Рэкамендацыі Atlanа падсумоўваюць правільную параду: спачатку RAG, а граф — тады, калі глыбіна стане бутылочным горлам.
Скількі кошта кожны інструмент, калі ён не працуе
Кожны новы слой прыносіць свае сабе способы абякання. Оба праекты ў этапы розвітку, таму іх эксплуатацыйныя рызыкі трэба разглядаць пры прабеўцы ў працэўную сістэму.
Дзе Graphify не падходзіць
- Старыя кэшаваныя копіі. Індэкс графа ствараецца аднойчы і застаецца статычным. Ён не апцэнтруецца, калі распрацоўшчыкі правяць файлы, таму без хука Git pre-commit чы ўскладнення CI/CD ён адстае ад коду. Стары структурны граф горшы, чым яго няма, таму ўстройства отрымаюць некарэктныя адпаведзі.
- Шумныя спільнатыя ў старых монолітах. У велікіх прыкладах програмнае апаратуры на Java чы C++ алгорытмы выявлення часта аб’еднваюць некалякія модулі толькі таму, што ўсі яны выкарыстоўваюць спяльную інфраструктуру, такую як сінглтоны для логавання чы тэлеметрыі.
- Галюцінаціі пад час семантычнага адгэтування. Асэнсія основнага коду ўзмацнена дэтэрміністычна, але неабяжнае семантычнае адгэтуванне дакументацыі, PDF-файлаў і адпраўк все ж такі вызывае LLM. Таму адносы, выявленыя з некодавых артыфактав, могу ствараваць галюцінаціі.
- Непарабяжаныя тверджэнні. Па словамі архітэктара програмнага забезпечэння Саурабха Шармы, ніхто за межамі праекту не перадаў парабяжанне запытаванняў Graphify з працоўніх файлаў чы не стварыў базовыя даныя RAG на спяльнай сэтцы тэстаў. Чысла вэндараў лепш спрыймаць як прыбліжныя паказнікі.
Дзе OKF не падходзіць
- Няма прымусу чы парабяжання. Фармат умышлена не выклікае рэўістры схем і строгія правіла, таму якасць пакета завісіць абоўсюды ад таго, хто чы што піша файлы.
- Тыхае занепадзеў. Основны контракт прыказвае агентам тольераваць невядомым тыпам метаданых і зламаным спынам. эта прышвыджае адпрыемство, але дазволяе пакетам ператварацца на неспынаваныя, застарэлыя файлы без жадных памылак падчас стварэння.
- Нябытак адтрымання. Документы у фармаце Markdown выклікаюць пастойную дысцыпліну. Калі рабочыя працэсы інжынераў не выклікаюць неабходнасці адкроіць OKF разам з змянамі ў кодзе, тады нарадчы слой быстра стае застарэлым.
Складаны практычны працэс
Для складных корпаратыўных баз коду найлепая наладка для 2026 года не выбірае аднаго інструмента. Яна соедынае іх у шматэтапны кантэкстны практычны працэс.
┌──────────────────────────────────────────────────────────────────┐
│ USER / AGENT QUERY: "What breaks if I modify UserService.py?" │
└─────────────────────────────────┬────────────────────────────────┘
│
▼
┌──────────────────────────────────────────────────────────────────┐
│ STAGE 1: OKF Progressive Disclosure Catalog │
│ Read high-level module narrative & owner specs (~2K tokens) │
└─────────────────────────────────┬────────────────────────────────┘
│ (Targeted node identified)
▼
┌──────────────────────────────────────────────────────────────────┐
│ STAGE 2: Graphify Structural Graph Query │
│ Traverses AST edges: calls, imports, inherits (Zero-LLM cost) │
└─────────────────────────────────┬────────────────────────────────┘
│ (Unstructured edge cases)
▼
┌──────────────────────────────────────────────────────────────────┐
│ STAGE 3: Vector RAG / Sparse Search │
│ Search raw Slack incident logs, GitHub issues, & PR comments │
└──────────────────────────────────────────────────────────────────┘
Першы крок: стварэнне структурных артыфактав Graphify
Установіце Graphify ў ізольаванай асяроддзі, а пасля запусціце аналізатор на працоўнай зоне.
# Install Graphify via uv
uv tool install graphifyy
# Register the skill with your local agent environment (Claude Code, Cursor, Codex, Gemini CLI)
graphify install
# Execute AST graph compilation inside your repository root
/graphify .
# Generated Local Artifacts:
# graph.html --> Interactive visual network representation
# GRAPH_REPORT.md --> Natural language summary of communities & god nodes
# graph.json --> Queryable AST relational graph database
Калі гэта будзе завершана, можна безпасябедна запытаць местны структурны індэкс, каб пераглядзець шляхі асоціяцый.
# Query dependency paths between components
graphify path "UserService" "DatabasePool"
# Trace architectural blast radius before refactoring
graphify query "What components depend on AuthTokenValidator?"
Другі крок: запісваць калібруваныя канцэпцыі як OKF
Экспортуйце тое, што было знайдзена пад час структурнага аналізу, у пакет канцэпцый, які супакоўваецца з правіламі OKF, у пададрысе .well-known/okf/ або docs/knowledge/. Мінімальны файл канцэпцыі выкарыстоўвае звычайныя звязкі Markdown, і гэтыя звязкі безпасэродна паўязуюцца з рэгліямі графа знанняў.
---
type: Database Table Context
title: orders_fact
description: Canonical order transaction table joining billing and fulfillment streams.
resource: bigquery://production-data.commerce.orders_fact
tags: [finance, core-model]
timestamp: 2026-06-20T14:00:00Z
---
# Business Domain Summary
The `orders_fact` table serves as the primary source of truth for revenue calculations.
Modifications to columns must align with the [Customer Profile Spec](./customer_profile.md).
# Schema & Join Constraints
| Column Name | Data Type | Structural Constraint |
|---|---|---|
| `order_id` | STRING | Primary Key; joins with [billing_events](./billing_events.md) |
| `customer_id` | STRING | Foreign Key; see [customers](./customers.md) |
| `status` | STRING | Enum: `pending`, `completed`, `refunded` |
# Related Runbooks
- Incident Protocol: [/runbooks/billing-reconciliation.md](/runbooks/billing-reconciliation.md)
Інжынер з пошуку і кантэксту Копп адзначае, што структура звязаў OKF чыста падходзіць для GraphRAG, адколькі звязак з orders_fact.md на customers.md ўжо ёсць рэглёўкай у графе знанняў.
Доказы з ERPNext
Складны падход быў працаваны на ERPNext — адкрытым кодам падставе для падпрыемстваў, якая складаецца з пада мільйонама ліній коду на Python і JavaScript.
Пры ацэнкі быў выкарыстоўваны Claude Opus 4.8, з лімітам у 14 раундав на задачу:
- Базовы агент для кодавання, які выкарыстоўваў методыкі vector RAG і grep, досяг 70,8% пакрыцця ключоўых фактов.
- Гібрыдны праграмны комплекс Graphify і OKF досяг 82,0% пакрыцця ключоўых фактов, з сярэжнай колькасцю або 140 000 токэнаў на сесію запыту.
Падыння на 11,2 пунктам на такой велічыне кодавой базы означае значнае зменшэнне колькісці бяговых памылак агента. Гэта лепшая показвае якосць працы агента, чым простыя цыфры зменшэння колькісці токэнаў.
Выбір па тыпе кодавой базы
Знайдзіце сяродовішча вашай кодавой базы і яе основныя способы збою ў матрыцы, каб выбраць архітэктуру.
Короткая версія
Graphify ўсё ж моцнейшы для дэтэрміністычнага аналізу структуры без дапамогі API LLM. OKF апранае портатыўны, прыемны для Git стандарт для кантэксту, які пішаюць як людзі, так і агенты. Vector RAG застаецца найэфектывнейшым выборам для пошуку неструктураванага тэксту. Накладанне шароў без чыста відзначанага спосабу збою прыносіць толькі сложнасць і не паслужае для падышчы карыстоўнасці агента.
Спачатку апісайце проблему
Перш чым Graphify або OKF будуць адключаныя да працэсу разработкі, трэба выявіць, якая з трох проблем ёсць рэальной: застарэлы кантэкст коду, адзінкія залежнасці, якія не функцыонуюць, або фрагментаваныя інстытуцыянальныя знанні.
Оба інструмента ўжыткаваныя як дапаможныя элементы сучаснага стака AI, а рэзультаты вікорыстання ERPNext паказваюць рэальную цэнна для складных кодавых баз. Тым не менш, пераход з аднаго твіта да віруснага рэпазітарыю ёсць праблемай, якая вымагае строгасці. Чытайце даныя безпасова з BENCHMARKS.md, тэстуйце можлівыя архітэктуры на своему кодзе і стварайце стак кантэксту, які падходзіць вашым інжынерскім патрэбам. Пачніце з падбору настройкі, якая пасуюць да умов моноліта, мікросервісаў або манорэпазітарыю, паказаных у матрыцы.
Супаўзвязаныя матэрыялы
- Развітанне RAG на Milvus: гібрыдныя способы пошуку, HyDE, перапісування запітоў і перэранківанне — Построўце паэтапна канвейер RAG для Milvus: вектары тыпу dense і BM25, гібрыдны спосаб пошуку RRF, фільтры метаданых, перапісування запітоў, тэхніка HyDE, дэкомпозіцыя і перэранківанне за дапамогою крос-кодэра.
- Корыстны локальны LLM за 30 хвілін: кодаванне, запітанні-відпаведзі на документах і праца з голасам — Створыце локальнага асістэнта для кодавання, скрыпт для пошуку нотатак і афлайн-сістэму для працы з голасам за дапамогою Ollama, Qwen3 і Whisper.cpp, а таксама правіла кантролі пропускной здатнасі памяці для выбору розміру модэлю.