All streams
Search
Write a publication
Pull to refresh
7
0
Владимир Лебедев @Iqber

Бэкенд разработчик (Softmedialab)

Send message

И да, каким образом предоставленные мной ссылки не учитывают "stable long context"? Кстати, что это? По вашей ссылке этот термин не упомянут и я его не смог нагуглить. Needle in a haystack это синтетический тест, слабо применимый к реальной жизни (поэтому я его и не включал в обоснование), и то, что современные модели его хорошо проходят, не мешает самым передовым из них демонстрировать ухудшающуюся производительность с ростом контекста в более сложных операциях, приближенным к реальным задачам, как видно из приведенных мной ресурсов.

Вы интерпретируете мой подход как "просто добавление в контекст большого количества кода в надежде, что ИИ схватит суть"

Да, именно такое восприятие по вашему описанию и складывается. Единственное место, где вы упоминали окружающий код для интегрирования нового модуля было в самом начале (и сообщение даже не в этом треде)

создай компонент X, который будет интегрироваться в Y с учетом Z ограничений

В дальнейшем же вы говорили многократно про усваивание паттернов и стиля из контекста, что "сместило мои вероятности" в пользу такого толкования. Теперь я лучше понимаю, что вы имели в виду.

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

Взять тот же ICL и первую статью, в ней рассматривается именно классический ICL, напрямую аналогичный RL в том плане, что для LLM предоставляются примеры входов и идеальные ответы для них. Усваивание паттернов, стиля кода и инфраструктуры из прилегающего кода это конечно хорошо, но теме первой статьи как и главному значению ICL это не соответствует. Это другая форма получения информации из контекста, которая если и может быть отнесена к ICL, то очень относительно.

Ну и все же, мое изначальное заявление, в опровержение которому вы привели статьи, звучало как "чем длиннее контекст, тем хуже внимание к деталям", а не как "чем длиннее контекст, тем хуже результат". Контекст может быть разного качества, и если применять чистый ICL конечно же чем длиннее контекст, тем результат будет лучше. Я к тому, что если добавлять в контекст то, что слабо соотносится с текущей задачей, выбрать нужные детали для результата LLM будет сложнее с ростом длины такого контекста.

У меня нет цели вас на что-то мотивировать, я просто делюсь своими знаниями и мыслями, которые, как мне кажется, как раз позволяют мне получать отличные результаты от LLM (например 500-1000 строк насыщенной логики по контексту в 15-20к токенов с первой попытки). И от вас узнаю что-то новое. Изучать или нет то, чем я делюсь - это уже ваше личное дело

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

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

Если бы вы говорили, что для задачи полезно большое количество примеров решения аналогичных (не из того же проекта, а именно с тем же смыслом) задач, я бы с вами согласился, но вы имеете в виду, как я понял, просто добавление в контекст большого количества кода в надежде, что ИИ схватит суть. Этот подход, конечно, работает, но фундаментально хуже, чем явное описание паттернов вроде того, которое формирует Claude Code, вкупе с емкими примерами.

А большой контекст чаще всего ухудшает внимание модели к его составляющим и способность выбрать существенные для задачи данные https://arxiv.org/html/2409.12640v2 https://fiction.live/stories/Fiction-liveBench-Mar-25-2025/oQdzQvKHw8JyXbN87 Хоть эта способность все равно сильно выше человеческой с точки зрения объема оперативной памяти, человек кстати в долгосрочной перспективе способен лучше справиться с длинным контекстом потому, что он в голове осуществляет примерно то же, что и функция compact в Claude Code.

Для практического использования LLM и понимания вероятностной природы генерации не требуется знать RL

Без RL вы не будете понимать, откуда эти вероятности берутся под капотом. Если вы используете это как метафору, пожалуйста, это из той же серии, что я думаю об ИИ как о человеке, но если вы говорите про "природу" генерации, вам нужно понимать RL, чтобы судить об этой природе

Хорошо, что у вас это работает, и на практике часто действительно проще всего вставить имеющийся код. Но как многократно установлено для самых разных моделей, чем длиннее контекст, тем хуже внимание к деталям, в частности к вашему целевому заданию. Я при возможности стараюсь для частых задач выделять явно нужные паттерны, а потом привожу насыщенный этими паттернами пример на пару сотен строк. И даже Claude Code в своём claude.md занимается тем же самым - в первую очередь словами обобщает паттерны, которые он нашёл. Если бы чем больше кода было, тем лучше бы работала модель, он бы явно этим не занимался. Контекст в идеале должен быть не только достаточным, но и минимальным при этой достаточности.

