В марте буду вещать про эти ваши LLM (и как это дружит с разметкой данных)
Forwarded from Экономика данных. Как это делается - OSP (Издательство "Открытые системы")
🔥 Артем Ерохин, X5 Tech: «Как сократить затраты на разметку данных с помощью LLM»
✅ Большие языковые модели стремительно ворвались в нашу жизнь и изменили ее. 28 марта на форуме Data&AI 2024 Артем Ерохин, ведущий менеджер по работе с большими данными X5 Tech, расскажет, как сократить издержки на разметку данных с помощью LLM, как такие модели могут использоваться для разметки, какие существуют сценарии улучшения качества и ограничения использования, а также какой опыт применения LLM к разметке данных имеется в розничной компании X5.
📣Внимание! Акция «1+1»!
Только до 7 марта - 2 онлайн-билета - по цене 1!
👉Спешите регистрироваться👉
✅ Большие языковые модели стремительно ворвались в нашу жизнь и изменили ее. 28 марта на форуме Data&AI 2024 Артем Ерохин, ведущий менеджер по работе с большими данными X5 Tech, расскажет, как сократить издержки на разметку данных с помощью LLM, как такие модели могут использоваться для разметки, какие существуют сценарии улучшения качества и ограничения использования, а также какой опыт применения LLM к разметке данных имеется в розничной компании X5.
📣Внимание! Акция «1+1»!
Только до 7 марта - 2 онлайн-билета - по цене 1!
👉Спешите регистрироваться👉
#ml #llm
Коль я уж занимаюсь последнее время LLM, давайте о них и поговорим. Итак, начнем с простых вещей. Много кто пытался вывести "формулу идеального промпта" (ей богу, звучит максимально алхимически, почти "формула философского камня"). В итоге есть множество вариантов, как именно лучше писать промпт. Давайте рассмотрим один из таких вариантов:
1. Задача.
Четкое и детальное описание задачи, которую требуется решить LLM. Самая важная часть, в которой мы описываем, а что же мы хотели от модели. Некорректная постановка задачи приведет к некорректному ответу.
2. Контекст.
Дополнительный контекст, который может быть важен для задачи. Можно определить, с какой позиции нужно рассматривать вопрос, вносить дополнительные справочные данные или иную важную для получения результата информацию.
Частью контекста может быть т.н. “Персона”, то есть детальное описание, с какой точки зрения смотреть на задачу.
3. Примеры/Пояснения.
Мы можем привести дополнительные разъяснения о том, как именно мы хотели бы решить задачу. Например, указать, нужно ли нам детальное решение или краткое, должен ли быть тон профессиональным или дружелюбным и т.д.
Отдельно мы можем привести пример (или несколько примеров) того, как должна быть решена задача. Конечно, если такой пример в принципе можно привести.
4. Формат.
В этой части мы можем указать, в какой формате нам нужен ответ. Это должна быть таблица, план решения задачи, работоспособный код на определенном языке? Все это позволяет точнее зафиксировать, как именно модель должна нам ответить.
Некоторые из пунктов дробят на меньшие сущности (например, выделяют "персону/роль" в отдельную сущность). В других материалах дополнительно приводят "важность" каждой составляющей (Задача важнее всего, потом идет контекст, а потом уже примеры/пояснения, описание роли, формат ответа и т.п.). Но в целом все крутится примерно около того же самого.
Получаем, что Промпт = Задача + Контекст + Примеры/Пояснения + Формат итога
Коль я уж занимаюсь последнее время LLM, давайте о них и поговорим. Итак, начнем с простых вещей. Много кто пытался вывести "формулу идеального промпта" (ей богу, звучит максимально алхимически, почти "формула философского камня"). В итоге есть множество вариантов, как именно лучше писать промпт. Давайте рассмотрим один из таких вариантов:
1. Задача.
Четкое и детальное описание задачи, которую требуется решить LLM. Самая важная часть, в которой мы описываем, а что же мы хотели от модели. Некорректная постановка задачи приведет к некорректному ответу.
2. Контекст.
Дополнительный контекст, который может быть важен для задачи. Можно определить, с какой позиции нужно рассматривать вопрос, вносить дополнительные справочные данные или иную важную для получения результата информацию.
Частью контекста может быть т.н. “Персона”, то есть детальное описание, с какой точки зрения смотреть на задачу.
3. Примеры/Пояснения.
Мы можем привести дополнительные разъяснения о том, как именно мы хотели бы решить задачу. Например, указать, нужно ли нам детальное решение или краткое, должен ли быть тон профессиональным или дружелюбным и т.д.
Отдельно мы можем привести пример (или несколько примеров) того, как должна быть решена задача. Конечно, если такой пример в принципе можно привести.
4. Формат.
В этой части мы можем указать, в какой формате нам нужен ответ. Это должна быть таблица, план решения задачи, работоспособный код на определенном языке? Все это позволяет точнее зафиксировать, как именно модель должна нам ответить.
Некоторые из пунктов дробят на меньшие сущности (например, выделяют "персону/роль" в отдельную сущность). В других материалах дополнительно приводят "важность" каждой составляющей (Задача важнее всего, потом идет контекст, а потом уже примеры/пояснения, описание роли, формат ответа и т.п.). Но в целом все крутится примерно около того же самого.
Получаем, что Промпт = Задача + Контекст + Примеры/Пояснения + Формат итога
Forwarded from И тебя заменят (Иван Талачев)
Media is too big
VIEW IN TELEGRAM
На прошлой неделе в Лос-Анджелесе состоялся показ фильма Our T2 Remake — нейросетевой пародии на «Терминатор 2: Судный день» Джеймса Кэмерона.
Процесс такой: оригинальный фильм разделили на 50 частей, каждую из которых отдали разным AI-художникам, которым была дана полная свобода в смысловой и визуальной интерпретации своих фрагментов.
По отзывам журналистов и блоггеров, результат больше похож на лоскутное одеяло из скетчей разного качества: некоторые части выполнены как анимационные фильмы, другие стилизованы под видеоигры, музыкальные клипы, классические ситкомы и сериалы 90-х.
Журналист Баратунде Ферстон отметил, что «это очередное напоминание о том, что доступность ИИ-инструментов пока никак не гарантирует качество их результатов»
Из-за авторских прав Our T2 Remake не использует ни одного кадра из фильма 1991 года, а также звуки, фрагменты диалогов или легендарную музыку Бреда Фиделя. А во избежание других юридических проблем вся затея с AI-ремейком названа «пародией»: с них в Голливуде спрос меньше.
Процесс такой: оригинальный фильм разделили на 50 частей, каждую из которых отдали разным AI-художникам, которым была дана полная свобода в смысловой и визуальной интерпретации своих фрагментов.
По отзывам журналистов и блоггеров, результат больше похож на лоскутное одеяло из скетчей разного качества: некоторые части выполнены как анимационные фильмы, другие стилизованы под видеоигры, музыкальные клипы, классические ситкомы и сериалы 90-х.
Журналист Баратунде Ферстон отметил, что «это очередное напоминание о том, что доступность ИИ-инструментов пока никак не гарантирует качество их результатов»
Из-за авторских прав Our T2 Remake не использует ни одного кадра из фильма 1991 года, а также звуки, фрагменты диалогов или легендарную музыку Бреда Фиделя. А во избежание других юридических проблем вся затея с AI-ремейком названа «пародией»: с них в Голливуде спрос меньше.
#ml #llm
Продолжаем базовые советы по написанию промптов к LLM:
1. Начинать лучше с простого.
Вместо того, чтобы сразу писать очень сложный детальный промпт, лучше начать с простого описания того, что хочется получить. И постепенно улучшать промпт, пока ответ не начнет вас удовлетворять;
2. В некоторых случаях лучше писать промпт на английском языке.
Интуиция тут простая – больше всего контента, который был в обучении нейросети, на английском (+ я недавно видел статью, авторы которой в результате экспериментов пришли к выводу, что модели "думают" на английском, даже когда с ними работают на иных языках). Поэкспериментировать стоит, если никак не удается получить корректный ответ с русским промптом;
3. Избегайте неточностей.
Лучше быть как можно более конкретным и прямым. Например, если вы хотите получить короткий текст, то вместо “опиши кратко” лучше четко указать, что хотите видеть ответ в “двух предложениях”.
Это же относится и к описанию задачи. Лучше избегать двусмысленных трактовок.
4. Экспериментируйте.
Лучше попробовать несколько вариантов и/или подходов и сравнить результаты. Не всегда первое пришедшее в голову описание задачи будет наилучшим по качеству.
5. Сконцентрируйтесь на том, что нужно сделать.
При описании желаемого поведения, лучше концентрироваться на том, что нужно сделать. Описание нежеланного поведения (по наблюдениям) работает хуже. То есть, нам лучше описывать то, что мы хотим, а не то, чего бы мы не хотели.
6. Учитывайте длину контекста.
Количество входной информации, которое может обработать LLM ограничено (впрочем, в последнее время с этим стало попроще). Стоит это учитывать при использовании больших промптов или попытках подачи в качестве контекста больших объемов информации (инструкции, книги, иные объемные тексты).
Продолжаем базовые советы по написанию промптов к LLM:
1. Начинать лучше с простого.
Вместо того, чтобы сразу писать очень сложный детальный промпт, лучше начать с простого описания того, что хочется получить. И постепенно улучшать промпт, пока ответ не начнет вас удовлетворять;
2. В некоторых случаях лучше писать промпт на английском языке.
Интуиция тут простая – больше всего контента, который был в обучении нейросети, на английском (+ я недавно видел статью, авторы которой в результате экспериментов пришли к выводу, что модели "думают" на английском, даже когда с ними работают на иных языках). Поэкспериментировать стоит, если никак не удается получить корректный ответ с русским промптом;
3. Избегайте неточностей.
Лучше быть как можно более конкретным и прямым. Например, если вы хотите получить короткий текст, то вместо “опиши кратко” лучше четко указать, что хотите видеть ответ в “двух предложениях”.
Это же относится и к описанию задачи. Лучше избегать двусмысленных трактовок.
4. Экспериментируйте.
Лучше попробовать несколько вариантов и/или подходов и сравнить результаты. Не всегда первое пришедшее в голову описание задачи будет наилучшим по качеству.
5. Сконцентрируйтесь на том, что нужно сделать.
При описании желаемого поведения, лучше концентрироваться на том, что нужно сделать. Описание нежеланного поведения (по наблюдениям) работает хуже. То есть, нам лучше описывать то, что мы хотим, а не то, чего бы мы не хотели.
6. Учитывайте длину контекста.
Количество входной информации, которое может обработать LLM ограничено (впрочем, в последнее время с этим стало попроще). Стоит это учитывать при использовании больших промптов или попытках подачи в качестве контекста больших объемов информации (инструкции, книги, иные объемные тексты).
Все играются с 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.group-telegram.com/whatsupxufana)
(анонс не увидел сразу, за инфо спасибо https://www.group-telegram.com/whatsupxufana)
Telegram
LLM и гречка
Well, fuck it
We’ll be fucking fine
We’ll be fucking fine
Forwarded from X5 Tech
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, потому я все равно порядок шуток плохо запомнил ;)