Warning: Undefined array key 0 in /var/www/tgoop/function.php on line 65

Warning: Trying to access array offset on value of type null in /var/www/tgoop/function.php on line 65
54 - Telegram Web
Telegram Web
Здесь тоже проанонсирую: в воскресенье буду рассказывать про трансформеры и ChatGPT на очередной встрече нижегородского сообщества ODS. Если хотите, приходите послушать!

Тема: От классического трансформера к ChatGPT
Время: 19 февраля 18:00
Формат: Zoom (https://us02web.zoom.us/j/86771868132)

Трансформеры - это наиболее актуальная на сегодняшний день нейросетевая архитектура для решения различных задач автоматической обработки естественного языка (natural language processing). Именно трансформеры лежат в основе таких нашумевших моделей как GPT-3 и ChatGPT. Предлагаю поговорить о том, как работают трансформеры в NLP и каким образом они справляются с самыми разнообразными задачами, такими как машинный перевод, автоматическое реферирование, анализ тональности и ведение свободного диалога с человеком на естественном языке.

В лекции начнём с рефрешера о трансформерах, затем расскажу о том, как исследователям и инженерам из OpenAI удалось обучить ChatGPT. Поговорим о том, оправдан ли весь хайп вокруг этой модели. Также оставлю время на вопросы и свободную дискуссию. Надеюсь, что лекция будет интересна как начинающим, так и практикующим специалистам в NLP.
Пару недель тут не постил, время было немного суматошное по работе и не только. Но вот исправляюсь)

Решил поделиться слайдами со своего выступления про трансформеры и ChatGPT (подробнее о содержании в предыдущем посте). Доклад вызвал большой интерес, а после была ещё классная дискуссия с коллегами на целых полтора часа. Если пропустили само мероприятие, можете посмотреть слайды. Думаю, будет полезно и познавательно, особенно тем, кто пока не очень в теме. (А ещё там есть шутки и мотивационные цитаты от ChatGPT)
#ml
Что мешает нам учиться или тайна исчезающей мотивации
#soft_skills

Задавались ли вы когда-нибудь вопросом, почему не получается сохранить мотивацию надолго? Например, человек вдруг захотел научиться играть на гитаре, купил себе инструмент, с восторгом и энтузиазмом начал заниматься, вот уже первые успехи - получилось сыграть бой "шестёрку", взять аккорд G - ещё больше мотивации, но... Подкрались и первые трудности, пальцы болят, упражнения делать лень, первоначальный запал куда-то подевался, и человек бросает то, что могло бы стать классным хобби на всю жизнь.

Наверное, у каждого есть подобный неудачный опыт, когда не получилось научиться чему-то интересному и сложному, хотя вроде бы сначала очень хотелось. Я думаю, что на 90% причиной подобных неудач являются неправильные представления и завышенные ожидания. Мы представляем себе процесс обучения как размеренный подъём по ступенькам лестницы. Нам кажется, что прогресс должен быть постоянным и заметным, что мотивация должна всегда нас сопровождать на этом пути. Если реальность отличается от ожиданий, велик соблазн подумать: "Проблема во мне. У меня нет способностей. Это просто не моё." и всё бросить.

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

Ещё здесь мне хочется упомянуть три типа людей, у которых не получается достичь высокого уровня владения чем-либо сложным, будь то программирование, иностранный язык или игра на музыкальном инструменте. Я узнал об этих типажах из книги Джорджа Леонарда "Mastery". Знакомы ли они вам?

1. "Вечный неофит" (the Dabbler). Обожает начинать что-то новое, рассказывает о новом увлечении всем друзьям и знакомым, ловит кайф от первых успехов. Как только наступает плато, мгновенно теряет интерес и переключается на что-то другое.

2. "Одержимый" (the Obsessive). Всё ради результата. Бешеная мотивация, работа по 16 часов в сутки, любая неудача - это слабость, я не неудачник, я должен быть лучшим, мне нужен только быстрый прогресс... Выгорание и разочарование в себе.

