Подразумеваемые неймспейсы или неявные пакеты.
Этот функционал добавлен в Python 3.3
Что он означает?
Ранее, до 3.3 пакетами считались лишь директории, в которых есть файл __init__.py.
Этот файл одновременно являлся свидетельством того, что директория это Python-пакет, и служил "телом" этого пакета. То есть местом, где можно написать код, как это делается внутри модуля. Этот код исполняется в момент импорта пакета, так что его принято называть "код инициализации пакета".
Начиная с версии 3.3 Любая директория считается пакетом и Python будет пытаться использовать любую директорию для импорта.
Конечно, не любую в файловой системе, а только те что находятся в sys.path.
Это значит, что теперь __init__.py нужно делать только если:
🔸 вам требуется создать код инициализации пакета
🔸 нужна совместимость со старыми версиями Python
На мой взгляд это немного упрощает разработку, делает её чище, но с другой стороны убивает некоторую однозначность происходящего.
Например, я создал репозиторий со своей библиотекой и рядом положил код примеров или тестов.
repo_name/
my_library/
__init__.py
main.py
examples/
exam1.py
exam2.py
В этом репозитории пакетом является только my_library, остальные директории это не пакеты, это просто дополнительный код в файлах. Директория examples не добавлена в sys.path, в ней нет рабочих модулей. Но если она лежит рядом с my_library, то Python вполне сможет импортнуть из неё модули, так как посчитает что examples это валидный пакет.
Конечно, пример несколько надуманный. Никто не будет добавлять корень репозитория в sys.path. Но, я думаю, суть ясна. Иногда директория это просто директория а не пакет!
#basic#pep
📌Как создавали RL-агент AutoGLM-OS, который выбил SOTA на OSWorld, обогнав OpenAI и Anthropic.
Автономные агенты, способные управлять рабочим столом - это Грааль современного HCI. Но их обучение сопряжено с трудностями: GUI созданы для людей, а не для машин, а масштабирование RL упирается в неэффективность и нестабильность сред.
В Z.ai сделали фреймворк COMPUTERRL, который лег в основу агента AutoGLM-OS. Результат - state-of-the-art на бенчмарке OSWorld: 48.1% успешных выполнений и это лучше, чем у OpenAI CUA 03 (42.9%), UI-TARS-1.5 (42.5%) и Claude 4.0 Sonnet (30.7%).
OSWorld — это крупный бенчмарк из 369 заданий для проверки многомодальных ИИ-агентов в реальных условиях. Он работает в Ubuntu, Windows и macOS.
В нем ИИ выполняет открытые задачи: работает с веб- и десктопными приложениями, управляет файлами, запускает процессы. Каждое задание имеет четкие начальные условия и скрипты для оценки, чтобы результаты можно было воспроизвести.
Такие высокие показатели - результат комбинации 3-х инноваций.
🟡Новая парадигма взаимодействия API-GUI.
Фреймворк объединяет GUI-взаимодействия с быстрыми и точными API-вызовами образуя систему, которая через LLM автоматически анализирует примеры задач, генерирует необходимый API-код для стандартных приложений Ubuntu и даже создает для него базовые тесты.
Таким образом, агент использует быстрые API там, где это возможно, и переключается на GUI для общих задач, что повышает и скорость, и надежность. Абляция показала, что переход от GUI-only к API-GUI поднимает средний показатель успеха с 11.2% до 26.2%.
🟡Масштабируемая распределенная RL-инфраструктура.
OSWorld крайне ресурсоемок, и запуск множества его экземпляров на одном узле это тот еще квест. Z.ai полностью переработали эту среду, используя qemu-in-docker для легковесного развертывания VM, gRPC для связи между узлами и полностью асинхронный фреймворк AgentRL. Это позволило создать кластер из тысяч параллельных виртуальных сред, к котором онлайн-обучение RL-агентов стало максимально эффективным.
🟡Стратегия обучения Entropulse.
Entropulse решает проблему коллапса энтропии, чередуя фазы RL с периодическими сессиями SFT. Во время RL-фазы собираются все успешные траектории, и на их основе формируется новый SFT-датасет. Затем модель дообучается на этом датасете, что позволяет восстановить её исследовательскую способность без потери производительности. После этого запускается вторая, более эффективная фаза RL.
Эта стратегия позволила AutoGLM-OS, построенному на базе 9B GLM-4, достичь финального результата в 48.1%, в то время как после первой RL-фазы показатель был 42.0%.
🟡Arxiv
@ai_machinelearning_big_data
#AI#ML#Agents#AutoGLM#Zai