Aspiring Data Science – Telegram
Aspiring Data Science
386 subscribers
465 photos
12 videos
12 files
2.15K links
Заметки экономиста о программировании, прогнозировании и принятии решений, научном методе познания.
Контакт: @fingoldo

I call myself a data scientist because I know just enough math, economics & programming to be dangerous.
Download Telegram
Forwarded from partially unsupervised
Это было предсказуемо: в 2024 легкая небрежность в тексте/коде окончательно стала премиальной и крафтовой. Пресный вежливый текст - значит, написано при помощи LLM (и даже без упражнений с промптами). Шероховатости придают эффект теплоты: человек не поленился и написал сам.

Например, пишет мне рекрутер, и второй абзац его письма выглядит как LLM-summary моего линкедин-профиля. Дальше как-то автоматически сложно поверить его словам, что this is exactly the type of experience they are looking for.

Или с другой стороны: проверяю тестовые задания, и довольно быстро калибруюсь. Например, много тривиальных комментариев, начинающихся с заглавной буквы и заканчивающихся точкой - явное свидетельство сгенеренного кода. Да ладно комментарии, я уже и по названиям переменных узнаю код авторства GPT.

# Init model.
model = Autoencoder.to(DEVICE)
criterion = nn.MSELoss()


Вообще, кстати, в этом тестовом использовать GPT не запрещено, но надо бы не только сгенерить решение, но и понять, что там происходит. В итоге больше всего сигнала в ответе на вопрос "почему это работает?".

В итоге умение писать кое-как теперь вообще не имеет значения, а умение писать изящно (будь то текст или код) ценится как и раньше.
Forwarded from partially unsupervised
MNIST 1D - самая прекрасно безумная работа, которую я пока увидел на ICML.

Это полусинтетический датасет, похожий на MNIST, который при этом сложнее для стандартных бейзлайнов, но при этом требует еще меньше вычислительных ресурсов. Авторы утверждают, что на этом датасете можно быстро воспроизводить всякие забавные метаэффекты типа Double Descent и Winning Lottery Tickets, используя только процессор бюджетного ноутбука.
1
Forwarded from partially unsupervised
Реальность:
- надоело ждать полного прогона тестов на CI, между делом спрятал некоторые долгие джобы под if, чтобы они триггерились только для релевантных изменений.

Потенциальный пост в Linkedin:
- Pioneered a transformative project as part of a company-wide infrastructure efficiency and cost optimization strategy, establishing a scalable model that achieved a sustainable 40% reduction in CI operational costs across the AI organization.
Forwarded from partially unsupervised
Почти в каждом deep learning-based продукте, над которым я работал, на каком-то этапе где-то сбоку появляется небольшая линейная модель, обучаемая отдельно, иногда даже на классических фичах. Она, конечно, не может решать основную сложную задачу, но внезапно сильно помогает с каким-нибудь корнеркейсом. Например:
- определять резкую смену контекста (и необходимость сбросить стейт),
- детектить потенциальные ошибки или аномалии,
- слегка уточнять результаты сложного пайплайна,
- роутить инпут между компонентами,
- заполнять недостающий параметр, если в API вдруг не приходит какое-то поле, а менять что-то на клиенте слишком дорого,
- подсвечивать потенциальные проблемы человекам in the loop.

Этой модели никогда нет в изначальном дизайне: если проблема была бы заметна изначально, она бы зачастую решалась элегантнее - например, добавлением дополнительной головы в основную модель. Она появляется, когда все вроде почти работает, и не хватает совсем чуть-чуть.

Вот сейчас у меня есть матрица расстояний в чем-то вроде матчинга, и нужно оценивать уверенность матча, потому что иногда лучше ответить ничего, чем неправильно. Сначала берешь собственно дистанцию, потом хочется добавить еще пару эвристик типа расстояния до second best кандидата, их нужно как-то взвешивать... Так что не надо брезговать классикой, и умение выжать лишний процент из линейной модели все еще полезно.
Forwarded from partially unsupervised
Наткнулся на пост Top Python libraries of 2024, и набор библиотек в очередной раз затрагивает давно наболевшие топики:

1) несовершенство языка и пакетного менеджера (uv вместо pip, Whenever как лучший datetime, streamable как альтернатива встроенным коллекциям, очередной генератор/валидатор типов...);
2) все низкоуровневые штуки продолжают переписывать на rust;
3) главная проблема и в LLM-driven мире осталась все той же - перегонять данные из формата в формат, только к привычным HTML/JSON/markdown/датаклассам добавляются попытки сделать LLM-native форматы (BAML), LLM-native датаклассы (PydanticAI) etc.

Правда, из всего списка сколько-то массовый адопшен случился пока только у uv.
#hardware #inference

"В рамках конференции Cloud Next на этой неделе компания Google представила новый специализированный ИИ-чип Ironwood. Это уже седьмое поколение ИИ-процессоров компании и первый TPU, оптимизированный для инференса — работы уже обученных ИИ-моделей. Процессор будет использоваться в Google Cloud и поставляться в системах двух конфигураций: серверах из 256 таких процессоров и кластеров из 9216 таких чипов.

Анонс Ironwood состоялся на фоне усиливающейся конкуренции в сегменте разработок проприетарных ИИ-ускорителей. Хотя Nvidia доминирует на этом рынке, свои технологические решения также продвигают Amazon и Microsoft. Первая разработала ИИ-процессоры Trainium, Inferentia и Graviton, которые используются в её облачной инфраструктуре AWS, а Microsoft применяет собственные ИИ-чипы Cobalt 100 в облачных инстансах Azure.

