айти канал (ex. как понять компьютер)
رفتن به کانال در Telegram
نمایش بیشتر
کشور مشخص نشده استدسته بندی مشخص نشده است
226
مشترکین
اطلاعاتی وجود ندارد24 ساعت
اطلاعاتی وجود ندارد7 روز
اطلاعاتی وجود ندارد30 روز
آرشیو پست ها
uv — очень быстрый pip на стероидах с большими абмициями
Пост будет особенно полезным, если раньше не сталкивались с pip-tools. В конце есть пример испольвания.
uv — это новый и полезный уже сейчас инструмент от компании Astral, которая раньше сделала Ruff. Долгосрочная цель авторов очень амбициозная -- сделать uv единым инструментом для работы с Python и заменить все отдельные инструменты: pip, pyenv, virtualenv, pip-tools, ruff, tox, pipx, и т.д. В итоге любой инженер, аналитик, исследователь или студент сможет легко и единообразно устанавливать Python окружения и разрабатывать Python проекты.
В своей первой итерации uv — это в ~2x-100x раз более быстрая замена трём инструментам:
(1) pip. То есть uv очень быстро устанавливает Python пакеты, что особенно актуально для сложных окружений и особенно когда они устанавливаются регулярно (например, в Continuous Integration). Но и в быту при установке условного Jupyter ускорение в 5-10 раз ощущается очень приятно.
(2) pip-tools. Напомню, что в проектах важно фиксировать не только прямые зависимости (скажем, Django==5.0.3), но и непрямые (те пакеты, которые Django приносит с собой). Это нужно, чтобы у всех пользователей и на всех машинах было идентичное окружение. pip-tools помогает решить ровно эту задачу: он автоматически генерирует и поддерживает в актуальном состоянии ваш requirements.txt файл с полным списком зависимостей. А uv делает то же самое, но гораздо быстрее.
(3) venv & virtualenv. На фоне предыдущих пунктов создание виртуальной среды это скорее мелочь, но даже эту мелочь uv делает ощутимо быстрее :)
Я использовал uv пару раз для простых личных сценариев. Софт свежий, и чтобы понять, подходит ли он вам, можно посмотреть текущие ограничения и баги. По моему опыту и инфополю думаю, что установка обычных пакетов на linux/macos машины уже нормально работает.
---------
После установки uv можно скопировать и запустить примеры ниже в таком же порядке (проверено на v0.1.24).
Создать и активировать среду:
mkdir hello-world && cd hello-world
uv venv
Не забыть активировать среду:
source .venv/bin/activate
Установить пакет:
uv pip install pandas
Составить полный список зависимостей requirements.txt по pyproject.toml:
echo '[project]
name = "hello-world"
dependencies = ["scikit-learn==1.4.1.post1", "Django==5.0.3"]
' > pyproject.toml
uv pip compile pyproject.toml -o requirements.txt
Привести окружение в соответствие с requirements.txt (важное отличие от uv pip install -r requirements.txt: sync не только установит все из requirements.txt, но и удалит то, чего там нет, например, ранее установленный pandas и его зависимости):
uv pip sync requirements.txt@simple_it_channel #python
P.S. Расширения для VSCode
Небольшое практическое дополнение:
- у подобных инструментов обычно есть расширения для VSCode, чтобы их можно было установить и начать использовать по кнопке (добавил расширение для Ruff в предыдущий пост)
- с недавнего времени в настройках этих расширений стала появляться опция “Import Strategy” с опцей “useBundled”, то есть оно само вам установит и настроит инструмент (например Ruff; кстати напомню, что в расширении для Ruff можно отключить фиксы вашего кода и оставить только фукнции линтера)
- имхо такой путь больше подходит для личных и ресерч проектов, а для большой командной разработки на мой слух более надежно звучит Import Strategy = “fromEnvironment” (нужно будет самому установить и настроить инструмент)
Ruff Formatter
(если не знаете про Ruff, писал о нем вот тут)
Теперь Ruff умеет форматировать код! Хайлайты из официального релиза:
- extremely fast Python formatter, written in Rust
- over 30x faster than Black
- >99.9% Black compatibility.
Официальный релиз: link
Расширение для VSCode: link
Добавлю от себя:
- По-прежнему не вижу опции валидации байткода после изменений, которые Ruff проделывает. Эта опция в black включена по умолчанию, она формально строго проверяет, что форматирование не изменило смысл кода. Хотелось бы видеть такую опцию для только что релизнутого инструмента, который собрался менять мой код. Думаю создам issue, и пока продолжу использовать black.
- Об этом нет в релизе, но я вот потестировал, и видимо ruff format не сортирует импорты, это остается отдельной функцией Ruff. Кстати, я немного устал от багов конкретно в сортировке импортов, и ближайшие полгода-год посижу на isort.
- И все равно, Ruff — это очень круто, давно использую его как линтер, и в будущем конечно полностью на него перееду.
🐍 Python 3.12 🐍
Вышел!
Вижу только одно большое изменение, с учетом которого мы будем писать код, это "Type Parameter Syntax”, о котором был пост год назад. TL;DR: больше не нужен typing.TypeVar:
def max[T](args: Iterable[T]) -> T: … def max_number[T: (int, float)](args: Iterable[T]) -> T: …Еще одно значительное изменение, но которое мы будем читать и писать не так часто, это создание type aliases:
# вот так теперь не надо # Point = tuple[float, float] # Point: TypeAlias = tuple[float, float] # надо вот так type Point = tuple[float, float] type Point[T] = tuple[T, T] # пример для ценителей: type RecursiveList[T] = T | list[RecursiveList[T]]Небольшая мелочь, о которой хорошим тоном будет знать, если в вашем коде есть наследования классов: typing.override (аналог override из C++) для маркировки методов, который переопределяют метод базового класса. Остальные изменения меньше повлияют на написание/чтение среднего мэйснтримного кода, полный список изменений доступен тут: https://docs.python.org/3.12/whatsnew/3.12.html P.S. На правах админа порадуюсь такой мелочи как pathlib.Path.walk :) Из той же серии видел как разработчики в интернетах радуются добавлению itertools.batched
🎉 Анонс статьи всё 🎉
Я обновил оригинальный пост, и теперь там есть ненапряжный технический обзор статьи, который можно прочитать за завтраком ☕️
Так что вот еще раз ссылка (клик) и всем спасибо за внимание! 🤗
Задачи на табличных данных
Это нетехнический краткий пост про саму область анонсированной статьи, можно смело пропускать если знаете.
Упрощая, исследуя нейросети для табличных данных, люди стремятся не к получению штучных сложных результатов (о которых мы обычно слышим, в духе “обыграть человека в шахматы” или вот ChatGPT), а к улучшению существующих решений на огромном числе задач “попроще”, и туда входит действительно миллион всего: от прогноза погоды на завтра и рекомендации фильмов до классификации частиц в физике высоких энергий.
И расклад такой:
- очень часто данные в этих задачах — по сути Excel таблички
- нейросетям на таких табличных данных тяжело 🙁
- если улучшить нейросети для табличных данных, то миру будет хорошо 👍
@simple_it_channel
TabR — новая нейросеть для табличных данных
Finally, анонс нашей статьи: "TabR: Unlocking the Power of Retrieval-Augmented Tabular Deep Learning"! Я там первый автор, но конечно это командная работа.
🙂 ПЛАН ПРЕЗЕНТАЦИИ 🙃
1. основные ссылки в этом посте ниже
2. ТЕХНИЧЕСКИЙ РАЗБОР СТАТЬИ — В КОММЕНТАРИЯХ К ЭТОМУ ПОСТУ (клик)
3. следующий пост — нетехнический комментарий об области в целом.
Ссылки:
- Статья
- Код
- Тред в Twitter с обзором модели и результатов
- Пост на Reddit
P.S. Картинка показывает прогресс нейросетей (DL models) на каких-то 43 задачах начиная с 2021 года. И тут есть прикольный plot twist, который касается всех моделей, кроме MLP: FT-Transformer и MLP-PLR взяты из наших же предыдущих статей :)
- FT-Transformer взят отсюда
- MLP-PLR взят отсюда
@simple_it_channel
Привет! Сегодня будет анонс новой статьи про нейронные сети для табличных данных, где я первый автор. Проект получился большим, анонс и контент вокруг статьи займут больше, чем один пост. Надеюсь, будет интересно!
P.S. Сужение канала до одной этой темы точно не планируется :)
@simple_it_channel
Небольшие новости
Привет! Сорри за кучу уведомлений за последние пять минут, на сегодня всё!
Надеюсь, скоро на работе доделаем и выпустим новую статью про нейронки для табличных данных, где я первый автор. Об этом напишу отдельно, а пока две небольшие новости.
Написал о себе и о канале (pinned). Надеюсь, вам тут хорошо 🙂
Поделился промежуточными результатами из этой work-in-progress-статьи про сравнение Deep Learning и XGBoost (твит). В чем штука: мы взяли свои DL модели из наших предыдущих статей, и протестировали их на новых датасетах, о которых мы раньше не знали. Это очень важный тест, который проверяет, обобщаются ли наши результаты на новые задачи (спойлер: да).
@simple_it_channel
О канале + хайлайты
Небольшая заметка для постоянных и будущих гостей 🙂
Хайлайты
- https://t.me/simple_it_channel/43
- https://t.me/simple_it_channel/28
- https://t.me/simple_it_channel/34
Обо мне
Меня зовут Юра, МФТИ/ШАД/Яндекс, сначала был (ML) инженером, а сейчас ML исследователь с парой статей на NeurIPS, основная тема -- Deep Learning для табличных данных (соревнуюсь с XGBoost, ага). Ссылки на профили:
- GitHub
- Twitter
- Google Scholar
О канале
- IT в целом, Python в частности, Machine Learning / Deep Learning / Data Science, полезные библиотеки, инструменты и философия по всем этим темам -- вот всякое такое тут было и будет.
- Пока выходит, что контент больше про долгосрочное и практичное, чем про новостное.
- Еще выходит, что посты появляются не очень часто, и мне это нравится. Не хочется перегружать контентом.
- В постах я делюсь тем, что мне самому приносит пользу и радость.
Добро пожаловать!
@simple_it_channel
Zed — текстовый редактор нового поколения (+ бонус для vim юзеров)
TL;DR:
- Zed — самый интересный для меня проект в нише next generation text editor
- использую его для чтения и мелкого редактирования
- пока на начальных этапах развития, в частности macOS-only 😕
- ссылка
Почему люди пытаются сделать новый редактор, когда есть VSCode? Если отвечать одним словом: Скорость.
Все такие новые проекты, включая Zed — это мощнейший привет из эры Sublime, где редакторы с GUI открываются мгновенно, а буквы печаются без лагов. Это сложно продать на уровне цифр: речь скорее про ощущения, эстетику и приятные эмоции. Именно они, а не сама по себе скорость будут влиять на ваше вдохновение, настроение и работу.
Почему из всех таких проектов мне интересен именно Zed? Потому что авторы Zed:
- это крутые ребята, которые уже переворачивали индустрию текстовых редакторов 😎 Среди них (со)авторы Atom (родитель VSCode), tree-sitter (умный анализ кода вместо регулярных выражений) и даже Electron (на этой технологии живет вообще миллион всего живет, включая VSCode).
- c серьезным настроем: они собираются монетизировать проект. При всей моей симпатии к бесплатным open-source экспериментам, хочется появления полноценного продукта, очень жду.
В Zed уже можно видеть проявления их strong opinion на тему того, каким должен быть современный редактор:
- изначальная поддержка совместного редактирования 🌚🌝
- встроенный голосовой чат 🤯
- уже поддержан copilot 🤖
- etc. (вообще прикольно почитать их faq)
P.S. Про нишу next-gen vim. Я в ней мало что понимаю, но для ценителей поделюсь ссылкой на проект, который по моим наблюдениям получает больше всего внимания, вдруг будет интересно:
https://github.com/helix-editor/helix
P.P.S. Sublime F ((
@simple_it_channel
