Расскажу про небольшой паттерн внедрения продуктов с LLM под капотом.
Он работает забавно, пусть и временами раздражает.
Приходит, скажем, к нам клиент с запросом или срочной проблемой. Например, как в кейсах про захват рынка или про автоматическое исправление ошибок в продуктовых описаниях. Мы эту проблему ему решаем, клиент получает решение и исчезает. Не в смысле, что пропадает совсем, а что общение становится медленным и каким-то нерезультативным. Так может тянуться месяцы.
Думали, что делаем не так? Вроде клиент доволен, а развивать дальше проект не хочет. Была теория, что после решения проблемы с LLM клиенты получают возможность двигаться дальше и отвлекаются, но это была только теория.
Но недавно эту плотину прорвало. Клиент про захват рынка пришел с просьбами "а сделайте такое еще для 5 конкурентов, для начала" и "а можете-таки извлекать из PDF на продукты значения derating curves прямо из графиков?", "да, и сделайте сразу систему с приложением, чтобы мы могли сами задавать правила сопоставления продуктов". Причем, там всего хотелок было штук шесть, каждое по масштабам больше изначального проекта. И никаких бюджетных ограничений - сколько у нас будет времени на этот проект, столько и оплатят.
Аналогично и с кейсом про исправление ошибок - клиент вернулся на горизонт и сразу просит много сразу - и курсы про самостоятельное внедрение, и обучение, и помощь с парочкой проектов.
Как выяснилось, клиентам после первого внедрения просто нужно было переварить новые возможности, интегрировать их в свои процессы и перестроиться под новую реальность. А через 4-12 месяцев они возвращаются обратно с возросшими аппетитами. Это жутко неудобно с точки зрения планирования загрузки и работ, но тут уже ничего не поделаешь, только диверсифицироваться между отраслями и клиентами.
А у вас такое в практике встречалось?
Вaш, @llm_under_hood 🤗
Он работает забавно, пусть и временами раздражает.
Приходит, скажем, к нам клиент с запросом или срочной проблемой. Например, как в кейсах про захват рынка или про автоматическое исправление ошибок в продуктовых описаниях. Мы эту проблему ему решаем, клиент получает решение и исчезает. Не в смысле, что пропадает совсем, а что общение становится медленным и каким-то нерезультативным. Так может тянуться месяцы.
Думали, что делаем не так? Вроде клиент доволен, а развивать дальше проект не хочет. Была теория, что после решения проблемы с LLM клиенты получают возможность двигаться дальше и отвлекаются, но это была только теория.
Но недавно эту плотину прорвало. Клиент про захват рынка пришел с просьбами "а сделайте такое еще для 5 конкурентов, для начала" и "а можете-таки извлекать из PDF на продукты значения derating curves прямо из графиков?", "да, и сделайте сразу систему с приложением, чтобы мы могли сами задавать правила сопоставления продуктов". Причем, там всего хотелок было штук шесть, каждое по масштабам больше изначального проекта. И никаких бюджетных ограничений - сколько у нас будет времени на этот проект, столько и оплатят.
Аналогично и с кейсом про исправление ошибок - клиент вернулся на горизонт и сразу просит много сразу - и курсы про самостоятельное внедрение, и обучение, и помощь с парочкой проектов.
Как выяснилось, клиентам после первого внедрения просто нужно было переварить новые возможности, интегрировать их в свои процессы и перестроиться под новую реальность. А через 4-12 месяцев они возвращаются обратно с возросшими аппетитами. Это жутко неудобно с точки зрения планирования загрузки и работ, но тут уже ничего не поделаешь, только диверсифицироваться между отраслями и клиентами.
А у вас такое в практике встречалось?
Вaш, @llm_under_hood 🤗
👍52🔥18❤14
Давно не было постов в серии #weekend. Хочу рассказать про то, как устроена самая сложная часть голосового ассистента Homai. Это серверное ядро системы, во второй своей версии, я его сейчас переписываю.
Ядро - это сервер на golang, который отвечает за подключение всех девайсов по WebSocket, координирует их работу, собирает задачи по обработке голосового ввода на своих моделях (ASR), передачу задач на пайплайны ассистентов или выделенным серверам озвучки (TTS), которые тоже используют свои модели.
Во второй версии ядра мы хотели добавить пару улучшений:
(1) полное покрытие системы тестами, возможность запуска системы в режиме симуляции с ускорением времени.
(2) асинхронная работа всех элементов системы, чтобы голосовой ответ начинал идти в режиме стриминга с минимальной задержкой (в идеале - до секунды)
(3) подключение LLM-логики по архитектуре корпоративных AI ассистентов с поддержкой асинхронной работы
(4) нормальное логгирование всего процесса ответа на запросы, с возможностью анализа ошибок и улучшения системы.
(5) запуск локальных моделей на выделенных серверах c GPU и автоматической перебалансировкой нагрузки.
Там еще было много других хотелок. Но самое главное было в том, чтобы ядро брало на себя сложные задачи вроде координации и балансировки, а вся бизнес-логика писалась отдельно в виде простых скриптов на питоне.
Потребовалось прототипов 6, чтобы утрясти всю архитектуру под эти требования. Основные фишки
(1) структурное логгирование встроено в систему с самого начала. Оно используется для отладки системы и написания event-driven тестов (я этот подход таскаю из проекта в проект)
(2) самая сложная часть - координатор - сделан в виде одного единственного класса Finite State Machine, каждый чих которого покрыт тестами. Он перегягивает всю остальную сложность системы на себя (см про FSM)
(3) Вся система строится так, чтобы она могла работать в режиме виртуальной симуляции. Например, можно запустить с десяток асинхронных подключений к серверу, добавить случайные обрывы соединений и периодическую перебалансировку GPU. А потом прогнать месяцы работы системы в таком режиме за минуты. Идеей в давном давно поделились инженеры из FoundationDB, которая теперь служит основанием для Apple iCloud (см хорошее видео тут).
Если интересно, в комментариях я выложу пример отладки системы в одном из режимов симуляции, плюс пример теста.
В разработке и отладке всей системы очень сильно помогают ChatGPT/Claude и даже Copilot, позволяя разрабатывать ее очень малыми силами. Поэтому архитектура и код адаптированы под такой режим разработки. Структурное логгирование, event-driven tests и симуляция оптимизированы под участие LLM в разработке, это немного похоже на работу Anithesis.
А у вас есть такие примеры продуктов, когда LLM-ки невероятно помогают в разработке продуктов малыми силами?
Ваш, @llm_under_hood 🤗
Ядро - это сервер на golang, который отвечает за подключение всех девайсов по WebSocket, координирует их работу, собирает задачи по обработке голосового ввода на своих моделях (ASR), передачу задач на пайплайны ассистентов или выделенным серверам озвучки (TTS), которые тоже используют свои модели.
Во второй версии ядра мы хотели добавить пару улучшений:
(1) полное покрытие системы тестами, возможность запуска системы в режиме симуляции с ускорением времени.
(2) асинхронная работа всех элементов системы, чтобы голосовой ответ начинал идти в режиме стриминга с минимальной задержкой (в идеале - до секунды)
(3) подключение LLM-логики по архитектуре корпоративных AI ассистентов с поддержкой асинхронной работы
(4) нормальное логгирование всего процесса ответа на запросы, с возможностью анализа ошибок и улучшения системы.
(5) запуск локальных моделей на выделенных серверах c GPU и автоматической перебалансировкой нагрузки.
Там еще было много других хотелок. Но самое главное было в том, чтобы ядро брало на себя сложные задачи вроде координации и балансировки, а вся бизнес-логика писалась отдельно в виде простых скриптов на питоне.
Потребовалось прототипов 6, чтобы утрясти всю архитектуру под эти требования. Основные фишки
(1) структурное логгирование встроено в систему с самого начала. Оно используется для отладки системы и написания event-driven тестов (я этот подход таскаю из проекта в проект)
(2) самая сложная часть - координатор - сделан в виде одного единственного класса Finite State Machine, каждый чих которого покрыт тестами. Он перегягивает всю остальную сложность системы на себя (см про FSM)
(3) Вся система строится так, чтобы она могла работать в режиме виртуальной симуляции. Например, можно запустить с десяток асинхронных подключений к серверу, добавить случайные обрывы соединений и периодическую перебалансировку GPU. А потом прогнать месяцы работы системы в таком режиме за минуты. Идеей в давном давно поделились инженеры из FoundationDB, которая теперь служит основанием для Apple iCloud (см хорошее видео тут).
Если интересно, в комментариях я выложу пример отладки системы в одном из режимов симуляции, плюс пример теста.
В разработке и отладке всей системы очень сильно помогают ChatGPT/Claude и даже Copilot, позволяя разрабатывать ее очень малыми силами. Поэтому архитектура и код адаптированы под такой режим разработки. Структурное логгирование, event-driven tests и симуляция оптимизированы под участие LLM в разработке, это немного похоже на работу Anithesis.
А у вас есть такие примеры продуктов, когда LLM-ки невероятно помогают в разработке продуктов малыми силами?
Ваш, @llm_under_hood 🤗
🔥36❤15👍11⚡1
Игорь написал пост про адаптацию компаний к возможностям ChatGPT. Вот что я по этому поводу думаю.
Можно посмотреть на задачу адаптации с другой перспективы. Какие компании уже сейчас используют LLM системы в бизнесе, и что их отличает от конкурентов?
Это либо небольшие компании (примерно до 200-1000 человек), где нет серьезных regulatory барьеров для использования AI и данных для него.
У них есть: (1) интуитивное понимание у директоров возможностей и выгоды от применения LLM конкретно в их бизнесе
(2) наличие внутренних или внешних команд, которые могут провести проекты от инициативы до внедрения, обходя грабли и не тратя время на изобретение велосипедов.
В этом плане работа с промптами, бенчмарки, внутренняя осведомленность итп - это вторично. Если есть желание менеджмента, ресурсы и опытные исполнители, то можно даже большую компанию повернуть, обучить и развернуть. Главное знать - что делать, на что время не тратить, как выстроить стратегию и тактику.
А у крупных компаний с необходимостью соответствия всяким сертификациям и проверкам должен быть ещё третий фактор:
(3) понимание того, как выстроить процессы в LLM-driven проектах сейчас, чтобы потом не было проблем с выводом удачных проектов на рынок. Особенно актуально в сфере medical, biotech и иже с ними.
Те компании, у которых нет подобного удачного сочетания - пока тыкаются вслепую и набивают шишки. Кто-то застрянет на ChatGPT или материалах по LlamaIndex, кто-то споткнется о галлюцинации или невозможность запустить модели локально. Что можно делать?
(1) общаться с коллегами в отрасли, обмениваться знаниями, выстраивать связи.
(2) запускать маленькие прототипы для получения практического опыта
(3) максимально собирать всевозможные кейсы применения систем с LLM под капотом, со всеми граблями и нюансами, маппить их на свои области и переиспользовать чужой опыт.
В рамках AI Research за последний год я общался с компаниями разной степени зрелости. В целом картина очень хорошая - при желании любой классический бизнес может догнать передовые компании в отрасли за 3-6 месяцев. (Это включает точечные внедрения в места с самой большой отдачей, не полный переезд бизнеса на новую парадигму).
Природа LLM этому только способствует - теперь не нужны большие исследовательские отделы. Можно обойтись небольшим мозговым центром, который работал бы в режиме lean startup, собирал насмотренность кейсов и точечно перебирал варианты внедрения.
Ну а если желания нет, то можно просто сесть на хвост всем остальным и подождать год-другой. Тогда инструменты и подходы станут общедоступными.
Ваш, @llm_under_hood 🤗
Можно посмотреть на задачу адаптации с другой перспективы. Какие компании уже сейчас используют LLM системы в бизнесе, и что их отличает от конкурентов?
Это либо небольшие компании (примерно до 200-1000 человек), где нет серьезных regulatory барьеров для использования AI и данных для него.
У них есть: (1) интуитивное понимание у директоров возможностей и выгоды от применения LLM конкретно в их бизнесе
(2) наличие внутренних или внешних команд, которые могут провести проекты от инициативы до внедрения, обходя грабли и не тратя время на изобретение велосипедов.
В этом плане работа с промптами, бенчмарки, внутренняя осведомленность итп - это вторично. Если есть желание менеджмента, ресурсы и опытные исполнители, то можно даже большую компанию повернуть, обучить и развернуть. Главное знать - что делать, на что время не тратить, как выстроить стратегию и тактику.
А у крупных компаний с необходимостью соответствия всяким сертификациям и проверкам должен быть ещё третий фактор:
(3) понимание того, как выстроить процессы в LLM-driven проектах сейчас, чтобы потом не было проблем с выводом удачных проектов на рынок. Особенно актуально в сфере medical, biotech и иже с ними.
Те компании, у которых нет подобного удачного сочетания - пока тыкаются вслепую и набивают шишки. Кто-то застрянет на ChatGPT или материалах по LlamaIndex, кто-то споткнется о галлюцинации или невозможность запустить модели локально. Что можно делать?
(1) общаться с коллегами в отрасли, обмениваться знаниями, выстраивать связи.
(2) запускать маленькие прототипы для получения практического опыта
(3) максимально собирать всевозможные кейсы применения систем с LLM под капотом, со всеми граблями и нюансами, маппить их на свои области и переиспользовать чужой опыт.
В рамках AI Research за последний год я общался с компаниями разной степени зрелости. В целом картина очень хорошая - при желании любой классический бизнес может догнать передовые компании в отрасли за 3-6 месяцев. (Это включает точечные внедрения в места с самой большой отдачей, не полный переезд бизнеса на новую парадигму).
Природа LLM этому только способствует - теперь не нужны большие исследовательские отделы. Можно обойтись небольшим мозговым центром, который работал бы в режиме lean startup, собирал насмотренность кейсов и точечно перебирал варианты внедрения.
Ну а если желания нет, то можно просто сесть на хвост всем остальным и подождать год-другой. Тогда инструменты и подходы станут общедоступными.
Ваш, @llm_under_hood 🤗
💯27👍20❤8🤗4🤔2
Про паттерны систем с LLM под капотом, новый курс и баг в Miro
В последние месяцы я работаю над платным курсом по построению систем с LLM под капотом. Он состоит из двух модулей. Первый - про основополагающие принципы разработки систем с LLM под капотом. Он расширяет мои доклады на ODS и материал с весенних вебинаров. В нем мы говорим про основы - как подобные системы работают и какие у них ограничения. Самое главное - если системы с LLM под капотом работают не так, как надо - как найти причину проблем и исправить. Знание этого материала сэкономило бы мне 3 месяца работы в прошлом году.
А второй модуль уже полностью новый - про набор архитектурных паттернов для декомпозиции проблем. Я систематизировал все известные мне кейсы LLM проектов из разных отраслей. Потом, используя методы из первого модуля, разобрал архитектуры кейсов на повторяющиеся паттерны и выстроил в последовательность - от самых простых до сложных.
Получилось своего рода research tree, где на каждый паттерн есть примеры продуктов с его использованием. Паттерны формулировались так, чтобы они были понятны как Product Managers/Owners (для декомпозиции проблем и бизнес требований), так и инженерам (для реализации). Например: Router, Checklist, Knowledge Base или Dedicated Agent.
На картинке - как раз доска Miro cо структурой второго модуля. Этот модуль дает насмотренность на устройство систем с LLM под капотом из десятка отраслей. Для чего это нужно? Для того, чтобы вы могли посмотреть на бизнес-проблему и декомпозировать ее в голове на паттерны реализации, которые основаны на успешно работающих проектах. А если какие-то паттерны требуют дальнейшей доводки напильником под конкретный кейс - использовать для этого методологию из первого модуля.
Каждый модуль состоит из записанных видео и дополнительных материалов. Кстати, я проклял все, когда готовил материалы, т.к. наткнулся на старый баг c “выцветанием карточек” в Miro при использовании Frames. Но все закончилось хорошо, и они это починили.
Когда, где и почем? Про это я напишу попозже, после завершения нашего Enterprise RAG Challenge.
Ваш, @llm_under_hood 🤗
В последние месяцы я работаю над платным курсом по построению систем с LLM под капотом. Он состоит из двух модулей. Первый - про основополагающие принципы разработки систем с LLM под капотом. Он расширяет мои доклады на ODS и материал с весенних вебинаров. В нем мы говорим про основы - как подобные системы работают и какие у них ограничения. Самое главное - если системы с LLM под капотом работают не так, как надо - как найти причину проблем и исправить. Знание этого материала сэкономило бы мне 3 месяца работы в прошлом году.
А второй модуль уже полностью новый - про набор архитектурных паттернов для декомпозиции проблем. Я систематизировал все известные мне кейсы LLM проектов из разных отраслей. Потом, используя методы из первого модуля, разобрал архитектуры кейсов на повторяющиеся паттерны и выстроил в последовательность - от самых простых до сложных.
Получилось своего рода research tree, где на каждый паттерн есть примеры продуктов с его использованием. Паттерны формулировались так, чтобы они были понятны как Product Managers/Owners (для декомпозиции проблем и бизнес требований), так и инженерам (для реализации). Например: Router, Checklist, Knowledge Base или Dedicated Agent.
На картинке - как раз доска Miro cо структурой второго модуля. Этот модуль дает насмотренность на устройство систем с LLM под капотом из десятка отраслей. Для чего это нужно? Для того, чтобы вы могли посмотреть на бизнес-проблему и декомпозировать ее в голове на паттерны реализации, которые основаны на успешно работающих проектах. А если какие-то паттерны требуют дальнейшей доводки напильником под конкретный кейс - использовать для этого методологию из первого модуля.
Каждый модуль состоит из записанных видео и дополнительных материалов. Кстати, я проклял все, когда готовил материалы, т.к. наткнулся на старый баг c “выцветанием карточек” в Miro при использовании Frames. Но все закончилось хорошо, и они это починили.
Когда, где и почем? Про это я напишу попозже, после завершения нашего Enterprise RAG Challenge.
Ваш, @llm_under_hood 🤗
🔥86👍16❤13👏6🤩4🤔1
Кстати, а у нашего канала еще есть свой добрый чатик на 1000 человек.
Там не только собираются комментарии всех постов, но и начинаются новые обсуждения. А еще там знакомятся, обсуждают новые технологии и рассказывают про свои проекты.
Он тут: @llm_driven_products
Ваш, @llm_under_hood 🤗
Там не только собираются комментарии всех постов, но и начинаются новые обсуждения. А еще там знакомятся, обсуждают новые технологии и рассказывают про свои проекты.
Он тут: @llm_driven_products
Ваш, @llm_under_hood 🤗
❤18🔥9👍8🤝2
Наглядный пример паттерна Query Expansion
Тут LLM используется для разворачивания запроса пользователя в запрос по базе данных. Запрос выполняется в БД, результат извлекается по схеме и возвращается пользователю.
Для реализации такой системы достаточно одного единственного промпта с описанием схемы БД и специфики компании.
Причем, эта реализация очень сильно выигрывает от token caching (который добавили недавно в Claude и Gemini Pro). Можно запихнуть все описание в префикс промпта, и эта часть закэшируется в первом запросе. А потом можно будет недорого и быстро задавать множестно разных вопросов по этой системе.
Кстати, Query Expansion можно еще использовать для разворачивания запросов в Full Text Search Queries (особенно, если терминология и даже язык документов отличаются от человеческой речи)
#llm_pattern
Ваш, @llm_under_hood 🤗
Тут LLM используется для разворачивания запроса пользователя в запрос по базе данных. Запрос выполняется в БД, результат извлекается по схеме и возвращается пользователю.
Для реализации такой системы достаточно одного единственного промпта с описанием схемы БД и специфики компании.
Причем, эта реализация очень сильно выигрывает от token caching (который добавили недавно в Claude и Gemini Pro). Можно запихнуть все описание в префикс промпта, и эта часть закэшируется в первом запросе. А потом можно будет недорого и быстро задавать множестно разных вопросов по этой системе.
Кстати, Query Expansion можно еще использовать для разворачивания запросов в Full Text Search Queries (особенно, если терминология и даже язык документов отличаются от человеческой речи)
#llm_pattern
Ваш, @llm_under_hood 🤗
👍26🤗15🔥6❤3
Говорят, что в последнее время LLM становятся хуже, а развитие буксует на месте.
Но если взять результаты продуктовых LLM бенчмарков, выстроить модели во временной ряд и разделить на три ценовые категории, то в последнее время видна неплохая динамика роста.
Кстати, еще видно, что прошлой зимой качество дорогих моделей у разных провайдеров проседало - сначала они выкатывали дорогие модели, потом оптимизировали их (чтобы запускать подешевле), а потом снова начинали работать над качеством.
В целом динамика очень радует - модели все ближе подбираются к потолку в 100. Причем, улучшаются не только дорогие, но и относительно дешевые!
Вaш, @llm_under_hood 🤗
PS: ответы на частые вопросы - в первом комментарии к этому посту.
Но если взять результаты продуктовых LLM бенчмарков, выстроить модели во временной ряд и разделить на три ценовые категории, то в последнее время видна неплохая динамика роста.
Кстати, еще видно, что прошлой зимой качество дорогих моделей у разных провайдеров проседало - сначала они выкатывали дорогие модели, потом оптимизировали их (чтобы запускать подешевле), а потом снова начинали работать над качеством.
В целом динамика очень радует - модели все ближе подбираются к потолку в 100. Причем, улучшаются не только дорогие, но и относительно дешевые!
Вaш, @llm_under_hood 🤗
PS: ответы на частые вопросы - в первом комментарии к этому посту.
👍24🔥8❤4💯2
У Claude есть замечательные Artifacts, которые позволяют писать и сразу показывать живые интерактивные интерфейсы.
Если же хочется, чтобы эти интерфейсы сразу же подключались к настоящему API (например, на localhost), то придется обойти настройки Content Security Policy на claude.ai.
Я это сделал так:
- поставил Firefox 98, отключил там автообновление (about:preferences -> search for update)
- в about:config отключил security.csp.enable (в 99 версии и старше его выпилили)
И тогда можно запускать хоть локальный API, давать его схему клоду в артифактах, и он сразу будет подключаться к нему.
Отключение CSP - это небольшая дырка в безопасности, поэтому я запасную версию Firefox поставил отдельно, специально для Claude AI. Он это заслужил.
Вaш, @llm_under_hood 🤗
PS: это #weekend пост
Если же хочется, чтобы эти интерфейсы сразу же подключались к настоящему API (например, на localhost), то придется обойти настройки Content Security Policy на claude.ai.
Я это сделал так:
- поставил Firefox 98, отключил там автообновление (about:preferences -> search for update)
- в about:config отключил security.csp.enable (в 99 версии и старше его выпилили)
И тогда можно запускать хоть локальный API, давать его схему клоду в артифактах, и он сразу будет подключаться к нему.
Отключение CSP - это небольшая дырка в безопасности, поэтому я запасную версию Firefox поставил отдельно, специально для Claude AI. Он это заслужил.
Вaш, @llm_under_hood 🤗
PS: это #weekend пост
👍51🔥17❤7🙏2
Enterprise RAG Challenge - Round 1
Update: сводная табличка с указанием моделей и архитектур - тут.
Вот первые результаты нашего Enterprise RAG Challenge. Максимальное число очков - 100.
Топ победителей:
(1) Daniel Weller - 84
(2) Ilya Rice - 76
(3) Artem Nurmukhametov - 73
(4) Alexandr Bobrov - 71
(5) Anonymous 1337 - 71
Остальные участники следом идут очень плотно по очкам.
Огромное спасибо всем, кто участвовал в тестовом прогоне и деталями! На днях я выложу в открытый доступ в Github данные этого раунда:
(1) ответы всех команд
(2) правильные ответы с комментариями (результат ручной проверки и вычитки PDF)
(3) исходный код алгоритма оценки
(4) рейтинг локальных систем
Вот краткое описание топовых систем:
TTA Daniel - gpt-4o data extraction with structured outputs (bulk checklist), schema-driven question answering over checklist.
Ilya Rice - Langchain RAG with GPT-4o, Text-embedding-3-large and custom chain of thought prompts.
Artem - multi stage checklist - multi-stage checklist with Gemini Flash Experimental.
AlBo - Alexandr Bobrov. Knowledge Graph + Vector Index (Langchain, Neo4j) with GPT-4o
Anonymous 1337 - plain RAG with chunk vectorizer and LLM
Challenge вышел очень необычный - из-за дисбаланса в генераторе вопросов, было очень много вопросов без ответа. На них система должна была сознательно отвечать N/A, что сложно само по себе. Очки показывают, что участвовали системы, в которые вложили заметные усилия для обхода галлюцинаций.
В осеннем раунде я устраню этот дисбаланс и добавлю больше вариаций в генератор вопросов. Это усложнит жизнь системам на базе knowledge mapping.
Как вам этот Challenge, поделитесь впечатлениями?
Вaш, @llm_under_hood 🤗
Update: сводная табличка с указанием моделей и архитектур - тут.
Вот первые результаты нашего Enterprise RAG Challenge. Максимальное число очков - 100.
Топ победителей:
(1) Daniel Weller - 84
(2) Ilya Rice - 76
(3) Artem Nurmukhametov - 73
(4) Alexandr Bobrov - 71
(5) Anonymous 1337 - 71
Остальные участники следом идут очень плотно по очкам.
Огромное спасибо всем, кто участвовал в тестовом прогоне и деталями! На днях я выложу в открытый доступ в Github данные этого раунда:
(1) ответы всех команд
(2) правильные ответы с комментариями (результат ручной проверки и вычитки PDF)
(3) исходный код алгоритма оценки
(4) рейтинг локальных систем
Вот краткое описание топовых систем:
TTA Daniel - gpt-4o data extraction with structured outputs (bulk checklist), schema-driven question answering over checklist.
Ilya Rice - Langchain RAG with GPT-4o, Text-embedding-3-large and custom chain of thought prompts.
Artem - multi stage checklist - multi-stage checklist with Gemini Flash Experimental.
AlBo - Alexandr Bobrov. Knowledge Graph + Vector Index (Langchain, Neo4j) with GPT-4o
Anonymous 1337 - plain RAG with chunk vectorizer and LLM
Challenge вышел очень необычный - из-за дисбаланса в генераторе вопросов, было очень много вопросов без ответа. На них система должна была сознательно отвечать N/A, что сложно само по себе. Очки показывают, что участвовали системы, в которые вложили заметные усилия для обхода галлюцинаций.
В осеннем раунде я устраню этот дисбаланс и добавлю больше вариаций в генератор вопросов. Это усложнит жизнь системам на базе knowledge mapping.
Как вам этот Challenge, поделитесь впечатлениями?
Вaш, @llm_under_hood 🤗
❤44🔥36👏13👍6🤩4
Enterprise RAG Challenge - сводная таблица с результатами
Эта таблица по первому раунду нашего challenge. Она заполнена на основе оценки ответов и информации, которую предоставили участники. Последняя версия в CSV: scores.csv.
Описание колонок:
- Score - очки от 0 до 100. Ответы в результате ручной разметки лежат в answers.json. Сам алгоритм оценки - rank.py.
- Local - звездочка, если локальная модель
- Design - краткое описание архитектуры. Хотите узнать больше? См teams.py с той информацией, которую мне предоставили команды.
- Cost - примерная оценка. Ее почти никто не предоставил
- Source - те исходники, которые обещали попозже расшарить. Я опубликую ссылки на них
Дополнительные колонки для прозрачности:
- TTA - тут помечены участники, с которыми я работаю в рамках TimeToAct. Они участвовали на равных со всеми условиях, но ради прозрачности они выделены отдельно.
- AIR - кто участвует в обмене опытом в рамках AI Research или имел доступ к инсайтам на его базе (включая курс и вебинары).
Весь Github repository по этому Challenge - открытый под Apache License. Можно форкать, исправлять и публиковать свои версии лидербордов. Или даже проводить свои соревнования. Единственное, чего там нет - 45GB всех исходных PDF (есть dataset с sha1 и именами компаний). При желании их можно наскрести в интернете по именам компаний.
Кстати, этот RAG Challenge уже планируют включить в программу LLM/AI одного технического университета в Австрии. 🎉
Второй раунд состоится осенью. Структура останется той же, но будет больше участников, а генератор вопросов перебалансируется в сторону большего разнообразия. Это сделает решения "в лоб" на базе Checklist/Knowledge Mapping более дорогими. Плюс я постараюсь собрать больше информации от участников второго раунда.
Кстати, а какие пункты вы бы добавили в опросник для участников?
Вaш, @llm_under_hood 🤗
PS: Авторы наилучшего локального решения, возможно, раскроют карты и расскажут про свою архитектуру побольше.
Update: исходники 4-х решений из этого списка выложены на Github.
Эта таблица по первому раунду нашего challenge. Она заполнена на основе оценки ответов и информации, которую предоставили участники. Последняя версия в CSV: scores.csv.
Описание колонок:
- Score - очки от 0 до 100. Ответы в результате ручной разметки лежат в answers.json. Сам алгоритм оценки - rank.py.
- Local - звездочка, если локальная модель
- Design - краткое описание архитектуры. Хотите узнать больше? См teams.py с той информацией, которую мне предоставили команды.
- Cost - примерная оценка. Ее почти никто не предоставил
- Source - те исходники, которые обещали попозже расшарить. Я опубликую ссылки на них
Дополнительные колонки для прозрачности:
- TTA - тут помечены участники, с которыми я работаю в рамках TimeToAct. Они участвовали на равных со всеми условиях, но ради прозрачности они выделены отдельно.
- AIR - кто участвует в обмене опытом в рамках AI Research или имел доступ к инсайтам на его базе (включая курс и вебинары).
Весь Github repository по этому Challenge - открытый под Apache License. Можно форкать, исправлять и публиковать свои версии лидербордов. Или даже проводить свои соревнования. Единственное, чего там нет - 45GB всех исходных PDF (есть dataset с sha1 и именами компаний). При желании их можно наскрести в интернете по именам компаний.
Кстати, этот RAG Challenge уже планируют включить в программу LLM/AI одного технического университета в Австрии. 🎉
Второй раунд состоится осенью. Структура останется той же, но будет больше участников, а генератор вопросов перебалансируется в сторону большего разнообразия. Это сделает решения "в лоб" на базе Checklist/Knowledge Mapping более дорогими. Плюс я постараюсь собрать больше информации от участников второго раунда.
Кстати, а какие пункты вы бы добавили в опросник для участников?
Вaш, @llm_under_hood 🤗
PS: Авторы наилучшего локального решения, возможно, раскроют карты и расскажут про свою архитектуру побольше.
Update: исходники 4-х решений из этого списка выложены на Github.
🔥48⚡10❤8👏4👍3🎉1
Только что закончилась интересная презентация - AI Platform #aicase
Оглавление
- Начало детективной истории
- Продолжение детективной истории
- Завершение детективной истории
- Результаты презентации - пилим AI Платформу! (этот пост)
Презентовали клиенту, который просил детективную историю (там поста три со всей историей). Пока перекапывали данные в поисках истины, я накрутил несколько ассистентов и интеграций, чтобы самим работать было удобно.
Интеграции были простые:
BI Assistant, который умеет отвечать на бизнес-вопросы по “упоротой” базе данных клиента (этой базе и всему софту - больше 20 лет, там 3 поколения разработчиков наслоили legacy на разных языках). Ассистент использует информацию о особенностях хранения данных, построения запросов и особенностей бизнеса. Я все это разузнал один раз, структурировал и забыл как страшный сон. Он строит отчеты и графики по мере необходимости. Причем в презентации я прямо сделал слайды "вопрос - график". А потом сказал, что эту часть мне написал Assistant.
Интеграция с государственными реестрами, которая вытягивает информацию о юридических лицах в стране, плюс любые изменения статусов. Благодаря первому ассистенту мы точно знаем какие коды (эквиваленты ОКВЭД) нам нужно выкачивать в первую очередь.
Поисковый lead generation ассистент, который пытается найти информацию про эти компании в интернете следуя простому Workflow. Ибо контактные данные в базе - это обычно данные бухгалтеров, а продавать нам надо другим людям.
Все это использовалось в детективном расследовании для разнообразной валидации. Не пропадать же добру?
Cегодня только что была презентация директорату со словами:
(1) вот что мы раскопали по вашим запросам
(2) вот что мы для соорудили для себя, и вот как оно работает
(3) а вот как это можно собрать в одну в AI платформу и внедрить у вас. Она может держать вашу CRM актуальной (даже AI ассистент сходу сказал, что там 6% контактов пора удалять), приводить новых лидов и помогать связываться с ними в важные для них моменты жизни.
Реакция директората: “Берем, все как вы сказали. Начните раскатывать это в друх странах, но имейте в виду, что это потом надо будет интегрировать на глобальном уровне. И позванивайте нам c апдейтами раз в месяц, хорошо?”
А что там под капотом у платформы? Какой агент, langchain или RAG? Ничего из этого не надо:
- Линейный Wokflow у Lead Generation с Checklist паттерном и интеграцией c Search API. Просто вызов OpenAI. Все как в кейсе про исправление ошибок в продуктах.
- Один структурированный промпт для BI Assistant. Я дистиллировал все информацию в формат, понятный для LLM. В процессе пришлось просто сделать схему читаемой и комментируемой (да и тем занималась LLM).
- Куча скучного кода без капли LLM для интеграции всего этого.
Как видите, все - очень просто. А на выходе - интегрированная платформа, которая решает набор задач клиента парой простых промптов. Люблю такие истории.
Ваш, @llm_under_hood 🤗
Оглавление
- Начало детективной истории
- Продолжение детективной истории
- Завершение детективной истории
- Результаты презентации - пилим AI Платформу! (этот пост)
Презентовали клиенту, который просил детективную историю (там поста три со всей историей). Пока перекапывали данные в поисках истины, я накрутил несколько ассистентов и интеграций, чтобы самим работать было удобно.
Интеграции были простые:
BI Assistant, который умеет отвечать на бизнес-вопросы по “упоротой” базе данных клиента (этой базе и всему софту - больше 20 лет, там 3 поколения разработчиков наслоили legacy на разных языках). Ассистент использует информацию о особенностях хранения данных, построения запросов и особенностей бизнеса. Я все это разузнал один раз, структурировал и забыл как страшный сон. Он строит отчеты и графики по мере необходимости. Причем в презентации я прямо сделал слайды "вопрос - график". А потом сказал, что эту часть мне написал Assistant.
Интеграция с государственными реестрами, которая вытягивает информацию о юридических лицах в стране, плюс любые изменения статусов. Благодаря первому ассистенту мы точно знаем какие коды (эквиваленты ОКВЭД) нам нужно выкачивать в первую очередь.
Поисковый lead generation ассистент, который пытается найти информацию про эти компании в интернете следуя простому Workflow. Ибо контактные данные в базе - это обычно данные бухгалтеров, а продавать нам надо другим людям.
Все это использовалось в детективном расследовании для разнообразной валидации. Не пропадать же добру?
Cегодня только что была презентация директорату со словами:
(1) вот что мы раскопали по вашим запросам
(2) вот что мы для соорудили для себя, и вот как оно работает
(3) а вот как это можно собрать в одну в AI платформу и внедрить у вас. Она может держать вашу CRM актуальной (даже AI ассистент сходу сказал, что там 6% контактов пора удалять), приводить новых лидов и помогать связываться с ними в важные для них моменты жизни.
Реакция директората: “Берем, все как вы сказали. Начните раскатывать это в друх странах, но имейте в виду, что это потом надо будет интегрировать на глобальном уровне. И позванивайте нам c апдейтами раз в месяц, хорошо?”
А что там под капотом у платформы? Какой агент, langchain или RAG? Ничего из этого не надо:
- Линейный Wokflow у Lead Generation с Checklist паттерном и интеграцией c Search API. Просто вызов OpenAI. Все как в кейсе про исправление ошибок в продуктах.
- Один структурированный промпт для BI Assistant. Я дистиллировал все информацию в формат, понятный для LLM. В процессе пришлось просто сделать схему читаемой и комментируемой (да и тем занималась LLM).
- Куча скучного кода без капли LLM для интеграции всего этого.
Как видите, все - очень просто. А на выходе - интегрированная платформа, которая решает набор задач клиента парой простых промптов. Люблю такие истории.
Ваш, @llm_under_hood 🤗
🔥63❤14👍12👏1😱1
Мой AI Coding workflow
Инструменты, которые использую в разработке сейчас.
В первую очередь IDE - либо Jetbrains PyCharm/Goland/WebStorm либо neovim. Я на эту связку пересел лет этак 10 назад с Visual Studio, все работает хорошо и удобно для меня. Мускульная память рулит.
Отчасти из-за этого я не использую Zed, Cursor.sh и прочие AI-first редакторы. Они никогда не станут такими удобными (для меня), как JetBrains/neovim со всеми моими настройками и плагинами.
В IDE - использую Github Copilot для ненавязчивого autocomplete. Большую часть времени он выключен, чтобы не отвлекал.
Для когнитивно сложных задач и брейншторминга - Claude Chat / ChatGPT в режиме копипасты.
Если нужно работать точечно по коду с разными файлами, рефакторить и чистить, тогда aider c такими параметрами:
- —no-auto-commits - отключает авто-генерацию git коммитов (я предпочитаю проверять и писать сам)
-
-
И потом просто в терминале aider-у выдаю задачи, в процессе выполнения которых он редактирует файлы напрямую. Потом я просматриваю изменения через git diff и дальше по ситуации.
В aider мне нравится, что он хорошо работает с моими IDE, под капотом может использовать любую модель (Sonnet лучше всего на моих задачах), хорошо работает со всем кодом (под капотом - repo map на базе tree-sitter) и хорошо настраивается под меня.
В итоге ощущение как от Claude Artifacts, но в привычных IDE, без ограничений по размеру коду и библиотекам.
А что используете в разработке вы?
Ваш, @llm_under_hood 🤗
Инструменты, которые использую в разработке сейчас.
В первую очередь IDE - либо Jetbrains PyCharm/Goland/WebStorm либо neovim. Я на эту связку пересел лет этак 10 назад с Visual Studio, все работает хорошо и удобно для меня. Мускульная память рулит.
Отчасти из-за этого я не использую Zed, Cursor.sh и прочие AI-first редакторы. Они никогда не станут такими удобными (для меня), как JetBrains/neovim со всеми моими настройками и плагинами.
В IDE - использую Github Copilot для ненавязчивого autocomplete. Большую часть времени он выключен, чтобы не отвлекал.
Для когнитивно сложных задач и брейншторминга - Claude Chat / ChatGPT в режиме копипасты.
Если нужно работать точечно по коду с разными файлами, рефакторить и чистить, тогда aider c такими параметрами:
aider --no-auto-commits --cache-prompts --no-stream --cache-keepalive-pings 6 --read README_AI.md
- —no-auto-commits - отключает авто-генерацию git коммитов (я предпочитаю проверять и писать сам)
-
--cache-prompts --no-stream --cache-keepalive-pings 6
перетасовывает промпт так, чтобы использовать context caching (для экономии)-
--read README_AI.md
- загружает мелкую методичку для AI по текущему проекту.И потом просто в терминале aider-у выдаю задачи, в процессе выполнения которых он редактирует файлы напрямую. Потом я просматриваю изменения через git diff и дальше по ситуации.
В aider мне нравится, что он хорошо работает с моими IDE, под капотом может использовать любую модель (Sonnet лучше всего на моих задачах), хорошо работает со всем кодом (под капотом - repo map на базе tree-sitter) и хорошо настраивается под меня.
В итоге ощущение как от Claude Artifacts, но в привычных IDE, без ограничений по размеру коду и библиотекам.
А что используете в разработке вы?
Ваш, @llm_under_hood 🤗
👍58🔥28❤9🤝3🤔1🤗1
Новые кейсы в библиотеке
Я сегодня получил классный отзыв!
Большое спасибо!
А что за график и что за статьи?
График - это карта известных мне успешных реализаций проектов с LLM под капотом. Она составлена на основе AI Research и проектов TAT (это не просто список, а результат небольшого интервью в каждом случае). Иллюстрация к этому посту - состояние карты на текущий момент - начало сентября 2024.
Что изменилось в графике за последний месяц?
- Кейсы в Manufacturing (BI Assistant and Lead Generation)
- Кейс в Education (prompting)
- Два fintech кейса (customer support automation, AI coding assist)
Огромное спасибо тем, кто делится со мной кейсами. Надеюсь, что параллели и инсайты, которые вы получаете во время AI Research, стоят затраченного времени.
Я весь этот опыт перерабатываю и структурирую. Извлеченные паттерны еще раз обкатываю в своих проектах, а потом рассказываю про это в публичных кейсах.
Кстати, в закрепе канала есть список с оглавлением всех разобранных кейсов. Я этот список статей поддерживаю актуальным.
Иногда эти паттерны и инсайты обкатываются другими в своих проектах. Что-то срабатывает, что-то - не очень. Этот опыт возвращается обратно в библиотеку, а потом все снова идет по кругу. В итоге мы вместе учимся разрабатывать продукты с LLM под капотом - лучше и быстрее.
А у вас уже получалось использовать инсайты из этого канала и AI Research? Расскажете?
Ваш, @llm_under_hood 🤗
Я сегодня получил классный отзыв!
Привет!
Хочу поблагодарить тебя за тот график, который ты прислал в чат и статьи, которые выпускал в своем канале.
Я все прочитал. Проанализировал. Это очень мне помогло с улучшением продукта! Информация на миллиард!
Спасибо!
Большое спасибо!
А что за график и что за статьи?
График - это карта известных мне успешных реализаций проектов с LLM под капотом. Она составлена на основе AI Research и проектов TAT (это не просто список, а результат небольшого интервью в каждом случае). Иллюстрация к этому посту - состояние карты на текущий момент - начало сентября 2024.
Что изменилось в графике за последний месяц?
- Кейсы в Manufacturing (BI Assistant and Lead Generation)
- Кейс в Education (prompting)
- Два fintech кейса (customer support automation, AI coding assist)
Огромное спасибо тем, кто делится со мной кейсами. Надеюсь, что параллели и инсайты, которые вы получаете во время AI Research, стоят затраченного времени.
Я весь этот опыт перерабатываю и структурирую. Извлеченные паттерны еще раз обкатываю в своих проектах, а потом рассказываю про это в публичных кейсах.
Кстати, в закрепе канала есть список с оглавлением всех разобранных кейсов. Я этот список статей поддерживаю актуальным.
Иногда эти паттерны и инсайты обкатываются другими в своих проектах. Что-то срабатывает, что-то - не очень. Этот опыт возвращается обратно в библиотеку, а потом все снова идет по кругу. В итоге мы вместе учимся разрабатывать продукты с LLM под капотом - лучше и быстрее.
А у вас уже получалось использовать инсайты из этого канала и AI Research? Расскажете?
Ваш, @llm_under_hood 🤗
❤35👍19🔥9👏3
Кейс DealRoom: AI-решение для Due Diligence
Хочу похвастаться: на днях мои клиенты зарелизили продукт для автоматизации процесса Due Diligence в слияниях и покупках компаний - AI designed for Due Diligence. Они его разрабатывали с моими консультациями.
Весь процесс Mergers and Aquisitions (от LOI до завершения интеграции) - это сложный "танец" двух компаний, который может занять от 12 месяцев до 3+ лет. Почему так долго? Потому что нужно выяснять массу деталей, анализировать горы документов и получать точные ответы на специфичные вопросы о компаниях. Правильное использование AI/LLM помогает сэкономить много человеческого времени в этом процессе.
Продукт относится к категории Business Services в моей матрице AI Cases - её вы видели в прошлом посте.
Я этот релиз ждал очень долго. DealRoom - это мои давние клиенты в рамках AI Research и консалтинга. С января этого года компания прошла большой путь: от продуктовой идеи до конкретного продукта, от классического RAGа с типичными болячками до работающего решения, которое вобрало в себя опыт лучших экспертов в отрасли M&A.
Продукт начинает свое путешествие, в нем предстоит немало работы с клиентами и экспертами. Но DealRoom уже не нужно тратить время на выстраивание LLM архитектуры и борьбу с галлюцинациями, они могут сосредоточить силы на ценных фичах и упрощении работы пользователей.
Ваш, @llm_under_hood 🤗
PS: А еще у них есть вакансии, подробности - в комментариях.
Хочу похвастаться: на днях мои клиенты зарелизили продукт для автоматизации процесса Due Diligence в слияниях и покупках компаний - AI designed for Due Diligence. Они его разрабатывали с моими консультациями.
Весь процесс Mergers and Aquisitions (от LOI до завершения интеграции) - это сложный "танец" двух компаний, который может занять от 12 месяцев до 3+ лет. Почему так долго? Потому что нужно выяснять массу деталей, анализировать горы документов и получать точные ответы на специфичные вопросы о компаниях. Правильное использование AI/LLM помогает сэкономить много человеческого времени в этом процессе.
Продукт относится к категории Business Services в моей матрице AI Cases - её вы видели в прошлом посте.
Я этот релиз ждал очень долго. DealRoom - это мои давние клиенты в рамках AI Research и консалтинга. С января этого года компания прошла большой путь: от продуктовой идеи до конкретного продукта, от классического RAGа с типичными болячками до работающего решения, которое вобрало в себя опыт лучших экспертов в отрасли M&A.
Продукт начинает свое путешествие, в нем предстоит немало работы с клиентами и экспертами. Но DealRoom уже не нужно тратить время на выстраивание LLM архитектуры и борьбу с галлюцинациями, они могут сосредоточить силы на ценных фичах и упрощении работы пользователей.
Ваш, @llm_under_hood 🤗
PS: А еще у них есть вакансии, подробности - в комментариях.
🔥32👏10❤7👍7😱1
Бенчмарки новых o1 моделей. Модели в топе, но есть нюанс
Новые o1 модели от OpenAI, действительно, в топе. o1-preview заняла первое место в продуктовом бенчмарке, потеснив 4o.
o1-mini - третье. Модель заняла бы больше, если бы всегда внимательно читала текст задачи, а не через раз (это видно в колонке integrate).
🚀Update: в процессе ручной проверки результатов выяснилось, что в
В итоге получается, что o1 по reason на голову выше других. Но при этом есть один нюанс - они очень дорогие для своего функционала. Причем я даже не смог их изначально даже запустить - во всех тестах у меня прописаны ожидания max_tokens достаточные для ответа. Но поскольку теперь модели генерируют больше tokens в процессе размышлений - этого не хватало, мне возвращались пустые модели.
OpenAI вообще теперь рекомендует закладывать как минимум 25000
В сухом остатке получается, что модели немного мощнее, но стоят в разы дороже сравнимых моделей. За счет дорогих tokens и за счет большого количества спрятанных tokens на размышления.
Я думаю, что эти модели не станут мейнстримом, слишком дорогие и странные. Но вот другие провайдеры скопировать подход и попробовать применить его на модели подешевле, тогда будет интересно.
Ваш, @llm_under_hood 🤗
PS: Для тех, кто видит эти бенчмарки впервые, напомню - это закрытые продуктовые бенчмарки на основе набора задач из рабочих систем. Мы тестируем не то, как красиво модели болтают, а насколько качественно они выполняют конкретные задачи из продуктов с LLM под капотом. Про структуру и примеры бенчмарков можно прочитать в лабах или на официальном сайте бенчмарков.
Новые o1 модели от OpenAI, действительно, в топе. o1-preview заняла первое место в продуктовом бенчмарке, потеснив 4o.
o1-mini - третье. Модель заняла бы больше, если бы всегда внимательно читала текст задачи, а не через раз (это видно в колонке integrate).
🚀Update: в процессе ручной проверки результатов выяснилось, что в
Reason
часть моих evals была неправильной. Я знал, что с ними ни одна модель не справляется, поэтому не обращал внимания на результаты. А вот o1, оказывается, могли справиться! Я исправил логику проверки и пересчитал все модели.В итоге получается, что o1 по reason на голову выше других. Но при этом есть один нюанс - они очень дорогие для своего функционала. Причем я даже не смог их изначально даже запустить - во всех тестах у меня прописаны ожидания max_tokens достаточные для ответа. Но поскольку теперь модели генерируют больше tokens в процессе размышлений - этого не хватало, мне возвращались пустые модели.
OpenAI вообще теперь рекомендует закладывать как минимум 25000
max_completion_tokens
при экспериментах с этими моделями. В сухом остатке получается, что модели немного мощнее, но стоят в разы дороже сравнимых моделей. За счет дорогих tokens и за счет большого количества спрятанных tokens на размышления.
Я думаю, что эти модели не станут мейнстримом, слишком дорогие и странные. Но вот другие провайдеры скопировать подход и попробовать применить его на модели подешевле, тогда будет интересно.
Ваш, @llm_under_hood 🤗
PS: Для тех, кто видит эти бенчмарки впервые, напомню - это закрытые продуктовые бенчмарки на основе набора задач из рабочих систем. Мы тестируем не то, как красиво модели болтают, а насколько качественно они выполняют конкретные задачи из продуктов с LLM под капотом. Про структуру и примеры бенчмарков можно прочитать в лабах или на официальном сайте бенчмарков.
🔥53👍17❤7🤩3👎1
Блиц-опрос на знание базы. Что произойдет, если у LLM попросить сосчитать число повторов буквы в слове?
Anonymous Poll
18%
Даст правильный ответ
64%
Ерунду ответит
18%
Не уверен
😁13👍4💯3
В ходе комментариев на опрос выше немало людей упомянуло, что o1, несомненно, справится с задачкой счета букв.
Если понимать базовые ограничения систем с LLM под капотом, то сложную для LLM задачку сочинить несложно. Например, на эту задачку пересчета букв даже o1-preview у меня не смогла ответить правильно (0 из 5 попыток):
Просим перечислить буквы, которые встречаются с диакритическим знаком в одном слове и без него - в другом. Слова - "Świnoujście", "Chișinău", and "Île-de-France". Регистр имеет значение.
Правильный ответ - только одна буква -
Но вот o1-preview или o1-mini сами по себе не смогут справиться, даже с ресурсоемким перебором вариантов через Tree-of-Thought под капотом. Там и tokeniser ставит палки, и training data, да и resource-capped forward pass в ToT накладывает ограничения.
Но зато можно полюбоваться на работу этой системы. На задачах по профилю она работает очень даже неплохо.
Ваш, @llm_under_hood 🤗
PS: если сформулировать задачу в виде "Count the number of letters...", погоды это не сделает, просто проверять корректность размышлений сложнее.
Если понимать базовые ограничения систем с LLM под капотом, то сложную для LLM задачку сочинить несложно. Например, на эту задачку пересчета букв даже o1-preview у меня не смогла ответить правильно (0 из 5 попыток):
List letters that have diacritics in one word but appear without it in one of the others? Words are: "Świnoujście", "Chișinău", and "Île-de-France". Case matters.
Просим перечислить буквы, которые встречаются с диакритическим знаком в одном слове и без него - в другом. Слова - "Świnoujście", "Chișinău", and "Île-de-France". Регистр имеет значение.
Правильный ответ - только одна буква -
a
. Это можно проверить глазами за пять секунд. А еще можно попросить ChatGPT написать код, который это проверит.Но вот o1-preview или o1-mini сами по себе не смогут справиться, даже с ресурсоемким перебором вариантов через Tree-of-Thought под капотом. Там и tokeniser ставит палки, и training data, да и resource-capped forward pass в ToT накладывает ограничения.
Но зато можно полюбоваться на работу этой системы. На задачах по профилю она работает очень даже неплохо.
Ваш, @llm_under_hood 🤗
PS: если сформулировать задачу в виде "Count the number of letters...", погоды это не сделает, просто проверять корректность размышлений сложнее.
👍34❤9🔥4😁3
Как ставить задачи по кодингу для o1?
У Игоря есть лонг-рид про принципы работы o1. Я же расскажу про ментальную модель, которую я использую для работы с o1-preview.
Я ставлю задачи, как если бы ставил их очень опытному разработчику (обучен на всем корпусе), который нахватался вредных привычек (обучен на всех постах людей, которые любят усложнять и городить), но понимает меня с полуслова (o1 не требует prompt engineering).
Если скоуп задачи очерчен конкретно, то можно ограничиться коротким промптом:
Если же я прошу переписать код или переделать архитектуру под новую фичу, то у модели могут быть разные варианты решения. Тут я разбиваю задачу на два шага - Explore + Implement.
В первом шаге прошу предложить варианты решений с указанием приоритетов (простой код, без башен абстракций). И вставляю сразу исходники целыми файлами, скажем, с кусками кода на vue.js + pinia + tailwind css + axios + vite + lucide + custom icon resolver + python FastAPI. o1-preview разберется.
А вторым шагом говорю - "слушай, мне нравятся варианты 2-5, 10 и 12-16. Интегрируй их в рабочий код, чтобы мне оставалось только скопипастить"
В 95% случаях код работает сразу! Это большая экономия времени по сравнению с ручным промптингом на базе Sonnet 3.5 или топовых GPT-4
Ваш, @llm_under_hood 🤗
PS: Показатели o1 на моих продуктовых бенчмарках
У Игоря есть лонг-рид про принципы работы o1. Я же расскажу про ментальную модель, которую я использую для работы с o1-preview.
Я ставлю задачи, как если бы ставил их очень опытному разработчику (обучен на всем корпусе), который нахватался вредных привычек (обучен на всех постах людей, которые любят усложнять и городить), но понимает меня с полуслова (o1 не требует prompt engineering).
Если скоуп задачи очерчен конкретно, то можно ограничиться коротким промптом:
Rewrite this course template in golang to follow style of my own website. You can reuse all of my styles and drop the external css (as used by the course).
<golang template to rewrite>
<full html source of my website, as copied from browser>
Если же я прошу переписать код или переделать архитектуру под новую фичу, то у модели могут быть разные варианты решения. Тут я разбиваю задачу на два шага - Explore + Implement.
В первом шаге прошу предложить варианты решений с указанием приоритетов (простой код, без башен абстракций). И вставляю сразу исходники целыми файлами, скажем, с кусками кода на vue.js + pinia + tailwind css + axios + vite + lucide + custom icon resolver + python FastAPI. o1-preview разберется.
Take a look at this code from my multi-mode (a la vim or old terminal apps) block-based content editor.
I want to build on the keyboard interface and introduce a simple way to have simple commands with small popup. E.g. after doing "A" in "view" mode, show user a popup that expects H,T,I, or V.
Or, after pressing "P" in view mode - show a small popup that has an text input waiting for the permission role for the page.
Don't implement the changes, just think through how to extend existing code to make logic like that simple.
Remember, I like simple code, I don't like spaghetti code and many small classes/files.
А вторым шагом говорю - "слушай, мне нравятся варианты 2-5, 10 и 12-16. Интегрируй их в рабочий код, чтобы мне оставалось только скопипастить"
Write me files that incorporate your suggestions: 1-6, 8,9, 12
В 95% случаях код работает сразу! Это большая экономия времени по сравнению с ручным промптингом на базе Sonnet 3.5 или топовых GPT-4
Ваш, @llm_under_hood 🤗
PS: Показатели o1 на моих продуктовых бенчмарках
👍89🔥31❤10🤝2
Бенчмарк Qwen 2.5 и DeepSeek 2.5
Недавно вышедший Qwen 2.5 72B Instruct оказался неожиданно хорош. Это первая локальная модель, которая побила Claude 3.5 Sonnet на продуктовых задачах из моих бенчмарков. Он еще и стоит меньше всех остальных моделей в топах.
Стоимость прогона рассчитана на базе цен из OpenRouter.
Qwen 2.5 72B внимательно следует инструкциям (в отличие от того же Sonnet и старых версий GPT-4) и может похвастаться довольно неплохим Reason. У этой китайской модели есть провалы в задачах работы с кодом (но там делают отдельную модель) и с английскими текстами (Marketing).
А вот DeepSeek 2.5 оказался не так хорош. Параметров - 236B, а точность выполнения задач из продуктов с LLM под капотом - на уровне Mistral Large 123B и старой модели GPT-4 Turbo.
И это потрясающие новости, что все больше локальных моделей подбирается к планке GPT-4 Turbo. А то, что ее так далеко преодолела модель на 72B - это повод для отдельного праздника 🚀
Я думаю, в этом году это не последняя подобная модель.
Ваш, @llm_under_hood 🤗
🔗 Бенчмарк GPT o1
PS: Для тех, кто видит эти бенчмарки впервые, напомню - это закрытые продуктовые бенчмарки на основе набора задач из рабочих систем. Мы тестируем не то, как красиво модели болтают, а насколько качественно они выполняют конкретные задачи из продуктов с LLM под капотом. Про структуру и примеры бенчмарков можно прочитать в лабах или на официальном сайте бенчмарков.
Недавно вышедший Qwen 2.5 72B Instruct оказался неожиданно хорош. Это первая локальная модель, которая побила Claude 3.5 Sonnet на продуктовых задачах из моих бенчмарков. Он еще и стоит меньше всех остальных моделей в топах.
Стоимость прогона рассчитана на базе цен из OpenRouter.
Qwen 2.5 72B внимательно следует инструкциям (в отличие от того же Sonnet и старых версий GPT-4) и может похвастаться довольно неплохим Reason. У этой китайской модели есть провалы в задачах работы с кодом (но там делают отдельную модель) и с английскими текстами (Marketing).
А вот DeepSeek 2.5 оказался не так хорош. Параметров - 236B, а точность выполнения задач из продуктов с LLM под капотом - на уровне Mistral Large 123B и старой модели GPT-4 Turbo.
И это потрясающие новости, что все больше локальных моделей подбирается к планке GPT-4 Turbo. А то, что ее так далеко преодолела модель на 72B - это повод для отдельного праздника 🚀
Я думаю, в этом году это не последняя подобная модель.
Ваш, @llm_under_hood 🤗
🔗 Бенчмарк GPT o1
PS: Для тех, кто видит эти бенчмарки впервые, напомню - это закрытые продуктовые бенчмарки на основе набора задач из рабочих систем. Мы тестируем не то, как красиво модели болтают, а насколько качественно они выполняют конкретные задачи из продуктов с LLM под капотом. Про структуру и примеры бенчмарков можно прочитать в лабах или на официальном сайте бенчмарков.
🔥50👍15❤7👏3🤗1
Куда катится мир локальных LLM?
Вот вам график, который показывает тренды роста производительности разных локальных моделей со временем.
Я взял все локальные модели из бенчмарка (последние были про Qwen 2.5 / DeepSeek 2.5 и про GPT o1) и сгруппировал по необходимому размеру GPU для запуска.
(группировка очень примерная. Я считал, что запускается под fp16 без особых квантизаций и с запасом памяти на inference)
Потом все модели я отметил на временной шкале по дате их релиза и построил тренды (linregress). Получился такой график.
Основные тренды:
(1) Модели становятся со временем все лучше, как большие, так и маленькие.
(2) Крупные модели появляются чаще
(3) В крупных Multi-GPU моделях производительность растет быстрее, чем в мелких.
В принципе, все это вещи очевидные. Но если увидеть это глазами, динамика прогресса становится более понятной. И ее можно транслировать клиентам и учитывать в планировании.
Update 09-24: добавил последний Mistral Small, WizardLM 2 и Hermes 3 405B. Убрал из графика категорию A6000.
Ваш, @llm_under_hood 🤗
Вот вам график, который показывает тренды роста производительности разных локальных моделей со временем.
Я взял все локальные модели из бенчмарка (последние были про Qwen 2.5 / DeepSeek 2.5 и про GPT o1) и сгруппировал по необходимому размеру GPU для запуска.
(группировка очень примерная. Я считал, что запускается под fp16 без особых квантизаций и с запасом памяти на inference)
Потом все модели я отметил на временной шкале по дате их релиза и построил тренды (linregress). Получился такой график.
Основные тренды:
(1) Модели становятся со временем все лучше, как большие, так и маленькие.
(2) Крупные модели появляются чаще
(3) В крупных Multi-GPU моделях производительность растет быстрее, чем в мелких.
В принципе, все это вещи очевидные. Но если увидеть это глазами, динамика прогресса становится более понятной. И ее можно транслировать клиентам и учитывать в планировании.
Update 09-24: добавил последний Mistral Small, WizardLM 2 и Hermes 3 405B. Убрал из графика категорию A6000.
Ваш, @llm_under_hood 🤗
🔥44⚡9👍5❤4🤗4