LINUX.ORG.RU
ФорумTalks

В чём реальная проблема ЛЛМ

 ,


0

2
  1. нет смысла тренировать что-то своё на коленке, потому что это будет либо какой-то суперкастомный идиот, либо система, которая слишком много галлюцинирует (дуальная проблема увеличения шума против нерепрезентативности данных); а большую модель вы на коленке всё равно не натренируете.

  2. поскольку проблема 1) - фундаментальная теоретическая проблема, коммерческие ЛЛМ идут по пути "пусть будет больше шума, всё равно первоначально у клиента будет «вау-эффект», и он купит подписку или кредиты. И вот тут самый цимес закрался. В отличие от человеческого интеллекта, возможности которого в отношение себя любимого мы может прогнозировать плюс-минус, не ошибаясь на порядки, в случае с ЛЛМ вы никогда не сможете оценить финансовые затраты на решение задачи. По моему опыту ЛЛМ лучше всего справляются с утилитами и гуишными тулзами строк на 3тыс кода, но не сильно больше. После определенного барьера, который можно условно измерить как количество строк в более или менее формализованном виде (в том, в котором сапиенсы пишут ТЗ для других сапиенсов), в промпты надо включать тупо всё ТЗ с самого начала.

Т.е. даже на платном антропике оно в какой-то момент начинает лажать и забывать изначальные вводные, которые были вот, совсем недавно, 10 промптов до того.

  1. т.о., мы приходим к такому выводу, что промптинг нихрена не совместим с agile разработкой. Он создаёт видимость того, что в контексте есть данные, которые нам важны для дальнейших шагов, но это не так, потому что ЛЛМ не умеет интерпретировать токены, это тупая модель на больших данных, и соотв. давать ей задания лучше всего сразу готовые, в которых ещё за ручку надо объяснять, как что кодировать, иначе будет такая лапша, которую только эта модель ЛЛМ сможет дальше модифицировать, если не потеряет контекст мысли автора.

Т.е., по моему опыту, лажа начинается уже до 5к сток кода. И в определенный момент ты думаешь «слушай, спасибо, что ты типа нагуглил мне этот фреймворк, о котором я понятия не имел, что такое вообще есть, но дальше я сам буду читать мануалы, и буду кодировать сам, потому что тебе очень дорого всё разжёвывать, и эмоционально, и финансово».

★★★★★

Последнее исправление: CrX (всего исправлений: 2)

Ты неправильно LLM используешь, надо запускать их под агентом, который ограничен скилами и сам разбивает задачу на более мелкие. После выполнения каждой такой задачи контекст чистится и проводится проверка работоспособности кода и вносятся правки

Satou ★★★★★
()

Т.е., по моему опыту, лажа начинается уже до 5к сток кода.

А ты не сравнивал производительность исполняемого кода, созданного нейронной сетью и написанного грамотным инженером? Избыточность строк исходного кода относительно ручного написания ПО имеется?

Enthusiast ★★★★
()

А была такая красивая сказка, что всех программистов уволят…

А теперь.. всё равно работать надо…

unDEFER ★★★★★
()
Ответ на: комментарий от Enthusiast

Я последний раз занимался оптимизацией кода по производительности в универе, т.е. очень давно.

Современные реалии моей работы в том, что самые ресурсоемкие части системы выполняют асики (или плисы - не суть важно, что именно) которые работают в программно-аппаратном комплексе за кучу бабок штука.

Соответственно, единственное, что требуется от непосредственно софтовой прикладной части системы - быть алгоритмически корректной, при условии, что всё механизмы параллельности уже отлажены в фреймворках.

seiken ★★★★★
() автор топика
Ответ на: комментарий от seiken

Т.е. на самом деле, программный код - это дешевое говно по определению. Оно так задумано глобально сапиенсом, концептуально. И, соответственно, у ЛЛМ просто нет экономической целесообразности. Смысл софтовой индустрии - в воспроизводстве говна. А ЛЛМ слишком некреативны для этого.

seiken ★★★★★
() автор топика
Последнее исправление: seiken (всего исправлений: 1)
Ответ на: комментарий от Satou

Проблема в том, что всё равно вся эта системы будет работать как оверпрайснутый Джун, потому что всё равно всё надо будет объяснять на естественном языке.

seiken ★★★★★
() автор топика

По моему опыту ЛЛМ лучше всего справляются с утилитами и гуишными тулзами строк на 3тыс кода, но не сильно больше.

