Майбутнє з AI. Оптимізація роботи з LLM для зниження витрат без втрати продуктивності
Привіт! Я Senior Developer в компанії SoftServe із понад сімома роками досвіду у програмуванні. В основному доводиться працювати з SaaS-сервісами, а в них, своєю чергою, важлива надійність, інтеграції та масштабованість.
Оцінивши те, як швидко АІ пробрався в нашу роботу, я задумався, як можна використати це для пришвидшення виконання моїх основних задач, а саме — створення мікросервісів.
Тому я почав розробку свого пет-проєкту, що допомагає створювати CRUD-сервіс, код якого генерується згідно з шаблоном, заданим програмістом, та OpenAI (на час розробки пет-проєкту — OpenAI версій gpt-4). Коли я побачив рахунки за запити до OpenAI, зрозумів, що програму потрібно оптимізувати. Саме так і почав свій шлях в напрямку оптимізації ресурсів, які нам надає штучний інтелект.
У цій статті я спробую познайомити вас із новою концепцією використання великих мовних моделей (LLM) для створення власних інструментів, які лежать в основі таких генеративних моделей, як ChatGPT. Це дозволяє значно покращити ефективність розв’язання задач, оптимізувати витрати та підвищити продуктивність моделей.
Стаття ґрунтується на роботі інженерів Корнелльського університету та роботах інших дослідників.
Вартість використання AI-інструментів
Не так давно я натрапив на статтю про вартість одного запиту до ChatGPT і був дуже здивований. Загалом, важко назвати точну цифру, проте приблизні розрахунки є.
За оцінками професора комп’ютерних наук в університеті Мериленду, Тома Голдштейна, для запуску ChatGPT потрібно не менше пʼяти відеокарт NVIDIA A100 з обсягом пам’яті від 80 Гб, щоб завантажити модель і текст.
Такі відеокарти можна орендувати за близько $3/год на хмарній платформі Azure від Microsoft. А це означає, що за кожне слово, згенероване нашим чат-ботом, ми платимо приблизно $0.0003 дол. В середньому ChatGPT відповідає на запит користувача 30 словами, що становить приблизно один цент.
Голдштейн також припускає, що ChatGPT обслуговує близько 10 млн запитів на день. Звідси випливає, що витрати на підтримку роботи ChatGPT становлять близько $100 тис. на день або $3 млн на місяць. Варто зазначити, що Голдштейн рахує суто витрати на оренду серверів та «заліза».
Тоді як головний аналітик дослідницької фірми SemiAnalysis Ділан Патель припускає, що витрати Microsoft і Open AI на ChatGPT перевищують $700 тис. на день, бо AI вимагає величезної кількості обчислювальної потужності для генерації відповідей. Та мало кого налякаєш вартістю запиту в доларах, а як щодо питної води?
Один запит до ChatGPT вартує нам однієї пляшки питної води! Стільки витрачається ресурсів для охолодження центрів обробки даних та підтримки оптимальної вологості у приміщеннях з серверами. А ще рідина потрібна для виробництва електроенергії, яку споживають центри обробки даних.
Ці цифри навели на мене жах, стільки років розмов про збереження довкілля для «майбутніх поколінь» і тут 500 мл води на один запит! Та це ще не все, подивіться на викиди вуглецю, спровокованих використанням LLM.
Дана діаграма відтворена зі звіту Інституту штучного інтелекту, орієнтованого на людину Стенфордського університету. Вона ілюструє викиди CO₂ за різними дослідженнями.
Примітно, що модель GPT-3 виділяється як найбільший викид вуглецю з 500 тоннами. Середнє споживання електроенергії для тренування моделі GPT-3 оцінюється в 1287 МВт/год — цього достатньо для живлення середнього американського будинку протягом 120 років. Тоді як викиди CO₂ новітніх моделей виділяють ще більше.
Ні, я не пропоную відмовитися від використання ChatGPT чи будь-якої іншої LLM. Все, до чого я закликаю — це оптимізація.
Зараз постає питання не лише про ресурси сервера чи фінансові витрати на підтримку проєкту, а про наше майбутнє. Не можна очікувати, що проблема вирішиться сама собою.
Чому ж нам не оптимізувати використання LLM?
В дослідженні інженерів Корнелльського університету представлена нова модель роботи з LLM — «Large Language Models as Tool Makers» (LATM).
LATM — це закрита система, де великі мовні моделі створюють і використовують свої інструменти. Цей підхід складається з двох основних фаз: створення інструментів (Tool Making) і використання інструментів (Tool Using).
У ситуаціях із численними запитами на виконання завдань безпосереднє використання потужної великої мовної моделі (LLM) може призвести до високих витрат. З іншого боку, легкі моделі є економічно вигідними, але зазвичай натрапляють на труднощі при розв’язанні складних задач.
Як працює LATM
LATM використовує переваги обох моделей, залучаючи потужну модель як творця багаторазових інструментів для генерування для завдань, що спостерігаються в запитах, і передає їх економічно вигідній моделі-користувачеві для вирішення схожих завдань у подальших запитах. Такий підхід дозволяє легкій моделі досягати продуктивності, порівнянної з потужною моделлю, при цьому зберігаючи вищу економічну ефективність.
У фазі створення інструментів потужна модель, така як GPT-4 (Tool Maker), створює універсальні інструменти на основі кількох демонстрацій. Цей процес містить їх генерацію (Tool Proposing:), перевірку (Tool Verification) та пакування (Tool Wrapping) для подальшого використання.
- Tool Proposing. Цей процес відповідає «програмуванню на прикладі» (парадигма PbE (Halbert, 1984), де надається кілька конкретних демонстрацій, а модель необхідна для написання програм, які створюють продемонстровану поведінку.
- Tool Verification. Цей етап виконує дві ключові ролі: 1) надає приклади, які можуть продемонструвати, як перетворити питання природної мови на виклики функцій, і 2) це перевіряє надійність інструменту, що дає змогу повністю автоматизувати весь процес.
- Tool Wrapping. Цей крок передбачає завершення коду функції та демонстрацію того, як перетворити завдання на її виклик.
У фазі використання інструментів легка модель, така як GPT-3.5 Turbo (Tool User), застосовує створені інструменти для розв’язання нових задач. Це допомагає оптимізувати витрати та забезпечує високу продуктивність.
Основна перевага LATM полягає у можливості розподілу задач між потужними й легкими моделями. Це дозволяє значно знизити витрати на обробку запитів, зберігаючи при цьому високу якість рішень.
Цей підхід, натхненний еволюційними досягненнями людини у створенні інструментів, містить два ключові етапи: створення інструментів (Tool Making) та використання інструментів (Tool Using). Такий поділ праці дозволяє нам використовувати можливості передових LLM, водночас значно знижуючи обчислювальні витрати.
Спостерігаючи за тенденціями сучасної розробки LLM, можемо бачити рух в сторону оптимізації використання
Використання AI-інструментів в роботі програміста стає все буденнішим. Взяти хоча б GitHub Copilot для написання Unit-тестів чи використання Claude-допомоги в розумінні складних концепцій. Ми вже не так часто заходимо на stackoverflow для отримання допомоги, коли натикаємося на труднощі (звичайно, після читання офіційної документації).
Тому саме нам потрібно задуматися, яким ми хочемо бачити наше майбутнє з розвитком АІ. ChatGPT, Claude, GitHub Copilot стали нашими невіднятними порадниками в роботі всього за декілька років, тому варто використовувати штучний інтелект хоч трішки обачніше.
Якщо ви дочитали до цього місця, то підозрюю, що не лише в мене викликали занепокоєння дані, представлені в розглянутих дослідженнях. Тому вірю, що ще не все втрачено.
Дякую за ваш час, працюймо над кращим майбутнім разом та підтримуймо ЗСУ.
3 коментарі
Додати коментар Підписатись на коментаріВідписатись від коментарів