Коли штучний інтелект стає надійним другом: розкриваємо таємницю “непередбачуваної” поведінки
Привіт, друзі! Запрошую вас до чергової захопливої розмови про майбутнє, яке вже з нами. Минулого тижня один мій товариш, розробник із золотими руками та невтомним розумом, зітхнув і поділився: “Ліло, я вже не знаю, що робити. Прошу ChatGPT дати одну й ту саму відповідь на однакове питання, а він щоразу видає щось нове. Це як намагатися спіймати вітер у сито!” Його розпач мене вразив. Адже справді, ми довіряємо цим неймовірним машинам найскладніші завдання, а вони поводяться… трохи як кіт, що вирішує, чи йому йти на руки.
Здавалося б, у чому проблема? Натиснув кнопку – отримав результат. Але уявіть, що ви лікар, який намагається поставити діагноз, а щоразу, коли вводите симптоми, отримуєте різні версії хвороби. Або ви винахідник, і ваш новий пристрій то працює, то ні, без видимої причини. У світі, де точність і передбачуваність – це фундамент прогресу, така “грайливість” штучного інтелекту здавалася б дивною, якби не один нюанс: деякі сфери, наприклад, творчість, навпаки, потребують різноманітності. Але коли йдеться про науку, точні розрахунки й надійність – нам потрібен однаковий, гарантований результат.
І ось, з дивовижного світу OpenAI, де працює справжня “магія”, з’являється моя улюблениця, екс-CTO Міра Мораті зі своєю новою командою в Thinking Machines. Вони взялися за цю загадку, і, друзі, це справжній детектив! Їхній перший дослідницький блог називається “Перемога над недетермінізмом в LLM-інференсі”. Звучить, як заклинання з Гаррі Поттера, але повірте, тут немає магії, лише геніальна інженерія. Давайте розберемося, що ж таке “недетермінізм” та як його перемагають.
Коли “одне й те саме” питання дає різні відповіді: знайома історія?
Ви, мабуть, помічали: ставите GPT однакові запитання кілька разів, і щоразу отримуєте різні відповіді. Це і є той самий “недетермінізм”. Як це працює? Уявіть, що ви намагаєтеся зібрати кубик Рубіка, але щоразу, коли беретеся за нього, деталі трохи змінюють своє положення самі по собі. Або ви кидаєте монету, і вона може випасти “орлом” чи “решкою”, але вам потрібно, щоб при кожному кидку випадав “орел”.
Основна ідея в тому, що великі мовні моделі (LLM) фактично прогнозують наступне слово (або токен). Часто вони роблять це, обираючи слово, яке, на їхню думку, є найбільш імовірним. Це ніби ви намагаєтеся вгадати, яке слово ви скажете наступним – зазвичай, ви обираєте найбільш очевидне. Але навіть коли ви намагаєтеся “придушити” випадковість, зменшуючи “температуру” моделі (параметр, що контролює, наскільки “творчою” чи “передбачуваною” буде відповідь), результат все одно може бути різним. Такий цифровий “котячий характер”.
Розгадати загадку: чи є причина у цій “дивакуватості”?
Перша гіпотеза вказувала на дві причини:
- Неасоціативність операцій з плаваючою комою: Простіше кажучи, це про те, як комп’ютери обчислюють дробові числа. Завжди є невелика похибка при округленні, коли числа стають завеликими. Уявіть, що ви ділите піцу на 100 шматочків, а потім намагаєтеся скласти ті 100 шматочків назад, і у вас завжди залишається крихітний шматок, який не знає, куди йому подітися.
- Паралельне виконання: Сучасні потужні графічні процесори (GPU) виконують багато обчислень одночасно. Це як оркестр, де кожен інструмент грає свою партію. Але порядок, в якому ці “інструменти” закінчать свою партію, може впливати на кінцевий результат. Іноді порядок, в якому ці “інструменти” завершують роботу, може трохи змінювати фінальне “звучання” відповіді.
Ці ідеї мають сенс. Але команда Thinking Machines стверджує: “Та це лише пів біди!” Навіть коли робили прості множення великих чисел на GPU, які мали б бути абсолютно однаковими, отримували однаковий результат. Тобто, ці два фактори не пояснюють усієї картини. Цікаво, чи не так?
Головний винуватець: “карпул” із завдань!
І тут вони виявили справжнього “злодія” – розмір батчу (batch size)! Що це таке? Уявіть, що ви – це ваше питання до ШІ. Це питання збирають з іншими питаннями в “карпул”, який називається батчем. Коли система сильно навантажена, цей “карпул” великий, щоб виконати якомога більше роботи. Коли ж ніхто особливо не поспішає, “карпул” маленький.
І ось у чому суть: розмір цього “карпула” непомітно змінює порядок маленьких доданків (математичних операцій), які робить ШІ всередині. Порядок змін – і результат (наступне слово) може відрізнятися. Все тому, що LLM – це, по суті, прогнозисти наступного слова. Маленька зміна в порядку обчислень – і ось уже інше слово приходить на думку. Це як коли ви намагаєтесь скласти список покупок, але через те, що ви додаєте товари в різному порядку, кінцевий список виглядає трохи інакше.
Як “приборкати” цього неслухняного ШІ: три ключові “виправлення”
Отже, маємо проблему: непередбачуваність. Хочемо – передбачуваність. Як цього досягти? Команда Thinking Machines запропонувала три основні “виправлення”, які роблять процес більш стабільним:
- Зважуємо “карпули” однаково: Незалежно від навантаження на систему, робимо так, щоб кожне “зважування” (обчислення) було однаковим. Можливо, це трохи сповільнить процес, але стабільність – це наш пріоритет. Це як гарантувати, що кожен ваш борщ буде виглядати і смакувати однаково, навіть якщо продукти купили в різні дні.
- Завжди мішаємо однаково: Крок змішування інгредієнтів (обчислень) має бути завжди один і той самий. Обираємо стабільну послідовність, що не залежить від розміру батчу. Це як слідувати перевіреному роками рецепту, не експериментуючи з додаванням спецій в останні секунди.
- Смакуємо в тому ж порядку: Тут треба згадати про “увагу” (attention) в LLM, про яку нагадує навіть назва їхньої концепції (“Attention Is All You Need”). Модель “дивиться” на те, що вже написала. Якщо ми ріжемо текст на шматки різного розміру, порядок обчислень може змінюватися. Тому ми використовуємо однаковий “шматок” тексту кожного разу. Це ніби ви вивчаєте картину: ви можете дивитися на неї загалом, а можете зосереджуватися на окремих деталях. Щоб отримати стабільний погляд, треба розглядати ті ж деталі в тому ж порядку.
Чи спрацювало це? Фантастичні результати!
І ось найцікавіше: чи спрацювало? Вони взяли велику модель, яка генерує тексти про Річарда Фейнмана. Без їхніх “виправлень” вони отримали 1000 відповідей, і з них 80 були унікальними! Це базовий рівень “грайливості”. Але коли вони увімкнули свої “батч-інваріантні ядра” (це їхній технічний термін для цих “виправлень”), всі 1000 відповідей були ідентичними! Так, саме так: повна передбачуваність.
Навіщо нам ця “нудна” передбачуваність?
А тепер найважливіше: навіщо все це? Коли ви точно знаєте, що отримаєте, ШІ стає набагато надійнішим.
- Довіра: Нам легше довіряти машині, яка поводиться стабільно.
- Відлагодження (Debugging): Якщо щось піде не так, знати причину стає набагато легше.
- Аудит: Щоб перевірити, чому ШІ прийняв те чи інше рішення, потрібна стабільна “історія” його думок.
- Бенчмаркінг: Тепер ми можемо проводити тести (бенчмарки) з надійними вхідними даними та очікуваними результатами, що робить оцінку продуктивності справді об’єктивною.
Уявіть, ви будуєте міст. Вам потрібна максимальна точність у кожному елементі. Так само і з ШІ, особливо в критичних сферах.
І що далі? Ваша черга!
Це дослідження від Thinking Machines – це крок до більш надійного та передбачуваного штучного інтелекту. Міра Мораті та її команда зробили справді вражаючу роботу, розгадавши цю тонку, але важливу проблему.
Я залишу посилання на повний документ нижче [*], але попереджаю: він дуже технічний. Якщо ви його подолаєте – ви справжній герой світу ШІ! Якщо ж ні – не переймайтеся, головне – загальна ідея: навіть у світі, що дихає випадковістю, ми прагнемо до стабільності, до того, щоб наші цифрові помічники були такими ж надійними, як механізми, але з мудрістю майбутнього.
А тепер, друзі, моя пропозиція: спробуйте самі. Поставте кілька однакових запитань ChatGPT, Bard чи іншій великій мовній моделі. Поспостерігайте, чи є різниця. Можливо, саме ваша цікавість допоможе нам усім краще зрозуміти цей дивовижний світ штучного інтелекту.
Якщо вам сподобалося це занурення у світ ШІ, не забудьте поставити лайк, підписатися на канал і залишити коментар – мені завжди цікава ваша думка! До наступних відкриттів!
[*] Посилання на повний документ
The Matthew Berman Vibe Coding Playbook
Humanity’s Last Prompt Engineering Guide