Ваше понимание работы "с вероятностиями", мне кажется, слишком упрощено, и вы достаточно плохо понимаете, что это за вероятности и откуда они берутся, так как возможно не изучали RL

Да, если вам в любом случае пришлось бы передавать образцы кода для подражания по стилю, то документация практически ничего не добавит. Конечно, у вас больше опыта в принуждении ИИ использовать нужную версию технологии (на моем стеке это требуется достаточно редко), но возможно, пример на 10к строк (это наверное около 50к токенов) можно было бы как-то сократить. ИИ, как и человек, хуже работает, когда нужно удержать в голове большое количество информации, поэтому я при промптинге всегда стараюсь сделать контекст как можно меньше при сохранении всех важных деталей, что позволяет ИИ лучше воспринимать основную задачу. Возможно, вы тоже можете найти этот подход полезным. Ну или может gemini делает короткий контекст намного менее важным

Вот проблему устаревших библиотек или синтаксиса часто действительно не решить просто указанием номера версии) Для этого модели требовалось бы четко ассоциировать набор паттернов с конкретной версией технологии, а ИИ действительно пока не обладают настолько структурированными нейронными связями в какой-либо области. Опять же, работает хорошо, но не так как специалист или тем более строгая структура данных вроде справочника, и предоставление большого контекста в нужном стиле здесь как раз наверное самый уместный вариант. Возможно вместо примеров подойдут еще какие-нибудь release notes с емким и содержательным описанием устройства очередной версии, если в вашем стеке что-то подобное существует, чтобы ИИ использовал это как справочник и понял, на какие проекты из своей памяти ориентироваться

Можете описать ситуацию, в которой проявляется именно "вероятностная" природа модели? Если вы про галлюцинации, то я бы объяснил их примерно равномерным и недостаточным уровнем понимания практически всех знакомых ей концепций.

Это, кстати, как раз отличает LLM от человека - человек отлично понимает некоторый ограниченный круг понятий и не склонен галлюцинировать внутри него, а вне этого круга без дополнительного образования он не сможет выдать ничего кроме бессвязного текста. LLM же примерно одинаково может судить о бытовых вопросах и физиологии бабочек - она сильно лучше некомпетентного человека понимает нишевые темы, но все равно хуже специалиста, точно так же и бытовые вопросы она понимает неплохо, но хуже "специалистов", которыми являются на этот раз большинство людей.

Возможно, в вашем случае, точные промпты, как вы упоминали, требуют итераций, но почему-то у меня, с самого первого моего промпта по генерации кода в жизни, адресованного GPT-4, получилось сгенерировать около 200 строк кода, отлично соответствующего тому что я ожидал, и свои генерации на 500-1000 строк я так же осуществляю без диалога - я составляю контекст на 20к токенов и чаще всего с первого раза получаю что нужно, для самых разных задач. Либо же я заранее понимаю, что то, что мне нужно, не получить от LLM в лоб, и я даже не составляю промпт до тех пор пока не буду готов составить нужный контекст.

И для этого не надо "думать как Claude", мне достаточно хорошо понимать, например, свой мыслительный процесс и проецировать его на любую модель. Но возможно это достаточно редкий скилл, не знаю, я ему не учился. Мои коллеги тоже на мои рассказы о взаимопонимании с ИИ спрашивают: "Ты случайно не ИИ?"

Проблема в том, что если модель плохо понимает реальность (то есть смысл слов), даже на основе чисто вашего контекста она не сможет сформировать новую достаточно осмысленную цепочку. В то же время при хорошем понимании реальности даже одно слово внутри вашего контекста радикально сужает пространство допустимых результатов, в точности как и для человека одно слово может полностью поменять смысл текста. Конечно, даже достаточно старые модели вроде GPT-3 при качественном контексте будут давать отличный результат, в чем я не раз убеждался на практике. Но и эта модель, надо признать, неплохо понимает реальность, неспроста ChatGPT на ее основе произвел фурор.

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

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

