Техножрица 👩‍💻👩‍🏫👩‍🔧 – Telegram
Техножрица 👩‍💻👩‍🏫👩‍🔧
14K subscribers
1.44K photos
65 videos
28 files
765 links
Люблю высокие технологии и кушать.

Добро пожаловать, если в сферу твоих интересов тоже входят математика, DL, NLP, программирование на Python, или тебе просто любопытно, о чем на досуге размышляют люди, занимающиеся разработкой и исследованиями в ML.
Download Telegram
Forwarded from Nikita
Пришёл в голову забавный вопрос - кем бы вы работали, если бы за все профессии платили одинаково? Но при этом необходимо было бы типа фулл-тайм работать, и это была бы существующая профессия (а не "делать что хочу 24/7")
👍4🥰1
Рассмотрим следующую ситуацию. Вы работаете на линуксе с библиотеками HuggingFace на платформе Anaconda3. У вас есть два накопителя - маленький system_drive (смонтированный в точке /) и большой storage_drive (смонтированный в /storage/). Домашняя папка /home/my_user/ живёт на system_drive. Чем дольше вы работаете, тем сильнее разбухают кэш HuggingFace и директория Anaconda3 в домашней папке, и с какого-то момента маленький диск так и норовит переполниться и сломать все расчеты. Что делать?

Поиск в интернете дает несколько советов, но я приберегу их на конец поста, поскольку они имеют ограниченную применимость, а сначала расскажу про хак, до которого мне пришлось догадаться самостоятельно и который решает проблему радикально.
Этот хак - тупое перемещение директорий ~/anaconda3/ и ~/.cache/huggingface/ на storage_drive и создание символических ссылок на них там, где они лежали изначально.

Например:
mv /home/my_user/anaconda3 /storage/
ln -s /storage/anaconda3/ /home/my_user/anaconda3
mv /home/my_user/.cache/huggingface /storage/
ln -s /storage/huggingface/ /home/my_user/.cache/huggingface

Все. Больше ничего менять не нужно. Все скрипты с расчетами будут работать как раньше, анаконда и huggingface transformers будут вести себя как ни в чем ни бывало (главное, следить, чтобы storage_drive всегда был смонтирован куда нужно и чтобы к нему были полные права доступа).

Теперь перейду к советам из интернета.
1) Использовать опцию cache_dir при скачивании тяжелой модели: model.from_pretrained(<model_name>, cache_dir=<cache_dir_name>). В этом случае модель будет скачиваться не в кэш-директорию по умолчанию ~/.cache/huggingface/models/, а в ту, которую вы укажете. Эта же опция работает для скачиваемых токенизаторов, датасетов и всего остального. При использовании этой опции приходится постоянно проявлять внимательность, т.к. если вы забудете ее проставить всего один раз для большой модели или датасета, главная кэш-директория будет беспощадно засрана. С другой стороны, эта полезная опция позволяет легко локализовать и разносить кэш, соответствующий конкретной модели или датасету, по разным дискам, регулируя нагрузку на них. Далее можно переносить скачанные сокровища на другие сервера - например, это может понадобиться, если у другого сервера есть проблемы с подключением к хабу huggingface, но при этом сохранена связь с рабочей сетью. Тогда можно скопировать папку с кэшем туда через scp и подцеплять кэш на том сервере опять через опцию cache_dir.
2) Проверять состояние общежития под названием ~/anaconda3/envs/. Если окажется, что там поселились толстые жильцы (окружения с большим количеством пакетов), переселять их оттуда в /storage/. Главный недостаток: если у вас есть ядра юпитер ноутбука, завязанные на окружения анаконды, они сломаются от переноса окружений. Впрочем, это можно исправить, если после переноса вашего окружения (допустим, ~/anaconda3/envs/myenv) на другой диск оставлять на него символическую ссылку в ~/anaconda3/envs/ так же, как было описано выше. К сожалению, этот способ не поможет, если самым жирным в домике является основное окружение (base).
3) Переустановить анаконду, заранее прописав ей путь на /storage/ во время установки.
4) Переустановить библиотеки huggingface, прописав им в конфигах нужные адреса для кэша (этого делать никогда не пробовала).
Минусы последних двух способов очевидны.