Т.е., по моему опыту, лажа начинается уже до 5к сток кода. И в определенный момент ты думаешь «слушай, спасибо, что ты типа нагуглил мне этот фреймворк, о котором я понятия не имел, что такое вообще есть, но дальше я сам буду читать мануалы, и буду кодировать сам, потому что тебе очень дорого всё разжёвывать, и эмоционально, и финансово».

Буквально из твоих слов следует, что для LLM задачу надо делить на подзадачи до 3 тыс.кода, поручать им эти части, а самому «руководить и направлять».

anonymous_incognito ★★★★★
()
Ответ на: комментарий от anonymous_incognito

Буквально из твоих слов следует, что для LLM задачу надо делить на подзадачи до 3 тыс.кода, поручать им эти части, а самому «руководить и направлять».

Проблема в том, что не все задачи можно так поделить. Будет какая-то суперсистема, типа обработчика ошибок, которая должна охватить всё, знать всё о проекте.

Но, когда можно, то, да.

tiinn ★★★★★
()
Ответ на: комментарий от tiinn

Будет какая-то суперсистема, типа обработчика ошибок, которая должна охватить всё, знать всё о проекте.

Для неё придётся отдельную документацию составить, которая будет подсовываться в LLM. LLM ведь не работает с кодом реализации всех API.

anonymous_incognito ★★★★★
()
Ответ на: комментарий от seiken

Я последний раз занимался оптимизацией кода по производительности в универе, т.е. очень давно.

Мой бывший работодатель тоже так думал лет 20. А потом упёрлись в производительность топовых десктопов, и пришлось учиться оптимизировать.

question4 ★★★★★
()
Ответ на: комментарий от tiinn

Проблема в том, что не все задачи можно так поделить. Будет какая-то суперсистема, типа обработчика ошибок, которая должна охватить всё, знать всё о проекте.

Почему нельзя в обработчике ошибок сделать отдельно общую алгоритмическую часть, втиснув её в эти 3000, а отдельно — независимые модули на каждую ошибку или группу ошибок? Возможно, какие-то модули вообще не будут содержать функций — только данные, которые нужно подставить.

question4 ★★★★★
()

потому что тебе очень дорого всё разжёвывать

Очевидно же, что язык программирования гораздо лучше приспособлен для описания проблемы компу, чем язык естественный. Поэтому объём описания на естественном языке всегда будет больше. Это ещё в 60-х годах поняли и перестали делать ЯП устроенные как речь.

no-such-file ★★★★★
()
Ответ на: комментарий от question4

тоже так думал лет 20. А потом упёрлись в производительность топовых десктопов

Т.е. целых 20 лет удавалось не тратить время на всякую херню, а решать более общие задачи. Это же замечательно.

no-such-file ★★★★★
()
Ответ на: комментарий от question4

Потому что в обработчике-то можно, но если это что-то большее, чем обработчик, то не выйдет. Например, чтобы переконфигурировать систему из самолёта в подводную лодку, надо знать, чем каждая часть в данный момент занимается, все ли модули выполнены по стандарту MIL-STD-810G, допустимо ли потерять модули, которые не выполнены, как организованы взаимодействия между модулями - по воздуху, по проводу, по радиоканалу и т.д. и т.п.

tiinn ★★★★★
()
Ответ на: комментарий от Satou

надо запускать их под агентом

Агенты нужны чтобы ИИ решал задачу проактивно. Проблему полноты описания задачи это никак не решает.

no-such-file ★★★★★
()
Ответ на: комментарий от anonymous_incognito

Для неё придётся отдельную документацию составить,

Ну, удачи. В производственном аду, когда система постоянно меняется, иметь чёткую документацию.

tiinn ★★★★★
()
Ответ на: комментарий от anonymous_incognito

Вроде бы да. Но проблема в том, что как только будет готов первый вариант системы, и он даже будет работать. Но для второго этапа ты запаришься объяснять ЛЛМ, как его дальше менять осмысленно.

Я согласен, что ЛЛМ - это очень крутая тулза, но в основном для «бутстрапинга» кода и экспериментальной проверки всяких гипотез о реальных технических компонентах ПО. Для устойчивой гарантии качества всё равно нужны все те же дорогущие сапиенсы.

seiken ★★★★★
() автор топика
Ответ на: комментарий от no-such-file

Большой вопрос, подходят ли ЯП для LLM в качестве решения задачи. Возможно, для написания ПО ИИшечкой нужно создать новый язык.

tiinn ★★★★★
()
Ответ на: комментарий от tiinn