Если меня бы попросили озвучить одну главную мысль, которая больше всего помогает мне работать с ИИ, это было бы "я воспринимаю ИИ как человека". Если расписывать этот процесс подробнее, то наверное можно составить ряд показательных примеров, это выглядит возможно даже как тема для отдельной статьи. Но например, можно дать человеку просто кусок кода, а можно дополнительно упомянуть язык/фреймворк, на котором он написан. В первом случае часть внимания человек потратит на установление языка / фреймворка с определенной долей уверенности, во втором же то же внимание он потратит на анализ, который вы от него ожидаете, что в среднем даст более качественный результат для целевого действия. Добавили пару слов и значительно облегчили работу для человека, то же самое работает и для ИИ.

В смысле, что это не какая-то конкретная технология, которая применяется к модели и зависит только от нее. Это просто название продукта, за которым у Google и OpenAI могут стоять совершенно разные подходы

В статье приведен набор разрозненных фактов, и так понятных всем, кто обладает базовыми знаниями в ML, но на мой взгляд, не дающих ничего тем, кто про статистику и RL не знает практически ничего. К моему комментарию это имеет только то отношение, что если модель обладает слабым пониманием реальности, то она и не сможет выдать ничего, до чего нужно хоть немного догадаться, и за счет так называемого "ICL" вы сможете максимум заставить ее копировать ваш контекст. Смысл моего комментария был в том, что нужно активно представлять себя на месте модели и понимать, почему для нее ваш идеальный ответ будет наиболее вероятен. Требуется практически то же самое мышление, что и при обучении человека или составлении задания для человека

Ну, Deep Research это скорее бренд, просто так вышло, что этот продукт у Google и OpenAI называется одинаково

По какому поводу например? Вообще, на текущий момент, "тех, кто использует ИИ" в команде представляю в первую очередь я, и если вдруг кто-то говорит мне, что ИИ чего-то не может, я часто на практике переубеждаю его, что может. Да и у нас дружная команда, терок в принципе почти нет, а те что есть, конструктивные)

Для первичного изучения незнакомого проекта рекомендую Claude Code. Пусть это и недешевый инструмент, любимый у вайб кодеров, но мне кажется, его возможности изучения проекта и даже составления контекста для последующих промптов стоят того. И немного подушню, Claude - это тоже GPT, если что)

В данный момент действительно, между процессами, происходящими в LLM и человеческом мозгу, огромная разница. Но между ними и много общего. Что можно называть "мышлением" и "пониманием" - вопрос терминологии

Именно, хорошо расписано, согласен почти со всем. Разве что разные модели под разные стеки лично мне обычно не приходится выбирать, при правильном использовании практически все современные модели ведут себя предсказуемо, я для кодогенерации только на клоде сижу. Для итеративного улучшения диалог далеко не оптимальный формат, я начинаю чат каждый раз с нуля для очередной доработки, а вообще при правильном промптинге чаще всего удается получить желаемый результат с 1 раза без итераций. Ну и изложение в 2-3 абзаца не обязательно, у меня лично получается спокойно сгенерировать в районе 500-1000 строк бизнес-логики в один подход по описанию страницы на 2-3. Но разбивать на low coupling, high cohesion подзадачи, конечно же, крайне желательно. Когда есть интерфейс взаимодействия с окружающим проектом и конкретная четко сформулированная инкапсулированная бизнес-логика, ИИ справляется с задачей на ура

Под уровнем "понимания" я подразумеваю степень соответствия реальному миру имеющихся нейронных связей между понятиями реального мира. Известно, что современные LLM оперируют концепциями вне конкретного языка - информацию, усвоенную на испанском, они могут не хуже применять при генерации текста на русском.

Кроме того, небольшие концепции, например, "боль", относятся у хорошо обученной LLM к более общей категории, например, переживаний, но, в то же время та же "боль" в одном отношении противоположна "экстазу", а в другом с ним похожа (например с точки зрения силы переживаний). Если вы скептически относитесь к этому - ознакомьтесь с парой базовых курсов по обработке естественного языка, это люди делали еще задолго до появления ChatGPT.

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

