CUDA · ROCm · Apple Silicon

Лаборатория открытых моделей. И цифровые двойники на своих весах.A lab for open models. And digital twins running on weights you own.

Чужие веса в работу не идут: берётся оригинал полной точности, считается разность с каждой чужой версией тензор за тензором, собирается свой квант, разгоняется и проверяется приборами на потерю качества. CUDA, ROCm, Apple Silicon.We never ship third-party weights as they are. We start from the full-precision original, diff it against every third-party version tensor by tensor, build our own quant, speed it up, and measure what it cost in quality. CUDA, ROCm, Apple Silicon.

Как это работает →How it works → НаписатьGet in touch
манифестmanifest · GLM-5.311.10.2026
оригиналoriginalFP8, 756 ГБFP8, 756 GB
свой квантin-house quant429.5 ГБ429.5 GB
рецептrecipeэксперты 4 бит, остальное 84-bit experts, 8-bit everything else
argmax0.923
KL0.020
756 ГБ756 GB
оригинал полной точности как рабочий объект, не пределfull-precision original as working material, not a ceiling
0.923
совпадение argmax своего кванта с оригиналом — замерено, не обещаноargmax agreement between our quant and the original—measured, not promised
1 день1 day
от скачанного оригинала до проверенного квантаfrom downloaded original to verified quant
01 / dtwin

Что такое цифровой двойник dtwinWhat is a dtwin digital twin?

Контур, который целиком ваш: ваша модель на вашем железе, ваши данные, ваши правила. Не доступ к чужому сервису, а собранная под задачу система. Из чего она состоит.A perimeter that is entirely yours: your model on your hardware, your data, your rules. Not access to someone else's service, but a system built around your task. Here's what it's made of.

01

Роли вместо одного ассистентаRoles instead of one assistant

Не одна модель на все вопросы, а набор ролей со своими правами и своим кругом задач: эксперт по вашей предметной области, координатор, который раздаёт работу и сводит результат, аудитор, который проверяет сделанное, наблюдатель, который следит за состоянием контура. Роль живёт на своих весах и со своим системным описанием, а добавить новую — значит описать её задачу и выдать доступы, а не менять систему.Not one model for every question, but a set of roles, each with its own permissions and its own scope: an expert in your domain; a coordinator who hands out work and pulls the results together; an auditor who checks what was done; an observer who monitors the state of the perimeter. Each role runs on its own weights with its own system prompt. Adding a new one means describing its task and granting access, not changing the system.

02

Память и журналMemory and logs

Долгая работа не начинается каждый раз с нуля: нити держатся в слотах, снимаются на диск и поднимаются обратно, а каждое рассуждение модели пишется в журнал в момент генерации. Через месяц видно не только что было сделано, но и почему именно так.Long work doesn't start from scratch every time. Threads are held in slots, snapshotted to disk, and restored, and every step of the model's reasoning is logged the moment it's generated. A month later you can see not only what was done, but why it was done that way.

03

Инструменты и доступыTools and access

Роли работают не в вакууме: почта и документы, календарь и расписание, поиск, зрение и распознавание речи, устройства и инфраструктура — всё через свои сервисы, а не через чужое облако. Каждый выход за пределы контура идёт через шлюз, который пишет, кто и куда обращался.Roles don't work in a vacuum. Mail and documents, calendar and scheduling, search, vision and speech recognition, devices and infrastructure all go through your own services, not someone else's cloud. Every call outside the perimeter passes through a gateway that logs who connected to what.

почта · документы · поиск · зрение · речьmail · documents · search · vision · speech
04

ГраницыBoundaries

Данные не покидают контур, доступы роли выдаются по списку, а не по умолчанию, выход в сеть — только через шлюз с журналом. Это не настройка приватности, которую можно переключить, а то, как контур устроен.Data doesn't leave the perimeter, roles get access from an allowlist rather than by default, and the only way out to the network is through a logged gateway. This isn't a privacy setting you can switch off. It's how the perimeter is built.

шлюз · журнал · список доступовgateway · log · allowlist
05

Веса в основанииWeights at the core

Роли, инструменты и интерфейсы заменяемы, а веса определяют, что двойник на самом деле делает: насколько он понимает задачу, где ошибается и чему следует. Поэтому главная работа — не вокруг модели, а внутри неё. Этим занимается лаборатория.Roles, tools, and interfaces can all be swapped out. The weights cannot—they determine how well the twin understands a task, where it goes wrong, and whose instructions it actually follows. So the real work isn't around the model. It's inside it, and that's what the lab does.