3. "Хакер" (the Hacker). У них неплохо получается овладеть самыми азами, но дальше им становится лень. Нет желания развиваться и углублять знания. Не реализуют свой потенциал, потому что не берутся за дело всерьёз.

Каждый из нас может увидеть в себе черты, присущие одному или нескольким из этих типов. Важно вовремя это заметить и осознать, что подобные паттерны поведения - путь в никуда.

В заключение - успехов вам и не сдавайтесь!
Узнал от коллеги, что вышел опенсорсный "аналог" ChatGPT. Он простоват, конечно, по сравнению с творением OpenAI, но создатели говорят, что будут его развивать. Он понимает и по-русски, но на вопросы на английском умнее отвечает. См. скриншоты)
Поболтать с ним можно здесь:
https://huggingface.co/spaces/togethercomputer/OpenChatKit
Как правильно оценивать чатбота-"болталку"?
#ml

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

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

Оценка тоже не самая простая. Чем чётче обозначены критерии, тем легче будет работа разметчиков, а значит, тем надёжнее результаты. Есть разные методики оценки, в их числе sensibleness and specificity average (SSA), которую разработали исследователи из Google. Она довольно проста и эффективна: оценивают разумность и специфичность ответов бота. Вот тут можно подробнее прочитать, но если вкратце, разумность - это про адекватность ответов, отсутствие в них бреда и оскорблений, например. Специфичность интереснее: ответы бота не должны быть слишком односложными, короткими, "на все случаи жизни". Простой пример:

Пользователь: У моего сына сегодня день рождения.

Бот А: Отличная песня!
Данный ответ не имеет смысла в этом контексте, поэтому он получает оценку 0 за разумность. Если за разумность 0, то и за специфичность автоматически тоже 0.

Бот Б: Понятно.
Данный ответ, в целом, разумен, но не специфичен, много на что можно сказать "понятно", но развитию темы это не способствует. Поэтому оценки 1 и 0, соответственно.

Бот В: Поздравляю от всей цифровой души. А сколько лет вашему сыну исполняется?
А вот это уже и разумный, и специфичный ответ. Да ещё и с юмором. Кстати, реальный ответ нашего бота. Вот бы он всегда так хорошо отвечал)

Мы добавили к SSA ещё пару дополнительных критериев, важных для бизнес-задачи. Итак, у нас есть оценки от трёх разметчиков по четырём параметрам. Что дальше? Имеет смысл также измерить согласие между аннотаторами. Каппа Коэна - отличная метрика, которую очень легко посчитать с помощью библиотеки scikit-learn. Она лучше, чем просто усреднение ответов разметчиков, потому что учитывает вероятность случайного совпадения. Другими словами, если у вас всего два возможных класса (0 и 1) и их распределение неравномерно, то вероятность случайного совпадения оценок гораздо выше, чем если бы классов было 15 и они встречались бы примерно с одинаковой частотой.

Каппа Коэна считается для каждой пары аннотаторов, благодаря чему мы можем увидеть, например, что ответы одного из разметчиков сильно отличаются от ответов двух других. Это может говорить о том, что данный эксперт не так понял задачу и его следует проинструктировать ещё раз. Или возможна ситуация, когда у всех троих разметчиков очень разные оценки по одному из критериев - тогда, возможно, данный критерий стоит сформулировать более понятно.
Что нас ждёт в будущем
#ai #softskills

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

Очевидно, что искусственный интеллект заберёт часть работы у людей. Многие западные компании уже сокращают 10-15% своих сотрудников, делегируя их обязанности ИИ. Однако это коснётся, по мнению Джасприта, лишь специалистов - программистов, журналистов, иллюстраторов, врачей - с низкой квалификацией. Для остальных ИИ станет новым полезным инструментом, повышающим продуктивность и позволяющим добиваться большего. Например, хороший программист сможет быстро генерировать с помощью ИИ код для решения несложных задач. С последующей проверкой, разумеется - как после джуна. Квалифицированный дизайнер сможет получить от ИИ-модели первоначальные идеи, затем создать на их основе что-то своё. И так далее. Другими словами, "вашу работу отнимет не ИИ, а человек, умеющий пользоваться ИИ".

