В стандартном модуле random есть две очень похожие функции
random.randint()
random.randrange()
Обе возвращают случайное значение из указанного диапазона
>>> random.randint(10, 20)
12
>>> random.randrange(10, 20)
17
В чем же отличие?
Дело в том что у randrange() есть третий параметр step.
randint() действительно возвращает случайное число из указанного диапазона.
randrange() на первый взгляд делает тоже самое если передать также два параметра.
Но есть указать еще и step то наш диапазон усложняется, то есть в него попадёт не полный ряд значений.
Например, я хочу получить случайное значение из диапазона но только чётное число. Тогда достаточно сделать так:
>>> randrange(10, 20, 2)
16
Таким образом получается что randint это частный случай randrange без указания параметра step.
Еще одно важное отличие в том, что randint() включает в диапазон второе значение а randrange() нет. То есть выражение randrange(10, 20) никогда не вернёт 20, а randint(10, 20) вернёт.
#tricks#basic
📌Как создавали 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