Gisting в Shopify: Компресиране на системни промптове в научени токени за по-бърз и евтин ИИ

Публикувано от Svetni.me Editorial на 3 септември 2026 г.

Илюстрация на компресиране на контекст и научени вектори в езикови модели
Изображение: Svetni.me / ИИ генерирано изображение

В официална публикация в инженерния си блог [1], авторите Коди Маца-Антъни и Пейдж Вегна от екипа на Shopify представиха практическото внедряване на gisting – иновативен метод за компресиране на контекста при големите езикови модели (LLM). Технологията позволява обширни системни инструкции, съдържащи хиляди токени, да бъдат преобразувани в компактен набор от предварително научени виртуални вектори (gist tokens). Това осигурява пълните поведенчески предимства на детайлния промпт инженеринг, но при значително по-ниски изчислителни разходи и осезаемо по-висока скорост на изпълнение.

В съвременните производствени среди автономните агенти разчитат на обемисти системни промптове за форматиране на изхода, дефиниране на достъпни инструменти и спазване на бизнес правила. В случая с GraphQL агента Sidekick на Shopify този базов контекст надхвърля 6000 токена на всяка отделна потребителска заявка. Чрез прилагане на gisting инженерният екип успява да свие този масив в съотношение 4:1 до около 1500 токена, без да регистрира спад в качеството на крайните отговори [1].

Инфографика за архитектурата на gisting, сравнението с prefix caching и постигнатите резултати в Shopify
Изображение: Svetni.me / ИИ генерирана инфографика

Архитектура на метода и двустепенна дестилация

Основата на метода стъпва върху научна разработка от 2022 г. за компресиране на промптове чрез контрастивно обуславяне. При gisting към речника на модела се добавят специални токени, чиито векторни вграждания (embeddings) се оптимизират директно. Целта на обучението е поставянето на тези виртуални маркери в контекста да накара архитектурата да се държи точно така, сякаш е видяла оригиналния пълнотекстов промпт. При съотношение 4:1 за всеки четири текстови токена от инструкциите се обучава един gist токен. По време на процеса теглата на самия езиков модел остават напълно замразени, като се актуализират единствено новите векторни стойности.

Обучението на тези вектори се извършва чрез дестилация на знание посредством двустъпков процес на преминаване (forward pass) за всяка траектория от данни. При първата стъпка – пропуск на учителя (teacher pass) – моделът получава пълния естествен текст на промпта и извежда вероятностните разпределения (teacher logits) за всяка позиция от отговора. При втората стъпка – пропуск на ученика (student pass) – оригиналният промпт се заменя с компресираните gist токени, след което същият модел генерира разпределенията на ученика (student logits). Векторите се оптимизират чрез минимизиране на дивергенцията на Кулбак-Лайблер (KL divergence) между двата изхода, докато предсказанията на ученика максимално се доближат до тези на учителя [1].

Интеграция в производствената среда и нулев овърхед

Внедряването на компресиран модел в експлоатация се отличава с изключителна простота. След приключване на фазата на дестилация новите векторни вграждания се записват директно в съществуващата матрица на модела, а токените се регистрират като специални маркери в неговия токенизатор. По този начин моделът се зарежда и обслужва стандартно от съществуващия инференс сървър, без необходимост от персонализирани маски за внимание (attention masks), допълнителни енкодери или специализирани конвейери за обработка.

Единствената промяна в реално време се случва на ниво заявка от страна на клиента. При всяко извикване на агента дългият низ от системни инструкции се подменя с компактния низ от gist токени. По този начин цялата изчислителна цена на компресията се заплаща еднократно по време на фазата на предварително обучение, елиминирайки всякакъв архитектурен овърхед по време на обслужване на трафика [1].

Защо кеширането на префикси не решава проблема с паметта

Често срещан въпрос в инженерните среди е дали gisting не дублира функциите на стандартното кеширане на префикси (prefix caching). Всички съвременни платформи за инференция поддържат KV кеш, който съхранява ключовете и стойностите за вече обработени последователности. Когато дадена входяща заявка съдържа познат откъс, като повтарящ се системен промпт, неговите тензори се извличат директно от графичната памет, вместо да се преизчисляват наново в етапа на prefill.

Въпреки своята ефективност, кеширането на префикси не намалява натоварването по време на фазата на декодиране (decode phase). При генерирането на всеки следващ токен от отговора моделът трябва да приложи механизма на внимание върху абсолютно всеки предходен ключ в последователността, независимо дали той е извлечен от кеша или е нов. Тъй като декодирането е строго ограничено от пропускателната способност на паметта (memory-bandwidth-bound), всяка стъпка на генериране изисква непрекъснато прехвърляне на целия KV кеш от бързата HBM памет на графичните процесори. Това четене нараства линейно спрямо дължината на кеширания контекст.

