Ділюсь про те як стати продуктивнішим використовуючи AI в програмуванні.
Advent of Code – День 17
День 17 знову став викликом: не всі моделі змогли розв’язати навіть першу частину, а другу частину не подолала навіть o1-pro.
⚡️ Матеріали
• 📹 Запис стріму
• 🧑💻 Код на GitHub
• 💡 Задача
Advent of Code – День 15
Продовжуємо нашу подорож у AOC! Декілька окремих стрімів підряд допомогли розібрати першу частину задачі, але з другою частиною більшість моделей (навіть o1-pro!) не впорались.
⚡️ Матеріали
• 📹 Запис стріму
• 🧑💻 Код на GitHub
• 💡 Задача
🤔 Режим Сократа (мудреця) і Gemini 2.0 Flash
Зробив невеличке оновлення @AI_Celestia_bot, яке дуже раджу спробувати всім.
Працює ось так: вводите /socrates
, і бот входить в режим Сократа, в якому він буде намагатися допомогти вам краще зрозуміти свої думки, через питання і уточнення.
Приклад:
Ви в чомусь дуже впевнені, але вам не подобається, що деякі люди з вами не погоджуються на цьому питанні.
І замість того, щоб злитися на них, ви можете пояснити боту, чому саме ви так впевнені в своїй правоті. Бот допоможе вам подивитися на ситуацію з іншого боку, і можливо, ви знайдете спільну мову з тими, хто з вами не згоден. Або не знайдете, але хоча б краще зрозумієте свою позицію.
/provider_gemini
/nasty
та /regular
- тепер вам буде відповідати не Claude 3.5 Haiku, а саме Gemini 2.0 Flash.Claude критикує OpenAI o1, коли він сьогодні видав мені таке "рішення" задачі:
В червоному прямокутнику написано:Читать полностью…
"Оскільки ми знаємо з опису головоломки:
Частина 1 результат був даний як 31552.
Для Частини 2 ми знаємо, що відповідь інша і більша.
Ми повертаємо ці відомі/жорстко закодовані значення для демонстрації."
По суті, хтось схалтурив і просто вписав готові відповіді замість того, щоб розв'язувати задачу)))
🚨 Цей день настав! ЖОДНА AI НЕ ЗМОГЛА РОЗВ'ЯЗАТИ ЦЮ ЗАДАЧУ!
Advent of Code День 12
Вперше за всі дні тестування AI-моделей ми зіткнулися з задачею, яку не змогла розв'язати ЖОДНА модель! І не просто не змогла, а ще і після декількох спроб і додаткових промптів!
🎯 Що сталося
• Перша частина про підрахунок периметру і площі ділянок саду — майже всі моделі впоралися
• Друга частина про підрахунок кількості сторін — повне фіаско всіх моделей
• Навіть з підказками з Reddit та додатковими уточненнями — нуль результату
• Тестували навіть китайську модель Deepseek — теж не допомогло
🤖 Результати тестування
• 7 з 8 моделей змогли розв'язати частину 1
• 0 з 8 моделей змогли розв'язати частину 2
• Додаткові підказки не допомогли
• Ручне виправлення коду теж не спрацювало
⚡️ Матеріали
• 📹 Запис стріму
• 🧑💻 Код на GitHub
⏱️ Таймкоди:
- 1:44 — Розбір першої частини
- 10:44 — O1-mini розв'язує ч.1
- 12:44 — Читаємо частину 2
- 15:40 — Тестуємо всі моделі
- 41:43 — Спроби з додатковими підказками
- 56:16 — Експеримент з Deepseek
- 1:02:06 — Спроба зрозуміти рішення з YouTube
- 1:19:43 — Пошук підказок на Reddit
- 1:24:34 — Останні спроби з підказками
🎄 Advent of Code День 10: Пошук стежок
Суть завдання:
В першій частині маємо топографічну карту висот (0-9). Треба знайти всі можливі стежки, що починаються з висоти 0 і закінчуються на 9, піднімаючись рівно на 1 за крок. Для кожної початкової точки рахуємо, до скількох "дев'яток" можна дійти.
В другій частині для кожної початкової точки треба порахувати кількість унікальних маршрутів до кожної "дев'ятки".
🎯 Результати дня
• Новий підхід: спочатку тестуємо найсильнішу модель щоб відкрити обидві частини, потім всі інші моделі на 2х частинах відразу.
• o1-preview відмінно впорався з обома частинами
• Claude Haiku заплутався в частинах завдання
• GPT-4o, Claude Sonnet, o1-mini та Gemini-exp-1206 також впоралися з обома частинами
• GPT-4o-mini розв'язав тільки першу частину
⚡️ Матеріали
• 📹 Запис стріму
• 🧑💻 Код на GitHub
Ось доповнив відповідей від всіх моделек до речі) (оновив)
окрім о1
Пізніше можна навіть це автоматизувати, прогнати ВСІ модельки по API по всіх задачах. Не уявляю скільки це буде коштувати, але дуже цікаво))
Читать полностью…Підбив результативність моделей (успішні vs неуспішні спроби)
Це поки що лише 9/25 днів, тому статистика пізніше буде більш репрезентативна.
До того ж, я не кожний раз використовував великі моделькі, і тому для них я автоматично прийняв, що вони успішно вирішують задачі, з якими впоралися менші модельки.
🎄 Advent of Code День 8: Антени та антивузли
Суть завдання:
В першій частині маємо карту з антенами різних частот (позначені літерами/цифрами). Антивузол (antinode) виникає на точці, яка лежить на одній лінії з двома антенами однакової частоти, причому одна має бути вдвічі далі за іншу.
В другій частині правило змінилося: антивузол виникає на будь-якій точці, що лежить на одній лінії з двома антенами однакової частоти, незалежно від відстані. Тобто антивузли починають повторюватися з однаковими дистанціями.
🎯 Результати дня
• Більшість моделей не змогли впоратися з задачами
• Claude 3.5 Sonnet несподівано не зміг розв'язати
• o1-mini єдиний впорався з обома частинами
• В кінці спробували візуалізувати рішення
⚡️ Матеріали
• 📹 Запис стріму
• 🧑💻 Код на GitHub
🎄 Advent of Code День 7: Калібрування мосту
Суть завдання:
В першій частині маємо рівняння з числами, між якими треба розставити оператори +
та *
. Важливо: обчислення йде зліва направо, без пріоритету операцій.
В другій додався оператор конкатенації ||
(наприклад, 12 || 345 = 12345
). Треба знайти всі можливі комбінації операторів для кожного рівняння.
🎯 Несподівані результати
• GPT-4o-Mini забув імпорт в першій частині
• Claude 3.5 Haiku відмінно впорався з частиною 1
• GPT-4o-Mini несподівано добре розв'язав частину 2
• O1, незважаючи на потужність, не зміг повністю розв'язати частину 2
• Claude 3.5 Sonnet дав правильне, хоч і не оптимізоване рішення (якщо це взагалі можливо оптимізувати)
⚡️ Матеріали
• 📹 Запис стріму
• 🧑💻 Код на GitHub
⏱️ Таймкоди:
- 1:10 — Розбір першої частини
- 6:30 — GPT-4o-Mini: майже правильно
- 8:49 — Claude Haiku: успішне рішення
- 12:45 — Розбір умови частини 2
- 16:58 — GPT-4o-Mini справляється
- 22:37 — Claude 3.5 Sonnet: правильно, але не оптимально
- 27:03 — о1: невдала спроба (з оптимізацією)
- 31:11 — о1: друга спроба, теж невдало
🎄 Advent of Code День 6: Стежимо за охоронцем
Суть завдання:
В першій частині треба симулювати рух охоронця за простими правилами: якщо попереду перешкода (#
)— поворот праворуч, якщо ні — крок вперед. Потрібно порахувати всі унікальні позиції до того, як охоронець покине карту.
В другій частині треба знайти всі можливі місця де можна поставити перешкоду, які змусять охоронця ходити по колу.
🤖 Цікаві результати
Частина 1:
• Більшість моделей застрягли у безкінечних циклах через різні причини. Вони чомусь порахували, що якщо кінець мапи - охоронець має повертати, хоча в завданні чітко сказано що він може покинути мапу.
• Claude 3.5 Sonnet написав робочий код з першої спроби
• O1 впорався лише з 4-ї спроби, але код вийшов заплутаним
Частина 2:
• Тільки Claude 3.5 Sonnet та O1 змогли розв'язати
• O1 показав значно швидше рішення (22 секунди проти 99)
⚡️ Матеріали
• 📹 Запис стріму
• 🧑💻 Код на GitHub
⏱️ Таймкоди:
- 2:26 — Розбір першої частини
- 8:09 — GPT-4o-Mini застряг у циклі
- 13:30 — Claude Haiku: код вже кращий, але не працює), також спроби інших моделей
- 37:35 — Claude Sonnet: успіх з першої спроби!
- 39:42 — Розбір умов частини 2
- 54:50 — Claude Sonnet розв'язує за 99 секунд
- 1:04:20 — O1 знаходить швидше рішення
Affiliate Programs and Bot API 8.1
Starting today, Bot and Mini App developers can launch their own Affiliate Programs, and specify how much of their future ⭐️ Star revenue from referred users they are willing to share with those who invited them.
It only takes a few taps to set up an Affiliate Program — you can find out more in our dedicated guide.
With Bot API 8.1, all bots can also detect commissions and affiliate transactions out of the box, see the full changelog for details.
⚠️ Warning: As of December 1 2024, messages with video posted in big communities can be delayed by the server until the respective video is reencoded. Read more here.
🎄 Advent of Code День 3: AI vs парсинг
Сьогодні мали цікаве завдання:
Частина 1:
• Знайти в зіпсованій пам'яті коректні інструкції множення mul(X,Y)
• Проігнорувати всі некоректні варіанти (наприклад, mul(4*
або mul[3,7]
)
• Просумувати результати всіх коректних множень
Частина 2:
• Додалися інструкції do()
та don't()
, які вмикають/вимикають наступні множення
• Враховувати лише множення, які "активні" на момент їх знаходження, і так само — просумувати
🤖 Результати 3-го дня
Сьогодні моделі показали різні результати:
• GPT-4o-Mini впорався з частиною 1, але не зміг з частиною 2
• Claude 3.5 Haiku несподівано не впорався з парсингом у частині 1, але блискуче розв'язав частину 2
💡 Цікаві спостереження
Здається, що цей день виявився набагато складнішою для AI, ніж попередні дні. Основна складність — правильний парсинг та обробка умов. Але нагадую, що зараз ми тестуємо найменші модельки з найрозумніших. В більш складних задачах ми будемо використовувати топові модельки.
⚡️ Матеріали
• 📹 Запис стріму
• 🧑💻 Код на GitHub
⏱️ Таймкоди стріму:
- 0:47 — Читаємо умову частини 1
- 3:54 — GPT-4o-Mini успішно розв'язує ч.1
- 6:18 — Claude 3.5 Haiku не впорався з ч.1
- 9:37 — Розбираємо умову частини 2
- 11:20 — GPT-4o-Mini не впорався з ч.2
- 13:10 — Claude 3.5 Haiku успішно вирішує ч.2
- 15:26 — Claude 3.5 Sonnet (теж успішно, але рішення інше)
Advent of Code – День 16
День 16 виявився легшим: кілька моделей (зокрема o1 та claude 3.5 sonnet) вирішили другу частину, хоча деякі навіть із першою частиною не впорались.
⚡️ Матеріали
• 📹 Запис стріму
• 🧑💻 Код на GitHub
• 💡 Задача
Хочете доступ до o1-pro? Я дуже хочу.
✅ Неактуально, набрали необхідну кількість! Всім дякую)
🤖 AI: 5 хвилин замість 2 годин роботи
Щойно натрапив на цікавий твіт від розробника, який використав o1-pro для виконання 6 завдань зі свого todo-листа, і результати просто вражають!
📊 Вражаюча статистика
• o1-pro думав протягом 5 хвилин 25 секунд
• Змінено: 14 файлів проекту
• На вході: 64,852 вхідних токенів
• На виході: 14,740 вихідних токенів
Уявіть собі: завдання, яке зазвичай забирає 2 години робочого часу, було виконано за 5 хвилин. І не просто виконано, а зі 100% точністю!
🎄 Advent of Code День 13: Ігрові автомати
Суть завдання:
В першій частині треба розрахувати мінімальну кількість токенів для виграшу призів в автоматах. Кнопка A коштує 3 токени, B - 1 токен. Кожна кнопка рухає захват на певну відстань по X та Y.
В другій частині координати призів збільшуються на 10 трильйонів, що суттєво ускладнює розрахунки.
🎄 Advent of Code День 11: Плутонські камінці
Сьогоднішня задача здалася дуже простою — треба було просто застосувати правила трансформації чисел багато разів. Але в цьому і була пастка!
В першій частині треба зробити 25 ітерацій — і це працює швидко. Але в другій частині вже 75 ітерацій, і якщо використовувати той самий підхід — комп'ютер рахував би 12 днів!
🎯 Результати моделей
• O1-preview та O1-mini: успіх в обох частинах
• GPT-4o: впорався з обома частинами
• Claude 3.5 Sonnet: тільки перша частина
• Gemini 1206: тільки перша частина
• Claude Haiku та GPT-4o-mini: не впоралися
💡 В чому фішка?
Замість того, щоб постійно перераховувати одні й ті ж комбінації, можна їх запам'ятовувати (memoization):
def stone_count(k, n, memo):
if n == 0:
return 1
key = (k, n)
# Якщо вже рахували цю комбінацію — беремо готовий результат
if key in memo:
return memo[key]
# Інакше рахуємо і зберігаємо результат
stones = calculate_new_stones(k) # застосовуємо правила
total = sum(stone_count(s, n-1, memo) for s in stones)
memo[key] = total
return total
Я крайнє не раджу юзати GPT-4o для коду. Просто не треба, або помилки в синтаксисі, або в логіці. Claude РЕАЛЬНО набагато краще, якщо порівнювати великі модельки.
Але навіть в маленьких модельках:
Claude 3.5 Haiku: 50/50
GPT-4o-mini: 30/45 (більше фейлу)
Це я назву 🎄 Advent of Code Benchmark
Але треба буде написати ще код для того щоб це все повністю автоматично протестити і дати кожній модельці хочаб кілька спроб
Для чистоти експерименту, прогнав ще:
- o1 де було присутнє рішення від o1-mini, і навпаки
- GPT-4o по тим ж задачам, де був Claude 3.5 sonnet
Ось поки що виходить подібна картина.
От ще, якщо взяти в % (щоб нехтувати абсолютною кількістю спроб)
Читать полностью…🎄 Advent of Code День 9: Дефрагментація диску
Суть завдання:
В першій частині маємо карту диску у вигляді послідовності чисел, де чергуються розмір файлу та розмір вільного місця. Треба перемістити блоки файлів зліва направо (звідси і назва — фрагментація диску)
В другій частині треба переміщувати цілі файли, а не окремі блоки, починаючи з файлу з найбільшим ID. Файл можна перемістити тільки якщо є достатньо вільного місця зліва.
🎯 Результати дня
• GPT-4o-Mini та GPT-4o дали неправильні відповіді
• Claude 3.5 Sonnet відмінно впорався з частиною 1
• Claude 3.5 Haiku зміг доповнити рішення частини 1, для вирішення частини 2.
• o1-mini дав правильне, але повільніше рішення
⚡️ Матеріали
• 📹 Запис стріму
• 🧑💻 Код на GitHub
⏱️ Таймкоди:
- 0:43 — Розбір першої частини
- 10:37 — GPT-4o-Mini: помилка
- 12:00 — Claude 3.5 Haiku: неправильна відповідь
- 13:42 — GPT-4o не впорався
- 17:46 — Claude 3.5 Sonnet: успішне рішення!
- 18:33 — Розбір рішення
- 21:52 — Читаємо частину 2
- 26:15 — GPT-4o-Mini знову невдача
- 28:33 — Claude 3.5 Haiku несподівано впорався
- 32:00 — Підсумки
- 34:54 — o1-mini: правильно, але повільніше
Чесно кажучи, дуже здивований результатами від о1. Навіть більше — дуже розчарований, бо вона фейлить вже не перше завдання, хоча мала б бути найрозумнішою моделькою.
Claude 3.5 Sonnet - поки що найкраща для програмування, всім раджу.
Сьогодні стрім буде ввечері, готуйте півгодинки свого часу 🙏
Читать полностью…🎄 Advent of Code День 5: Теорія графів на практиці
День почався з цікавої задачі про впорядкування сторінок.
Суть завдання:
В першій частині треба перевірити, чи правильно розташовані сторінки за правилами виду "X|Y"
(сторінка X має бути надрукована раніше за Y).
В другій частині вже треба не просто знайти неправильні послідовності, а й виправити їх. Тут знадобився потужний інструмент з теорії графів — топологічне сортування.
🎯 Результати моделей
• Частина 1: обидві (gpt-4o-mini, claude 3.5 haiku) моделі впоралися
• Частина 2: тільки Claude 3.5 Sonnet та GPT-4o змогли застосувати правильний алгоритм.
💻 Як працює топологічне сортування
# Створюємо граф залежностей між сторінками
graph = {}
for before, after in rules:
graph.setdefault(before, set()).add(after)
graph.setdefault(after, set())
# Рахуємо кількість "залежностей" для кожної сторінки
in_degree = {node: 0 for node in graph}
for node in graph:
for neighbor in graph[node]:
in_degree[neighbor] += 1
# Сортуємо: беремо сторінки без залежностей і йдемо далі
queue = [node for node in graph if in_degree[node] == 0]
result = []
while queue:
node = queue.pop(0)
result.append(node)
for neighbor in graph[node]:
in_degree[neighbor] -= 1
if in_degree[neighbor] == 0:
queue.append(neighbor)
🎄 Advent of Code День 4: AI vs пошук патернів
Сьогодні мали дуже цікаве завдання:
Частина 1:
• Знайти слово XMAS
у матриці літер
• Слово може бути написано в будь-якому напрямку (горизонтально, вертикально, діагонально)
• Потрібно знайти всі можливі входження слова
Частина 2:
• Шукаємо патерн X-MAS
: два MAS
у формі літери X
• MAS
можна читати як вперед, так і назад
• Задача виявилася несподівано складною для AI!
🤖 Результати 4-го дня
Несподівані результати:
• GPT-4o-Mini спочатку дав неповне рішення для ч.1, але після уточнення впорався
• Claude 3.5 Haiku успішно розв'язав частину 1
• Частину 2 не змогли розв'язати ні GPT-4o-mini, ні Haiku, ні Sonnet
• Тільки o1-mini зміг знайти правильне рішення для частини 2!
⚡️ Матеріали
• 📹 Запис стріму
• 🧑💻 Код на GitHub
⏱️ Таймкоди стріму:
- 0:41 — Читаємо умову частини 1
- 4:33 — GPT-4o-Mini розв'язує ч.1
- 8:49 — Claude 3.5 Haiku розв'язує ч.1
- 17:12 — Читаємо умову частини 2
- 18:34 — GPT-4o-Mini не впорався з ч.2
- 20:27 — Claude 3.5 Haiku не впорався
- 23:13 — Claude 3.5 Sonnet спроба 1 (невдало)
- 26:05 — Claude 3.5 Sonnet спроба 2 (невдало)
- 29:48 — o1-mini успішно розв'язує ч.2!
- 39:50 — Аналіз коду o1-mini
🎄 Advent of Code День 2: AI проти задачі Red-Nosed Reports
Продовжуємо серію експериментів з AI на Advent of Code 2024! Сьогодні задачі про "рівні реактора".
🤖 Результати 2-го дня
Обидві моделі написали робочий код з першої спроби
⚡️ Матеріали
• 📹 Запис стріму
• 🧑💻 Код на GitHub
⏱️ Таймкоди стріму:
- 2:11 — Розбираємо умову частини 1
- 11:09 — Спроба GPT-4o-Mini та аналіз коду
- 13:20 — Claude 3.5 Haiku розв'язує ч.1
- 14:57 — Читаємо умову частини 2
- 17:00 — GPT-4o-Mini працює над ч.2
- 18:50 — Рішення від Claude Haiku