Все играются с suno.ai.
Ну и я решил поиграться. Получается прям огненно. Взял свои тексты, прописал жанр. Вуаля! Трек готов (иногда обрезает в бесплатной версии, но вот "тик-так" вполне себе полноценно вышел).
Круто, конечно. Позволяет сократить дистанцию между "написать" и "послушать". Очень прикольно было услышать, как же звучат мои тексты.
Ну и я решил поиграться. Получается прям огненно. Взял свои тексты, прописал жанр. Вуаля! Трек готов (иногда обрезает в бесплатной версии, но вот "тик-так" вполне себе полноценно вышел).
Круто, конечно. Позволяет сократить дистанцию между "написать" и "послушать". Очень прикольно было услышать, как же звучат мои тексты.
#ml #llm
(Zero-)(One-)Few-Shot Learning.
Продолжаем про техники работы с промптами. Сегодня поговорим об использовании примеров решения задачи в промпте.
Идея тут достаточно простая: если показать модели примеры правильного решения задачи, то ей сильно проще будет сделать похожее действие. Собственно, все эти цифры в названии и обозначают число примеров (то нуля до нескольких).
Например, мы хотим в промпте попросить модель оценить, позитивное или негативное высказывание мы подали на вход (то есть, решаем задачу sentiment analysis). В таком случае, мы можем дать несколько примеров того, какой текст мы посчитали "позитивным", а какой "негативным".
Но стоит учитывать, что:
1. Важно учитывать реальное распределение меток.
Например, в той же задаче sentiment analysis. Если мы приведем слишком много позитивных примеров, то модель может начать считать, что выгоднее отвечать более позитивно. Это, в свою очередь, исказит получаемые результаты;
2. Использование примеров влияет на результаты.
Удивительно, но даже не очень точные пользовательские примеры могут улучшать результирующие ответы LLM. Поэтому, добавление примеров – это скорее позитивное изменение промпта, улучшающее качество наших результатов;
3. Few-shot техники имеют свои ограничения.
В случае простых запросов, few-shot подход может быть сильной техникой. Но для более сложных задач, требующих рассуждений, наш подход с примерами может не срабатывать. Чем-то похоже на мем "дорисуй сову". Даже если есть несколько примеров дорисовывания совы из пары кругов - это не значит, что среднему человеку удастся хорошо научиться ее рисовать ;)
(Zero-)(One-)Few-Shot Learning.
Продолжаем про техники работы с промптами. Сегодня поговорим об использовании примеров решения задачи в промпте.
Идея тут достаточно простая: если показать модели примеры правильного решения задачи, то ей сильно проще будет сделать похожее действие. Собственно, все эти цифры в названии и обозначают число примеров (то нуля до нескольких).
Например, мы хотим в промпте попросить модель оценить, позитивное или негативное высказывание мы подали на вход (то есть, решаем задачу sentiment analysis). В таком случае, мы можем дать несколько примеров того, какой текст мы посчитали "позитивным", а какой "негативным".
Но стоит учитывать, что:
1. Важно учитывать реальное распределение меток.
Например, в той же задаче sentiment analysis. Если мы приведем слишком много позитивных примеров, то модель может начать считать, что выгоднее отвечать более позитивно. Это, в свою очередь, исказит получаемые результаты;
2. Использование примеров влияет на результаты.
Удивительно, но даже не очень точные пользовательские примеры могут улучшать результирующие ответы LLM. Поэтому, добавление примеров – это скорее позитивное изменение промпта, улучшающее качество наших результатов;
3. Few-shot техники имеют свои ограничения.
В случае простых запросов, few-shot подход может быть сильной техникой. Но для более сложных задач, требующих рассуждений, наш подход с примерами может не срабатывать. Чем-то похоже на мем "дорисуй сову". Даже если есть несколько примеров дорисовывания совы из пары кругов - это не значит, что среднему человеку удастся хорошо научиться ее рисовать ;)
#conference
И снова о конференциях.
В мае (21–22 мая) я буду выступать с докладом о галлюцинациях в LLM: что это, как понять, что модель галлюцинирует, как нам с этим работать.
Помимо моего доклада, будет еще много интересных выступлений. В общем, будет на что посмотреть.
Конференция пройдет в онлайн формате (кайф, можно пижаму не снимать).
Подробности, расписание и прочее тут: https://imlconf.com
И снова о конференциях.
В мае (21–22 мая) я буду выступать с докладом о галлюцинациях в LLM: что это, как понять, что модель галлюцинирует, как нам с этим работать.
Помимо моего доклада, будет еще много интересных выступлений. В общем, будет на что посмотреть.
Конференция пройдет в онлайн формате (кайф, можно пижаму не снимать).
Подробности, расписание и прочее тут: https://imlconf.com
Я тоже буду выступать на этом митапе. Будут интересные доклады, как от нас, так и от других экспертов рынка
(анонс не увидел сразу, за инфо спасибо https://www.tgoop.com/whatsupxufana)
(анонс не увидел сразу, за инфо спасибо https://www.tgoop.com/whatsupxufana)
Telegram
LLM и гречка
Well, fuck it
We’ll be fucking fine
We’ll be fucking fine
Forwarded from X5Tech
25 апреля X5 Tech приглашает на митап экспертов в Data Science, чтобы обсудить ML системы и как с помощью новых методов и подходов победить неэффективные процессы.
Поговорим про проверенные и новые методы взаимодействия с пользователями: от рекомендаций музыки до генерации контента и чат-ботов на основе искусственного интеллекта. Ну и обсудим сложности: галлюцинации, мониторинг языковых моделей, методы улучшения RAG-систем.
Регистрируйтесь по ссылке. Мероприятие пройдёт в офлайн и онлайн форматах.
Приходите, будет интересно! 😉
Поговорим про проверенные и новые методы взаимодействия с пользователями: от рекомендаций музыки до генерации контента и чат-ботов на основе искусственного интеллекта. Ну и обсудим сложности: галлюцинации, мониторинг языковых моделей, методы улучшения RAG-систем.
Регистрируйтесь по ссылке. Мероприятие пройдёт в офлайн и онлайн форматах.
Приходите, будет интересно! 😉
Artificial stupidity
25 апреля X5 Tech приглашает на митап экспертов в Data Science, чтобы обсудить ML системы и как с помощью новых методов и подходов победить неэффективные процессы. Поговорим про проверенные и новые методы взаимодействия с пользователями: от рекомендаций музыки…
А вот и запись митапа.
Старт с моего доклада, но я рекомендую посмотреть и доклады коллег — они сделали очень клевые и интересные доклады.
https://www.youtube.com/live/bcgFvx6HZnQ?si=OvRtKyG0j3Vkwc0i&t=9113
Старт с моего доклада, но я рекомендую посмотреть и доклады коллег — они сделали очень клевые и интересные доклады.
https://www.youtube.com/live/bcgFvx6HZnQ?si=OvRtKyG0j3Vkwc0i&t=9113
YouTube
X5 Data Science meetup #3
Бурный рост эффективности ML систем провоцирует огромное количество дискуссий. X5 Tech приглашает экспертов в Data Science, чтобы обсудить как с помощью новых методов и подходов победить неэффективные процессы.
В наших докладах мы рассмотрим проверенные…
В наших докладах мы рассмотрим проверенные…
Коллеги постарались и сделали по мотивам моего выступления статью на хабре.
Поддержите усилия ребят вашими лайками!
https://habr.com/ru/companies/X5Tech/articles/814579/
Поддержите усилия ребят вашими лайками!
https://habr.com/ru/companies/X5Tech/articles/814579/
Хабр
Бутстрап временных рядов
Всем привет! Как и во многих других компаниях, в X5 существует огромное количество данных, зависящих от времени. Такие данные принято называть временными рядами (time-series). Это могут быть данные о...
Forwarded from Data Secrets
Это лучший роадмап по Deep Learning, который вы когда-либо видели. Лучше сохранить
#education
Что я вынес для себя после преподавания на курсе по анализу данных во ВШЭ на совместной магистерской программе с X5?
1. Я сильно лучше начал понимать своих преподов (особенно из индустрии). У тебя и так не очень много времени, а тут еще нужно делать лекции, семинары, смотреть домашки, консультировать (если есть проекты или сложные домашки). И на это уже начинает не хватать времени;
2. Подготовка хороших материалов занимаем очень много времени (если делать хорошо). И не только создание материалов, а потом еще их адаптация по итогам обратной связи от коллег и студантов;
3. У нецелевых курсов меньше внимания студентов. И это, в целом, логично (программа все же про менеджмент). Я тоже в свое время не особо обращал внимания на философию или культурологию, когда учился на математика. Но теперь понимаю преподавателей этих дисциплин ;)
4. Есть вещи, которые определенно пойдут не так. Что-то, что ты рассчитывал, как достаточно быстрое задание, может занять сильно больше времени. Какие-то темы, которые ты считал более интересными, не будут вызывать особого ажиотажа. А те, что ты считал проходными, наоброт, будут более интересны;
5. Я весьма неплохой лектор. По крайней мере, особых жалоб не было, народ слушал. Да и мне самому нравится болтать на эту тему (иначе я бы столько докладов на разных конференциях не делал бы).
А что по итогу?
Было прикольно, но готовить курс лучше, если у тебя побольше свободного времени. Делиться знаниями - круто, но это если есть ресурс.
В следующем году, вероятно, я тоже прочитаю сколько-то лекций на курсе. Но вряд ли столько же, как в прошлом году.
P.S. Кстати, скоро начнется набор на новый год этой программы. Раз уж решил пост про это написать, то можно и упомянуть.
Что я вынес для себя после преподавания на курсе по анализу данных во ВШЭ на совместной магистерской программе с X5?
1. Я сильно лучше начал понимать своих преподов (особенно из индустрии). У тебя и так не очень много времени, а тут еще нужно делать лекции, семинары, смотреть домашки, консультировать (если есть проекты или сложные домашки). И на это уже начинает не хватать времени;
2. Подготовка хороших материалов занимаем очень много времени (если делать хорошо). И не только создание материалов, а потом еще их адаптация по итогам обратной связи от коллег и студантов;
3. У нецелевых курсов меньше внимания студентов. И это, в целом, логично (программа все же про менеджмент). Я тоже в свое время не особо обращал внимания на философию или культурологию, когда учился на математика. Но теперь понимаю преподавателей этих дисциплин ;)
4. Есть вещи, которые определенно пойдут не так. Что-то, что ты рассчитывал, как достаточно быстрое задание, может занять сильно больше времени. Какие-то темы, которые ты считал более интересными, не будут вызывать особого ажиотажа. А те, что ты считал проходными, наоброт, будут более интересны;
5. Я весьма неплохой лектор. По крайней мере, особых жалоб не было, народ слушал. Да и мне самому нравится болтать на эту тему (иначе я бы столько докладов на разных конференциях не делал бы).
А что по итогу?
Было прикольно, но готовить курс лучше, если у тебя побольше свободного времени. Делиться знаниями - круто, но это если есть ресурс.
В следующем году, вероятно, я тоже прочитаю сколько-то лекций на курсе. Но вряд ли столько же, как в прошлом году.
P.S. Кстати, скоро начнется набор на новый год этой программы. Раз уж решил пост про это написать, то можно и упомянуть.
Forwarded from Борис опять
Меня закэнселили забанили на стендап шоу.
Две недели занимаюсь стендапом, а уже драма!
Вчера выступил в четвертый раз. Прошло неплохо. После шоу я уже вызвал такси, подхожу попрощаться с ведущим и парой комиков. Одна из комиков посмотрела на меня и говорит ведущему: "Ой, а ему не заплатили." Я такой: "You guys getting paid?"
Ведущий говорит: "Everyone gets paid, but YOU are not." Интонация была какая-то странная, будто высокомерная, и я заглотил наживку, спросил почему. Он объяснил, что они не платят новым комикам, тем кто выступает меньше трех месяцев, потому что потом они пропадают и больше не приходят, "don't wanna be part of this scene." Я не понял логической связи. Обозначил, что мне все равно на эти деньги, но сказал, что это какая-то странная схема: комики ведь делают твое шоу, посетители приносят деньги, и причём тут вообще пропадают эти комики позже или нет? Он выдал мне тираду о том, что он в комедии шесть лет, и почему они должны платить опытным комикам так же, как мне? Стало уже совсем неловко, я сказал, что "I can see the reasoning, not cool, but I am going", а он не пожал мне руку и говорит "Get out, you are not getting on this show." Я развернулся и пошел в свое такси, благо моя самооценка не держится на том, что я N лет в комедии (пока что).
Весь разговор длился минуты полторы, поэтому я вообще не уловил, что это было. Нормально же общались, как говорится. Позже, подумав, понял, что его задело: он решил, что я учу его как делать шоу. Хотя я ведь просто пытался понять, как это работает и почему, а потом сказал, что думаю.
Возможно тут есть нечто культурное: в русском эгалитарном обществе высказывать свое мнение это священное право, а при обсуждении того, что справедливо, а что нет, вообще нельзя пройти мимо.
Очень хотелось объяснить человеку на языке тела, что общаться с людьми через "Get out" неуважительно. Но подостыл и написал ему в вотсап, что не хотел обидеть (что правда) и "no hard feelings." Больше всего беспокоило, что он пойдет рассказывать плохие вещи в тесной тусовочке, и мне отрубят доступ к другим площадкам, после чего карьера великогорейнджера комика закончится не начавшись. Поэтому хотелось по крайней мере не дать конфликту разгораться. Он выдал мне в ответ тираду, что мол, сначала поживи в комедии с моё, а потом делись своим мнением. Чтож, окей.
Вот он какой, суровый шоу-бизнес, в котором все работает совсем не так, как я привык.
Вынес из этого важный урок коммуникации: не лезь куда не надо и считывай комнату.
Две недели занимаюсь стендапом, а уже драма!
Вчера выступил в четвертый раз. Прошло неплохо. После шоу я уже вызвал такси, подхожу попрощаться с ведущим и парой комиков. Одна из комиков посмотрела на меня и говорит ведущему: "Ой, а ему не заплатили." Я такой: "You guys getting paid?"
Ведущий говорит: "Everyone gets paid, but YOU are not." Интонация была какая-то странная, будто высокомерная, и я заглотил наживку, спросил почему. Он объяснил, что они не платят новым комикам, тем кто выступает меньше трех месяцев, потому что потом они пропадают и больше не приходят, "don't wanna be part of this scene." Я не понял логической связи. Обозначил, что мне все равно на эти деньги, но сказал, что это какая-то странная схема: комики ведь делают твое шоу, посетители приносят деньги, и причём тут вообще пропадают эти комики позже или нет? Он выдал мне тираду о том, что он в комедии шесть лет, и почему они должны платить опытным комикам так же, как мне? Стало уже совсем неловко, я сказал, что "I can see the reasoning, not cool, but I am going", а он не пожал мне руку и говорит "Get out, you are not getting on this show." Я развернулся и пошел в свое такси, благо моя самооценка не держится на том, что я N лет в комедии (пока что).
Весь разговор длился минуты полторы, поэтому я вообще не уловил, что это было. Нормально же общались, как говорится. Позже, подумав, понял, что его задело: он решил, что я учу его как делать шоу. Хотя я ведь просто пытался понять, как это работает и почему, а потом сказал, что думаю.
Возможно тут есть нечто культурное: в русском эгалитарном обществе высказывать свое мнение это священное право, а при обсуждении того, что справедливо, а что нет, вообще нельзя пройти мимо.
Очень хотелось объяснить человеку на языке тела, что общаться с людьми через "Get out" неуважительно. Но подостыл и написал ему в вотсап, что не хотел обидеть (что правда) и "no hard feelings." Больше всего беспокоило, что он пойдет рассказывать плохие вещи в тесной тусовочке, и мне отрубят доступ к другим площадкам, после чего карьера великого
Вот он какой, суровый шоу-бизнес, в котором все работает совсем не так, как я привык.
Вынес из этого важный урок коммуникации: не лезь куда не надо и считывай комнату.
#llm
Используем LLM для разметки (часть 1).
А так вообще можно? Оказывается, что можно. Но только с осторожностью.
Итак, давайте разбираться. Думаю, что в один пост все не влезет, потому по этой теме будет несколько постов.
Сначала вспомним, что такое разметка данных. Разметка данных (Data labeling) (иногда называемая аннотированием данных (data annotation)) — это процесс добавления меток или тэгов в сырые данные, чтобы показать модели машинного обучения целевые атрибуты (ответы), которые она должна предсказывать.
Соответственно, разметкой данных обычно занимаются отдельные компании по договору или люди на краудсорсинговых площадках (Толока, Mechanical Turk). В случае, если данных немного, в команде отряжают кого-то из коллег размечать данные (ну или используют кого-то из представителей заказчиков, например, на одной из прошлых моих работ, мы использовали модераторов для разметки данных по антифроду).
Ну и, конечно же, этот процесс не так прост, каким кажется. Вот несколько сложностей, которые могут возникнуть в этом процессе:
1. Большие объемы данных. Если у нас много задач, которым требуется разметка, то нам придется потратиться на разметку. Увы, но производительность там растет примерно линейно - больше разметчиков дают больший объем разметки;
2. Специализация удорожает разметку. Не для всякой задачи подойдет случайно выбранный человек с краудсорсинговой платформы. Например, в случае работы с медицинскими данными, обычный человек попросту не сможет правильно проинтерпретировать снимок или результаты анализов;
3. Данные не статичны. Мир постоянно меняется. Поэтому далеко не факт, что единожды собранный набор данных будет давать то же качество работы модели в будущем. Потому процесс разметки обычно не останавливается (нам желательно иметь приток новых меток со временем);
4. Согласованность данных. Если разметкой какого-то набора или экземпляра данных занимается только один человек, то в данные могут попасть его ошибки или заблуждения. Поэтому, часто используется перекрестная разметка (когда несколько человек проставляют метку, а результат получается консенсусным решением).
Соответственно, разметка может стать весьма затратным мероприятием. И вполне себе может стоить тысячи и десятки тысяч долларов (тут, конечно, все зависит от задачи и объема). Да и скорость разметки все еще ограничена скоростью человека (или группы людей), который ее проводит.
И тут на сцену выходит LLM. Какие же плюсы могут быть от использования такого рода моделей в разметке данных:
1. Ниже стоимость разметки. Некоторые авторы приводят разницу в разы, другие - на порядок. Но даже разница в 5-7 раз - это весьма существенная экономия;
2. Выше скорость разметки. Здесь мы не ограничены скоростью человека, потому вполне можем ускорить разметку на порядок (см. изображение к посту);
3. Адаптивность. Изменением промпта мы можем менять задачу для разметки. При этом, LLM показали свою эффективность в достаточно большом наборе задач (от машинного перевода до выделения именованных сущностей). Соответственно, переход от задачи к задаче должен быть достаточно прост.
На этом интригующем моменте давайте остановимся. И продолжим уже тем, как мы можем применить LLM к процессу разметки, какие есть инструменты и особенности работы с LLM-разметчиком.
Используем LLM для разметки (часть 1).
А так вообще можно? Оказывается, что можно. Но только с осторожностью.
Итак, давайте разбираться. Думаю, что в один пост все не влезет, потому по этой теме будет несколько постов.
Сначала вспомним, что такое разметка данных. Разметка данных (Data labeling) (иногда называемая аннотированием данных (data annotation)) — это процесс добавления меток или тэгов в сырые данные, чтобы показать модели машинного обучения целевые атрибуты (ответы), которые она должна предсказывать.
Соответственно, разметкой данных обычно занимаются отдельные компании по договору или люди на краудсорсинговых площадках (Толока, Mechanical Turk). В случае, если данных немного, в команде отряжают кого-то из коллег размечать данные (ну или используют кого-то из представителей заказчиков, например, на одной из прошлых моих работ, мы использовали модераторов для разметки данных по антифроду).
Ну и, конечно же, этот процесс не так прост, каким кажется. Вот несколько сложностей, которые могут возникнуть в этом процессе:
1. Большие объемы данных. Если у нас много задач, которым требуется разметка, то нам придется потратиться на разметку. Увы, но производительность там растет примерно линейно - больше разметчиков дают больший объем разметки;
2. Специализация удорожает разметку. Не для всякой задачи подойдет случайно выбранный человек с краудсорсинговой платформы. Например, в случае работы с медицинскими данными, обычный человек попросту не сможет правильно проинтерпретировать снимок или результаты анализов;
3. Данные не статичны. Мир постоянно меняется. Поэтому далеко не факт, что единожды собранный набор данных будет давать то же качество работы модели в будущем. Потому процесс разметки обычно не останавливается (нам желательно иметь приток новых меток со временем);
4. Согласованность данных. Если разметкой какого-то набора или экземпляра данных занимается только один человек, то в данные могут попасть его ошибки или заблуждения. Поэтому, часто используется перекрестная разметка (когда несколько человек проставляют метку, а результат получается консенсусным решением).
Соответственно, разметка может стать весьма затратным мероприятием. И вполне себе может стоить тысячи и десятки тысяч долларов (тут, конечно, все зависит от задачи и объема). Да и скорость разметки все еще ограничена скоростью человека (или группы людей), который ее проводит.
И тут на сцену выходит LLM. Какие же плюсы могут быть от использования такого рода моделей в разметке данных:
1. Ниже стоимость разметки. Некоторые авторы приводят разницу в разы, другие - на порядок. Но даже разница в 5-7 раз - это весьма существенная экономия;
2. Выше скорость разметки. Здесь мы не ограничены скоростью человека, потому вполне можем ускорить разметку на порядок (см. изображение к посту);
3. Адаптивность. Изменением промпта мы можем менять задачу для разметки. При этом, LLM показали свою эффективность в достаточно большом наборе задач (от машинного перевода до выделения именованных сущностей). Соответственно, переход от задачи к задаче должен быть достаточно прост.
На этом интригующем моменте давайте остановимся. И продолжим уже тем, как мы можем применить LLM к процессу разметки, какие есть инструменты и особенности работы с LLM-разметчиком.
#llm
Используем LLM для разметки (часть 2).
Продолжаем наш разговор о применении LLM для разметки данных.
Хоть я в прошлый раз и написал, что от LLM только одни плюсы. Но у пытливого читателя все равно будут вопросы, отчего тогда не перевелись все разметчики данных и великий скайнет не заменил эти кожаные мешки своими стальными братьями? И это весьма разумные вопросы.
Начнем с того, что наши железные друзья все же понемногу наступают на пятки разметчикам данных. Но все еще не всегда обгоняют таковых. Впрочем, результаты весьма обнадеживающие, к посту прикладываю пример из статьи "LLMs can label data as well as humans, but 100x faster". Но пост все-таки в блоге компании, потому к результатам лучше относиться с некоторым подозрением.
И все же, частично мы можем передать разметку LLM. Но как мы это можем провернуть? Вот несколько вариантов:
1. Банальный. Давайте просто напишем промпт, вида "представь, что ты разметчик данных, реши следующую задачу [описание задачи]". Очевидно, такой подход будет страдать от всех bias'ов о возможных ошибок и галлюцинаций модели;
2. Корректирующий. Мы можем улучшить банальный подход, оставив в процессе разметки человека. Но теперь мы даем человеку вместо разметки, задачу проверки расставленных LLM меток. Вероятно, перепроверить за моделью будет проще. А, значит, нужно будет меньше ресурса разметчиков. При этом, такой подход будет качественнее банального, но менее ресурсоемким, чем классическая разметка людьми;
3. Развивающий. Помимо перепроверки человеком, мы можем добавить версионирование промптов и их постепенное улучшение. Для этого нам желательно иметь "золотой набор", об который мы могли бы оценивать качество разметки (считая, что люди дают наивысшее (или близкое к нему) качество).
При этом, даже в банальном варианте, мы можем применять различные техники промптинга (CoT, Few-shot и т.п.), чтобы улучшить результат разметки. Еще стоит помнить о валидации формата. В некоторых популярных библиотеках это уже встроенный функционал, но если мы делаем все сами, то лучше четко прописывать выходной формат данных и потом валидировать соответствие результата нашему формату.
Примеры построения промптов можно посмотреть здесь и здесь.
Что интересно. На самом деле, многие решения для разметки данных уже стараются имплементировать фичи для разметки с использованием LLM. Например, в Label Studio есть такой функционал (можно почитать про него здесь).
И, конечно, стоит упомянуть о минусах использования LLM в разметке данных:
1. Возможные смещения. Результаты могут сильно зависеть от того, на чем обучалась LLM (особенно, для русского языка);
2. Постоянная поддержка. Нужен постоянный процесс мониторинга качества результатов и внимание специалистов к самому процессу разметки;
3. Ограниченность текстовыми данными. Если мы используем LLM, то у нас есть ограничения типа используемых данных. Впрочем, достаточно быстро развиваются и мультимодальные модели, что может в будущем решить проблему.
И каковы же итоги?
Я бы предложил протестировать использование LLM в разметке в тех случаях, если у вас уже есть высокая потребность в разметке и достаточно большие затраты не нее. Скорее всего, в этом случае вы получите приемлемое качество (особенно, если не использовать самый банальный подход) за меньшую цену.
Используем LLM для разметки (часть 2).
Продолжаем наш разговор о применении LLM для разметки данных.
Хоть я в прошлый раз и написал, что от LLM только одни плюсы. Но у пытливого читателя все равно будут вопросы, отчего тогда не перевелись все разметчики данных и великий скайнет не заменил эти кожаные мешки своими стальными братьями? И это весьма разумные вопросы.
Начнем с того, что наши железные друзья все же понемногу наступают на пятки разметчикам данных. Но все еще не всегда обгоняют таковых. Впрочем, результаты весьма обнадеживающие, к посту прикладываю пример из статьи "LLMs can label data as well as humans, but 100x faster". Но пост все-таки в блоге компании, потому к результатам лучше относиться с некоторым подозрением.
И все же, частично мы можем передать разметку LLM. Но как мы это можем провернуть? Вот несколько вариантов:
1. Банальный. Давайте просто напишем промпт, вида "представь, что ты разметчик данных, реши следующую задачу [описание задачи]". Очевидно, такой подход будет страдать от всех bias'ов о возможных ошибок и галлюцинаций модели;
2. Корректирующий. Мы можем улучшить банальный подход, оставив в процессе разметки человека. Но теперь мы даем человеку вместо разметки, задачу проверки расставленных LLM меток. Вероятно, перепроверить за моделью будет проще. А, значит, нужно будет меньше ресурса разметчиков. При этом, такой подход будет качественнее банального, но менее ресурсоемким, чем классическая разметка людьми;
3. Развивающий. Помимо перепроверки человеком, мы можем добавить версионирование промптов и их постепенное улучшение. Для этого нам желательно иметь "золотой набор", об который мы могли бы оценивать качество разметки (считая, что люди дают наивысшее (или близкое к нему) качество).
При этом, даже в банальном варианте, мы можем применять различные техники промптинга (CoT, Few-shot и т.п.), чтобы улучшить результат разметки. Еще стоит помнить о валидации формата. В некоторых популярных библиотеках это уже встроенный функционал, но если мы делаем все сами, то лучше четко прописывать выходной формат данных и потом валидировать соответствие результата нашему формату.
Примеры построения промптов можно посмотреть здесь и здесь.
Что интересно. На самом деле, многие решения для разметки данных уже стараются имплементировать фичи для разметки с использованием LLM. Например, в Label Studio есть такой функционал (можно почитать про него здесь).
И, конечно, стоит упомянуть о минусах использования LLM в разметке данных:
1. Возможные смещения. Результаты могут сильно зависеть от того, на чем обучалась LLM (особенно, для русского языка);
2. Постоянная поддержка. Нужен постоянный процесс мониторинга качества результатов и внимание специалистов к самому процессу разметки;
3. Ограниченность текстовыми данными. Если мы используем LLM, то у нас есть ограничения типа используемых данных. Впрочем, достаточно быстро развиваются и мультимодальные модели, что может в будущем решить проблему.
И каковы же итоги?
Я бы предложил протестировать использование LLM в разметке в тех случаях, если у вас уже есть высокая потребность в разметке и достаточно большие затраты не нее. Скорее всего, в этом случае вы получите приемлемое качество (особенно, если не использовать самый банальный подход) за меньшую цену.
#video
У меня большое количество хобби. Одно из этих хобби - ходить на разные курсы в области писательского мастерства, выступлений и еще много чего разного, что может унять мое любопытство.
Собственно, поэтому я сходил на курс стендапа.
Из интересного:
1. Очевидно, то, что вы видите на концертах или на записях с ютуба - это уже "вылизанная" финальная версия, до которой проходит очень много итераций проверки материала;
2. Продолжая прошлый пункт. Шутки писать не так уж просто. Это реально писательский труд. Так потом их еще нужно тестировать. Ведь то, что у тебя в голове кажется ужасно смешным, в реальности вызовет напряженную тишину и пару покашливаний;
3. В принципе, со стендапом примерно как с другими публичными выступлениями. Сперва очень тревожно, потом становится проще (но немного тревожности все равно остается). Ну и, чем больше вам знакома аудитория - тем проще перед ней выступать;
4. Мне больше нравится писать шутки, чем их рассказывать. В целом, рассказывать я их тоже могу, просто писать интереснее;
5. Самое первое выступление со своим материалом я решил сделать на стендап фестивале VK. То есть, пошел по хардкору. Поясню. На фесте более 1000 опытных комиков (вроде бы было что-то около 1300-1500 человек), которые выступают один за одним. И выбирают из них где-то 40-50 человек. И тут я такой "здрасьте". Было дико страшно, но зато я прочувствовал на себе более хардкорную сложность выступления.
Если будет интересно, прикрепляю запись со второго выступления (там все было сильно менее тревожно, т.к. это выпускной с курсов и там были "все свои"). Но у меня в тот же день было выступление I'ML, потому я все равно порядок шуток плохо запомнил ;)
У меня большое количество хобби. Одно из этих хобби - ходить на разные курсы в области писательского мастерства, выступлений и еще много чего разного, что может унять мое любопытство.
Собственно, поэтому я сходил на курс стендапа.
Из интересного:
1. Очевидно, то, что вы видите на концертах или на записях с ютуба - это уже "вылизанная" финальная версия, до которой проходит очень много итераций проверки материала;
2. Продолжая прошлый пункт. Шутки писать не так уж просто. Это реально писательский труд. Так потом их еще нужно тестировать. Ведь то, что у тебя в голове кажется ужасно смешным, в реальности вызовет напряженную тишину и пару покашливаний;
3. В принципе, со стендапом примерно как с другими публичными выступлениями. Сперва очень тревожно, потом становится проще (но немного тревожности все равно остается). Ну и, чем больше вам знакома аудитория - тем проще перед ней выступать;
4. Мне больше нравится писать шутки, чем их рассказывать. В целом, рассказывать я их тоже могу, просто писать интереснее;
5. Самое первое выступление со своим материалом я решил сделать на стендап фестивале VK. То есть, пошел по хардкору. Поясню. На фесте более 1000 опытных комиков (вроде бы было что-то около 1300-1500 человек), которые выступают один за одним. И выбирают из них где-то 40-50 человек. И тут я такой "здрасьте". Было дико страшно, но зато я прочувствовал на себе более хардкорную сложность выступления.
Если будет интересно, прикрепляю запись со второго выступления (там все было сильно менее тревожно, т.к. это выпускной с курсов и там были "все свои"). Но у меня в тот же день было выступление I'ML, потому я все равно порядок шуток плохо запомнил ;)
#statistics
Мои коллеги из X5 не перестают радовать новым полезным контентом. В этот раз статья про использование Reinforcement Learning в задаче групповой оптимизации цен.
Читаем, просвещаемся, наслаждаемся! И не забываем ставить плюсики, конечно же ;)
Мои коллеги из X5 не перестают радовать новым полезным контентом. В этот раз статья про использование Reinforcement Learning в задаче групповой оптимизации цен.
Читаем, просвещаемся, наслаждаемся! И не забываем ставить плюсики, конечно же ;)
Хабр
Reinforcement Learning в задаче групповой оптимизации цен
Введение Привет, Хабр! На связи аналитики больших данных Х5 Tech — Антон Денисов и Михаил Будылин . В предыдущей статье про многоруких бандитов мы показали, как можно искать оптимальную цену в разрезе...
#LLM
Парад клевых материалов продолжается!
Теперь вышла уже моя статья (я бы даже сказал, что методичка) по промт-инжинирингу простыми словами.
Как обычно, читайте, ставьте плюсики, делитесь материалом с теми, кто еще не знает премудростей prompt engineering'а.
Парад клевых материалов продолжается!
Теперь вышла уже моя статья (я бы даже сказал, что методичка) по промт-инжинирингу простыми словами.
Как обычно, читайте, ставьте плюсики, делитесь материалом с теми, кто еще не знает премудростей prompt engineering'а.
Хабр
Prompt engineering 101
Привет! Сегодня на связи: Артем Ерохин — Lead DS в команде развития искусственного интеллекта X5 Tech (наша команда занимается разработкой и внедрением моделей...
Сегодня буду на TurboML от Т-банка. Если у кого есть желание пообщаться - пишите в личку, пересечемся там
Forwarded from (sci)Berloga Всех Наук и Технологий
🚀 Если Вам интересно машинное обучение и/или математика - приглашаем Вас принять участие в проекте по применению методов МЛ/RL к теории групп/графов Кэли - напишите @alexander_v_c - если хотите принять участие, а также заходите на вводный вебинар (знаний теории групп не требуется):
👨🔬 Александр Червов (к.ф.-м.н) "Методы МЛ в теории групп - введение и обзор достигнутого"
⌚️ Понедельник 22 июля, 18.00 (по Москве)
Методы машинного обучения могут быть применены к ряду классических задач теории групп - разложение элемента по образующим, оценки диаметра. Мы приглашаем принять всех участие в данном проекте. Предварительное требование - знание Питона и наличие нескольких свободных часов в неделю. Если вы хотите улучшить свои знания по МЛ/RL и внести вклад в развитие науки - это отличный шанс .
В данном докладе мы простым языком объясним формулировки основных задач, и как задачи теории групп переводятся на язык машинного обучения. Предварительных знаний не требуется. Также, мы дадим обзор уже достигнутых результатов - в частности для группы порядка 4*10^19 (Rubik cube) нам уже удается находить решение задачи за минуты , а не 40 часов ГПУ как было в предыдущей работе "DeepCube".
План доклада:
1 Переформулировка основной задачи на простом языке матриц
2 Матрицы перестановок и группы типа кубика Рубика (см. ноутбук "Visualize allowed moves": https://www.kaggle.com/code/marksix/visualize-allowed-moves )
3 Графы Кэли и переформулировка основной задачи как поиск пути на графе
4 Случайные блуждания по графам - создание трейн сета для МЛ-модели
5 Подход к решению задач теории групп через машинное обучение. Оценка дистанции до цели через МЛ-модель и проблема наличия множественных локальных минимумов у этой оценки
6 Beam search. (Один из вариантов борьбы с застреваниями в локальных минимумах)
7 Бейзлайн реализация: МЛ+ Beam search - ноутбук: https://www.kaggle.com/code/alexandervc/baseline-1-for-permutations - решение кубика Рубика за пару минут
8 Cледующие шаги: RL-часть, улучшение нейросеток, улучшение трейн сета, улучшение beam search
Добавляйтесь в группу проекта: https://www.tgoop.com/sberlogasci/10989 и пишите @alexander_v_c - если Вам интересно !
PS
См. также предыдущий вводный доклад:
https://www.tgoop.com/sberlogasci/10989/15283 "Введение в методы поиска короткого пути на больших графах" (Кирилл Хоружий )
Zoom link will be in @sberlogabig just before start. Video records: https://www.youtube.com/c/SciBerloga - subscribe !
👨🔬 Александр Червов (к.ф.-м.н) "Методы МЛ в теории групп - введение и обзор достигнутого"
⌚️ Понедельник 22 июля, 18.00 (по Москве)
Методы машинного обучения могут быть применены к ряду классических задач теории групп - разложение элемента по образующим, оценки диаметра. Мы приглашаем принять всех участие в данном проекте. Предварительное требование - знание Питона и наличие нескольких свободных часов в неделю. Если вы хотите улучшить свои знания по МЛ/RL и внести вклад в развитие науки - это отличный шанс .
В данном докладе мы простым языком объясним формулировки основных задач, и как задачи теории групп переводятся на язык машинного обучения. Предварительных знаний не требуется. Также, мы дадим обзор уже достигнутых результатов - в частности для группы порядка 4*10^19 (Rubik cube) нам уже удается находить решение задачи за минуты , а не 40 часов ГПУ как было в предыдущей работе "DeepCube".
План доклада:
1 Переформулировка основной задачи на простом языке матриц
2 Матрицы перестановок и группы типа кубика Рубика (см. ноутбук "Visualize allowed moves": https://www.kaggle.com/code/marksix/visualize-allowed-moves )
3 Графы Кэли и переформулировка основной задачи как поиск пути на графе
4 Случайные блуждания по графам - создание трейн сета для МЛ-модели
5 Подход к решению задач теории групп через машинное обучение. Оценка дистанции до цели через МЛ-модель и проблема наличия множественных локальных минимумов у этой оценки
6 Beam search. (Один из вариантов борьбы с застреваниями в локальных минимумах)
7 Бейзлайн реализация: МЛ+ Beam search - ноутбук: https://www.kaggle.com/code/alexandervc/baseline-1-for-permutations - решение кубика Рубика за пару минут
8 Cледующие шаги: RL-часть, улучшение нейросеток, улучшение трейн сета, улучшение beam search
Добавляйтесь в группу проекта: https://www.tgoop.com/sberlogasci/10989 и пишите @alexander_v_c - если Вам интересно !
PS
См. также предыдущий вводный доклад:
https://www.tgoop.com/sberlogasci/10989/15283 "Введение в методы поиска короткого пути на больших графах" (Кирилл Хоружий )
Zoom link will be in @sberlogabig just before start. Video records: https://www.youtube.com/c/SciBerloga - subscribe !
#LLM
Сегодня мы начнем говорить про галлюцинации в LLM. Т.к. тема весьма обширная, то будет целая серия постов.
Галлюцинации в LLM. Часть 1
Давайте начинать разбираться в этой обширной, но интересной теме.
Что же, собственно, это за галлюцинации? И почему они могут помешать нашей работе с LLM?
Если мы рассматриваем это явление с точки зрения психологии, то “галлюцинации” – это разнообразные аномалии восприятия окружающей действительности, возникающие без внешнего раздражителя. То есть, когда наш мозг видит, слышит или чувствует то, чего в реальном мире сейчас нет.
Но если мы смотрим на это понятие с точки зрения обработки естественных языков (NLP, Natural Language Processing), то “галлюцинации” – это аномалии генерации, при которых сгенерированный результат кажется бессмысленным или не соответствуют входным данным. Получается, что в этом случае, речь скорее о получаемых результатах. И это уже отличные от привычного понимания “галлюцинации”.
Если упрощать, то при галлюцинациях LLM начинает "выдумывать" что-то, чего нет в реальном мире, либо выдавать результаты, не соответствующие запросу.
А какие типы галлюцинаций бывают?
В весьма годном обзоре по галлюцинациям "A Survey on Hallucination in Large Language Models: Principles, Taxonomy, Challenges, and Open Questions", предлагают следующую типизацию галлюцинаций:
Фактические галлюцинации.
Здесь все просто. К данному типу относятся случаи, при которых модель генерирует ответы, противоречащие общеизвестными фактам или фабрикует какие-либо факты.
Например, модель на запрос “Кому принадлежит первый орден Октябрьской революции?” ответит “Ленин”. А в реальности этот орден принадлежит городу Ленинград.
Или придумать этимологию слова “шпулевина”, которого попросту нет в русском языке.
Галлюцинации следования запросу (или галлюцинации верности).
К этому типу относятся случаи, когда игнорирует часть (или вовсе всю) входную инструкцию, игнорирует контекст запроса или имеет логические несоответствия и противоречия в ответе.
Частый пример: при длинном запросе модель может “потерять” часть входной информации из запроса и по этой причине выдать частично некорректный ответ.
Еще один пример. Если мы спросим у модели логическую задачу “У вас есть 50 мотоциклов, у каждого из которых запах хода на 100 км. Сколько вы можете проехать на этих мотоциклах?”, модель просто умножит 100 * 50 и будет считать это верным ответом. В реальности, конечно же, этот ответ неверен.
И почему же это проблема?
В принципе, по примерам уже можно догадаться, что нежелательное поведение с "выдумыванием" вряд ли понравится пользователям.
Представьте, что вместо реальных ссылок на нужное видео, LLM постоянно (или хотя бы достаточно часто) будет выдавать ссылку вот сюда. Польза от такой системы, мягко говоря, получится не очень высокой.
А если представить, что LLM будет использоваться в какой-то бизнес-системе, или того хуже - в медицине (и подобных чувствительных областях). Тогда такое поведение может вовсе похоронить всю систему (даже если оно будет проявляться не так часто).
Пользователи станут с недоверием относиться к нашей системе. А нам это надо? Поэтому с галлюцинациями лучше нещадно бороться (впрочем, если вам важна креативность, то нужно бороться не со всеми типами галлюцинаций).
А в следующем посте поговорим про причины галлюцинаций. Stay tuned!
Сегодня мы начнем говорить про галлюцинации в LLM. Т.к. тема весьма обширная, то будет целая серия постов.
Галлюцинации в LLM. Часть 1
Давайте начинать разбираться в этой обширной, но интересной теме.
Что же, собственно, это за галлюцинации? И почему они могут помешать нашей работе с LLM?
Если мы рассматриваем это явление с точки зрения психологии, то “галлюцинации” – это разнообразные аномалии восприятия окружающей действительности, возникающие без внешнего раздражителя. То есть, когда наш мозг видит, слышит или чувствует то, чего в реальном мире сейчас нет.
Но если мы смотрим на это понятие с точки зрения обработки естественных языков (NLP, Natural Language Processing), то “галлюцинации” – это аномалии генерации, при которых сгенерированный результат кажется бессмысленным или не соответствуют входным данным. Получается, что в этом случае, речь скорее о получаемых результатах. И это уже отличные от привычного понимания “галлюцинации”.
Если упрощать, то при галлюцинациях LLM начинает "выдумывать" что-то, чего нет в реальном мире, либо выдавать результаты, не соответствующие запросу.
А какие типы галлюцинаций бывают?
В весьма годном обзоре по галлюцинациям "A Survey on Hallucination in Large Language Models: Principles, Taxonomy, Challenges, and Open Questions", предлагают следующую типизацию галлюцинаций:
Фактические галлюцинации.
Здесь все просто. К данному типу относятся случаи, при которых модель генерирует ответы, противоречащие общеизвестными фактам или фабрикует какие-либо факты.
Например, модель на запрос “Кому принадлежит первый орден Октябрьской революции?” ответит “Ленин”. А в реальности этот орден принадлежит городу Ленинград.
Или придумать этимологию слова “шпулевина”, которого попросту нет в русском языке.
Галлюцинации следования запросу (или галлюцинации верности).
К этому типу относятся случаи, когда игнорирует часть (или вовсе всю) входную инструкцию, игнорирует контекст запроса или имеет логические несоответствия и противоречия в ответе.
Частый пример: при длинном запросе модель может “потерять” часть входной информации из запроса и по этой причине выдать частично некорректный ответ.
Еще один пример. Если мы спросим у модели логическую задачу “У вас есть 50 мотоциклов, у каждого из которых запах хода на 100 км. Сколько вы можете проехать на этих мотоциклах?”, модель просто умножит 100 * 50 и будет считать это верным ответом. В реальности, конечно же, этот ответ неверен.
И почему же это проблема?
В принципе, по примерам уже можно догадаться, что нежелательное поведение с "выдумыванием" вряд ли понравится пользователям.
Представьте, что вместо реальных ссылок на нужное видео, LLM постоянно (или хотя бы достаточно часто) будет выдавать ссылку вот сюда. Польза от такой системы, мягко говоря, получится не очень высокой.
А если представить, что LLM будет использоваться в какой-то бизнес-системе, или того хуже - в медицине (и подобных чувствительных областях). Тогда такое поведение может вовсе похоронить всю систему (даже если оно будет проявляться не так часто).
Пользователи станут с недоверием относиться к нашей системе. А нам это надо? Поэтому с галлюцинациями лучше нещадно бороться (впрочем, если вам важна креативность, то нужно бороться не со всеми типами галлюцинаций).
А в следующем посте поговорим про причины галлюцинаций. Stay tuned!