В этом блоге я предложу общую структуру, которая будет служить минимальной рекомендацией для тестирования приложений, использующих LLM, включая разговорные агенты, расширенную генерацию поиска и агентов и т. д.
Общая "структура", также известная как "минимальная рекомендация для тестирования приложений", в статье не найдена. И про расширенную генерацию агентов было бы интересно прочитать.
Эффективная оценка приложений на основе LLM требует многогранного подхода, охватывающего как оценки на основе правил, так и оценки на основе моделей, чтобы оценивать различные аспекты производительности системы.
Чувствуете сильный запах дешевого пластика? Да-да, нейросетка оставила следы на теле данной статьи.
Рискну спросить - почему бы не попробовать спросить кого-нибудь из больших нейросетей? Они вполне способны рассказать о подходах и даже набросать скелет простого приложения для решения интересной вам задачи на интересной вам платформе. И если заинтересуют особенности какой-нибудь детали вроде "JNI для взаимодействия с llama.cpp", то тоже можно расспросить.
Как мне кажется, для вашей задачи "хочется посмотреть реализацию" такой подход вполне достаточен.
Возможно, Swarm – и есть то самое начало перехода на третью стадию, и компания хочет начать собирать отзывы общественности о подобных продуктах?
Тут сразу несколько неточностей.
Вторая стадия "рассуждающих чат-ботов" не достигнута, модель о1 является всего-лишь развитием старой идеи рефлексии и по-прежнему не преодолела несколько ограничений, начиная со сбора дополнительных сведений.
Третья стадия - это о появлении планировщиков, которые не решаются ии-агентами, а должны работать перед ними. И планировщиков пока не видно.
Ну и причины открытия кода явно не в сборе отзывов "революционной технологии". Первые сведения про OpenAI Swarm появились почти год назад, то есть задолго до о1. И этот инструмент - один из многих, развивающих идею оркестрации. Можно предположить другие причины раскрытия кода: фреймворк устоялся, конкуренты поджимают, агенты приносят больше прибыли.
возможно, скоро мы увидим настоящие огромные мультиагентные системы
CrewAI, LangChain, Huggingface Agents, SuperAGI, AgentOps, Autogen от MS, Bedrock Agents от Амазон, Assistants API от той же OpenAI - уже есть разные игрушки, призванные обойти ограничение на роль. И проблема масштабирования у всех одна - организацией оркестра по-прежнему заведует человек.
Работа с LLM по API или полноценное встраивание сервера в свое приложение?
Скрепку можно реализовать простым расширением к браузеру, которое будет хранить часто используемые промпты и бегать с ними на сервер по мере надобности.
какие из открытых llm лучше всего справляются с текстами на русском?
Вашему вопросу не хватает уточнений по весу модели, свежести её знаний и характере работы с текстом. Например, ллама с весом 405b великолепно справляется с текстами на русском но сможете ли вы эффективно крутить эту модель? Гибриды на основе третьей лламы неплохо писали тексты, но большинство из них ничего не знают о событиях и технологиях после 2021 года, подходит ли это под цели ваших текстов? Ну и читать с пониманием могут даже модели с весом 0.5b, причем делают это быстрее прочих - попадает ли это под ваше определение "справляться с текстом"?
По личному опыту, Джемини при сравнении с конкурентами имеет плюсы: 1. Удерживает огромное окно контекста. 2. Чаще обновляется свежими данными. 3. В платной модели умеет искать идеи по гугл-драйву.
И минусы: 4. Плохо следует инструкциями, часто своевольничает. 5. Мнение по ряду вопросов перекошено в сторону западной повестки. 6. Надоедает предложениями продолжать общение на сторонние вопросы.
Человек делится не объектами и воспринимает не абстракции, — ему ценны чувственные данные.
Если огрубить, то память человека состоит из двух принципиально разных хранилищ - база абстракций и чувственные образы. Творчество возможно именно потому, что разум оперирует голыми абстракциями, очищенными от чувственной конкретики. У мозга есть возможность сформировать новый образ из произвольно группируемых абстракций, впоследствии украсив результат чувственными картинками для ясности.
Да, чувственное важно, ценно, но это не значит, что абстракции не нужны. Именно абстракции нужны для творчества. И латентное пространство нейросетей - это как раз хранилище абстракций со связями или ассоциациями между ними.
Чувственные картинки нужны для формирования базы абстракций, поэтому мультимодальное обучение помогает сделать нейросети более умными. Чувственные картинки нужны для оценки результата зрителями. Но в основе творчества лежит вовсе не чувственный опыт.
Так и не понял, что именно является открытием. Теория "эмоциональной перегрузки" появилась в прошлом веке. Алекситимию описали полвека назад, и её распространенность при аутизме отмечалась два десятка лет назад. И в 2012 появилась теория "двойной эмпатии" Милтона, которая буквально про неправильное понимание. Что именно нового добавляет Даллман сейчас?
субъективные шкалы, используемые для оценки «счастья» и «печали», не в состоянии адекватно охарактеризовать глубину их эмоций
И для обычного человека одна шкала "счастья" не выглядит достаточной - могут быть разные приятные чувства, настроения и эмоции, которые различаются не только силой и продолжительностью сигнала.
маскировка эмоций у людей с аутизмом связана с сопутствующими заболеваниями психического здоровья, включая депрессию
У людей без аутизма тоже возможна данная связь.
Что, если все, что мы знаем об аутизме, ошибочно?
То ли Даллман решил себе индекс Хирша поднять лишней публикацией по итогам рядовых исследований, то ли решил проехаться на модном тезисе "эмоции всему голова", то ли хайпом на провокации пиарится... Но когда предлагают всё отметать - это повод для скепсиса, а не для интереса.
в чём проблема заставить нейросетку думать подольше?
Как минимум, в лимите на размер окна с распухающим контекстом. Если нужно размышлять днями, то понадобятся последовательные запросы со сжатым пересказом ранее сделанных рассуждений.
Чтобы приблизиться к человеку, мало оттачивать реагирование "ответь на запрос", нужно еще и реализовывать многофакторное и многоуровневое восприятие для накопления опыта, систему оценок, систему потребностей, систему защитных механизмов, сигналы модификаторов поведения, слой обобщения, фокус внимания и что-то там еще. Но такая задача сильно выходит за рамки "создадим очередной инструмент в помощь человеку".
другие необычные приёмы, как например подкуп, угрозы и прочие объяснения почему ИИ нужно сделать что-то качественно
Это - часть задания контекста. Грубо говоря, LLM всегда решает задачу "как ответил бы человек в такой-то ситуации", опираясь на опыт людей из той базы, на которой модель обучали. Описание ситуации - это и есть создание контекста.
Соответственно, для выдачи качественного ответа нужно донести модели, что ситуация такая, в которой требуется именно качественный ответ - поставить гипотетического ответчика в такие условия, когда человек постарался бы.
И для этого лучше начинать не с угроз или взяток, а с задания роли - ты такой-то эксперт с многолетним практическим опытом и огромной эрудицией, который ответственно подходит к решению задачи (составления краткого описания к очередному мелкому товару из каталога на десять тысяч позиций).
В CETO букву E отделили от C, но напрасно, IMHO. Части контекста, которые прямо влияют на ответ: кто ты, кто целевая аудитория, что знаешь о вопросе, что нужно сделать. И последовательные вопросы и ответы в процессе беседы - это тоже часть контекста, которая влияет на последующие ответы.
Из мелких ухищрений лучше упомянуть "посоветуй что мне следует изменить в промпте, чтобы ты в следующий раз не совершал такую-то ошибку" - ценно для отладки. Также можно добавить негативный промпт "вот этого в ответе не нужно, дай другое", "перед ответом составь и покажи план решения задачи", "улучши свой предыдущий ответ", а еще можно спросить саму модель - вот я в ремесле промптинга уже знаю приемы Zero-shot и Few-shot, Self-Calibration, Chain-of-thought, посоветуй теперь другие. Плюс системный промпт или пользовательские настройки, которые влияют на все ответы.
Но, что более важно, если речь идет не о редактуре существующего текста, а о создании нового, то при задаче контекста важно напичкать запрос своими мыслями. Иначе получится безвкусная пластиковая каша, а не интересное чтиво. Для каталога товаров сойдет, но для статей на живых ресурсах лучше писать самому, использовать нейросетки только как стороннего советчика, не автора.
В статье были рассмотрены общие советы по написанию промптов, частые ошибки и конкретные приёмы, которые можно использовать в повседневной жизни. Надеюсь, вам была полезна эта статья!
Сильный запах нейросетки. Причем именно ЧатЖпт. Клод в завершениях поспокойнее будет, Джемини назойливее, Мистраль слащавее. Неприятный запах.
Поэтому вот еще одно из главных правил - если уж поручаете нейросетке писать тексты, то не ленитесь создать агента, которому в настройках подробно распишите правила создания текстов. Чтобы читатели не кривились от бесполезности целых абзацев.
Добавлю, что абстрактное мышление заточено на отрыв от реальности. Камень, стена, земля - это абстракции, а не конкретные участки реальности. Переход от конкретного мышления к абстрактному и подарил возможность воспринимать концепции, на которые вовсе не получается указать пальцем.
-- Есть не только страх, но и другие эмоции, и не только эмоции. -- В моем понимании, всё, что вы перечислили, это и есть страх. -- Примитивизация?
это нарушит состояние системы в текущий момент, и организм стремится от этого защититься
Вы преувеличиваете силу стремления к равновесию. Организм содержит множество систем адаптации и развития, и если эти системы подавлены, то налицо не "здоровое стремление к равновесию", а что-то совсем иное.
Попробуйте для начала определить эти два слова. Понять, что за ними скрывается.
Усталость - это истощение или эмоция? Выгорание - это процесс или состояние? И какие именно, чем проявляются, какую полезную задачу решают их механизмы, что их активировало?
В основе сопротивления лежит логика: «Работает? Не ломай».
Опасение сломать - это лишь одна из возможных причин сопротивления. Некоторые другие варианты: нужно прикоснуться к неприятному, нужно отложить что-то архиважное, нужно повторять безрезультатное, нужно надавить на больное место. И каждую из этих причин можно декомпозировать на несколько разных.
Реально только настоящее, о прошлом есть только память, она неточная и легко переписывается, будущее ещё не наступило, о нём есть лишь фантазии.
Ой ли? Скажу иное - реально только прошлое, о котором есть память. А настоящее и будущее - это лишь фантазии.
Реальность всегда существует только в воспоминаниях - это я увидел, услышал, почувствовал долю секунды назад. А вот новое воспоминание - я об этом только что подумал "ну вот же я воспринимаю". А вот и новое - я только что подумал, что только что подумал. Всё, что мы называем "сейчас" на деле существовало некоторое время назад. Квалиа нарисованы исключительно в воспоминаниях.
А "настоящее" - это такое же искусственное моделирование, как и "будущее". Пока оно не воспринято и не обработано, оно не существует для мозга, существует лишь гипотетически.
Мозг работает как машинка предсказаний, опирающаяся на прошлое для прорисовки возможного будущего. Чтобы в этом будущем эффективнее действовать.
И поэтому мы не ощущаем времени. Мы ощущаем только воспоминания и даже следы своих мыслей видим только в воспоминаниях. И пространство, и время осмысливаем одинаковым образом - сравнивая разные картинки в памяти.
Общая "структура", также известная как "минимальная рекомендация для тестирования приложений", в статье не найдена. И про расширенную генерацию агентов было бы интересно прочитать.
Чувствуете сильный запах дешевого пластика? Да-да, нейросетка оставила следы на теле данной статьи.
Рискну спросить - почему бы не попробовать спросить кого-нибудь из больших нейросетей? Они вполне способны рассказать о подходах и даже набросать скелет простого приложения для решения интересной вам задачи на интересной вам платформе. И если заинтересуют особенности какой-нибудь детали вроде "JNI для взаимодействия с llama.cpp", то тоже можно расспросить.
Как мне кажется, для вашей задачи "хочется посмотреть реализацию" такой подход вполне достаточен.
Gemma2 даже в малых весах значительно превосходит Llama3.2 в мультиязычности. Нельзя использовать последние лламы для генерации на русском.
Тут сразу несколько неточностей.
Вторая стадия "рассуждающих чат-ботов" не достигнута, модель о1 является всего-лишь развитием старой идеи рефлексии и по-прежнему не преодолела несколько ограничений, начиная со сбора дополнительных сведений.
Третья стадия - это о появлении планировщиков, которые не решаются ии-агентами, а должны работать перед ними. И планировщиков пока не видно.
Ну и причины открытия кода явно не в сборе отзывов "революционной технологии". Первые сведения про OpenAI Swarm появились почти год назад, то есть задолго до о1. И этот инструмент - один из многих, развивающих идею оркестрации. Можно предположить другие причины раскрытия кода: фреймворк устоялся, конкуренты поджимают, агенты приносят больше прибыли.
CrewAI, LangChain, Huggingface Agents, SuperAGI, AgentOps, Autogen от MS, Bedrock Agents от Амазон, Assistants API от той же OpenAI - уже есть разные игрушки, призванные обойти ограничение на роль. И проблема масштабирования у всех одна - организацией оркестра по-прежнему заведует человек.
Работа с LLM по API или полноценное встраивание сервера в свое приложение?
Скрепку можно реализовать простым расширением к браузеру, которое будет хранить часто используемые промпты и бегать с ними на сервер по мере надобности.
Вашему вопросу не хватает уточнений по весу модели, свежести её знаний и характере работы с текстом.
Например, ллама с весом 405b великолепно справляется с текстами на русском но сможете ли вы эффективно крутить эту модель?
Гибриды на основе третьей лламы неплохо писали тексты, но большинство из них ничего не знают о событиях и технологиях после 2021 года, подходит ли это под цели ваших текстов?
Ну и читать с пониманием могут даже модели с весом 0.5b, причем делают это быстрее прочих - попадает ли это под ваше определение "справляться с текстом"?
По личному опыту, Джемини при сравнении с конкурентами имеет плюсы:
1. Удерживает огромное окно контекста.
2. Чаще обновляется свежими данными.
3. В платной модели умеет искать идеи по гугл-драйву.
И минусы:
4. Плохо следует инструкциями, часто своевольничает.
5. Мнение по ряду вопросов перекошено в сторону западной повестки.
6. Надоедает предложениями продолжать общение на сторонние вопросы.
Если огрубить, то память человека состоит из двух принципиально разных хранилищ - база абстракций и чувственные образы. Творчество возможно именно потому, что разум оперирует голыми абстракциями, очищенными от чувственной конкретики. У мозга есть возможность сформировать новый образ из произвольно группируемых абстракций, впоследствии украсив результат чувственными картинками для ясности.
Да, чувственное важно, ценно, но это не значит, что абстракции не нужны. Именно абстракции нужны для творчества. И латентное пространство нейросетей - это как раз хранилище абстракций со связями или ассоциациями между ними.
Чувственные картинки нужны для формирования базы абстракций, поэтому мультимодальное обучение помогает сделать нейросети более умными. Чувственные картинки нужны для оценки результата зрителями. Но в основе творчества лежит вовсе не чувственный опыт.
Так и не понял, что именно является открытием. Теория "эмоциональной перегрузки" появилась в прошлом веке. Алекситимию описали полвека назад, и её распространенность при аутизме отмечалась два десятка лет назад. И в 2012 появилась теория "двойной эмпатии" Милтона, которая буквально про неправильное понимание. Что именно нового добавляет Даллман сейчас?
И для обычного человека одна шкала "счастья" не выглядит достаточной - могут быть разные приятные чувства, настроения и эмоции, которые различаются не только силой и продолжительностью сигнала.
У людей без аутизма тоже возможна данная связь.
То ли Даллман решил себе индекс Хирша поднять лишней публикацией по итогам рядовых исследований, то ли решил проехаться на модном тезисе "эмоции всему голова", то ли хайпом на провокации пиарится... Но когда предлагают всё отметать - это повод для скепсиса, а не для интереса.
Как минимум, в лимите на размер окна с распухающим контекстом. Если нужно размышлять днями, то понадобятся последовательные запросы со сжатым пересказом ранее сделанных рассуждений.
Взломом чего?
И будет ли являться взломом промпт "реши такую-то задачу с использованием метода Graph-of-Thoughts"?
Чтобы приблизиться к человеку, мало оттачивать реагирование "ответь на запрос", нужно еще и реализовывать многофакторное и многоуровневое восприятие для накопления опыта, систему оценок, систему потребностей, систему защитных механизмов, сигналы модификаторов поведения, слой обобщения, фокус внимания и что-то там еще. Но такая задача сильно выходит за рамки "создадим очередной инструмент в помощь человеку".
Меняли код обработчика для последовательных запросов, реализовывали пошаговость на стороне клиента или обошлись системным промптом?
Это - часть задания контекста. Грубо говоря, LLM всегда решает задачу "как ответил бы человек в такой-то ситуации", опираясь на опыт людей из той базы, на которой модель обучали. Описание ситуации - это и есть создание контекста.
Соответственно, для выдачи качественного ответа нужно донести модели, что ситуация такая, в которой требуется именно качественный ответ - поставить гипотетического ответчика в такие условия, когда человек постарался бы.
И для этого лучше начинать не с угроз или взяток, а с задания роли - ты такой-то эксперт с многолетним практическим опытом и огромной эрудицией, который ответственно подходит к решению задачи (составления краткого описания к очередному мелкому товару из каталога на десять тысяч позиций).
В CETO букву E отделили от C, но напрасно, IMHO. Части контекста, которые прямо влияют на ответ: кто ты, кто целевая аудитория, что знаешь о вопросе, что нужно сделать. И последовательные вопросы и ответы в процессе беседы - это тоже часть контекста, которая влияет на последующие ответы.
Из мелких ухищрений лучше упомянуть "посоветуй что мне следует изменить в промпте, чтобы ты в следующий раз не совершал такую-то ошибку" - ценно для отладки. Также можно добавить негативный промпт "вот этого в ответе не нужно, дай другое", "перед ответом составь и покажи план решения задачи", "улучши свой предыдущий ответ", а еще можно спросить саму модель - вот я в ремесле промптинга уже знаю приемы Zero-shot и Few-shot, Self-Calibration, Chain-of-thought, посоветуй теперь другие. Плюс системный промпт или пользовательские настройки, которые влияют на все ответы.
Но, что более важно, если речь идет не о редактуре существующего текста, а о создании нового, то при задаче контекста важно напичкать запрос своими мыслями. Иначе получится безвкусная пластиковая каша, а не интересное чтиво. Для каталога товаров сойдет, но для статей на живых ресурсах лучше писать самому, использовать нейросетки только как стороннего советчика, не автора.
Сильный запах нейросетки. Причем именно ЧатЖпт. Клод в завершениях поспокойнее будет, Джемини назойливее, Мистраль слащавее. Неприятный запах.
Поэтому вот еще одно из главных правил - если уж поручаете нейросетке писать тексты, то не ленитесь создать агента, которому в настройках подробно распишите правила создания текстов. Чтобы читатели не кривились от бесполезности целых абзацев.
Добавлю, что абстрактное мышление заточено на отрыв от реальности. Камень, стена, земля - это абстракции, а не конкретные участки реальности. Переход от конкретного мышления к абстрактному и подарил возможность воспринимать концепции, на которые вовсе не получается указать пальцем.
-- Есть не только страх, но и другие эмоции, и не только эмоции.
-- В моем понимании, всё, что вы перечислили, это и есть страх.
-- Примитивизация?
Вы преувеличиваете силу стремления к равновесию. Организм содержит множество систем адаптации и развития, и если эти системы подавлены, то налицо не "здоровое стремление к равновесию", а что-то совсем иное.
Попробуйте для начала определить эти два слова. Понять, что за ними скрывается.
Усталость - это истощение или эмоция? Выгорание - это процесс или состояние? И какие именно, чем проявляются, какую полезную задачу решают их механизмы, что их активировало?
Опасение сломать - это лишь одна из возможных причин сопротивления. Некоторые другие варианты: нужно прикоснуться к неприятному, нужно отложить что-то архиважное, нужно повторять безрезультатное, нужно надавить на больное место. И каждую из этих причин можно декомпозировать на несколько разных.
Ой ли? Скажу иное - реально только прошлое, о котором есть память. А настоящее и будущее - это лишь фантазии.
Реальность всегда существует только в воспоминаниях - это я увидел, услышал, почувствовал долю секунды назад. А вот новое воспоминание - я об этом только что подумал "ну вот же я воспринимаю". А вот и новое - я только что подумал, что только что подумал. Всё, что мы называем "сейчас" на деле существовало некоторое время назад. Квалиа нарисованы исключительно в воспоминаниях.
А "настоящее" - это такое же искусственное моделирование, как и "будущее". Пока оно не воспринято и не обработано, оно не существует для мозга, существует лишь гипотетически.
Мозг работает как машинка предсказаний, опирающаяся на прошлое для прорисовки возможного будущего. Чтобы в этом будущем эффективнее действовать.
И поэтому мы не ощущаем времени. Мы ощущаем только воспоминания и даже следы своих мыслей видим только в воспоминаниях. И пространство, и время осмысливаем одинаковым образом - сравнивая разные картинки в памяти.
Попробуйте читать не между строк, а прямо по написанному.