Не думаю, что здесь можно найти золотую середину. ЯП с более простой структурой бесполезны, если нужно писать весь мир с нуля без батареек и чтобы теоретически в будущем это кто-то мог поддерживать без доступа к ЛЛМ. ЯП, на которых дохрена кода в опенсорс (типа JS) плохи, потому что для них куча библиотек, фреймворков, версий, и неизбежно будет больше галлюцинаций.

seiken ★★★★★
() автор топика
Ответ на: комментарий от question4

Ну мы работаем на таких дешманских нодах, что ни в какие пределы мы ещё годами не упремся.

seiken ★★★★★
() автор топика
Последнее исправление: seiken (всего исправлений: 1)
Ответ на: комментарий от seiken

Ваш аргумент похож на то, что ЯП высокого уровня бесполезен, если нужно писать весь мир с нуля без батареек для контроллера, для которого есть спеки, чтобы теоретически в будущем это кто-то мог поддерживать без доступа к исходникам. Типа, дизасм бинарников даст вам исходники.

Так и тут - с чего вы взяли, будто ЯП будет пользоваться большинство программистов, а не полтора человека на всю планету (как нынче обстоит дело с программированием на ассемблере)? А всё остальное будет писать ИИ-шечка.

tiinn ★★★★★
()
Ответ на: комментарий от tiinn

Ну покажи мне контору, которая создала бы продукт уровня файрфокса на ЛЛМ с ассемблером в качестве ЯП.

seiken ★★★★★
() автор топика

фундаментальная теоретическая проблема

«Преждевременная оптимизация — корень всех зол.» // Дональд-наш-Кнут © (wikiquote.org).

система, которая слишком много галлюцинирует

Это следствие неустойчивости модели к изменчивому контексту. Теоретически лечится избыточностью обучающих данных и строгим отделением их от проверочной выборки.

quickquest ★★★★★
()
Ответ на: комментарий от quickquest

Да. И это вообще самый сложный аспект биг даты, о котором надо говорить со школьной скамьи.

seiken ★★★★★
() автор топика
Ответ на: комментарий от tiinn

Проблема в том, что не все задачи можно так поделить. Будет какая-то суперсистема, типа обработчика ошибок, которая должна охватить всё, знать всё о проекте.

Очень абстрактный пример без конкретики, но он уже попахивает говнодизайном. Если напишешь конкретнее, можно попробовать разобрать. Но всяких «суперсистем» в проекте обычно не должно быть.

Gary ★★★★★
()
Ответ на: комментарий от Gary

Кстати, исключения а ля плюсы/Ада были как раз придуманы ради дизайна «я не знаю, каким ошибкам приведет падение меня как отдельного модуля». Но макаки типа тех, кто Ариан в 90х уронил, не поняли, как пользоваться этим механизмом.

seiken ★★★★★
() автор топика
Ответ на: комментарий от seiken

Почему сразу с ассемблером в качестве ЯП? Надо произвести исследования, нельзя ли повысить эффективность программировалия ЛЛМ, если не ограничиваться существующими ЯП.

tiinn ★★★★★
()
Ответ на: комментарий от Gary

Очень абстрактный пример без конкретики, но он уже попахивает говнодизайном.

Дык, процентов 80 современного ПО - это говнодизайн.

tiinn ★★★★★
()
Ответ на: комментарий от tiinn

Это не решает основной проблемы: кто-то из сапиенсов должен проверить код. Чем более высокоуровневый ЯП, тем проще это сделать.

seiken ★★★★★
() автор топика
Ответ на: комментарий от seiken

Что за ошибки ЛЛМ отвечать будет промпт-инженер, а не разраб ЛЛМ, надеюсь, объяснять не надо.

seiken ★★★★★
() автор топика
Ответ на: комментарий от seiken

Но макаки типа тех, кто Ариан в 90х уронил, не поняли, как пользоваться этим механизмом.

Всё они прекрасно понимали, просто обработка исключений занимает дополнительные вычислительные ресурсы, поэтому, они просто не стали нагружать тамошний дохленький компьютер дополнительной обёрткой в try-catch именно того кода, который и сбойнул. А не стали оборачивать, ибо предполагали, что эти переменные никогда не уйдут в минус из-за физических особенностей Ариан-4. Ага, на Ариан-5, который не имел этих физических особенностей.

tiinn ★★★★★
()
Ответ на: комментарий от seiken

Это не решает основной проблемы: кто-то из сапиенсов должен проверить код.

Ровно то же самое говорили про Алгол-60, компилятор которого на первых порах генерировал эталонную ахинею, которая работала дай бог через раз.

tiinn ★★★★★
()
Ответ на: комментарий от tiinn