#хозяйке_на_заметку #библиотеки
👍9🔥3
Forwarded from Reaky Leru
Можно HF_HOME в башрц добавить https://huggingface.co/transformers/v4.0.1/installation.html
🔥1
Оказывается, в Steam уже довольно давно есть игра, цель которой - убивать врагов с помощью графиков непрерывных функций. Можно либо прописывать функцию явно, либо задавать как решение дифференциального уравнения и вводить, соответственно, уравнение (краевое условие выводится из стартовой позиции и угла атаки (если применимо)).
https://www.youtube.com/watch?v=P0mbji9N4q0&ab_channel=hueyfragic
Было бы прикольно, если бы в универе устраивали турниры в этой игре для младшекурсников с возможностью получить каких-нибудь баллов для зачета автоматом по ОДУ или матану за победу.
Описание игры + скачивание в виде архива или исходного кода: http://www.graphwar.com/tutorial.html

#математика
🔥17🤯3
Попробовала вручную потестировать ChatGPT на логическом датасете: https://github.com/google/BIG-bench/tree/main/bigbench/benchmark_tasks/formal_fallacies_syllogisms_negation , задав ей 30 вопросов из него.
В этом задании модели дается логический вывод, сформулированный на естественном языке, и задается вопрос, правилен ли этот логический вывод или нет.
Результаты получились неутешительными: модель дала 57% правильных ответов (17 из 30), в то время как случайное угадывание дает 50%. Если прокрутить вниз страницу по ссылке, можно увидеть, что этот результат близок к коридору, в котором находятся результаты публично доступных моделей.
При этом соотношение правильных/неправильных ответов постоянно флуктуировало: среди первых десяти вопросов соотношение правильных/неправильных ответов было 4/6, среди второго десятка - 8/2, среди третьего - 5/5.
В общем, пока не видно свидетельств в пользу того, чтобы ChatGPT действительно понимал логические рассуждения (что и неудивительно, учитывая, что его архитектура вряд ли существенно отличается от GPT-3). А это значит, что все еще рискованно использовать его для решения задач, в которых требуется произвести серьезные рассуждения на какую-то тему, а не просто показать хорошую память или налить воду.
Напоследок на всякий случай напомню, что мое "тестирование" ChatGPT ненадежно из-за того, что количество примеров, которые я могу вбить вручную, не очень большое, а значит, и оценка получается неточная. Жаль, что OpenAI все еще не торопится выкладывать результаты полноценного тестирования ChatGPT на датасетах разной направленности с сотнями и тысячами тестовых примеров. Люди могли бы более осмысленно использовать этот инструмент, если бы с помощью такого полноценного тестирования были четко и ясно обозначены границы его применимости. Правда, тогда бы и хайп про AGI мог слегка приутихнуть... 😏
P.S. На картинках примеры неправильных ответов. Рис.1 - классическая логическая ошибка, неправильный вывод считается правильным. Рис.2 - ошибка обратного характера.

#генерация
🔥14
Время от времени по дороге домой с работы я слушаю подкаст "10 глупых вопросов", и вчера меня заинтересовал выпуск "10 глупых вопросов математику":
https://www.youtube.com/watch?v=EYsr0DZWMCg
Как же у меня бомбануло от этого персонажа... 🤦‍♀️
Часть ответов была более-менее адекватной, но к этому здравому зерну подмешивается такое количество субъективщины, выдаваемой за истину, что диву даешься:

-- Сначала у него ниоткуда, безо всякого объяснения, возник "факт" о том, что знать математику либо "дано" либо "не дано", высказанный, конечно же, очень громким и уверенным голосом. Я не знаю, с какого потолка этот "факт" был взят. Пока у меня есть две версии: а) это его субъективная интерпретация его личного преподавательского опыта; б) это его субъективная интерпретация исследований, демонстрирующих корреляцию между генетикой и способностью решать определенные тесты на интеллект.
Если убрать субъективную интерпретацию, то ни первое, ни второе не влечет существования заранее заданных жестких ограничений на то, насколько высокоуровневую математику каждый конкретный человек может изучить при наличии достаточного количества времени и отсутствии серьезных заболеваний мозга.
-- Таким же уверенным голосом челик неявно выдает свой математический платонизм за единственный возможный способ смотреть на математические объекты, словно бы забывая оговориться, что это лишь один из возможных взглядов на них в философии математики.
-- Затем начинаются еще более странные высказывания на тему Православия (которое, естественно, выдаётся за источник истины). Например, каким-то образом он смог определить "на глаз", что половина математиков из института им. Стеклова исповедуют именно эту религию. Звучит не очень правдоподобно. Я уже молчу про "разговоры с богом" и прочие странности.
-- Вводится спорная концепция "этажей" в математике. Герой выпуска утверждает, что их всего пять, но не уточняет, какие. Мне удалось найти описание "этажей" в другом его интервью - https://trends.rbc.ru/trends/education/62c3e78c9a79474ad93afaca , и я осмелюсь заметить, что выбор этажей, в особенности четвертого, вызывает вопросы. По всей видимости, под четвертым этажом с названием "гомологии и когомологии" здесь подразумевается в целом мат.аппарат алгебраической топологии (интересно, в курсе ли он существования гомотопических групп, экстраординарных теорий (ко)гомологий и характеристических классов?). Но почему именно эта наука? Из-за того, что из нее исторически выросла теория категорий? Но в теории, теоркат можно изучать и понимать (хоть, возможно, и чуть менее глубоко) и без нее, не повторяя исторический путь. К тому же, кроме алг.топа существуют и другие области математики с многократно навороченными друг на друга уровнями абстракции - например, некоторые разделы математической логики. Почему не они стали четвертым этажом?
-- И вишенка на торте: отношение героя к нам, девчатам (в разделе "Кого может вылечить доктор математических наук?"). Оказывается, тов. Савватеев лечит свою жену от "математического невежества"... нет, не потому что ему нравится обсуждать свои интересы с близкими людьми, а для того, чтобы она от знания кванторов (😂) стала умнее и смогла, благодаря этому уму, лучше организовывать быт для своего господина. Ведь, по мнению героя, "человек мужчина не создан для быта" (дословная цитата). Всё, девчата, некогда изучать топосы, пора вернуться на этаж пониже и постирать штаны мужей, которые, сидя там, слишком сильно поднатужились, силясь посчитать симплициальные гомологии отрезка. 😏

P.S. Если говорить серьезно, я не хочу обидеть людей, которым трудно даются симплициальные гомологии или любая другая часть математики и за снобизм прошу прощения - видимо, у тов. Савватеева заразилась, пока слушала его речи.
А снобизма в этих речах, как понятно даже из немногих приведенных примеров, выше крыши, аж уши в трубочку сворачиваются. Неприятно, что именно такой человек представляет математиков в этом выпуске.