Как устроен двойникHow the twin is built
ролиroles
экспертexpertаудиторauditorнаблюдательobserver+ своя рольcustom role
координаторcoordinator
координатор · раздаёт работу · сводит результатcoordinator · hands out work · assembles the result
память и журналmemory and logs
слоты нитейthread slotsснимки на дискеsnapshots on diskжурнал размышленийreasoning log
инструменты через шлюзtools through the gateway
почта и документыmail and documentsкалендарьcalendarпоискsearchзрениеvisionречьspeechустройстваdevicesшлюз · журнал · список доступовgateway · log · allowlist
весаweights
веса — своя сборка · из оригинала · квант · гейт → лабораторияweights: in-house build · from the original · quant · gate → the lab
02 / лабораторияlab

ЛабораторияThe lab

Свои кванты с доказательством качестваIn-house quants with proof of quality

MLX · GGUF · GPTQ
свой конвертер под целевой стекin-house converter for the target stack
argmax · KL
гейт против оригиналаquality gate against the original

Оригиналы квантуются под целевой стек своим конвертером — MLX, GGUF, GPTQ — по рецепту для каждого слоя: где модель чувствительна, остаётся 8 бит или полная точность, где нет, ужимается до 4. Каждый квант проходит гейт: логиты против оригинала teacher-forced на нейтральном корпусе при нулевой температуре, совпадение argmax и KL, отдельно по языкам и жанрам, отдельно по токенам зрения. Не «вроде работает», а таблица чисел, которую можно пересчитать командой из отчёта.We quantize originals for the target stack with our own converter — MLX, GGUF, GPTQ — using a per-layer recipe: where the model is sensitive we keep 8 bits or full precision, and where it isn't we squeeze it down to 4. Every quant has to pass a gate. We run teacher-forced logits against the original on a neutral corpus at zero temperature and check argmax match and KL, separately by language and genre and separately for vision tokens. Not "seems to work" but a table of numbers you can recompute with the command given in the report.

Что лежит в чужих весахWhat's inside third-party weights

0.046
косинус направлений двух авторов Qwen3.8cosine between two authors' Qwen3.8 directions
59
матриц слоёв 11–40 правлены по-своемуmatrices in layers 11–40, each edited its own way

Разность «чужая версия минус оригинал» считается по каждой матрице: что тронуто, с какого слоя, какого ранга правка, есть ли остаток сверх объявленного. Так видна хирургия автора — и видно, совпадает ли она с тем, что он написал в карточке. Дальше поиск триггера по найденной компоненте, разница активаций и поведение в песочнице с перехватом вызовов инструментов и сетевых запросов.For every matrix we compute the difference "third-party version minus original": what was touched, from which layer on, the rank of the edit, and whether there's any residual beyond what was declared. This shows the author's surgery — and whether it matches what the author wrote in the model card. Next we search for a trigger along the component we found, compare activations, and watch the model's behavior in a sandbox that intercepts tool calls and network requests.

Два разбора из последних. У одной «раскрепощённой» GLM-5.3 автор тронул 119 матриц — o_proj от 17-го слоя и down_proj общего эксперта от 20-го, — в каждой своё направление, между слоями они почти не связаны (косинус 0.15), компонента перевёрнута с усилением α≈2.2 при заявленных в карточке 4–5, нормы строк сохранены. У двух авторов одной и той же Qwen3.8 направления оказались разными, косинус 0.046: первый снял одно направление на всю модель с α≈2, второй вписал 59 своих векторов в слои 11–40 с α 5–6. Обвязка — токенизатор, шаблон чата, конфиги — у всех совпала с оригиналом побайтно. С осью, снятой приборами лабы, авторские пересекаются слабо: |cos| до 0.55 с одним автором Qwen3.8 и до 0.29 с другим.Two recent cases. In one "unlocked" GLM-5.3 the author touched 119 matrices — o_proj from layer 17 on and the shared expert's down_proj from layer 20 on — each with its own direction, barely related between layers (0.15 cosine), the component flipped and amplified at α≈2.2 where the card claims 4–5, row norms preserved. Two authors who modified the very same Qwen3.8 used different directions, with a cosine of 0.046: the first removed a single direction across the whole model at α≈2, the second wrote 59 separate vectors into layers 11–40 at α 5–6. In every case the packaging — tokenizer, chat template, configs — was byte-for-byte identical to the original. Set against the axis our own instruments extract, theirs line up only weakly: |cos| up to 0.55 with one Qwen3.8 author and up to 0.29 with the other.

