Лекція від Andrej Karpathy
https://www.youtube.com/watch?v=LCEmiRjPEtQ
1. Три епохи програмного забезпечення
- Software 1.0 👨💻: Традиційний код (наприклад, C++, Python), написаний людьми.
- Software 2.0 🧠: Нейромережі (ваги моделей), які навчаються на даних.
- Software 3.0 🤖: LLM (ChatGPT та ін.), де програми — це промпти природною мовою (англійська).
"Ми тепер програмуємо комп'ютери англійською — це божевілля!"
2. LLM — це нова ОС?
- Аналогія з операційними системами:
- LLM = процесор 🖥️
- Контекстне вікно = оперативна пам'ять
- Мультимодальність та інструменти = API
- 1960-ті в ШІ: Зараз LLM дорогі та працюють як мейнфрейми, але скоро будуть локальними.
- Проблеми LLM: Галюцинації, "рваний інтелект" (сверхрозумні в одному, дурні в іншому), вразливості.
3. Як працювати з LLM?
- Часткова автономність:
- Приклади: Cursor (автокод-помічник), Perplexity (пошук з ШІ).
- "Повзунок автономності": Від підказок до повного агента.
- GUI критичний: Візуалізація змін прискорює перевірку.
- Найкращі практики:
- Чіткі промпти → менше помилок.
- Тримати ШІ "на повідку" (занадто великі зміни важко перевіряти).
4. Vibe Coding — програмування для всіх
- Тепер кожен може кодити, просто описуючи завдання англійською.
- Приклад: Карпаті за день зробив iOS-додаток, не знаючи Swift. Але розгортання та DevOps поки вимагають ручної роботи (і це біль 😅).
5. Майбутнє: інфраструктура для агентів
- Потрібні "документи для ІІ":
lm.txt
замістьrobots.txt
— інструкції для LLM.- Markdown-документація (як у Vercel та Stripe).
- GitHub → Ingest (конвертує репозиторій у текст для LLM). https://gitingest.com/
6. Підсумок
- Перехід від "милиць" до агентів займе роки.
- Аналогія з костюмом Залізної людини: Зараз це посилення людини, але рухаємося до повної автономності. Майбутнє за гібридом людей та ШІ.
Обговорення на HN
https://news.ycombinator.com/item?id=44314423
LLM як нова парадигма програмування
Аргументи "ЗА":
"Англійська — нова мова програмування": Це фундаментальний зсув від детермінованих, формальних мов до імовірнісних, що дозволяє створювати ПЗ не-програмістам ("vibe coding").
Новий інструмент: LLM — це ще один інструмент в арсеналі розробника, який доповнює, а не замінює існуючі підходи.
Робота з невизначеністю: Програмісти завжди мали справу з недетермінізмом (відповіді API, ввід користувача), тому робота з LLM — це лише розширення цієї практики.
Аргументи "ПРОТИ" (Скептицизм):
Формальні мови — це перевага, а не недолік: Вони забезпечують точність, надійність та верифікованість, які є основою інженерії. Відмова від них на користь природної мови — це крок назад до "магічного мислення".
Недетермінізм LLM небезпечний: На відміну від помилки API, LLM може видавати "сміття, що виглядає як золото" — правдоподібну, але абсолютно неправильну відповідь, яку важко виявити.
Hype vs. реальність: Багато хто вважає, що можливості LLM сильно перебільшені, порівнюючи поточний ажіотаж із "бульбашкою криптовалют".
Роль розробника трансформується:
- Від написання коду рядок за рядком до "керування контекстом" (context wrangling) та промпт-інженерії.
- Людина стає верифікатором та куратором — тим, хто задає швидку "петлю зворотного зв'язку" (генерація → перевірка → корекція).
- Деякі побоюються, що це знецінить професію, перетворивши інженерів на "QA-тестувальників для ШІ". Інші ж бачать у цьому можливість для експертів з інших галузей створювати власні інструменти.
Практичні інструменти та виклики
Структурований вивід (Structured Outputs): Використання JSON-режиму це "суперсила", яка робить вивід LLM передбачуваним та придатним для програмної обробки. Це часто недооцінений інструмент.
Детермінізм vs. Хаотичність: LLM не є абсолютно випадковими. При температурі 0 вони детерміновані, але "хаотичні" (маленькі зміни у вхідних даних можуть призвести до великих змін у виводі).