#математика #духота
18👍11🤮3
Я подала на вход ChatGPT тексты со словами, перемешанными случайным образом (с помощью функции shuffle из модуля random), и попросила их суммаризовать. Рис. 1 - перемешанный текст про техножрецов, рис. 2 - другой перемешанный текст по вархаммеру, рис. 3 - 5 - перемешанные абстракты наших с коллегами статей (https://aclanthology.org/2021.emnlp-main.50/ , https://arxiv.org/abs/2205.09630 , https://arxiv.org/abs/2211.17223).
Как видите, модель ничуть не смутилась и сработала в режиме Bag Of Words. Другими словами, модель просто выхватила знакомые слова из мешанины и на их основе определила тематику текста. Связи между словами она видеть не могла: они были специально разрушены.
При задании дополнительных наводящих вопросов о том, является ли текст осмысленным или нет, модель при одной формулировке вопроса начинает понимать, что слова перемешаны (рис. 6) и впоследствии (рис. 7) отказывается суммаризовать текст (правильно замечая, что смысла нет), а при другой (рис. 8) - нет.

#генерация
🔥14
Forwarded from AlexTCH
Решил поведать про новую и захватывающую тему в области машинного обучения — https://en.wikipedia.org/wiki/Reservoir_computing
На самом деле не особо новая — развивается с середины 2000х — но настолько прикольная, что удержаться невозможно.

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

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

А теперь подумаем, так ли нам важно, что там происходит в недрах нашей нейронки? Этого всё равно никто не понимает! Но зачем-то же мы производим это преобразование в многомерное пространство, почему-то же это работает? Ну, в задачах классификации мы предполагаем, что нелинейное отображение в многомерное пространство "растаскивает" точки подальше друг от друга, и так становится "виднее" и понятнее, кто к какому классу принадлежит. Т.е. главное — чтобы после преобразования соседние точки оказались разнесены далеко друг от друга.

Но это же самое известное свойство хаотических систем! Которые описываются дифурами. Всё сходится! Нужно всего лишь взять любую хаотическую динамическую систему — можно реальную физическую! — преобразовать наши данные в начальное состояние этой системы, дать ей поработать какое-то время, считать итоговое состояние, а потом натренировать перцептрон правильно его интерпретировать. Поздравляю, мы только что переизобрели Reservoir Computing. 💪

Между делом мы пересекли другую линию исследований, которая началась чуть раньше и развивалась параллельно: https://en.wikipedia.org/wiki/Extreme_learning_machine
По факту, это использование случайно инициализированных стандартных feed-forward NNs, где обучается только последний слой. Промежуточные слои производят неведомое нелинейное преобразование, но нас это устраивает, потому что главное — научиться правильно интерпретировать результаты.

Но я предлагаю заглянуть в прошлое намного дальше и проследить истинные истоки этих идей. Поскольку практиковать их начали ещё в древнем Риме! А что, стая птиц — это сложная динамическая система с обратными связями, в чём-то даже хаотическая. Не хуже других естественных динамических систем. Главное же — научиться правильно интерпретировать конечное состояние... 😏
🔥12👍52😁1
Как и у любого уважающего себя шиза взрослого человека, у меня есть набор голосов в голове. Один из самых опасных - Голос Успешного Успеха - сокращенно "ГУУ". Этот голос донимает многих людей, и те, кто не воспринимает его критически, начинают сливаться с ним и сами превращаются в Успех.
Один из ранних симптомов болезни заключается в том, что у человека учащаются эпизоды фотографирования себя в деловом костюме на профессиональную камеру, с дальнейшим выкладыванием эти фотографий в Линкедин и прочие запрещенные в России социальные сети. По мере прогрессирования болезни эти эпизоды становятся все более и более навязчивыми; иногда к ним добавляется фотографирование на фоне дорогих машин, курортов, пафосного офиса, других жертв Успеха и тому подобного. Часто фотографии сопровождаются вдохновляющими псевдоинтеллектуальными рассуждениями и цитатами, чтобы набрать классы. На терминальной стадии Успех полностью захватывает разум человека, отчего у него начинается понос авторскими инфопродуктами, и мозг больного, лишенный какого-либо питания, окончательно умирает.
Недавно вспомнила один эпизод, когда этот голос особенно меня донимал. #о_себе



Было это на прошлогодней EMNLP, когда я решила заглянуть на полузакрытую вечеринку, которая в основном проводилась для людей из Google Research, но было небольшое количество мест и для других участников конференции. Забронировав место на вечеринке, я пришла в назначенное время и поднялась на лифте в бар на крыше, предвкушая сладкий вкус бесплатных алкогольных напитков. Там, естественно, все как полагается: красивые столики, стульчики, диванчики, дизайнерское оформление, музыка, приглушённый свет, бассейн, вид на ночной Абу-Даби.
ГУУ: - Фотография! Делай фотографию для Линкедин!
Я (про себя): - Делать мне больше нечего, я иду за бесплатным вином.
ГУУ: - Фотография! На фоне бассейна и ночного города!
Я (про себя): - Ой, достал, ну ладно, сделаю одну.
ГУУ: - У фотки ужасное качество! Ничего непонятно! А ну делай еще!
Я (про себя): - С тебя хватит, я в бар.

Продолжение следует...
👍148😁31
Посетив барную стойку, я взяла напитки и легла поперек огромного дивана, чтобы спокойно их пить, бесстрастно и безразлично взирая на окружающих.
ГУУ: - Нам нужно купить новый телефон, чтобы делать фотографии получше!
Я: - ... (отхлебываю вина)
ГУУ: - Нельзя прийти на мероприятие для нетворкинга и просто лежать на диване.
Я: - ... (беру деликатес с подноса)
ГУУ: - Давай, иди, поговори с кем-нибудь, продвинь свой персональный бренд.
Я: - ... (включаю телефон и смотрю мемы, продолжая прихлёбывать).
Через полчаса один из официантов вежливо сообщает, что они уже приготовили основные блюда, и предлагает их отведать, если, конечно же, это не отвлечет меня от моих важных дел. Я иду, накладываю себе еды, возвращаюсь к диванчику - а его заняли! Больше разваливаться негде - приходится садиться как положено рядом с людьми.
Вскоре один Чел (Ч) заводит беседу. Рассказывает о себе, спрашивает, чем я занимаюсь по науке и где работаю. Я рассказываю, что сейчас работаю в Хуавей, а раньше стажировалась в Гугле.
Ч: - И чем ты у нас занималась?
Я: - Задачей определения местоположения пользователя в условиях городского каньона с помощью методов машинного обучения.
Ч: - Круто! Значит, когда я включаю Гугл карты в Нью-Йорке, мое местоположение определяется с помощью твоей модели?
ГУУ: - Скажи "да". Просто скажи "да".
Я: - Я не могу этого знать. Я просто сделала прототип и не могу знать, дошел ли он до продакшн и в каком виде. Учитывая, что все это происходило давно, скорее всего, кто-то уже сделал модель получше.
Ч: - Да, наверное, так и есть. А в Хуавей чем занимаешься?
ГУУ: - Скажи, что создала совершенно новое и уникальное направление исследований.
Я (про себя): - Нет, спасибо, я такое говорить не буду.
Я: - Так и так, мы с коллегами применяем TDA и другие математические методы к анализу карт внимания трансформеров в разных контекстах, смотрим, что получится. Иногда выходит с помощью TDA-фичей сделать хорошие классификаторы над картами внимания BERT(RoBERTa), не требующие файн-тюнинга самого BERT для работы. Еще пробуем интерпретировать работу трансформеров с помощью этих фичей так-то и так-то. Можете нашу статью прочитать, посмотреть, она так-то называется.
Ч: - А в продакшне как-то это можно применить?
ГУУ: - Просто скажи "да".
Я: - Думаю, до этого еще очень далеко.
Через какое-то время понимаю, что собеседник имеет большой опыт в научной работе и решаю спросить у него совета, как лучше всего будет развивать мою научную карьеру после того, как мне не удалось получить PhD нормальным способом. Рассказываю ему, как научник отказался меня аттестовать на финальной аттестации, и из-за этого я не смогла получить корочку. При этом я уже потратила все бесплатные годы обучения в российской аспирантуре.
Ч: - А почему он так с тобой поступил?
ГУУ: - Зависть! Твой научник решил уничтожить твою научную карьеру на корню, потому что понял, насколько ты лучше и способнее его самого! Он не смог этого вынести!
Я: - Я не могу этого знать. Он просто в какой-то момент перестал со мной разговаривать, а на аттестации выдал какой-то невразумительный бред, который ничего не объяснял.
Ч: - Ну ничего, раз в России не вышло, приезжай к нам в США PhD получать.
Я: - А сколько лет у вас в аспирантуре учатся?
Ч: - Всего 5, у меня некоторые аспиранты заканчивают и за 4.
Я (про себя): - Эх, опять четыре года учиться, спасибо, но мне лень.
Я (вслух): - Эх, опять четыре года учиться, спасибо, но мне лень.
ГУУ: - Так нельзя говорить!
Я (про себя): - Можно.
Под конец разговор зашел о моей старой работе, где я применяла ML для извлечения сущностей из юридических документов.
ГУУ: - Business Intelligence System! Скажи, что это была Business Intelligence System!
Я: - Там нужно было очень скучно и однообразно тренировать много маленьких моделей, а потом другой несчастный собирал их в огромную гибридную систему-Франкенштейна. Надеюсь, когда появились трансформеры общего назначения, все это зло уничтожили.
ГУУ: - Ты надеешься, что результат твоей работы уничтожили?!
Я (про себя): - Да. Так будет лучше для человечества.

Морали у истории нет, всем спасибо за внимание.
#о_себе
👍219🕊741🤯1😱1