В качестве примера, айфон (несомненно гениальное изобретение) можно наверное вывести из того, что пальцы человека подвижны, что человеку привычнее оперировать пальцами, чем объектом-посредником (стилус), а также из последних технологических разработок, таких как емкостные сенсоры.

LLM обладает нейронными связями между абстрактными концепциями и при нужном промптинге легко создаст то, чего не было в обучающей выборке. И по поводу нового способа решения задачи, неоднократно было установлено, что LLM способны создавать новые и даже более оптимальные решения, чем человек, которые до этого не были описаны.

Я считаю, что LLM пока не может заменить человека только потому, что для человека реальный мир - естественная среда обитания, и его нейросеть отлично адаптирована к взаимодействию с ним. И этот опыт взаимодействия с реальным миром достаточно сложно сформулировать в виде текста или иных дискретных токенов на текущем этапе технологического развития. Хотя этот опыт и переживания, в моем понимании - вполне себе данные, в естественном для человека формате, и мозг человека как раз занимается ничем иным, как оперирует над этими данными. Но, надеюсь, в ближайшем будущем понимание реального мира удастся хорошо передать ИИ, и он все же будет способен двигать науку сильнее людей

Если бы все было так просто) Внутри компании я уже давно выложил множество обучающих материалов, в которых передал, на мой взгляд, самое ценное. Но почему-то, даже несмотря на то что мои инициативы по распространению ИИ всячески поддерживаются руководством, пока что у большинства коллег не получается воспроизвести мой опыт. Если кратко, то, во-первых, Claude здесь ни при чем, отличные результаты можно получить даже на GPT-3.5 двухлетней давности. А во-вторых, нужно понимать, как ИИ посчитает тот ответ, который вы от него хотите, наиболее вероятным на основе своего понимания уровня техники и вашего промпта. В идеале нужно точно понимать, как ИИ догадается до каждой буквы правильного ответа, понимать, какие у него есть альтернативы и почему они для него будут менее вероятны. К современным ИИ я вообще отношусь как к человеческим исполнителям, я когда фрилансеру даю задание, я его формулирую практически по тем же принципам, что и задание для ИИ

Вопрос, что такое "мышление" и "рассуждения" конечно очень неоднозначный. Действительно, генеративный ИИ угадывает следующий токен на основе предыдущих. Но например на моем опыте, LLM могут производить реальную полезную интеллектуальную работу, правильно производя бОльшую часть логических преобразований с данными в общем случае и правильно производя 100% преобразований при грамотном использовании контекста. Чаще всего даже я, когда сам делаю аналогичную интеллектуальную работу, допускаю больше неточностей, чем ИИ. А вообще, что в вашем понимании "рассуждения"? Разве человек точно так же не предсказывает следующий токен (пусть он и не дискретный, а аналоговый), как то сигнал в мускул, нейронный импульс, мысль (как набор более элементарных токенов) на основе всего, что поступило ранее в нейросеть и на основе того, какое следующее действие наиболее вероятно с точки зрения текущей конфигурации нейросети в мозгу?

Я конечно не ML специалист, но свои нейросети создавал и примерно знаком с популярными архитектурами и основополагающими принципами. Да, конечно же, чем бы ни являлись "токены рассуждений", это для ИИ обычные токены, ничем технически не отличающиеся от токенов слов или звуков.

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

И моя гипотеза в том, что если предварительно разметить датасет на фрагменты в духе "здесь используется дедукция, здесь противопоставление, здесь анализ с нескольких точек зрения", то создание токенов рассуждений звучит как вполне решаемая техническая задача, что может дать намного более мощный инструмент для решения логических задач, чем просто генерация текста.

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

Но опять же это предположение, хоть и обоснованное, и я буду рад услышать иные мнения на этот счет

Ну мой опыт применения ИИ для решения реальных задач намного успешнее, чем у моих коллег. И я заметил, что качество модели хорошо коррелирует с ее результатом в SimpleBench. Если ознакомиться с бенчмарком внимательнее, то вы тоже, думаю, сможете для себя многое о нем почерпнуть и решить, насколько результаты в нем показательны для вашей предметной области. Ваше саммари статьи указывает скорее на то, что вы ее очень невнимательно прочитали)

Information

Rating
Does not participate
Location
Екатеринбург, Свердловская обл., Россия
Registered
Activity