В производственном аду, когда система постоянно меняется, иметь чёткую документацию.

Документацию тоже LLM-ка может генерить отдельной задачей. Или даже другая LLM. Но я не пробовал так работать.

anonymous_incognito ★★★★★
()
Последнее исправление: anonymous_incognito (всего исправлений: 1)
Ответ на: комментарий от seiken

Не, я считаю, это неверное «повторное использование кода» прежде всего. Во вторую очередь - излишняя оптимизация по принципу «хотели как лучше, а получилось как всегда»

tiinn ★★★★★
()
Ответ на: комментарий от tiinn

Есть одна большая проблема в этой аналогии. Компилятор алгола купил один раз, и используешь, он не будет просить денег, чтобы отрефакторить код для следующего коммита. А с ЛЛМ нужно платить фактически за вычислительный ресурс за каждый токен, каждый раз. На любой чих.

seiken ★★★★★
() автор топика
Ответ на: комментарий от seiken

А с ЛЛМ нужно платить фактически за вычислительный ресурс за каждый токен, каждый раз. На любой чих.

Используйте локальную ЛЛМ.

tiinn ★★★★★
()
Ответ на: комментарий от seiken

Т.е. фактически, мы платим не за какие-то квантово-механические ноухау, а тупо за ресурс барыг-монополистов.

seiken ★★★★★
() автор топика
Ответ на: комментарий от tiinn

Это будет говно на палке. Если бы можно было универсальную ЛЛМ сделать на коленке, ОпенАИ с антропиками даже не взлетели бы.

seiken ★★★★★
() автор топика

Слушай ну натрави ты соннет на лорчик, раз сам не вдупляешь. Уже сколько раз и я и остальные писали что в 2026 рулят скиллы и зерошотные техники. Галюны после 3-4 промтов это банальное следствие мат модели, пруфов уже хоть жопой ешь.

Lordwind ★★★★★
()
Последнее исправление: Lordwind (всего исправлений: 1)

В целом с рутинными задачами самые последние БЯМы справляются окей. Написать тест, небольшой класс или ф-цию, исправить опечатки, найти что-то по смыслу. С дизайном я бы не стал доверять.

Чтоб она не путалась и не забывала задачу, можно просто сохранить её в текстовый файл. Также ей нужны инструкции по сборке и тестированию приложения, тогда она сама сможет исправлять свои опечатки.

Человек всё ещё нужен конечно и вряд ли когда-либо будет не нужен, он должен ревьювить говнокод и останавливать агента когда у него начинает сносить крышу.

Gary ★★★★★
()
Последнее исправление: Gary (всего исправлений: 1)

Я общаюсь только с бесплатными, но у меня сложилось ощущение, что чем больше ты с ними общаешься в одном чате, тем больше они галлюцинирует. Через какое-то время у тебя начинает просто башка пухнуть от фрустрации. Т.е., как будто бы, должно добавляться больше контекста, а происходит наоборот.

MoldAndLimeHoney ★★★
()
Ответ на: комментарий от MoldAndLimeHoney

Им всем начинает сносить крышу с ростом контекста, потому что БЯМ не может отличить ошибки, неправильные утверждения и т.п. своём контексте. Даже было исследование недавно.

Поэтому при нормальном workflow задачи атомарны и на каждую берётся чистый контекст.

Gary ★★★★★
()
Ответ на: комментарий от Gary

Это всё круто, типа, тестируй через ИИ’шку. А только не делают коммерцоиды вещи тестируемыми. Например, мне, чтобы ИИ’шка смогла тестировать мой код, надо получить доступ к кишкам ноды, чтобы поставить туда проприетарный бинарь, настроить его запуск в системд, т.е. в итоге мне проще у себя хостить rest api сервис и говорить ИИ’шке, чтобы она его дёргала…

seiken ★★★★★
() автор топика
Последнее исправление: seiken (всего исправлений: 1)
Ответ на: комментарий от seiken

Дальше возникают проблемы. Как дать доступ этой ИИ’шке в корпоративную сетку?

seiken ★★★★★
() автор топика
Ответ на: комментарий от seiken

Это будет говно на палке.

Увы, но какую-то работу выполнять она способна.

tiinn ★★★★★
()
Ответ на: комментарий от MoldAndLimeHoney

Это потому, что они бесплатные. Сперва, для завлекалочки, вам подсовывают более мощную модель, а потом, когда вы втягиваетесь, всё более ограниченную. Используй локальные LLM, Люк!

tiinn ★★★★★
()
Закрыто добавление комментариев для недавно зарегистрированных пользователей (со score < 50)