GLM-5.3 · 119 матриц · o_proj от слоя 17, down_proj общего эксперта от слоя 20
GLM-5.3 · α≈2.2 при заявленных 4–5 · косинус между слоями 0.15
Qwen3.8 · два автора · косинус направлений 0.046 · 59 матриц слоёв 11–40
обвязка · токенизатор, шаблон чата, конфиги = оригинал побайтно
GLM-5.3 · 119 matrices · o_proj from layer 17, shared expert down_proj from layer 20
GLM-5.3 · α≈2.2 where the card claims 4–5 · 0.15 cosine between layers
Qwen3.8 · two authors · direction cosine 0.046 · 59 matrices in layers 11–40
packaging · tokenizer, chat template, configs = original byte for byte

Своя аблитерированная версия — из оригинала, а не с хабаOur own abliterated version — built from the original, not pulled from a hub

ни байта чужогоnot a single third-party byte
направление снимается на своём корпусеdirection extracted from our own corpus
2
семейства весов собраны своей аблитерациейmodel families abliterated in house

Аблитерация снимает у модели выученный отказ: в активациях находят направление, по которому модель отличает «отвечу» от «откажусь», и вычитают его из весов, пишущих в остаточный поток. На хабе такая версия есть почти для каждой модели. В работу они не идут: что именно и насколько вычтено — неизвестно, а когда разность снята, видно, что сделано грубо. За основу берётся оригинал или свой квант оригинала, чужие версии остаются реперами.Abliteration strips a model's learned refusal: you locate the direction in the activations along which “I'll answer” diverges from “I'll refuse” and subtract it from the weights that write into the residual stream. Almost every popular model has such a version on a hub. None of them go into production: how much was subtracted, and from where, is anyone's guess — and when the diff is taken, the work turns out crude. The base is the original, or our own quant of it; third-party versions stay as reference points.

Направление — своё. Корпус контрастных запросов собирается в лабе, активации снимаются её приборами послойно, по одному слою в памяти за раз — не останавливая работающую модель. Правка ложится только туда, где направление сложилось, и только в матрицы, пишущие в остаточный поток; все остальные тензоры совпадают с исходником побайтно — это проверяется, а не предполагается. Дальше гейт против оригинала.The direction is our own. The contrastive corpus is built in the lab, and activations are captured layer by layer, one layer in memory at a time, without taking the running model offline. The edit only goes where the direction has formed, and only into matrices that write into the residual stream; every other tensor stays byte-identical to the source, and that is verified rather than assumed. Then the result is gated against the original.

Цена — измерена. Qwen3.8, замер 13.10: KL 0.032 и argmax 0.964 к оригиналу — столько же, сколько у обычного восьмибитного кванта без всякой правки; скорость та же; эталонное задание, на котором оригинал останавливается, выполнено. GLM-5.3, замер 15.10: KL 0.0175 — меньше шума собственного кванта, живой прогон на рабочем задании сборка прошла.The cost is measured. Qwen3.8, measured Oct 13: KL 0.032 and 0.964 argmax against the original — the same as a plain 8-bit quant with no edit at all; the same speed; and the reference task the original stalls on runs to completion. GLM-5.3, measured Oct 15: KL 0.0175 — below the noise of our own quant, and the build passed its live test on real work.

Внешний репер. Frontier Red Team Anthropic в отчёте от 29.09.2026 аблитерировала GLM-5.3 сама: около 2 200 GPU-часов, порядка $4 400 — доля отказов на трёх бенчмарках упала с более чем 90 % до 6 %, качество сверялось совпадением на GPQA-Diamond, а обход защиты аблитерированной копией вышел на 100 %; там же сказано, что опытной команде хватило бы примерно 600 GPU-часов. NIST CAISI 17.09 назвал GLM-5.3 самой кибер-способной из выпущенных открытых моделей — около четырёх месяцев от фронтира США по агрегату кибер-бенчмарков. Вывод с обеих сторон один: у открытой модели защита в весах держится до первой правки — граница должна стоять в обвязке, а не в весах.An external reference point. In its report of September 29, 2026, Anthropic's Frontier Red Team ran its own abliteration of GLM-5.3: roughly 2,200 GPU-hours, about $4,400 — refusal rates across three benchmarks fell from above 90% to 6%, quality was checked by matching GPQA-Diamond scores, and the abliterated copy got past the safeguards 100% of the time; the same report notes that an experienced team would have needed only about 600 GPU-hours. On September 17, NIST's CAISI called GLM-5.3 the most cyber-capable open-weight model released so far — about four months behind the US frontier on an aggregate of its cyber benchmarks. Both sides land on the same conclusion: in an open-weight model, safety that lives in the weights lasts until the first edit — the boundary has to sit in the serving stack, not in the weights.

Qwen3.8 · KL 0.032 · argmax 0.964 — как у обычного восьмибитного кванта
GLM-5.3 · KL 0.0175 — меньше шума собственного кванта
живой прогон · пройден на обеих сборках
Qwen3.8 · KL 0.032 · argmax 0.964 — same as a plain 8-bit quant
GLM-5.3 · KL 0.0175 — below the noise of our own quant
live test · passed on both builds

Разгон на том стеке, который естьSpeedups on the stack you already have

+69 %
чистый декод, ответ побитово тот же (12.10)pure decode, bit-for-bit identical answer (12.10)
×2,3–2,5
с предсказанием токенов вперёд, с точной верификациейwith multi-token prediction and exact verification
93 %
токенов промпта из кэша за деньof prompt tokens served from cache in one day
60 тыс.60k
токенов нити поднимаются с диска в слот без пересчётаtokens of a thread restored from disk into a slot, nothing recomputed

Метод один для любой платформы. Шаг декода профилируется по компонентам: куда уходит время — в экспертов, в линейное внимание, в гиперсвязи, в выборку эмбеддингов, — и сколько запусков ядер приходится на токен. Потом убирается лишнее: слитые ядра, компиляция графа, предсказание нескольких токенов вперёд с точной верификацией — последовательность токенов побитово равна обычной. Дальше замер, а не обещание, и замер в том виде, в котором он что-то значит: прирост к той же модели на том же стеке. На одной модели чистый декод ускорен на 69 процентов, а с предсказанием нескольких токенов вперёд и точной верификацией — в 2,3–2,5 раза, при побитово том же ответе (12.10). Вторая разогнана 10.10, её прирост к штатному пути ещё предстоит замерить — до замера цифры здесь не будет. Абсолютные токены в секунду зависят от стека и размера модели и сами по себе не сравнимы — сравним прирост, и он указан с датой.The method is the same for any platform. We profile the decode step by component: where the time goes — the experts, linear attention, hyper-connections, to embedding lookup, and how many kernel launches each token takes. Then we cut the overhead with fused kernels, graph compilation, and multi-token prediction with exact verification, so the token sequence stays bit-for-bit identical to normal decoding. Then we measure instead of promising, and we measure the one thing that means something: the gain on the same model, on the same stack. On one model, pure decode is 69 percent faster, and with multi-token prediction and exact verification 2.3–2.5× faster, with a bit-for-bit identical answer (12.10). We accelerated a second model on 10.10; its gain over the stock path hasn't been measured yet, and until it is, there's no number here. Absolute tokens per second depend on the stack and the model size, so on their own they can't be compared. The gain can, and we give it with a date.

Отдельный задел — KV-кэш: слоты под долгие нити, снимки и возврат к ним. За рабочий день 93 процента токенов промпта пришли из кэша, а не считались заново, а нить агента на 60 тысяч токенов поднимается с диска в слот и докручивает только новые токены. Длинная работа не начинается с нуля ни после перезапуска, ни при переезде между слотами.A separate line of work is the KV cache: slots for long threads, plus snapshots you can return to. Over a working day, 93 percent of prompt tokens came from the cache instead of being recomputed, and a 60-thousand-token agent thread loads from disk into a slot and processes only the new tokens. Long work doesn't start from scratch, whether after a restart or when a thread moves between slots.

Под разные задачи — разные стеки, и это не компромисс, а расчёт. Там, где модель должна лежать в памяти целиком, выгодна единая память. Там, где нужны параллельные роли, зрение и голос одновременно, — многокарточный узел. Метод, конвейер и приборы от стека не зависят: меняются только ядра и формат кванта.Different tasks call for different stacks, and that's by design rather than a compromise. Where the whole model has to fit in memory, unified memory pays off. Where you need parallel roles plus vision and voice running at once, a multi-GPU node does. The method, the pipeline, and the instruments don't depend on the stack; only the kernels and the quant format change.

Чтение мыслей модели: SAEReading the model's mind: SAEs

16 38416,384
признака на слойfeatures per layer
3
глубины остаточного потокаresidual-stream depths

Модель не чёрный ящик, если смотреть внутрь приборами. Главный такой прибор — разреженные автокодировщики, SAE: словари признаков, обученные на остаточном потоке той модели, которая стоит в работе, на трёх глубинах, по 16 384 признака на слой.A model isn't a black box if you look inside it with instruments. The main one is sparse autoencoders (SAEs): feature dictionaries trained on the residual stream of the very model we run in production, at three depths, with 16,384 features per layer.

Градиент абстракции виден глазами. Ранний слой — буквы и пунктуация. Средний — понятия, причём русское и английское слово попадают в один и тот же признак. Поздний — конструкции и намерения: «продолжение», «отрицание», «разрешение или ограничение», самоинструкция «теперь сделаю». К словарям идут каталоги с разметкой признаков, читалка, которая по номеру прогона показывает, какие признаки горели, и съёмник активаций на живых ходах — не на тестовом корпусе, а на реальной работе агента.The gradient of abstraction is visible to the naked eye. The early layer picks up letters and punctuation. The middle layer holds concepts, and a Russian word and an English word land in the very same feature. The late layer carries constructions and intentions: "continuation," "negation," "permission or restriction," and the self-instruction "now I will do it." The dictionaries come with catalogs of labeled features, a reader that shows which features fired for a given run number, and an activation recorder that runs on live turns: not on a test corpus, but on the agent's real work.

ранний слой · буквы, пунктуация
средний слой · понятия; русское и английское слово — один признак
поздний слой · конструкции и намерения: продолжение, отрицание, разрешение или ограничение, «теперь сделаю»
early layer · letters, punctuation
middle layer · concepts; a Russian and an English word — one feature
late layer · constructions and intentions: continuation, negation, permission or restriction, "now I will do it"

Причинность, а не корреляция. Признак, который загорается перед остановкой агента, ещё не рычаг. Проверка идёт вмешательством: признак гасится в ноль, усиливается втрое, и поведение смотрится отдельно. Один такой признак управлялся линейно и точно, но на остановки не влиял — значит, индикатор состояния, а не причина. Это сэкономило окно работы, которое ушло бы на бесполезную правку весов.Causation, not correlation. A feature that lights up before the agent stops is not yet a lever. We check by intervention: we zero the feature, triple it, and look at the behavior in each case. One such feature could be steered linearly and precisely but had no effect on stops — so it's a state indicator, not a cause. That saved us a work session we would have spent editing weights for nothing.

Журнал размышлений. Каждое рассуждение модели пишется в момент генерации, по нитям, с хэшем, до любых сокращений контекста. Когда сервер вырезает старые размышления из истории, чтобы не упереться в окно, в журнале остаётся всё — и видно, в какой момент модель перестала видеть своё прошлое рассуждение.Reasoning log. We write every piece of the model's reasoning at generation time, per thread, with a hash, before any context trimming. When the server cuts old reasoning out of the history to stay within the window, the log keeps everything — and shows the moment the model stopped seeing its own earlier reasoning.

Зачем всё это: чужие веса — это pull request от незнакомцаWhy this matters: third-party weights are a pull request from a stranger

Вредоносный код рядом с весами ловят сканеры, а правку самих весов не ловит никто: автор меняет несколько матриц, модель держит бенчмарки и ведёт себя штатно, пока не встретит выбранный им триггер — такую сборку в октябре 2026 сделали за выходные меньше чем за пятьдесят долларов и показали, как через неё уводятся учётные данные проекта. Единственная проверка здесь — разность с оригиналом, тензор за тензором, и с неё начинается работа с любыми чужими весами.Scanners catch malicious code that sits next to the weights, but nobody catches an edit to the weights themselves. The author changes a few matrices, and the model keeps its benchmark scores and behaves normally until it meets the trigger the author chose. In October 2026, such a build was made over a weekend for under fifty dollars and shown stealing a project's credentials on the authors' own testbed. The only check here is the difference against the original, tensor by tensor, and that's where our work with any third-party weights begins.

ProjectDiscovery, «How abliterated models can get you pwned», 6 октября 2026October 6, 2026.

03 / конвейерpipeline

От оригинала до серваFrom original weights to serving

01

ОригиналOriginal

Полная точность с официального репозитория, сверка шардов и хэшей, копия на холодном диске.Full-precision weights from the official repository, shard and hash verification, and a copy in cold storage.

02

РазностьDiffing

Чужие версии против оригинала: карта правок, ранг, остаток, сравнение авторов между собой.Third-party versions vs. the original: an edit map, rank, residual, and a cross-author comparison.

03

Своя версияIn-house version

Оригинал плюс только то направление, которое извлечено и проверено на месте.The original plus only the direction we extracted and verified in-house.

04

КвантQuant

Рецепт по слоям, конвертер потоком по шардам, манифест с хэшами и рецептом.A per-layer recipe, a converter that streams shard by shard, and a manifest with hashes and the recipe.

05

ГейтGate

Логиты против оригинала, зрение, длинный контекст, скорость. Таблица, график, коммит.Logits against the original, vision, long context, speed. Table, chart, commit.

06

Серв и приёмкаServing and acceptance testing

Свой сервер с журналом размышлений; в агентный режим допускаются только веса, собранные в лабе, с поведением как у эталона и выходом в сеть через свой шлюз.Our own server, with a reasoning log. Agent mode admits only weights built in the lab that behave like the reference and reach the network through our own gateway.

каждый шаг — коммит в git лабы. Любой результат воспроизводим командой из отчёта.every step is a commit to the lab's Git repository. Any result is reproducible with a command from the report.

04 / сравнениеcomparison

Готовый квант, облако или своя сборкаOff-the-shelf quant, cloud API, or custom build

готовый квант с хабаoff-the-shelf quant from a hubоблачный APIcloud APIdtwin
известно, что внутри весовyou know what's inside the weights— нетno— нетnoда, разность к оригиналу по каждому тензоруyes, a diff against the original for every tensor
можно собрать свою версиюyou can build your own version— нетno— нетnoда, из оригиналаyes, from the original
качество кванта измереноquant quality is measuredпо карточке автораper the author's model cardне применимоnot applicableтаблица логитов против оригиналаlogit table vs. the original
чем проверено, что закладки нетchecked for backdoors— ничемnot checkedпроверить извне нельзяcan't be checked from outsideразностью с оригиналом, с показанным методом проверкиdiffed against the original, with the method shown
скоростьspeedкак получитсяwhatever you getпо тарифуdepends on your planпрофилируется и разгоняется, с датой замераprofiled and optimized, with a dated benchmark
воспроизводимостьreproducibility— нетno— нетnogit, манифесты, команда из отчётаGit, manifests, and the command from the report
05 / правилаrules

Для когоWho it's for

  • Для тех, кому нужна открытая модель в проде и кто не готов верить чужому кванту на слово.For those who need an open model in production and won't take a third-party quant on faith.
  • Для команд, где каждый байт обязан остаться на своём железе.For teams where every byte must stay on their own hardware.
  • Для тех, кому нужна модель без отказов там, где они мешают работе, — но с доказательством по весам, что в неё не попало ничего лишнего.For those who need a model that doesn't refuse when refusals get in the way of the work, but with proof from the weights that nothing else slipped in.

Чего здесь не делаютWhat we don't do

  • Чужие веса не идут в работу без разности к оригиналу.We don't put third-party weights into production until we've diffed them against the original.
  • Веса разных авторов не смешиваются.We don't merge weights from different authors.
  • Скорость не обещается до замера.We don't promise speed until we've measured it.
  • Оригиналы не удаляются без сверенной копии.We don't delete originals without a verified copy.
06 / контактcontact

Обсудить ваши весаLet's talk about your weights

Напишите, какая модель и какая задача. В ответ придёт разбор: что можно собрать, сколько это займёт памяти и чем это будет доказано.Tell us the model and the task. We'll reply with an analysis: what can be built, how much memory it will take, and how we'll prove it.

Написать →Get in touch → contact@dtwin.ninja