В нынешние интересные времена, когда один только boilerplate (шаблон проекта) может занимать на диске гигабайт, а количество библиотек в самом обычном проекте приближается к паре сотен — данная статья может нанести психическую травму неподготовленному читателю и заставить задуматься о правильности выбора профессии.
Мне сложно представить себе, что это за такие "обычные проекты", где сотни библиотек. Я сталкивался с достаточно большим количеством проектов - и больших, с кодовой базой на миллионы строк кода. И поменьше. На разных языках. Но не помню ни одного, где хотя бы сотня библиотек набралась. Можно конечно с натяжкой сказать это про javascript, если считать непрямые завимимости. Но это звучит не слишком честно.
Эта объемная работа предназначена в первую очередь для профессионалов разработки на Java, которые уже имеют практический опыт с большими фреймворками, так популярными в этом болоте среде и смогут в полной мере оценить всю сложность работы «без всего».
Мне кажется целевая аудитория выбрана неверно. Данная статья действительно может быть полезна для новичков. Для профессионалов тут просто нет ничего интересного.
Красивая история. Жаль только работает для наколенных проектов-однострочников.
На данный момент есть несколько кардинальных проблем, которые не позволяют сделать полноценного "ИИ-программиста". И я не думаю что эти проблемы уйдут даже с выходом GPT5/Claude4 и т.д.
Но поднимать бабки на хайпе это норм тема, так и подмывает идти свой ИИ-продукт анонсировать.
Этот построчный разбор продолжает идти по коду и определяет, как программа обрабатывает данные, прогнозирует уровни глюкозы, рассчитывает необходимые дозы инсулина и определяет, какие действия нужно предпринять на основе этих прогнозов.
Если вам нужно продолжение или пояснение конкретных строк, дайте знать.
Вау, даже отредактировать после ChatGPT не потрудились, вот это уровень.
Если я сейчас пойду и сгенерирую миллион уникальных последовательностей, а потом продам одну другу за 1000 рублей, будет ли моя капитализация равняться миллиарду рублей?
ГЭС хороши. Только для них нужны специфичные географические условия. Я где-то читал, что по большей части там где эффективно ставить ГЭС они уже стоят.
Вообще не понимаю зачем в файлах проектов императивность. Все что там нужно - это список файлов исходников и опции компилятора.
Для простых проектов - это так. Но есть случаи, когда нужно что-то сделать в процессе билда. Например скачать 3rd-party ресурсы с сервера и докинуть их в дистрибутив. Или вот не так давно я собирал native image для graalvm/js приложения, и мне пришлось написать логику на полсотки строк кода, потому что не было варианта из коробки.
По итогу главная проблема чисто декларативных языков - как только задача выходит за рамки стандартного и нет в наличии плагина для нужной цели, приходится самому писать эти плагины, и как правило это намного геморнее, чем просто вызвать код в том же gradle.
О, даже не видел. Жаль, что доступ платный, даже не протестировать. Погуглил новости по теме - система ничего не выявила после элементарного изменения стилистики через промпт. Примерно так и ожидал.
Я просто не вижу никакого алгоритма, который мог бы более-менее стабильно выявлять текст, сгенерированный нейросетями. Как минимум потому, что нейросетями можно сгенерировать все что угодно - можно в промте задать и тон, с сленг, и какие-то специфические особенности. В результате можно сгенировать абсолютно непохожие тексты на ождну и ту же тематику.
Тем не менее, как я уже сказал ранее, мой стиль следования TDD мне нравится больше. И мне не надо никого ни в чем убеждать. Так что все в порядке.
Зачем вообще тогда пытаться подгонять свой стиль под TDD? Да, по ТDD нужно сначала писать тесты. Мне например это не нравится и поэтому я не использую TDD, не вижу тут совершенно никакой проблемы. Никто ж не запрещает писать тесты вне TDD.
Я много раз пытался полюбить эти архитектурные стили. Но я так и не увидел от них никакой пользы.
Потому что архитектурные стили обычно начинают показывать эффективность на реально больших проектах. Таких в целом не так уж и много. А с текущей тенденцией к разделению логики (микросервисы, лямбды, и т.д.) таких ситуаций еще меньше. Главное разделить логику, согласовать апишку, а дальше внутри проекта можно сделать максимально просто, так как там никакой сложности и нет.
Имеется ввиду, что допустим у Вас есть интернет магазин. И Вам приходят заказы пользователей в свободном виде (письмом там, или в телегу). Задача - понять, что именно пользователь попросил и собрать корзину. Или порекомендовать товары, подходящие под его запросы.
Первое в чем тут вопрос, если я не разбираюсь в теме, то как понять, что ИИ справился "замечательно" ? С точки зрения меня, как дилетант, может оно и так, но верно ли это с точки зрения науки? Кто в данном случае проверит?
Да, это абсолютно верный вопрос. Я по итогу перепроверил результат на другой LLM. Шанс, что и она тоже ответил неправильно тоже довольно высок, но совокупность проверок и адекватности обьяснения вычислений дала мне достаточную уверенность.
Если люди начнут злоупотреблять этим, то в конечном итоге потеряют навыки и знания по этой теме, и будет все труднее изобретать что то новое. А нет нового, ИИ будет обучаться на своих же ответах, что из этого выйдет, а фиг его знает.
Это как раз та причина, по которой я не использую LLM для решения нетривиальных задач в моей области экспертизы. Мне важно прокачивать свои скиллы, поэтому LLM выступает как некий джун, которому я поручаю рутинную работу, которую мне просто лень делать.
Автор выразил свое мнение с позиции дата-сайентиста. Я выскажу свое мнение с позиции прикладного софтверного инженера с довольно обширным практическим опытом применения GenAI в бизнес-продуктах.
Для контекста, я работаю в компании, которая сделала очень сильную ставку на GenAI. Настолько сильную, что например, у нас долгое время был AI-Friday - один оплачиваемый день работы был отведен для всяких исследований, экспериментов и внутренних разработок с использованием GenAI. За последний год я сделал 2 продукта целиком основанных на GenAI, и внедрил GenAI-фичи в еще несколько.
Я считаю, что на данный момент AI сильно перехайплен
Особенно в части "он нас всех заменит" и "он скоро сам себя осознает и начнет сам себя улучшать".
Это все активно раздувается заинтересованными стронами (особенно вендорами LLMок), потому что они делают на этом огромные деньги. Это та же самая ситуация, которая была с VR, AR, Blockchain'ом и всем остальным хайпом который всплывает примерно раз в 3-4 года. Тем не менее, главное отличие GenAI в том, что этот инструмент не требует создания отдельной инфраструктуры с нуля, его можно внедрить в любой существующий проект.
GenAI - это инструмент
Инструмент в первую очередь обработки натурального текста, и во вторую - его генерации (конечно и не только текста, но я сконцентрируюсь именно на текстовых LLM). И относиться к нему нужно соответсвенно - понимать плюсы и минусы, как и где применять (а где - нет). Для меня, как для прикладного программиста, не существовало раньше такой легкой возможности обрабатывать натуральный текст. Например, понять, что "Я хочу купить сигейт винт на два тб" и "Заказывю жесткий диск SEAGATE ST2000DM008" относятся к одному и тому же товару - попробуйте решить эту задачу без LLM (с поддержкой опечаток, сленга, и сотни языков из коробки). Я думаю это можно сделать и без LLM, но это будет намного сложнее, чем просто вызвать API с простеньким промптом. Генерация текста в принцие не уверен, что раньше была возможна на таком уровне.
Сократить текст, оставив только самые основные факты. Сгенерировать нормальное человеческое описание из десятка полей в БД. Создать ответ на сообщение, и т.д.
Реальное применение в бизнесе
В целом, если в продукте кто-то работает с текстом произвольного формата, то это первая точка применения LLM. Самый очевидный пример - техподдержка пользователей. Коллеги добавили LLM в продукт для техподдержки. На основе истории вопросов/ответов и существующей базы знаний, LLM генерировала потенциальный ответ на вопрос. Конечно эффективность напрямую зависела от качества базы знаний и исторических данных, но были клиенты, для которых система генерировала хороший ответ в 20% случаев - оператору оставалось только нажать кнопочку "отправить". Хороший это показатель или нет - зависит от соотношения стоимости LLM и стоимости оператора техподдержки. Но в целом как по мне - вполне неплохой результат для нескольких недель работы пары человек.
Другой пример - один из этапов системы тестирования. В частности, кандидатов просили ответить текстом (в свободной форме) на несколько вопросов и затем LLM анализировала ответы на основе определенных правил, и отсеивала тех, кто вообще ничего по теме не смог написать. Отсеивалось что-то в районе 30% кандидатов, и это было дешевле, чем отсеивать их на следующих этапах.
Использование LLM в повседневной работе
Во-первых, сразу скажу что "AI заменит программистов" - это на данный момент с текущим уровнем LLM невозможно. Мы в команде искренне пытались это сделать, но результаты заставляют желать лучшего. Это подтверждается и тем фактом, что никто до сих пор не предложил рабочей "замены". Есть проекты, которые обещают, но это просто доение инвесторов. Причем я сомневаюсь, что проблема решится просто увеличением размера датасета для тренировки (т.е. GPT5/6/7 и т.д.). Специализированные модели могут иметь успех, но проблема в том, что они обучаются на коде, т.е. они обучаются как писать - но они не обучаются почему надо писать именно так. Не существует в природе десятитомников "Мои 15 лет опыта в разработке ПО - обьяснение почему я пишу эту конкретную строчку кода именно так".
Тем не менее, я нашел для себя несколько сценариев, в которых LLM действительно показывает неплоохие результаты:
Генерация тестов. Если код не слишком уж заумный (а он по-хорошему должен быть максимально простым), то LLM сгенерит неплохой тест под запрошенный сценарий. Конечно, скорее всего придется подправить, добавить ассертов, но примерно 80% кода будет правильным, включая моки. Если заморочиться с промтом или иметь пример, то вообще отлично выйдет.
Всякого рода простой рефакторинг, который не сделает IDE. Например вот недавно я мигрировал проект с AWS SDK v2 на AWS SDK v3 и там LLM отработала замечательно.
Работа в областях, где нет экспертизы. Не так давно мне потребовалось провести анализ данных, чтобы выявить корелляции. К сожалению, об этой области я не знаю ничего. Можно было бы конечно потратить недельку на погружение в тематику, но к счастью я просто попробовал парочку GPT ассистентов на данную тематику и они замечательно справились с задачей (от всей души спасибо дата саентистам, которые написали миллионы питоно кода, который натренировал GPT). Или когда мне нужно что-то подправить в коде на ЯП, с которым я не работал уже лет 15 - быстрее заказать изменение GPT (ну или хотя бы просто спросить варианты), чем идти в гугл.
Вы несете бессвязную дичь, кидаете ссылки на сайты в качестве подтверждения, а потом говорите про них, что "Переводчики просто не осилили этот простой факт и притянули за уши термин".
Я не знаю откуда Вы сюда пришли, но судя по "хайпануть" и "пикабу", желаю Вам там и оставаться. Со всеми своимми историями.
Я вообще не понимаю с чем Вы спорите. Может быть у Вас проблемы с чтением? Я говорю о том, что владение медальоном пожизненное, при условии продления владения раз в два года за незначительную сумму. Да, на них написан Expiration Date, и это никак не противеречит тому, что я пишу.
Мне сложно представить себе, что это за такие "обычные проекты", где сотни библиотек. Я сталкивался с достаточно большим количеством проектов - и больших, с кодовой базой на миллионы строк кода. И поменьше. На разных языках. Но не помню ни одного, где хотя бы сотня библиотек набралась. Можно конечно с натяжкой сказать это про javascript, если считать непрямые завимимости. Но это звучит не слишком честно.
Мне кажется целевая аудитория выбрана неверно. Данная статья действительно может быть полезна для новичков. Для профессионалов тут просто нет ничего интересного.
Красивая история. Жаль только работает для наколенных проектов-однострочников.
На данный момент есть несколько кардинальных проблем, которые не позволяют сделать полноценного "ИИ-программиста". И я не думаю что эти проблемы уйдут даже с выходом GPT5/Claude4 и т.д.
Но поднимать бабки на хайпе это норм тема, так и подмывает идти свой ИИ-продукт анонсировать.
TG далеко не везде распространен. В западной Европе и США о нем в лучшем случае слышали.
Встреча между командами - email со ссылкой на google meet или аналоги.
Вау, даже отредактировать после ChatGPT не потрудились, вот это уровень.
У меня 6 устройств на 10ке и я ни на одном не видел эту лента ни разу.
Зумеры изобрели айдлеры
Если я сейчас пойду и сгенерирую миллион уникальных последовательностей, а потом продам одну другу за 1000 рублей, будет ли моя капитализация равняться миллиарду рублей?
ГЭС хороши. Только для них нужны специфичные географические условия. Я где-то читал, что по большей части там где эффективно ставить ГЭС они уже стоят.
Для простых проектов - это так. Но есть случаи, когда нужно что-то сделать в процессе билда. Например скачать 3rd-party ресурсы с сервера и докинуть их в дистрибутив. Или вот не так давно я собирал native image для graalvm/js приложения, и мне пришлось написать логику на полсотки строк кода, потому что не было варианта из коробки.
По итогу главная проблема чисто декларативных языков - как только задача выходит за рамки стандартного и нет в наличии плагина для нужной цели, приходится самому писать эти плагины, и как правило это намного геморнее, чем просто вызвать код в том же gradle.
А есть просто десктопные приложения-аггрегаторы, куда можно свои ключи поставить?
Ну или просто - текст не угоден г
осударствусбербанку :)О, даже не видел. Жаль, что доступ платный, даже не протестировать. Погуглил новости по теме - система ничего не выявила после элементарного изменения стилистики через промпт. Примерно так и ожидал.
Я просто не вижу никакого алгоритма, который мог бы более-менее стабильно выявлять текст, сгенерированный нейросетями. Как минимум потому, что нейросетями можно сгенерировать все что угодно - можно в промте задать и тон, с сленг, и какие-то специфические особенности. В результате можно сгенировать абсолютно непохожие тексты на ождну и ту же тематику.
Зачем вообще тогда пытаться подгонять свой стиль под TDD? Да, по ТDD нужно сначала писать тесты. Мне например это не нравится и поэтому я не использую TDD, не вижу тут совершенно никакой проблемы. Никто ж не запрещает писать тесты вне TDD.
Потому что архитектурные стили обычно начинают показывать эффективность на реально больших проектах. Таких в целом не так уж и много. А с текущей тенденцией к разделению логики (микросервисы, лямбды, и т.д.) таких ситуаций еще меньше. Главное разделить логику, согласовать апишку, а дальше внутри проекта можно сделать максимально просто, так как там никакой сложности и нет.
Имеется ввиду, что допустим у Вас есть интернет магазин. И Вам приходят заказы пользователей в свободном виде (письмом там, или в телегу). Задача - понять, что именно пользователь попросил и собрать корзину. Или порекомендовать товары, подходящие под его запросы.
Да, это абсолютно верный вопрос. Я по итогу перепроверил результат на другой LLM. Шанс, что и она тоже ответил неправильно тоже довольно высок, но совокупность проверок и адекватности обьяснения вычислений дала мне достаточную уверенность.
Это как раз та причина, по которой я не использую LLM для решения нетривиальных задач в моей области экспертизы. Мне важно прокачивать свои скиллы, поэтому LLM выступает как некий джун, которому я поручаю рутинную работу, которую мне просто лень делать.
Автор выразил свое мнение с позиции дата-сайентиста. Я выскажу свое мнение с позиции прикладного софтверного инженера с довольно обширным практическим опытом применения GenAI в бизнес-продуктах.
Для контекста, я работаю в компании, которая сделала очень сильную ставку на GenAI. Настолько сильную, что например, у нас долгое время был AI-Friday - один оплачиваемый день работы был отведен для всяких исследований, экспериментов и внутренних разработок с использованием GenAI. За последний год я сделал 2 продукта целиком основанных на GenAI, и внедрил GenAI-фичи в еще несколько.
Я считаю, что на данный момент AI сильно перехайплен
Особенно в части "он нас всех заменит" и "он скоро сам себя осознает и начнет сам себя улучшать".
Это все активно раздувается заинтересованными стронами (особенно вендорами LLMок), потому что они делают на этом огромные деньги. Это та же самая ситуация, которая была с VR, AR, Blockchain'ом и всем остальным хайпом который всплывает примерно раз в 3-4 года. Тем не менее, главное отличие GenAI в том, что этот инструмент не требует создания отдельной инфраструктуры с нуля, его можно внедрить в любой существующий проект.
GenAI - это инструмент
Инструмент в первую очередь обработки натурального текста, и во вторую - его генерации (конечно и не только текста, но я сконцентрируюсь именно на текстовых LLM). И относиться к нему нужно соответсвенно - понимать плюсы и минусы, как и где применять (а где - нет). Для меня, как для прикладного программиста, не существовало раньше такой легкой возможности обрабатывать натуральный текст. Например, понять, что "Я хочу купить сигейт винт на два тб" и "Заказывю жесткий диск SEAGATE ST2000DM008" относятся к одному и тому же товару - попробуйте решить эту задачу без LLM (с поддержкой опечаток, сленга, и сотни языков из коробки). Я думаю это можно сделать и без LLM, но это будет намного сложнее, чем просто вызвать API с простеньким промптом.
Генерация текста в принцие не уверен, что раньше была возможна на таком уровне.
Сократить текст, оставив только самые основные факты. Сгенерировать нормальное человеческое описание из десятка полей в БД. Создать ответ на сообщение, и т.д.
Реальное применение в бизнесе
В целом, если в продукте кто-то работает с текстом произвольного формата, то это первая точка применения LLM. Самый очевидный пример - техподдержка пользователей. Коллеги добавили LLM в продукт для техподдержки. На основе истории вопросов/ответов и существующей базы знаний, LLM генерировала потенциальный ответ на вопрос. Конечно эффективность напрямую зависела от качества базы знаний и исторических данных, но были клиенты, для которых система генерировала хороший ответ в 20% случаев - оператору оставалось только нажать кнопочку "отправить". Хороший это показатель или нет - зависит от соотношения стоимости LLM и стоимости оператора техподдержки. Но в целом как по мне - вполне неплохой результат для нескольких недель работы пары человек.
Другой пример - один из этапов системы тестирования. В частности, кандидатов просили ответить текстом (в свободной форме) на несколько вопросов и затем LLM анализировала ответы на основе определенных правил, и отсеивала тех, кто вообще ничего по теме не смог написать. Отсеивалось что-то в районе 30% кандидатов, и это было дешевле, чем отсеивать их на следующих этапах.
Использование LLM в повседневной работе
Во-первых, сразу скажу что "AI заменит программистов" - это на данный момент с текущим уровнем LLM невозможно. Мы в команде искренне пытались это сделать, но результаты заставляют желать лучшего. Это подтверждается и тем фактом, что никто до сих пор не предложил рабочей "замены". Есть проекты, которые обещают, но это просто доение инвесторов. Причем я сомневаюсь, что проблема решится просто увеличением размера датасета для тренировки (т.е. GPT5/6/7 и т.д.). Специализированные модели могут иметь успех, но проблема в том, что они обучаются на коде, т.е. они обучаются как писать - но они не обучаются почему надо писать именно так. Не существует в природе десятитомников "Мои 15 лет опыта в разработке ПО - обьяснение почему я пишу эту конкретную строчку кода именно так".
Тем не менее, я нашел для себя несколько сценариев, в которых LLM действительно показывает неплоохие результаты:
Генерация тестов. Если код не слишком уж заумный (а он по-хорошему должен быть максимально простым), то LLM сгенерит неплохой тест под запрошенный сценарий. Конечно, скорее всего придется подправить, добавить ассертов, но примерно 80% кода будет правильным, включая моки. Если заморочиться с промтом или иметь пример, то вообще отлично выйдет.
Всякого рода простой рефакторинг, который не сделает IDE. Например вот недавно я мигрировал проект с AWS SDK v2 на AWS SDK v3 и там LLM отработала замечательно.
Работа в областях, где нет экспертизы. Не так давно мне потребовалось провести анализ данных, чтобы выявить корелляции. К сожалению, об этой области я не знаю ничего. Можно было бы конечно потратить недельку на погружение в тематику, но к счастью я просто попробовал парочку GPT ассистентов на данную тематику и они замечательно справились с задачей (от всей души спасибо дата саентистам, которые написали миллионы питоно кода, который натренировал GPT). Или когда мне нужно что-то подправить в коде на ЯП, с которым я не работал уже лет 15 - быстрее заказать изменение GPT (ну или хотя бы просто спросить варианты), чем идти в гугл.
Вы несете бессвязную дичь, кидаете ссылки на сайты в качестве подтверждения, а потом говорите про них, что "Переводчики просто не осилили этот простой факт и притянули за уши термин".
Я не знаю откуда Вы сюда пришли, но судя по "хайпануть" и "пикабу", желаю Вам там и оставаться. Со всеми своимми историями.
Я вообще не понимаю с чем Вы спорите. Может быть у Вас проблемы с чтением? Я говорю о том, что владение медальоном пожизненное, при условии продления владения раз в два года за незначительную сумму. Да, на них написан Expiration Date, и это никак не противеречит тому, что я пишу.
Смысл в том, что не нужно заново их покупать по истечении срока. Достаточно продлять за бросовую цену (по сравнению со стоимостью)