Почему я отказываюсь от использования LLM ( zed.dev )
Кажется, это хорошие контрольные точки (и обоснованная критика) на пути к прогрессу.
Но также не безумно думать, что с ростом умственных способностей LLM (и значительными ресурсами, вкладываемыми в то, чтобы они стали лучше в программировании), будущие версии будут очищать и рефакторить код, написанный предыдущими версиями. Верно?
У LLM есть ограничения. Они суперсильны, но они не могут сделать такой прыжок, как люди. Например, я задал Клоду и Джемини следующую задачу.
«Я хочу запустить веб-сервер на Android, но Android не позволяет привязываться к портам ниже 1000. Какие у меня есть варианты?»
Оба ответили следующими решениями:
1. Используйте обратный прокси-сервер
2. Получите root-права на телефоне
3. Запуск через порт с более высоким давлением
Даже после того, как я попросил их переосмыслить, они не смогли предложить решение, которое я ожидал. Решение этой проблемы — записи HTTPS RR[1]. Обе модели знали о HTTPS RR, но не могли предложить его в качестве решения. Только после того, как я включил его в их контекст, обе согласились с ним как с возможным решением.
[1]: https://rohanrd.xyz/posts/hosting-website-on-phone/
Это во многом повторяет мой собственный опыт.
У меня нет записей о моей прошивке Python или бэкенде Elixir.
Что я позволяю грубо вмешиваться, так это веб-фронт-энд. Я рассматриваю необходимость и полезность LLM в пространстве html/css/tailwind/js как обвинение в сложности и непоследовательности. Удивительно, что веб-фронт-энд просто эволюционировал за эти годы, органически трансформируясь из одного в другое, но это не хорошо спроектированный набор программного обеспечения «простое-это-лучшее». И в мире, где мои усилия, вероятно, будут работать в большинстве контекстов браузера, неудивительно, что я готов смешать инструмент, который даст результаты, которые, вероятно, будут работать. Беспорядок остается беспорядком.
Это примерно тот же вывод, к которому я пришел. Он не очень хорош для автодополнения целых фрагментов вашей кодовой базы. Вы теряете ментальную модель того, что делает, что и где именно. Я предпочитаю использовать его как персонализированный, быстро итерирующий StackOverflow. Я попрошу его дать мне краткое изложение концепции, с которой я не знаком, или указать общее направление, если я не уверен, какое решение будет хорошим. Затем я приму решение и реализую его сам. Этот рабочий процесс до сих пор работал для меня гораздо лучше.
Я пошел другим путем и приложил много усилий, чтобы выяснить, как лучше всего использовать эти вещи. Это тяжелая кривая обучения и нетривиальная, особенно учитывая, как легко все выглядит и ощущается поначалу.
Моя точка зрения: LLM следует воспринимать как инструмент, а не как источник мудрости. Я знаю человека, который любит отвечать на вопросы, связанные с людьми, через LLM. (Например: «Что должен сделать этот человек?» «Что мы должны знать о вас?» и т. д.) Не раз это приводило к тому, что он впадал в состояние неопределенности, когда пытался объяснить, что он имел в виду, когда написал то, что написал. Это кажется немного диким — немного похоже на то, как в школе парень, который списал у вас домашнюю работу, был вынужден объяснять, как он пришел к решению.
две недели назад я начал активно использовать Codex (у меня более 20 лет опыта разработки).
Сначала я был очень воодушевлен и думал, что Codex помогает мне мультиплексировать себя. Но на самом деле вы тратите так много времени, пытаясь объяснить Codex самые очевидные вещи, и он все время делает их неправильно в каком-то нюансном ключе, что в итоге вы тратите больше времени, делая что-то через Codex, чем вручную.
Поэтому я также сократил использование Codex и снова стал делать многие вещи вручную, потому что это намного быстрее и гораздо более предсказуемо с точки зрения времени.
Source: news.ycombinator.com