Hacker News Digest

Тег: #dag

Постов: 4

Dgsh – Directed graph shell (www2.dmst.aueb.gr)

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

Ключевые особенности включают многоканальные пайпы (multipipes) для связи команд с несколькими входами и выходами, блоки {{ ... }} для асинхронного выполнения процессов и хранение значений (stored values) для обмена данными между произвольными узлами графа. Примеры использования охватывают бенчмарки сжатия, анализ кода, поиск дубликатов и обработку научных данных, демонстрируя гибкость подхода.

by pabs3 • 30 сентября 2025 г. в 13:39 • 141 points

ОригиналHN

#dgsh#unix#dag#nushell#elvish#apache-airflow#python#ruby#bash#murex

Комментарии (52)

  • Идея Dgsh оценивается как устаревшая по синтаксису, но перспективная для современных оболочек вроде nushell и elvish.
  • Обсуждаются преимущества представления конвейеров данных в виде направленного ациклического графа (DAG) перед линейными пайплайнами.
  • Сравнивается удобство Dgsh для создания конвейеров с написанием аналогичных задач на Python, Ruby или в чистом bash.
  • Отмечается сложность работы с пайпами и процессами в Python по сравнению с shell-инструментами.
  • Упоминаются альтернативные инструменты, такие как Murex, и фреймворки для оркестрации, например Apache Airflow.

DeepFabric – Generate high-quality synthetic datasets at scale (lukehinds.github.io)

DeepFabric — это библиотека для генерации синтетических датасетов высокого качества, предназначенных для обучения, оценки и исследований языковых моделей. Она использует иерархические деревья тем и экспериментальные графы для создания разнообразных и контекстуально насыщенных примеров. Подходит для исследователей и инженеров, работающих с дистилляцией моделей, оценкой агентов или статистическими исследованиями.

Библиография предлагает инструменты для масштабируемой генерации данных, включая поддержку различных форматов инструкций, таких как Chain of Thought, и интеграцию с популярными платформами, включая Hugging Face. Она распространяется под лицензией Apache 2.0 и активно развивается с открытым исходным кодом.

by decodebytes • 26 сентября 2025 г. в 14:26 • 85 points

ОригиналHN

#python#huggingface#apache-2.0#synthetic-data#machine-learning#chain-of-thought#great-expectations#dag#open-source#data-generation

Комментарии (16)

  • Представлен интерактивный инструмент для генерации синтетических данных с возможностью интерактивного редактирования и проверки на каждом шаге.
  • Обсуждается техническая реализация: интеграция с существующими схемами БД, поддержка экспорта в txt/csv, переход от древовидных структур к графам (DAG).
  • Упоминаются публично доступные синтетические датасеты (GSM8K, DevOps CoT) на Hugging Face для обучения моделей.
  • Затронуты вопросы качества данных: низкий уровень дублирования и высокая диверсификация, проверяемая с помощью great-expectations.
  • Проводятся параллели с другими методами (GLAN) и обсуждаются возможные заимствования кода между проектами.

Build durable workflows with Postgres (dbos.dev)

  • Выбор хранилища метаданных рабочих процессов оказался ключевым. Нужно было простое: чекпойнт состояния и восстановление после сбоя. Postgres выбрали за технические возможности, а не только за популярность и 40-летнюю проверку временем.

  • Масштабируемые очереди
    Классическая таблица-очередь страдает от конкуренции: все воркеры пытаются взять одни и те же задачи. Postgres решает это через FOR UPDATE SKIP LOCKED: строки блокируются и пропускаются, если уже захвачены. Воркеры без конфликтов берут следующие N записей, позволяя обрабатывать десятки тысяч задач в секунду.

  • Наблюдаемость
    Каждый шаг сохраняется, поэтому можно строить дашборды и фильтры. SQL позволяет писать сложные запросы напрямую; индексы по created_at, executor_id, status ускоряют выборки из миллионов записей без лишних затрат.

  • Exactly-once для шагов с БД
    Обычно гарантируется «по крайней мере один раз», но если шаг меняет данные в той же транзакции, что и чекпойнт, Postgres обеспечит, что изменения зафиксируются ровно один раз даже после перезапуска.

by KraftyOne • 08 августа 2025 г. в 19:24 • 138 points

ОригиналHN

#postgresql#dbos#graphile-worker#temporal#python#typescript#java#c##go#dag

Комментарии (49)

  • Пользователи хвалят DBOS за простоту миграции с graphile-worker и отсутствие необходимости менять инфраструктуру.
  • Сравнения с Temporal, Azure Durable Functions, Inngest, Restate и Cloudflare: DBOS выглядит проще и легче, но Temporal/Cloudflare критикуют за сложность самостоятельного хостинга и высокую цену.
  • Некоторые жалуются, что «сервер» DBOS (Conductor) не open-source, что ограничивает самостоятельное развёртывание.
  • Планы по добавлению Java, C#, Go и поддержке сообщества уже анонсированы; Python и TypeScript уже поддерживаются.
  • Отмечена возможность комбинировать DBOS с Dagster/Oban/pgflow для более сложной оркестрации.

Representing Python notebooks as dataflow graphs (marimo.io)

marimo — новый open-source Python-ноутбук, в котором программа представлена графом потока данных. Это снимает главные боли Jupyter: скрытое состояние, невоспроизводимость, невозможность повторного использования и сложную поддержку.

Почему старый формат не подходит

  • Воспроизводимость. Исследования 2019–2020 гг. показали: только 4–24 % ноутбуков на GitHub можно перезапустить без ошибок и получить те же результаты. Причина — скрытое состояние: удаление или переупорядочивание ячеек ломает выводы.
  • Интерактивность. В Jupyter интерактивен процесс, но не сами данные: выделение точек на графике не возвращает датафрейм.
  • Поддержка и переиспользование. Файл .ipynb — это JSON-блоб, не валидный Python-код; сложно версионировать в Git и переиспользовать как модуль или пайплайн.

Как marimo решает задачу

  • Каждый ноутбук — корректный Python-скрипт и модуль.
  • Граф зависимостей ячеек строится статически; изменение одной ячейки автоматически перезапускает только зависимые.
  • Реактивность: обновление переменной мгновенно отражается во всех графиках и виджетах.
  • Один файл можно экспортировать как приложение или запускать без ядра Jupyter.

by akshayka • 05 августа 2025 г. в 17:39 • 89 points

ОригиналHN

#python#jupyter#dataflow#notebooks#uv#dag#reactivity#reproducibility#open-source

Комментарии (27)

  • Пользователи хвалят marimo за реактивное исполнение, «песочницу» uv и лёгкий обмен с коллегами.
  • Сторонники Jupyter считают, что «restart kernel & run all» решает проблему воспроизводимости, но критики отвечают: это требует дисциплины и не работает при тяжёлых вычислениях.
  • Некоторые видят в ноутбуках лишь инструмент разведки и предлагают после исследования переносить код в обычные .py-файлы.
  • Участники сходятся, что метаданные зависимостей и чистые DAG-подобные модели вычислений могли бы улучшить ситуацию.