ИИ также создаст новые вакансии на рынке труда, пример - те же промпт-инженеры, но не только. Отсюда вывод - нужно продолжать учиться чему-то новому всю жизнь (что на самом деле полезно для мозга). Это один из главных софт-скиллов для будущего, наряду с гибкостью и умением адаптироваться к изменениям. Не поглупеют ли люди с дальнейшим развитием ИИ? Но такие опасения высказывались и с появлением калькулятора и первых компьютеров. Хотя Джасприт считает, что разрыв между "умными" и "глупыми" всё-таки увеличится. Люди, не желающие развиваться, ещё больше утвердятся в этом, ведь им станут доступны ещё более заманчивые развлечения, а любители изучать что-то новое получат новый мощный инструмент для этого.

Как видно, Джасприт с оптимизмом смотрит в будущее. Даже не в будущее, ведь оно уже наступило (futurism -> nowism). Да, есть разумные опасения относительно ИИ, высказываемые сообществом. Однако ИИ - лишь ещё один инструмент, который может использоваться как во зло, так и во благо - как расщепление атома. Лично мне кажется, что общество в целом не станет кардинально счастливее или несчастнее с развитием ИИ. Наше счастье гораздо больше зависит не от инструментов и технологий, а от нас самих, наших навыков и желания становиться лучше.
В эту субботу буду проводить мок-интервью. Это как обычное техническое собеседование, только тренировочное. Так что у вас есть редкая возможность посмотреть, как я собеседую. 🙂 Если интересно, приходите!

#career
Forwarded from Yury Yakhno
Junior NLP Developer Mock Interview

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

Встречайте! В субботу 8 апреля в 13:00 в Zoom Наталья Соколова пройдёт мок интервью с Алексеем на позицию Junior NLP Developer.

Встреча будет состоять из следующих частей:
▫️Само мок интервью. Во время него мы просим никого не задавать вопросы и ничего не писать в чат, чтобы не отвлекать участников.
▫️Обратная связь от Алексея и Натальи
▫️Вопросы и свои варианты ответов от зрителей

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

1. Если на собеседовании будут спрашивать про Python, какие вопросы могут быть?

На уровне мидла / сеньора по Питону можно ожидать вопросы про декораторы + functools.wraps, метаклассы и чем их лучше заменить, контекстные менеджеры, переписывание операторов (+ - * == > и т.д.), дескрипторы, наследование vs композиция vs микс-ины, pytest, разрешение circular imports, аннотирование типов и т.п.

На уровне джуниора часто спрашивают про то, когда лучше использовать какие типы данных (список vs словарь vs множество vs кортеж), list/dict comprehensions, generator expressions, принципы ООП.

Всем полезно знать про инженерные практики: SOLID, DRY, AHA, YAGNI и т.п.

2. Как оставаться в курсе трендов NLP (особенно когда уже владеешь теоретической базой)?

Я обычно, чтобы быть в курсе трендов, читаю телеграм-каналы наподобие:

https://www.tgoop.com/dlinnlp
https://www.tgoop.com/gonzo_ML
https://www.tgoop.com/doomgrad

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

Иногда полезно выборочно читать новые книги, издаваемые авторитетными издательствами (O'Reilly, Manning), там бывает более систематичное и подробное изложение относительно "больших" тем (например, какой-то конкретный фреймворк или тип задач).

3. Какие есть бесплатные онлайн-курсы не про алгоритмы ML, а про выведение моделей в продакшн, применение ML в реальных приложениях и т.п.?

Вот эти рекомендую посмотреть:

https://www.coursera.org/specializations/machine-learning-engineering-for-production-mlops
https://ods.ai/tracks/ml-system-design-22
https://c.d2l.ai/stanford-cs329p/

#ml #career
2025/10/19 18:55:19
Back to Top
HTML Embed Code: