Чат с AI как новая парадигма программирования

Apr 07, 2023 13:44

Я всё ещё в экстазе от открывшихся возможностей. Но уже понятно, что применить этот инструмент для решения задач не так просто. Нельзя просто взять и сказать AI написать код. Почему? Да человеку тоже нельзя сказать. История про "дал написать тесты, а потом 3 часа их исправлял" --это история про натурального, а не искусственного дурака.

Так что первоочередной вопрос - это как не быть таким дураком. Есть некоторые соображения.

Во-первых, не надо этих тестов из анекдота про "вжжик - сказала пила". Инструмент ограниченный, если он чего-то не может -- то ищите способ использовать то, что он может. А он что-то может? Ояебу, конечно! Он может просто невероятные вещи. Технически оставаясь при этом не AGI, а генератором бреда, и страдая от inherent unsoundness (впрочем, как и натуральный интеллект!). В-общем, первые годы будут потрачены мировым сообществом на выяснение ограничений. И в текущем виде этот инструмент бесполезен, если вы долбоёб. А если вы Дъартаньян как я -- то вот, глаза разбегаются. Примерно 30% моей выборки (большинство программеры) вообще не въезжают, что это, и чем оно отличается как от других генераторов бреда, так и от Sci-fi trope "антропоморфный всезнающий робот".

Во-вторых, если он что-то может, не равняйте его с самым лучшим человеком, известным в природе. Равняйте его с дятлом. Дали написать код на хаскеле -- GADTs знает, но поплыл в рекурсии. Это проблема? Нет, вы видели джуна, умеющего хотя бы так вот, из головы, написать такую простыню и не ошибиться. Дали код с конкарренси, но он, как обычный мясной долбоёб, не знал что нужен семафор. Отревьювьте код, скажите что нужен семафор, он скажет "а точно" и поправит. Иногда не поправит. Тогда сами поправьте и скажите что вот так надо, учись. Как с обычным среднестатистическим разрабом на джуниор-позиции. Вы не можете работать в связке с тупыми джунами? Вы асоциал, одинокий волк, AI не для вас. Прокачивайте соц. навыки или заткнитесь. Понимайте, что вы наняли джуна без опыта, и если он что-то сделал в принципе -- это уже подарок судьбы за 0 долларов. Можно ли таких джунов использовать с профитом? Хез. Время покажет, можно ли научиться их менеджерить. Аналогично по всем другим его навыкам, кроме кода.

В-третьих, он просто начитанный товарищ, он знает что должно быть на выходе, как должен выгядеть выход, ответ. Но в школу не ходил, не знает, как выход из входа получают. Дайте ему методологию. Читайте литературу по prompt engineering. Давали задачи по математике - решил 20%. Сказали "решай пошагово" (тупо во всех задачах) -- решил 80%. Аналогично с кодом. Топдаун, боттом-ап, TDD, инкрементальное выращивание и так далее. Вы действуете по интуиции и опыту, и так же предлагаете ИИ? См. выше, вы долбоёб, разбирайтесь в том как работает его "голова", и как именно ему говорить о методах решения. Может ли натуральный интеллект писать код без тестовых прогонов и методологии? Конечно, код уровня первого курса института, пузырьковая сортировка, на листочке по памяти бывает без ошибок человек напишет. ИИ такое может? Ояебу, он может гораздо больше. Но меньше, чем даже джун, вооруженный какой никакой методологией. Так вооружайте!

В-четвертых, контекст. ЖПТ это такой Александр Друзь с антероградной амнезией. В 2021 году впал в кому, его клонировали, и клон такой выходит из комы, он не понимает где он что с ним, но помнит всё что было до 2021 года а ему вы бац -- вы менеджер, вот давайте ебошьте, 9 утра, у нас совещание, проводи! Какие блять 9 утра, надо ему хоть как в Мементо всё на листочках расписать. Или спрашивать что-то что он в его состоянии сможет, например в дату рождения Карла Маркса он запросто. Или я его одним предложением спросил про то, как может выглядеть рассчет баланса с моноидами и range minimum query, и он на эрудиции выехал и ответил, не зная ничего о том кто его спрашивает и с какой целью, просто как на вопрос в абстрактном тесте. И получилось даже неплохо! Но вот, контекст маленький у него, прочитать даже весь корпоративный чат за сутки не осилит, если в лоб. Так что инжиниринг контекста это важная часть инжиниринга промптов. Не хуй собачий! Читайте публикации.

И тут мы вплотную подошли к декомпозиции больших задач на маленькие self-contained. Хотите чтобы он написал рассказ? Большой документ? Поработал над кодом? Бейте на маленькие независимые куски, обмазанные интерфейсами, пресловутый high cohesion low coupling, но на новом уровне. Бюджет 2048 токенов на вопрос+ответ+контекст. Какая может быть функция? Ну если надо её не только читать но и писать, и контекст уложится в 248 токенов - то 900, 2048 = 900 * 2 + 248. Если только читать, то больше. Если контекст большой -- то меньше. Вот!

Что это если не парадигма высокоуровневого дизайна? Притом не только кода.

мясные мешки, все пидарасы а я, programming

Previous post Next post
Up