Юрий Кашницкий (Yorko, тут @yurycorn) – про машинное обучение, науку, галеры, матан, фэйлы и прочие интересности. Рекламы нет. https://www.linkedin.com/in/kashnitskiy
Инбурхеринх в Нидерландах
#life
Коль уж канал называется New Yorko Times, буду больше рассказывать про свои “новые времена”. Я тут давеча сдал все экзамены, без пяти минут (и одного года) голландец, расскажу про процесс натурализации. По-нидерландски он называется inburgering (инбурхеринх).
Немного контекста: в Нидерландах действует программа налоговых поблажек для высококвалифицированных мигрантов (kennismigrant), 30% дохода не облагаются налогом в течение первых 5 лет. Это называется 30% ruling, соотв. галка есть в калькуляторах доходов, например, тут https://thetax.nl. К примеру, с гросс 100к с рулингом на руки – 6к евро в месяц, а без рулинга – 4800 (разница в 20%, а не 30%, поскольку все сложно, налоговая шкала прогрессивная). Когда рулинг заканчивается, одновременно надо побираться решать финансовые вопросы и обновлять разрешение на проживание в стране. Тут вариантов как минимум 5 – от “оставить все как есть” до смены гражданства. Для ПМЖ и гражданства надо сдать языковые экзамены.
Экзаменов 5 или 6 экзаменов: 4 стандартных, как в IELTS/TOEFL (письмо, слушание, говорение, чтение) и экзамен на знание голландского общества (+ истории, политики, налогов, страховок и всякой бытовухи). Тем кто не работает, надо еще сдать экзамен по ориентации на нидерландском рабочем рынке: сделать портфолио и пройти интервью. Самое сложное, что интервью на нидерландском (вот ведь засада!).
Я еще проскочил с уровнем A2, это довольно лайтово и, соответственно, недостаточно для нормального диалога с нидерландцами. Уже долго обещают повысить до B1, что вдвое сложнее. Пока оно все свежо в памяти, расскажу.
В принципе экзамены не так уж нереально взять с наскока, по-физтеховски (японский? ща докурим, пойдем сдавать). Проходной бал – 6 из 10 по каждому экзамену. Но конечно, лучше хоть чутка выучить язык в целом, чтоб хоть по мелочи уметь объясниться. Мы с женой записались на курсы, 4 месяца прям ходили в школу, сидели за партами и поднимали руки (если кому нужна рекомендация школы в Гааге – пишите в коменты). Это pre-train. После этого еще зафайнтюнились уже чисто под экзамены, 5 занятий с репетитором должно быть достаточно.
Далее я вкратце пройдусь по экзаменам. Это уж точно интересно только тем, кому все это предстоит, так что продолжение – в посте (по-прежнему бесплатно).
Идея для стартапа: классификатор ебучих LLM ботов в комментариях
Читать полностью…Короткий курс по трюкам использования chatGPT
#courses #ml #chatgpt
ChatGPT Prompt Engineering for Developers
Наш любимый Эндрю Ын в коллабе с сотрудницей OpenAI Isa Fulford рассказывает, как правильно общаться с chatGPT.
Плюсы курса:
- бесплатный (пока)
- короткий – всего порядка 10 лекций по 5-10 минут
- очень практический – почти всюду сплошь примеры промптов и дергания API OpenAI
- платформа удобная, справа видео, слева – сразу поднимается Jupyter с тем же нубуком, что в лекции, можно сразу параллельно играться с кодом
- для тех кому 30+ – снова увидеть Ына, покряхтеть, вспомнить курс ML и как все начиналось, как молоды были мы и наша дисциплина
Некоторые из рассматриваемых трюков и сценариев использования chatGPT:
- мелочи типа того, что фразу, которую подаешь на вход, стоит заключить в тройные обратные кавычки (или любой другой символ) и сказать chatGPT об этом. Тогда chatGPT точно знает, куда смотреть
- форматирование выхода: можно явно попросить chatGPT вернуть JSON и тогда не надо надеяться, что chatGPT ответит как надо и искать нужный ответ регулярками (ведь мы знаем, что если вы решаете проблему с регулярками, то у вас уже две проблемы)
- приложения: анализ тональности, перевод, пересказ текста и т.д., все с промптами
- в конце – пример бота, принимающего заказы пиццы, бэкенд – чисто на chatGPT
Что мне не хватило:
- примеры few-shot learning, как в промпт подать пару-тройку примеров задачи так, чтоб качество было лучше в сравнении с zero-shot
- оценка качества downstream задач типа оценки тональности. Да, все красиво, быстро-удобно, но насколько это хорошо работает в сравнении со специально обученными под задачу моделями?
- хотя бы намеки на то, как это все дебажить. Если бот по заказу пиццы работает с одним длинным промптом (сначала уточни вид пиццы, потом размер, потом предложи напиток и т.д.), то кажется, что дебаггинг надо сразу в психушке проводить
Но несмотря на минусы, курс однозначно стоит 2-3 часов вашего времени и нуля рублей. Рекомендую взять пару своих задач (из петов или рабочих) и по мере прохождения курса играться с ними.
Эссе на Kaggle competition cards и обзор NLP-соревнований
#links_with_intro #ml
“Competition Cards & Recent NLP competitions”
Внезапно тряхнули стариной и вписались c Андреем Лукьяненко (a.k.a artgor) в Kaggle. Но не затаскивать 6-ой знак после запятой, а писать эссе (гуманитарии, добро пожаловать на Кэггл! oh wait…). Название команды подходящее – 2senior2code.
Соревнование Kaggle 2023 AI report весьма необычное – написать что-то в районе 2к слов про одну из тем: Text data, Image and/or video data, Tabular and/or time series data, Kaggle Competitions, Generative AI, AI ethics, Other. Далее Peer-review, а финальное решение принимается жюри из кэгглеров, уже продемонстировавших свои хард- и софт-скилы (думаю, кэгглеры считают шутку, для них же: вот состав жюри – Bojan Tunguz, Dieter, Heads or Tails, Karnika Kapoor, Parul Pandey, Paul Mooney, Phil Culliton, Rob Mulla, Sanyam Bhutani, Will Cukierski). Был бугуртеж по поводу медалей, сначала планировали давать прям настоящие медали за эссе, но после протеста уважаемых тру мастеров отказались. Тем не менее в призах – очки в рейтинг кэггла (пофиг) и деньги (а вот тут неплохо, топ-7 командам- по $10k, щедро).
Наподобие Model cards и Data cards, я придумал Competition Cards, лаконично пересказывающие, о чем было соревнование и, главное, что сообщество вообще узнало по итогу (часто – ничего, все те же терафлопсы в обмен на 6-ой знак после запятой).
И так мы с Андреем сделали обзоры 4-х из последних NLP-cоревнований, а также в целом порассуждали, куда двигался NLP на кэггле в последние 2 года. Несколько наблюдений:
- LLM-революция по сути еще не дошла до Kaggle, вангую, уже в следующей NLP-cореве мы увидим зоопарк квантизованных ллам и альпак, втиснутых в кернелы
- Одно из соревнований (Coleridge Initiative - Show US the Data) затащили почти полностью регулярками. Вроде красиво, если б не регулярки
- Хурмомятни из трансформеров с псевдо-лейблингом и ансамблями все еще сота, в этом плане с 2019-го , когда мы победили в Google Q&A Quest Labeling мало что поменялось (в частности, CommonLit Readability Prize – ровно то же)
- DeBERTa – выбор трасформера по умолчанию
- Какие-то минорно интересные новые идеи появляются, но задротские, интересней посмотреть, что все же будет с LLM
Ps. спасибо Владу @kaggme за фидбек по эссе (Влад как раз из тех, кто в коулридже прыгнул на 5-ое место в основном за счет регулярок)
Как появился attention
#coolstorybob #ml
Причины, по которым я порой смотрю доклады крутых чуваков даже на уже известные темы – это, во-первых, посмотреть, как люди презентуют, во-вторых, можно услышать всякие байки. И вообще эрудированных людей приятно слушать.
В этом вводном видео про трансформеры Andrej Karpathy упоминает статью 2015 года ”Neural Machine Translation by Jointly Learning to Align and Translate”, с которой все началось, и рассказывает про свою переписку с Dzmitry Bahdanau – первым автором. Дима написал Андрею длинный имейл с предысторией того, как он пришел к идее attention (вот этот момент в видео Karpathy). Про bottleneck между энкодером и декодером уже все знали, было много не самых удачных экспериментов. Потом Dzmitry задумался, а как же он сам переводит с одного языка на другой, и понял, что он постоянно прыгает взглядом между source-языком и target-языком. То есть чтоб произвести очередное слово в переводе (или понять, почему именно это слово стоит в готовом переводе), надо посмотреть на несколько слов в исходном предложении. Так Dzmitry смоделировал soft search через softmax – и это заработало прям с первой попытки. Что было дальше, вы знаете.
Кстати, сам термин “attention” предложил Bengio в одной из финальных правок статьи. Кто знает, как взлетела бы идея, если б не крутое запоминающееся название. Вот она мудрость отцов. Так и представляю: «так, Дима, покажи, что там навертел. О, так это ж Внимание!»
Обманывая undetectable.ai, обманывающий детекторы chatGPT
#ml #chatgpt
Продолжаем эту нескучную тему, находим новые приколы. Есть такая тулза undetectable.ai, которая, во-первых, прогоняет кучу детекторов (OpenAI classifier, GPTzero, ZeroGPT, Copyleaks и иже с ними), а во-вторых, обещает переписать твой текст так, что он становится более “человеческим” и обходит детекторы. Есть даже КРИЭЙТЕРЫ, считающие, что это этически норм, брать и описывать в деталях, как обойти любые детекторы (преподы аплодируют стоя). Все подробности, что нашел: модель обучена на миллионах текстах и понимает нюансы текстов, написанных людьми (hackernoon). У меня есть вопросы уже на этапе отрисовки зеленых галочек напротив каждого детектора, я вот не у все из них нашел API и даже если взать один только OpenAI классификатор – он работает с текстами длиннее 1000 знаков, а вот undetectable.ai показывает ответ этого классификатора и на коротких текстах. Прям чудеса next.js, не иначе. Понятно, почему спрос на фронтендеров не меньше, чем на млщиков.
Ладно, потестим. Не претендую на репрезентативность, поделюсь одним примером (иначе говоря, мы проводим Качественное Исследование).
Возьмем первый абзац статьи на Вики про квантовый компьютер. Вот две вариации этого абзаца:
1. A quantum computer is a type of computer that utilizes the principles of quantum mechanics. At the microscopic level, matter behaves as both particles and waves, and quantum computing takes advantage of this peculiar behavior through specialized hardware. The functioning of these quantum devices cannot be explained by classical physics, and if a quantum computer can be developed on a large scale, it has the potential to perform certain calculations significantly faster than any current "classical" computer.
2. A quantum computer is a remarkable type of computer that taps into the fascinating world of quantum mechanics. When we zoom in to the tiniest scales, the stuff that makes up our physical reality behaves in ways that are both particle-like and wave-like. Quantum computing takes advantage of this mind-boggling behavior by using special hardware. Interestingly, classical physics, the kind we're familiar with, falls short in explaining how these quantum devices actually work. If we manage to create a quantum computer that can be scaled up effectively, it could potentially outpace any of our current "classical" computers in solving certain problems, performing calculations at an exponentially faster rate.
Сможете угадать, где сгенерированный текст, а где человеческий?
Ответ: оба написаны chatGPT, промпт для первого: “Can you paraphrase this text: <wiki_text_on_QC>”. Промпт для второго: ”Can you paraphrase it so that it looks human-written?”
Что скажет undetectable.ai? Исходный текст на Вики – все детекторы зеленые. Перефразировали с chatGPT – все детекторы красные. Пока круто (если не считать, что OpenAI не дает ответа для коротких текстов, но простим такой косяк). Теперь второй абзац, который написан chatGPT с промптом, просящим сделать текст более похожим на человеческий. Оп! Снова все детекторы зеленые.
The arms race goes on!
Data Fest 2023 и мой докдад про Generative AI & Research Integrity
#science #ml #chatgpt
Пока вышло две расширенных текстовых части моего доклада:
- как Generative AI помогает фальсифицировать научные статьи и как мы с этим боремся
- как я организовал (не самое удачное) соревнование при COLING 2022 по детекции AI-генерированного научного контента
Будет еще третья 🧐, наконец про детекторы chatGPT-генерированных текстов. Если не хочется ждать, а также хочется послушать меня живого – то вот запись моего доклада (заодно байки-шутейки). А тут можно найти все треки Data Fest 2023 по разным тематикам (я слушал только шикарное интро в RLHF от Игоря @seeallochnaya, но думаю еще в Career трек заглянуть).
Generative AI & Research Integrity. Часть 2. Как я организовал не самое удачное соревнование
#science #ml #chatgpt
В первой части я рассказал про Paper mills, как мы с ними боремся и при чем тут Generative AI. Также чуть раньше был пост про то, что распознавать текст, сгенерированный chatGPT, не так-то просто, и OpenAI тут репортит честные метрики, а не 99% accuracy, как у стартапов. Конечно же, мы тоже долго кумекали, можем ли мы надежно распознавать сгенерированные статьи и даже организовали соревнование при COLING 2022, про которое я тут расскажу (также эту на тему есть отдельный пост на английском в одноименном блоге). Оно не то чтобы удалось, и это только подтвердило, что задача непроста.
Мы взяли тексты из сотен отозванных статей журнала “Microprocessors and Microsystems” – про них раньше было исследование, часть статьи про tortured phrases (помните? “image acknowledgement” вдруг вместо “image recognition”, и ”quantum doors” вместо “quantum gates”): где-то в 2021 вдруг число статей на выпуск сильно выросло, а время рецензирования подозрительно сократилось. Также в этих выпусках обнаружили целые россыпи tortured phrases, порой по 30-40 на статью. Эти тексты пометили как "фейки". Чтоб сбалансировать, взяли аннотации более ранних статей того же журнала, в которых проблем не было выявлено. Это первые две части датасета – одна из фейков, вторая – из текста, написанного людьми (и тут вы уже чувствуете, что метки не идеальны. Даже в хорошие более ранние статьи “Microprocessors and Microsystems” могло просочиться немного сгенерированного контента, и, наоборот, в стрёмных выпусках после 2021 тоже что-то может быть написано людьми).
Чтоб не затачиваться только под один домен, я добавил аннотации статей на все темы – от солнечной энергии и прав человека до бедности и урбанизации (это из соседнего проекта по классификации статей по вкладу в Sustainable Development Goals). Далее наш любимый HuggingFace, берем эти аннотации и по-всякому над ними издеваемся: пересказываем с pszemraj/led-large-book-summary, по первой фразе генерируем продолжение с EleutherAI/gpt-neo-125M и GPT-3. Также перефразировали некоторые аннотации с помощью SpinBot (это прям рассадник tortured phrases).
Сделал train/test split с 70% текстов в тесте, подготовил бейзлайн на ~82% F1 c tf-idf & logreg – да запустил соревнование, думая, что SciBERT добавит 2 процента, как обычно. Сроки поджимали, SciBERT-нубук был на подходе, но надо было уже запускать сореву. Уже даже с логрегом я заметил, что некоторые подвыборки теста классифицируются идеально, например, все пересказанное моделью pszemraj/led-large-book-summary – там шаблоны начала “in this paper authors propose” или “the authors suggest to” выучиваются даже с tf-idf.
В-общем, запустили соревнование, а через несколько дней я понял, что SciBERT выбивает >98% по метрике F1. Фэйл, дальше возня пошла за проценты и доли процента, у победителей в итоге 99.43% на лидерборде (у двух команд скор совпал, но читерства не заметно). Слегка обидно, что создается иллюзия легкости задачи, хотя я уже догадывался, что тут с дата-дрифтами все поломается.
Продолжение ⬇️
Generative AI & Research Integrity. Часть 1.
#science #ml #chatgpt
В продолжение поста про Elsevier и антифрод в науке расскажу чуть подробнее про paper mills (но не слишком подробно ибо NDA). Также о том, где тут GAI (Generative AI). Это расширенная версия первой трети моего доклада на DataFest 2023 (слайды, видео еще не дали).
Paper Mills – довольно организованный бизнес, удовлетворяющий потребность исследователей регулярно публиковаться, даже когда ничего стоящего под рукой нет. Оверфит на индекс Хирша и парадигма “publish or perish” этому всячески помогают.
Схем много, классическая: есть организация с широкой сетью издателей (editors) и рецензентов (reviewers), которые с этой организацией в сговоре. Далее идут манипуляции на этапе рецензии статьи: издатель принимает статью, несмотря на негативные рецензии, либо находит рецензентов из своего “кружка” – так или иначе, некачественную статью принимают. Попутно видно много всякого другого фрода: издатели форсят ссылки на самих себя, проталкивают цитирование нерелевантных статей и т.д. Есть публичный ресурс PubPeer, где кто угодно может выразить сомнения по поводу легитимности любой научной статьи. Вот очень показательный пример – в статье куча нерелевантных ссылок на Guest Editors, а также вдруг автор Di Wu выбрала имейл eryueh12@163.com. Хм…
Пример такой Paper Mill (Натёкин внезапно пришел послушать мой доклад на фесте, он предложил неплохой аналог термина на русском: изба-писальня): 123mi.ru. Полюбуйтесь на красавцев: продают авторство, обещают опубликоваться в любом из топовых журналов. На вкладке “Наши рецензенты” – список из >1k универов, в том числе весьма уважаемых. Иронично, что есть вкладка про мошенников (остерегайтесь!). Про эту избу-писальню уже в 2019-ом было разоблачение. Ничего, выжили, оперируют, сидят в Москве-Сити.
Классически с Paper Mills борются вручную: у паблишеров есть команды Research Integrity / Publication Ethics, и там аналитики вручную исследуют стремные случаи. Хорошо если Excel, чаще просто тычут в кнопки имеющихся инструментов типа Editorial Manager. Понятно, что это вообще не масштабируется. Крупные научные паблишеры начали применять Data Science, чтоб масштабированно находить фрод в статьях/процессах рецензирования и т.д. Вот я как раз тащу эту инициативу в Elsevier. Паблишеров активно критикуют за profit margins и то, какое говно они публикуют, кто-то должен с этим что-то делать. Так что как я занялся Research Integrity, то и успокоился насчет собственной миссии при работе на паблишера.
Мы написали небольшую либу, которая считает разные признаки статей, пришедших из paper mills. Вот тут как раз NDA, нельзя помогать читерам, рассказывая, как ты с ними борешься. Но из общеизвестного и интуитивно понятного: можно ловить подозрительно продуктивных авторов и рецензентов, посмотреть на авторов, возникающих “ниоткуда” уже после того, как статья принята (это индикатор authorship for sale – многомиллионного бизнеса, статья в Nature) и т.д. Мы плодим отчеты, подсвечивающие тысячи подозрительных статей и (пока) около пары десятков признаков. Собственно, боттлнек теперь – кожаные мешки, анализирующие такие случаи. Благо, мы осветили проблему на уровне CEO, теперь нанимаем кучу аналитиков в команду Research Integrity. Тут непаханое поле, и data engineering, и аналитиков организовать, и просто процессы оптимизировать. Также бэклог исследований огромный, штук 40, от простых вещей до мини-проектов – фантазия читеров очень богата.
Продолжение ⬇️
Внезапная скромность OpenAI про 26% полноты
#ml #chatgpt
Кто-то из Эффективных Менеджеров паснул в мою сторону статью Forbes про yet another (для меня) и революционный (для менеджера) детектор текста, сгенерированного chatGPT, у которого 99% accuracy. Мол цени, че свяжемся, потестируем?
Читаю статью. Ну, датасет из 128 статей это уже и не смешно. Интересно подбить списочек по метрикам:
- TurnitIn: 98% accuracy
- Copyleaks: 99% accuracy
- Winston AI: 99% accuracy
- AI Writing check: 80-90% accuracy
- OpenAI classifier: 26% recall, 91% specificity, 58.5% accuracy (если я тут все верно посчитал)
Кекьх. Отчего это вдруг у OpenAI такая скромность? Они создали chatGPT, нанимают лучшие умы, которые потом пашут по 60-90 часов в неделю. И что, они проигрывают универу Канзаса в задаче детекции chatGPT-контента?
Конечно, нет. Задача, в общем-то не так проста. Или, как говорят спецы по мемам, есть нюанс. Описал в новом посте, почему это так. Подкрепляется моим опытом организации COLING 2022 трека с примерно той же задачей. Вот полный пост, а выжимка такова:
- модели участников соревнования выбили по 99%, явно переобучившись на фичи датасета (например, что модель-пересказчик, всегда начинает с какой-то одной фразы-открытия)
- один из победителей соревнования Domenic Rosati опубликовал папирус, где показал, что модели, обученные на данных моего соревнования, не обобщаются на новую похожую выборку, полученную немного другими DL-моделями
Задача пока вообще не решена. И чем дальше, тем сложнее будет сказать, где человеческий текст, а где машинный.
А пока… можно заявлять 95% и толкать свой продукт. Как Дороничев c новым стартапом в смежной задаче распознавания фейк-изображений. Если вы где-то слышите про "99% точности» в этой задаче, перешлите людям этот пост или английский вариант.
Ps. я все же разобью текст своего выступления на DataFest на несколько постов. Stay tuned.
EDA за еду
#random #career
Задание по анализу данных уровня Кэггл гусь+ (1.5 story points):
1. import pandas as pd
2. Идем в файловый сервис компании (а-ля sharepoint) и вводим ключевые слова: salary, total compensation, TTC и т.д. В собственном пэйслипе можно еще подсмотреть
3. Скроллим, ищем эксельки с характерными названиями типа Book1.xlsx, случайно пошаренные на всю компанию
4. Скачиваем, суем в жупитер нубук. Крутим-вертим, удовлетворяем любопытство
5. Сообщаем владельцу о торчащем файле
При остром приступе ответственности п. 4 пропустить
#chatgpt
Два комментария к этому посту и дальнейшая вакханалия в канале красноречиво иллюстрируют соту в детекции LLM-текстов
А вот мой набросок Competition Card. Круто, конечно, сделать сервис со списком соревнований и такими карточками (еще чтоб был совсем краткий пересказ, а по клику – развернутый). Идея слегка утопична, мало кому такое под силу. Но если б, например, организаторы соревнований писали post-mortem обзоры с такой структурой, было бы классно
Читать полностью…#shitpost #friday
Пятничные рабочие митинги продолжаются. Жаль, не сфоткал реакцию кота, это был самый эпичный кошачий WTF со времен появления в доме орущего бздюка. На митинге старался не кивать, чтоб головной убор не приземлился на ноут.
О гномиках и литкоде на собесах
#interview #tips #career
Никто не спрашивал, поэтому вот мои рассуждения про отличие олимпиадных математических задач (“гномиков”) от алгоритмических и задач про структуры данных (”литкод”). А то бывает, сетуют на литкод и обзывают его “гномиками”.
“Гномиками” будем называть далекие от практической пользы задачи типа этой, ставшей классической. Еще типичная: есть там остров, бревно, по нему может с фонарем пройти только один человек, папа за 2 минуты, мама за 3., и т.д., за сколько все семейство переберется (немало такого было в моей истории про самый упоротый собес, а также в посте про Санька с Wall Street).
При всем уважении к олимпиадникам и всесторонне развитым людям, гномики - это мало кому нужный мозгодроч, заниматься этим можно в рамках кружка-квадратика юных математиков, чтоб тебя называли сыном маминой подруги. Ну и для персонального развития. А карьере SWE/DS никакого отношения не имеет, даже Гугл подтвердил, что корреляции riddle performance с продуктивностью кандидата – нет (“In Google we analyse everything with data, and what we discovered was that when we examined our brain-teasers, they weren’t a good predictor at all in terms of whether someone would be a good hire or not. So we don’t do them anymore”). Если тебе задают гномика на собесе, смотришь че за компания. Если The Only One - ты должен был знать заранее и ботать гномиков. Если нет - вежливо посылаешь нах, запасные варианты всегда должны быть.
Пример гномика: докажите, что между 100500 и Гуголплекс не менее Гугол простых чисел.
Алгоритмы и структуры данных - это совсем другое, основа основ для любого человека, пишущего код. Например, если ты не знаешь, что lookup в списке не надо делать, а в множестве – можно, то тебе будет тяжело писать эффективный код. Будешь продакту мямлить: “нужно еще пару недель, все работает, но выжирает всю память”. Еще пример из жизни: в телекоме соседний отдел оптимизировал прокладку оптоволокна, решал задачу на графе и вместо алгоритма Беллмана-Форда запускал Дейкстеру для каждой пары вершин. Коллега пришел все пофиксить, но утонул в легаси. В итоге в паре мест поменял списки на множества, шесть строк переписал на нумбу, good enough (возможно, нам все еще дейкстра по всем парам бегает). Так что базовые вопросы по алгоритмам и структурам данных – вполне неплохая идея при отборе любых спецов, пишущих код.
Пример: реализуйте Python-класс Очередь с такими-то базовыми операциями.
Если ты подобные вопросы помечаешь у себя в голове тегом «гномик» - это самообман. Можно делать свой фит-предикт и ждать, когда Generative AI вытеснит тебя из профессии.
Поиск почти-дубликатов в большой коллекции текстов
#tutorial #nlp
https://yorko.github.io/2023/practical-near-dup-detection
Добрались руки написать тьюториал по этой вроде бы простой задаче. Есть много текстов, скажем, 5 миллионов. Как бы среди них найти почти-дубликаты так, чтоб это было:
1) легко, желательно без всякого ML
2) масштабируемо
3) без false positives
4) и чтоб разметки на входе тоже не надо было?
Почему брут-форс не подходит, думаю, понятно: 5 млн. объектов – это 12.5 трлн. пар, можно конечно хадуп потопить купюрами, но можно и умнее поступить.
Помню, ходил я с этим вопросом в ODS, и что-то советы мне не очень понравились, кто-то советует ElasticSearch запрягать, кто-то советует BERT-эмбеддинги в векторную базу сложить. И так я поковырялся да пришел к LSH и ее имплементации в Python – Datasketch. Вот про как раз тьюториал, можно брать и пользоваться.
К слову, я эту технику применил к научным статьям, и там целая россыпь интересных приложений вылезла, те же paper mills, salami-slicing (когда берешь свою длинную статью, делишь на части и публикуешь несколько мелких статей), simultaneous submissions и т.д.
Generative AI & Research Integrity. Часть 2. Как я организовал не самое удачное соревнование (продолжение)
#science #ml #chatgpt
Самым полезным выхлопом от соревнования оказалась статья одного из победителей Domenic Rosati. То, что я подозревал, Доменик показал на цифрах. Он сгенерировал новый датасет, похожий на мой – с немного другими темами и другими моделями перефразирования/генерации. Ну и все сломалось. Модели, обученные на данных моего соревнования, выбили только 31% на новом датасете (в постановке бинарной классификации – совсем фэйл, хуже рандома). Также он показал, что если мы хотим распознавать текст, сгенерированный новой моделью, скажем, BLOOM, то BLOOM также должен быть и в трейне. То есть обобщения на другие типы моделей нет.
Недолго сумлеваясь, я позвал Доменика делать новое соревнование – с полными текстами статей вместо аннотаций, token-level классификацией вместо sentence-level и новыми темами и моделями в тесте. Мы пока пролетели с заявками на KDD Cup (там Амазон пришел с кучей призовых, хотя интересный твист плот, если я не прошел потому, что писал заявку не без помощи chatGPT 😂) и NeurIPS (одна рецензия положительная, одна отрицательная #reviewer2, третий ревьюер увидел заготовку соревы на сайте COLING и подумал, что это dual submission – оргфэйл). Так что теперь метим на COLING 2024 🧐
Надо честно признаться, что организация таких соревнований – это развлечение и репутационный бонус (особенно, конечно, если на NeurIPS попадать), но в случае этой задачи в прод далеко не скоро что-либо пойдет, если вообще когда-либо пойдет. Но если все же научиться надежно ловить контент, порожденный более старыми моделями а-ля GPT-2, это уже неплохо, есть попутные бонусы, например, так можно ловить тексты с tortured phrases (возможно потому, что spinbot под капотом использует GPT-2, но это гипотеза).
Про детекторы конкретно GPT-контента и сложности их использования в бою поговорим в 3-ей части.
Generative AI & Research Integrity. Часть 1. (продолжение)
#science #ml #chatgpt
Самой собой, LLM-ки начинают выводить проблему на новый уровень. Недавно была громкая история с испанцем Rafael Luque, который не долго думая плодил статьи с chatGPT и продавал соавторство в них. Видать, неплохо заработал. Он “всего лишь” потерял должность в университете Кордобы, при этом его аффилиация с РУДН остается, а также появляются новые. Полагаю, персонаж продолжит заниматься доходным бизнесом. Кстати, поймали Рафу не детектором chatGPT-контента (такие детекторы обсудим в третьей части), а проще: среди признаков – нерелевантные ссылки на другие работы, а также “tortured phrases” (не буду раздувать пост, про tortured phrases отдельно расскажу) – когда вместо “image recognition” вдруг “image acknowledgement”, а вместо “quantum gates”, по заветам нашего лучшего друга Сиража Раваля – ”quantum doors”.
Пожалуй, самые громкие истории вокруг research Integrity связаны с манипуляциями изображений – подтасовками western blots (молекулярные биологи так определяют в образце белки). Есть “сыщики” типа Elizabeth Bik с орлиным взглядом, умеющим находить пересекающиеся куски изображений и, в целом, визуальный плагиат. Элизабет лично обнаружила манипуляции в более 10к статей. Любители computer vision, тут есть где разгуляться, это еще в целом не решенная проблема. Некоторые инструменты есть (Proofig, ImageTwin), но они далеки от идеала. И понятно, что Stable Diffusion также выводит на новый уровень и манипуляции, и борьбу с ними. Гонка вооружений.
Всяческих манипуляций, конечно же, еще множество. Во второй части расскажу про наш опыт детекции ML-генерированного контента (на основе этого поста). В третьей поговорим про chatGPT-детекторы в духе этого поста.
ML system design в реальных проектах – 200 блог-постов
#links_with_intro #ml
Команда Evidently (наверняка знаете Эмели Драль, она с кофаундером Elena Samuylova пилит решение для мониторинга и тестирования ML-моделей) собрала около 200 блог-постов про ML system design в реальных проектах – от Netflix, Doordash, Booking и т.д. Кажется неплохим источником знаний для “курса по Data Science, которого нет”, про который я рассказывал раньше. Я не большой фанат ссылок на в целом классные подборки, которые добавляешь в закладки, а потом забываешь про них навсегда. Но в данном случае действительно крутой ресурс, в том числе для подготовки к собеседованиям.
Сюда же можно добавить еще 10 case studies, собранных Chip Huyen в книге “Designing Machine Learning Systems” (вот мой пост в том числе про эту книгу). Там каждый из 10 кейсов еще вкратце пересказан.
Про видео-интервью про ML system design и книгу Валерия Бабушкина & Арсения Кравченко, думаю, тут все и так в курсе.