Gisting директно свива физическия обем на тези структури, намалявайки едновременно математическите изчисления за внимание и обема на трансферираните данни. Тези две оптимизации се допълват взаимно, като ефектът от съвместното им използване се мултиплицира особено силно при увеличаване на размера на пакетите от заявки (batch size) [1].

Автоматизирано изследване и архитектурни уроци

За прецизно настройване на хиперпараметрите инженерите на Shopify разработват автоматизиран цикъл за изследвания (autoresearch loop). Системата автономно генерира конфигурационни параметри, обучава векторните вграждания, оценява получените модели спрямо тестови масиви и итерира процеса. Този подход довежда до три основни открития, повлияли критично върху крайната точност:

  1. Инициализация чрез усредняване: Вместо да стартират векторите с произволен шум, инженерите разделят системния промпт на сегменти с дължина k (съответстваща на коефициента на компресия k:1) и инициализират n-тото вграждане със средноаритметичната стойност на токените от съответния отрязък. Тази стъпка съкращава първоначалната функция на загуба седем пъти.

  2. Оптимална граница на компресия: Експериментите с различни съотношения показват, че за сложната домейн логика на GraphQL агента границата от 4:1 осигурява максимално сгъстяване без деградация на отговорите, докато по-високи нива водят до загуба на точност.

  3. Обем и вариативност на данните: Съставянето на богат и разнообразен масив от синтетични и реални диалогови примери успява да заличи оставащата разлика в представянето спрямо пълния промпт.

В допълнение, автоматизираният анализ решава два съществени проблема в изчислителната инфраструктура. Първият засяга нормализирането на загубата: усредняването на загубата на ниво токен води до халюцинации в отговорите, докато усредняването върху целия пакет (batch) съхранява важните сигнали при дълги съобщения и стабилизира вектора. Вторият проблем е свързан със скоростта: предварителното изчисляване на учителските изходи (logits) и предварителната токенизация съкращават времето за пълно обучение от тридесет на едва шест часа [1].

Производствени показатели и реална икономия на хардуер

След оптимизацията инженерният екип провежда серия от стрес-тестове, сравняващи модела с компресиран промпт срещу оригиналната версия с пълен текст при нарастваща паралелност на заявките. Резултатите потвърждават значително съкращаване на закъсненията при реално натоварване:

При входящ трафик от 350 заявки в минута (RPM) медианното време до първия получен токен (Time to First Token, TTFT) пада от 438 милисекунди на 354 милисекунди, което бележи спад от 19%.

Медианното общо време за изпълнение на заявка (end-to-end latency) се съкращава с приблизително 38% – от 6,8 секунди до 4,2 секунди.

Общата пропускателна способност на обслужващата система нараства с 16%, скачайки от 20,2 на 23,4 заявки в секунда (QPS), според прегледа на InfoQ и данните на Shopify [1, 2].

В контекста на съвременния недостиг на изчислителни ресурси това 16-процентно увеличение на производителността има директно икономическо изражение. Благодарение на повишената ефективност Shopify успява да намали с 14% броя на графичните процесори, заделени за обслужване на GraphQL трафика на Sidekick, постигайки сериозно съкращаване на разходите за сървърен хардуер.

Синергия с цикъла на непрекъснато самообучение

Gisting се вписва естествено и в инфраструктурата за непрекъснато обучение (continual learning) на платформата. Веднъж получени чрез дестилация, научените вектори се превръщат в отправна точка за по-нататъшно дообучаване (post-training). При появата на нови функционалности или актуализирани бизнес данни моделът може да бъде дообучен, като градиентните актуализации се прилагат паралелно както върху весовете на модела, така и върху самите gist вграждания.

Този механизъм позволява постоянен калибрационен контрол и плавно надграждане на агентските възможности, без да се налага дестилационният процес да бъде стартиран от нулата при всяка нова версия на системата. В епоха, белязана от висок ръст в цените на хардуера и недостиг на чипове, компресирането на контекста се утвърждава като нов структурен стандарт за инженерните екипи на Shopify [1].

Източници:

[1]: Gisting: Compressing LLM Agent context to ↑ throughput and ↓ cost (2026) - Shopify Engineering

[2]: Shopify Introduces Gisting: Compressing LLM System Prompts into Learned Tokens - InfoQ