Ironwood обладает пиковой вычислительной производительностью 4614 Тфлопс или 4614 триллионов операций в секунду. Таким образом кластер из 9216 таких чипов предложит производительность в 42,5 Экзафлопс.

Каждый процессор оснащён 192 Гбайт выделенной оперативной памяти с пропускной способностью 7,4 Тбит/с. Также чип включает усовершенствованное специализированное ядро ​​SparseCore для обработки типов данных, распространённых в рабочих нагрузках «расширенного ранжирования» и «рекомендательных систем» (например, алгоритм, предлагающий одежду, которая может вам понравиться). Архитектура TPU оптимизирована для минимизации перемещения данных и задержек, что, по утверждению Google, приводит к значительной экономии энергии.

Компания планирует использовать Ironwood в своём модульном вычислительном кластере AI Hypercomputer в составе Google Cloud."

https://3dnews.ru/1121018/google-predstavila-svoy-samiy-moshchniy-iiprotsessor-ironwood-do-46-kvadrilliona-operatsiy-v-sekundu
#criminology

Почему бы и да!

"Министерство юстиции Великобритании ведёт разработку алгоритма, предназначенного для выявления людей, которые могут стать убийцами. В рамках «Проекта по прогнозированию убийств» (Homicide Prediction Project) используются данные британской полиции — вероятно, включая информацию о жертвах, свидетелях и подозреваемых."

https://3dnews.ru/1121002/osoboe-mnenie-stalo-realnostyu-britanskie-vlasti-sozdadut-algoritm-dlya-poiska-potentsialnih-ubiyts
🤡1
#polars #deltalake #deltars

По сути, deltalake - это субд на паркетных файлах и поларсе, с версионированием изменений и time travel.
Есть компактификация/речанкинг маленьких файлов, "бесшовная" работа с облаком, даже ADIC транзакции.

https://youtu.be/ZIrq9GsN2HM?si=SPDEsBoqvQVxZnBO
#polars

Тонкость, что maintain_order предпочтительное пост-сортировки в group_by.

https://youtu.be/CJ0f45evuME
#polars #books

Вот есть явно хорошая книжка, "Effective Polars: Optimized Data Manipulation".

Уже даже пройтись по примерам кода очень полезно, покрывает, наверное, 85% информации из книги.

Можно узнать про такие способности поларс:

>>> def standardize(col):
... return (col - col.mean()) / col.std()

>>> print(autos
... .filter(standardize(pl.col('city08')) > 3)
... .select(['year', 'make', 'model', 'VClass', 'city08'])
... )


More Filtering with Window Expressions
>>> print(autos
... .with_columns(
... model_age=(pl.col('year').max() - pl.col('year').min())
... .over('model'))
... )

>>> print(autos
... .select(pl.all().is_null().mean() * 100)
... )


>>> print(autos
... .with_columns(pl.col('make').cast(pl.String))
... .sort(by=pl.col('make').str.len_chars())
... )


... .filter(~pl.all_horizontal(pl.col('devil', 'snake').is_null()))
... .plot(x='datetime', y=['devil', 'snake'], rot=45, noscript='Gage Height',
... width=1800, height=600)


Using XGBoost to Predict Mileage
>>> import polars.selectors as cs
>>> X = (autos
... .select(cs.numeric() - cs.matches('(city08|highway08)'))
... )
>>> y = (autos.select(pl.col('city08')))


https://www.amazon.com/Effective-Polars-Optimized-Manipulation-Treading
#animals

"Благодаря десятилетиям подводных записей исследователям удалось связать некоторые базовые действия с определёнными звуками. Например, им удалось выявить характерные свисты, которые, по-видимому, используются как имена, что позволяет двум особям находить друг друга на большом расстоянии. Дельфины также постоянно издают звуковые паттерны, названные учёными «пронзительный крик», во время конфликтов.

Конечная цель WDP — заговорить на дельфиньем языке, если он действительно существует. Это стремление привело к созданию огромного, тщательно размеченного набора данных, который слишком трудоёмок для анализа человеком, но, по словам Google, идеально подходит для обработки с помощью генеративного ИИ.

Генеративная ИИ-модель DolphinGemma основана на открытых моделях искусственного интеллекта Gemma от Google. Она использует разработанную Google аудиотехнологию SoundStream. Модель была обучена с использованием акустического архива проекта Wild Dolphin. Команда надеется, что DolphinGemma поможет выявить сложные закономерности, которые позволят создать общий словарь.

DolphinGemma работает так же, как языковые модели, ориентированные на человека: она получает запрос и предсказывает следующий токен. Учёные полагают, что эти предсказанные токены могут оказаться звуковыми последовательностями, которые будут поняты дельфинами."

https://3dnews.ru/1121267/google-sozdala-iimodel-dolphingemma-dlya-obshcheniya-s-delfinami
#polars

Книжка сама не очень, кстати, я читал. Собственно, и доклад не блещет инсайтами, зато приводится профит от перехода на поларс в конкретно взятом проекте. Расходы на расчёты снизились с 120 до 4 тыс баксов.

https://www.youtube.com/watch?v=B2Ljp2Fb-l0
#featureselection #shap #shapselect

Типа несколько новый подход к отбору признаков.

То же RFCE, на авторы почему-то скромно выделяют свой подход прямо в отдельный класс.

Фишка в том, что по shap-значениям признаков на таргет строится отдельная регрессия. Признаки с незначимымы или отрицательными коэф-тами этой регрессии удаляются. Мне пока неясно, какие это даёт преимущества по сравнению просто с расчётом среднего и отклонений шап-значений признаков по всем примерам.

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

Но, может, я чего-то не понимаю, и это крутая идея?

https://www.youtube.com/watch?v=pmqvyrIyB_8