Big Data Science [RU]
1.67K subscribers
72 photos
9 videos
539 links
Big Data Science [RU] — канал о жизни Data Science.
Для сотрудничества: a.chernobrovov@gmail.com
🌏https://xn--r1a.website/bdscience — Big Data Science channel (english version)
💼https://xn--r1a.website/bds_job — channel about Data Science jobs and career
Download Telegram
💥Комбо Python и SQL в FugueSQL: единый SQL-интерфейс для датафреймов Pandas, Spark и Dask
FugueSQL
- это открытая Python-библиотека, которая позволяет комбинировать Python-код с SQL-командами, переключаясь между ними в Jupyter Notebook или Python-скрипте. FugueSQL поддерживает распределенные вычисления и предоставляет унифицированный API для запуска одного и того же кода SQL в Pandas, Dask и Apache Spark.
В отличие от PandaSQL, который имеет единственный сервер SQLite, что приводит к большим накладным расходам при передаче данных между Pandas и базой данных, FugueSQL поддерживает несколько локальных бэкендов: pandas, DuckDB и SQLite.
При использовании pandas-бэкэнда Fugue напрямую переводит SQL в операции pandas, исключая передачу данных. DuckDB имеет превосходную поддержку pandas, поэтому накладные расходы на передачу данных незначительны. И Pandas, и DuckDB являются предпочтительными серверными модулями FugueSQL для локальной обработки данных. Fugue также поддерживает Spark, Dask и cuDF (через blazingSQL) в качестве бэкэндов.
В Fugue код SQL анализируется с помощью ANTLR и сопоставляется с эквивалентными функциями в API Fugue. FugueSQL имеет множество встроенных возможностей и расширяется с помощью Python-кода. По умолчанию он поддерживает наиболее распространенные на практике функции: заполнение значений NULL, удаление значений NULL, переименование столбцов, изменение схемы и пр. Fugue также добавляет некоторые улучшения в стандартный SQL, чтобы изящно обрабатывать сквозные рабочие процессы данных. Например, создание промежуточных таблиц через присвоение переменных.
В Pandas %% fsql принимает NativeExecutionEngine в качестве параметра по умолчанию. В Dask работа FugueSQL чуть медленнее нативного движка, но более полна с точки зрения реализованных ключевых слов SQL. FugueSQL также работает на Spark, сопоставляя операции %%fsql с операциями Spark и Spark SQL. Это позволяет быстро разрабатывать распределенные приложения. Достаточно создать локальный прототип с помощью NativeExecutionEngine, протестировать его и развернуть в кластере Spark, просто изменив механизм выполнения.
https://towardsdatascience.com/introducing-fuguesql-sql-for-pandas-spark-and-dask-dataframes-63d461a16b27
https://fugue-tutorials.readthedocs.io/tutorials/fugue_sql/index.html
👻Что такое UMAP и зачем это Data Scientist’у
UMAP (Uniform Manifold Approximation and Projection) - это универсальный алгоритм обучения многообразию и уменьшения размерности. Он разработан для совместимости с scikit-learn, использует тот же API и может быть добавлен в конвейеры sklearn. Будучи стохастическим алгоритмом, UMAP использует рандомизацию для ускорения шагов аппроксимации и оптимизации. Это означает, что разные прогоны UMAP могут давать разные результаты. Хотя UMAP относительно стабилен, в идеале разница между прогонами должна быть относительно небольшой, но она есть. Чтобы гарантировать точное воспроизведение результатов, UMAP позволяет пользователю устанавливать случайное начальное состояние.
Начиная с версии 0.4 UMAP также поддерживает многопоточность для повышения производительности, а при оптимизации условия гонки между потоками допустимы на определенных этапах. Случайность в выходных данных UMAP для многопоточного случая зависит не только от входного случайного начального числа, но и от условий гонки между потоками во время оптимизации, что невозможно контролировать. Поэтому результаты многопоточного UMAP не могут быть воспроизведены явно.
UMAP можно использовать в качестве эффективного этапа предварительной обработки для повышения производительности кластеризации на основе плотности. Но UMAP, как и t-SNE, не сохраняет плотность полностью и может создавать ложные разрывы в кластерах. По сравнению с t-SNE, UMAP сохраняет более глобальную структуру, создавая более значимые кластеры. А благодаря поддержке произвольных размеров встраивания, UMAP позволяет работать с большими размерными пространствами.
Из-за активного использования метода ближайших соседей, для некоторых датасетов UMAP может чрезмерно потреблять память. Поможет установка параметра low_memory в значение True, чтобы переключиться на более медленный, но менее интенсивный подход к вычислению ближайших соседей. Также важно знать, что при запуске без случайного начального числа UMAP будет использовать параллельную реализацию NUMBA для многопоточной работы и использования ядер ЦП. По умолчанию он будет использовать столько ядер, сколько доступно. Ограничить количество потоков, используемых Numba, можно с помощью переменной среды NUMBA_NUM_THREADS. Также из-за особенностей Numba, UMAP не поддерживает 32-разрядную версию Windows.
Несмотря на некоторые недостатки, UMAP можно использовать в следующих случаях:
• разведочный анализ данных (EDA);
• интерактивная визуализация результатов анализа;
• обработка разреженных матриц;
• выявление вредоносных программ на основе поведенческих данных;
• предварительная обработка векторов фраз для кластеризации;
• предварительная обработка эмбеддингов изображений (Inception) для кластеризации.
https://github.com/lmcinnes/umap
https://umap-learn.readthedocs.io/en/latest/index.html
🚀Ускоряем DS на больших данных: Pandas API прямо в Apache Spark
Популярный вычислительный фреймворк Apache Spark позволяет писать программы на Python, который знаком каждому DS-специалисту. Теперь PySpark включает pandas-библиотеку, которую можно импортировать всего одной строкой: import pyspark.pandas as ps.
Это дает следующие преимущества:
• снижает порог входа в Spark;
• унифицирует кодовую базу для небольших и больших данных, локальных машин и распределенных кластеров;
• ускоряет код Pandas.
Примечательно, что Pandas на Spark работает даже быстрее другого популярного Python-движка Dask.
https://spark.apache.org/docs/latest/api/python/user_guide/pandas_on_spark/index.html
https://towardsdatascience.com/run-pandas-as-fast-as-spark-f5eefe780c45
https://databricks.com/blog/2021/10/04/pandas-api-on-upcoming-apache-spark-3-2.html
🚨 Серия митапов про Data Science в гео-данных, гео-сервисах, логистике, приложениях Smart City продолжается!

21 декабря в 19:00 МСК ждем всех на завершающей в этот год онлайн-встрече Citymobil Data Meetup!

🚀 В 2021 провели 4 митапа, привлекли 12 классных спикеров с огненными докладами:
Ксения Мензорова, Екатерина Колпакова, Николай Радчиков, Михаил Дьячков, Алексей Венжега, Алексей Кудинов, Максим Шаланкин, Сергей Свиридов, Даниил Тарарухин, Артем Солоухин, Андрей Критилин, Федор Лаврентьев.

🎁 Но на Новый год мы решили обойтись без сложных докладов, а сделать классный развлекательный формат: подвести итоги года в мире Data Science и Big Data, а также устроить викторину с подарками 🥳!

Регистрация для бесплатного участия: https://citymobil.timepad.ru/event/1870148/

Итоги года подведут:
🚕 Алексей Чернобровов (Ситимобил, Head of Data Science)
🆗 Андрей Кузнецов (Ok.ru, Data Scientist)
📹 Артур Кузин (SberDevices, Head of Computer Vision Platfrom)
Валерий Бабушкин (Blockchain.com, Head of Data Science)
☎️ Виктор Кантор (МТС, Директор центра Big Data)
🖼 Дмитрий Коробченко (NVIDIA, Senior Manager of AI)

Ведущие: Алексей Чернобровов и Анастасия Никулина!
👑Продолжаем знакомиться с полезными DS-инструментами: встречайте Streamlit
Streamlit - это Python-библиотека с открытым исходным кодом, которая упрощает создание и публикацию красивых пользовательских веб-приложений для ML и DS. Создавайте и развертывайте мощные приложения всего за пару минут. Сравнение Streamlit с Dash похоже на сравнение Python с C#. Streamlit упрощает создание приложений для веб-данных в чистом коде Python, часто в несколько строк кода. Например, однострочные команды для отображения интерактивных визуальных элементов Plotly, Bokeh и Altair, Pandas DataFrames и пр. Streamlit поддерживается огромным open-source сообществом разработчиков: добавляйте собственные компоненты в библиотеку с помощью JavaScript. А облачное использование Streamlit открыто для всех: можно создать и разместить до трех приложений бесплатно.
https://streamlit.io/
☀️Встречайте Gallia: новая библиотека для преобразования данных
Эта Scala-библиотека с поддержкой схемы пригодится для практического преобразования данных, включая ETL-процессы, разработка функций, HTTP-ответы и пр. Будучи отлично масштабируемой, она предназначена, чтобы заполнить пробел между Pandas и Spark SQL. Gallia пригодится тем, кто ценит мощную систему типов как в Scala, и тем, кому сложно понять слишком навороченные SQL-запросы. По сути, Gallia реализует парадигму единого окна для большинства или всех потребностей преобразования данных в одном приложении. Библиотека поддерживает все виды манипуляций с данными, от агрегаций до пивот-поворота таблиц, включая обработку отдельных и вложенных объектов, а не только коллекций. Для масштабирования Gallia отлично интегрируется со Spark RDD API.
https://cros-anthony.medium.com/gallia-a-library-for-data-transformation-3fafaaa2d8b9
https://github.com/galliaproject/gallia-core/blob/master/README.md
Сегодня ML – это не только разработка моделей. Data Scientist ведет непрерывный сбор и анализ статистики процессов машинного обучения, включая распределение значений метрик и показателей производительности модели. Это занимает много времени, поэтому появляются инструменты для автоматизированного исследования таких метаданных и особенностей инфраструктуры. Одним из них является автономный open-source пакет Aim. Он позволяет отслеживать множество ML-экспериментов и сравнивать их производительность в удобном GUI или программно через SDK. API предоставляет методы, чтобы запрашивать метаданные ML-прогонов для последующей автоматизации и дополнительного анализа. По сути, Aim реализует концепцию MLOps и является альтернативой популярным средствам этого стека: Tensorboard и MLFlow. Однако, по сравнению с ними Aim имеет следующие преимущества:
• В отличие от TensorBoard и MLFlow, в Aim можно группировать и агрегировать показатели обучения ML-модели, а также строить подзаголовки по гиперпараметрам и вводить собственные функции сравнения экспериентов;
• Aim работает быстрее TensorBoard и MlFlow. Aim может обрабатывать тысячи тренировочных прогонов с десятками экспериментов в каждом, причем как на бэкэнде, так и в GUI. В частности, пользовательский интерфейс Aim может обрабатывать несколько тысяч показателей одновременно с плавным шагом.
Пакет поддерживает интеграцию с PyTorch, Hugging Face, Keras, TensorFlow и XGBoost. Пока Aim доступен для Python 3.6+ на платформах Linux и MacOS. В ближайших планах разработчиков добавить интеграцию с Python-библиотеками Scikit-learn и plotly, IDE Google Colab и Jupyter Notebook, а также MLOps-инструментами Kubeflow, Streamlit, Raytune и Google MLMD. Еще ожидается поддержка резервного копирования в облачные хранилища AWS S3, Google Cloud Storage и Azure.
Попробовать Aim можно уже сейчас, скачав его с Github: https://github.com/aimhubio/aim.
Подробная документация: https://aimstack.readthedocs.io/en/latest/
👻4 простых совета для эффективной дата-инженерии
Чтобы проекты дата-инженерии с сотнями артефактов, включая файлы зависимостей, задания, модульные тесты, shell-файлы и блокноты Jupyter, не превратились в хаос, соблюдайте следующие правила:
управляйте зависимостями, например, через менеджер зависимостей типа Poetry
помните про юнит-тесты - внедрение модульных тестов в проект убережет от неприятностей и улучшит качество кода
разделяй и властвуй - храните все преобразования данных в отдельном модуле
документируйте, чтобы помнить о коде и решаемой им бизнес-задаче самому и делиться знаниями с коллегами
https://blog.devgenius.io/keeping-your-data-pipelines-organized-fa387247d59e
👣AutoML и не только с PyCaret
PyCaret
– AutoML-библиотека с открытым исходным кодом на Python и низкоуровневым подходом к автоматизации большинства MLOps-задач. В PyCaret есть специальные функции для анализа, развертывания и объединения моделей, которых нет во многих других ML-фреймворках. Она позволяет перейти от подготовки данных к развертыванию ML-модели за считанные минуты в выбранной пользователем среде разработки.
По сути, PyCaret – это Python-оболочка для нескольких библиотек и ML-фреймворков: scikit-learn, XGBoost, LightGBM, CatBoost, spaCy, Optuna, Hyperopt, Ray и пр. Простота PyCaret позволяет использовать его не только опытным DS-специалистам, но и обычным пользователям, которые умеют выполнять простые сложные аналитические задачи. Библиотека доступна для свободного скачивания и использования под лицензией MIT. Пакет содержит несколько модулей, функции в которых сгруппированы по основным сценариям использования: от простой классификации до NLP-задач и определения аномалий.
https://pycaret.org/
https://github.com/pycaret/pycaret
Специалисты Школы анализа данных Яндекса сделали настоящий подарок для начинающих ML- и Data-специалистов, выложив в открытый доступ онлайн-учебник по машинному обучению
 
• как работают технологии, которыми пользуются миллионы людей;
• какие практические задачи решает ML и какие еще предстоит решить;
• какая теоретическая база необходима для работы, связанной с ML. 
 
На все эти вопросы и отвечает онлайн-пособие, разъясняя как основные методы и алгоритмы машинного обучения, так и практические вопросы об их реализации и работе с данными.

Приступить можно прямо сейчас — с глав «Классические методы обучения с учителем» и «Оценка качества моделей». В будущем учебник пополнится новыми разделами.
🐻‍❄️В преддверии Нового года ускоряем DS: встречайте Polars
Polars
– быстрая библиотека подготовки данных к ML-моделированию для Python и Rust. Она в 15 раз быстрее Pandas, распараллеливая обработку датафреймов и запросов в памяти. Будучи написанным на Rust, Polars использует все ядра компьютера. Также библиотека оптимизирована под специфику процессов обработки данных и поддерживает Python. Богатый API позволяет не только работать с огромными объемами данных на этапе их предподготовки, но и строить рабочие конвейеры. Бенчмаркинговое сравнение показало, что Polars опережает не только Pandas, но и другие инструменты, включая популярные в Big Data вычислительные движки типа Apache Spark, Dask и пр.

Установить и попробовать Polars очень просто с помощью менеджера пакетов pip:
pip install polars
import polars as pl
https://www.pola.rs/
https://betterprogramming.pub/this-library-is-15-times-faster-than-pandas-7e49c0a17adc
🚀Ускоряем scikit learn: новое расширение старой доброй Python-библиотеки для DS
Популярная Python-библиотека Scikit-learn знакома каждому Data Scientist’у. У нее много достоинств, но в отличие от мощных ML-фреймворков PyTorch и TensorFlow, Scikit-learn не позволяет быстро обучать модели на графических процессорах. Этот недостаток устраняет sklearnex (Extension for Scikit-learn) – расширение Sci-Kit Learn от корпорации Intel®. Sklearnex - это бесплатный программный AI-модуль, который обеспечивает ускорение в 10–100 раз для различных приложений. Он полностью поддерживает все API и алгоритмы Scikit-Learn, ускоряя код за счет замены стандартных алгоритмов их оптимизированными версиями. Расширение поддерживает Python 3.6 и новее, а установить его можно с помощью типовых менеджеров пакетов pip или conda:
pip install scikit-learn-intelex
conda install scikit-learn-intelex -c conda-forge
https://intel.github.io/scikit-learn-intelex/
https://medium.com/@vamsik23/boost-sklearn-using-intels-sklearnex-cf2669f425bd
🔝TOP-25 International Data Science events 2022:

1. WAICF - World Artificial Intelligence Cannes Festival https://worldaicannes.com/ February 10-12, Cannes, France
2. Deep and Reinforcement Learning Summit https://www.re-work.co/events/deep-learning-summit-2022 February 17-18, San Francisco, USA
3. Reinforce https://reinforceconf.com/ March 8-10, Budapest, Hungary
4. MLconf https://mlconf.com/event/mlconf-nyc/ March 31, New York City, USA
5. Open Data Science Conference EAST https://odsc.com/boston/ April 19-21, Boston, USA
6. ICLR - International Conference on Learning Representations https://iclr.cc/ April 25–29, online
7. SDM - SIAM International Conference on Data Mining https://www.siam.org/conferences/cm/conference/sdm22 April 28–30, Westin Alexandria Old Town, Virginia, USA
8. World Summit AI Americas https://americas.worldsummit.ai/ May 4-5, Montreal, Canada
9. The Data Science Conference https://www.thedatascienceconference.com/ May 12-13, Chicago, USA
10. World Data Summit https://worlddatasummit.com/ May 18-22, Amsterdam, The Netherlands
11. Machine Learning Prague https://mlprague.com/ May 27-29, Prague, Czech Republic
12. The AI Summit London https://london.theaisummit.com/ June 15-16, London, UK
13. Machine Learning Week https://www.predictiveanalyticsworld.com/machinelearningweek/ June 19-24, Las Vegas, USA
14. Enterprise AI Summit https://www.re-work.co/events/enterprise-ai-summit-berlin-2022 June 29–30, Berlin, Germany
15. DELTA - International Conference on Deep Learning Theory and Applications https://delta.scitevents.org/ July 12-14, Lisbon, Portugal
16. ICML - International Conference on Machine Learning https://icml.cc/ July 17-23, online
17. KDD - Knowledge Discovery and Data Mining https://kdd.org/kdd2022/ August 14-18, Washington, DC, USA
18. Open Data Science Conference APAC https://odsc.com/apac/ September 7-8, online
19. RecSys – ACM Conference on Recommender Systems https://recsys.acm.org/recsys22/ September 18-23, Seattle, USA
20. INTERSPEECH https://interspeech2022.org/ September 18-22, Incheon, Korea
21. BIG DATA CONFERENCE EUROPE https://bigdataconference.eu/ November 21-24, Vilnius, Lithuania
22. EMNLP - Conference on Empirical Methods in Natural Language Processing https://2021.emnlp.org/ November, TBA
23. Data Science Conference https://datasciconference.com/ November, Belgrade, Serbia
24. Data Science Summit http://dssconf.pl/ December, Warsaw, Poland
25. NeurIPS https://nips.cc/ December, TBA
🏂Как выбрать меру валидации ML-моделей: подход Яндекса
В каждой практической задаче машинного обучения есть проблема с измерением результатов. Разные меры могут привести к разным результатам оценки и, следовательно, к разным выбранным алгоритмам. Поэтому найти подходящую меру качества очень важно. Исследователи из Яндекса сравнивают различные подходы к решению типовых ML-задач, от классификации до кластеризации, чтобы сформулировать универсальный метод выбора наиболее оптимальной меры качества. Ключевые тезисы и основные результаты изложены в статьях на конференциях В недавних статьях, опубликованных на ICML 2021 и NeurIPS 2021, а краткий пересказ доступен прямо на сайте Яндекса https://research.yandex.com/news/how-to-validate-validation-measures.
http://proceedings.mlr.press/v139/gosgens21a/gosgens21a.pdf
https://papers.nips.cc/paper/2021/file/8e489b4966fe8f703b5be647f1cbae63-Paper.pdf
Zee - это картина, которая написана на Javascript посредством полностью сгенерированного кода, который написал художник Лукас С. Ривил. Одна функция генерирует волны, другая облака, третья чаек и так далее. В каждой функции используются случайные числа, результат предсказуем, но до конца неизвестен.
😎Как читать таблицы из PDF: tabula-py
Иногда исходные данные для анализа хранятся в pdf-документах. Чтобы автоматически извлечь данные из этого формата сразу в датафрейм, попробуйте tabula-py. Это простая Python-оболочка для tabula-java, которая может читать таблицы PDF и конвертировать в датафрейм pandas, а также файлы CSV/TSV/JSON.
Просто сначала установите ее через менеджер пакетов pip: pip install tabula-py
А затем импортируйте в свой Python-скрипт:
import tabula as tb
И можно пользоваться:
file='DataFile.pdf'
data = tb.read_pdf(file, pages = '12')
df = pd.DataFrame(data)
Примеры на английском языке: https://medium.com/codestorm/how-to-read-and-scrape-data-from-pdf-file-using-python-2f2a2fe73ae7
Русскоязычные примеры: https://nuancesprog.ru/p/13614/
Документация: https://tabula-py.readthedocs.io/en/latest/
💥5 главных трендов инженерии данных в 2022 году: исследование Astronomer
Компания Astronomer, которая занимается коммерциализацией и продвижением популярного инструмента автоматизации пакетных процессов работы с данными, Apache AirFlow, подготовила провела ряд интервью с экспертами в области дата-инженерии, чтобы выявить наиболее актуальные тенденции в этой ИТ-области. Ключевые направления наступившего года:
Происхождение и обеспечение качества данных (data lineage, data provenance и Data Quality)
Децентрализация данных по разным контекстам и командам, но в рамках единой согласованной инфраструктуры с централизацией ресурсов
Консолидация инструментов работы с данными, включая оркестровку конвейеров обработки
Сетки данных (Data Mesh), устраняющие разрозненность между командами обработки через соединение используемых платформ
взаимная интеграция DataOps, MLOps, AIOps для более эффективного и быстрого использования согласованных друг с другом данных и инструментов бесшовной работы с ними.
https://www.astronomer.io/blog/top-data-management-trends-2022
🗣SQL-запросы к CSV-файлу с csvkit
csvkit
— это набор инструментов командной строки для преобразования и работы с CSV-файлами. Эта утилита позволяет на простом Python выполнить следующие операции:
• Преобразовать файлы Excel и JSON в CSV
• Отобразить только имена столбцов
• Нарезать данные
• изменить порядок столбцов
• найти строки с совпадающими ячейками
• преобразовать CSV в JSON
• генерировать сводную статистику
• обратиться к CSV с помощью SQL-запросов
• импортировать данные в базы данных и извлекать из них
• выполнить парсинг данных CSV
• поработать с разделителями столбцов
Установить csvkit поможет менеджер пакетов pip: pip install csvkit
А синтаксис обращения к CSV-файлу через SQL-запрос в командной строке будет выглядеть так:
csvsql --query "SQL Query Here -- source file name as table name (without .CSV)" source_filename > target_filename
Чтобы использовать это в своем Python-скрипте следует
1) сперва импортировать CSVSQL из утилиты csvkit
from csvkit.utilities.csvsql import CSVSQL
2) далее определить аргументы как список значений, например:
args = ['--query','select distinct manufacturer from playground','payground.csv']
3) затем вызвать CSVSQL с аргументами
result = CSVSQL(args)
3) наконец, можно показать результаты
print(result.main())
https://csvkit.readthedocs.io/en/latest/index.html
https://medium.com/data-engineering-ramstkp/sql-queries-on-csv-using-python-24a472fe53b1
🚀Ускоряем аналитику Big Data: кейс Expedia Group с Apache Druid and DataSketches
При анализе больших данных часто возникают проблемные запросы, которые не масштабируются, поскольку требуют огромных вычислительных ресурсов и времени для получения точных результатов. Например, подсчет отдельных элементов, квантили, наиболее частые элементы, соединения таблиц в SQL-запросах, матричные вычисления и анализ графов. Если приблизительные результаты для таких вычислений приемлемы, есть специальные потоковые алгоритмы или эскизы (скетчи), которые выполняются на несколько порядков быстрее с допустимыми погрешностями. Скетчи помогли Yahoo успешно сократить время обработки данных с дней или часов до минут или секунд. Одним из таких инструментов является open-source библиотека Apache DataSketches.
Именно ее использует крупная туристическая компания Expedia Group, чтобы ускорить анализ временных рядов в Apache Druid, где соединения таблиц ограниченно поддерживаются, требуя помещения одного набора данных в память. DataSketches поддерживает операции с множествами, включая соединение, пересечение и разность, с небольшой потерей точности. Это полезно при поиске и бронировании билетов. С DataSketches можно запросить каждый набор данных независимо от Druid, чтобы получить нужный объект для каждого набора данных с целью предварительного, а затем и окончательного расчета. Поскольку изначально Druid не поддерживал слияние объектов DataSketches, инженерам Expedia Group пришлось написать собственный код на Java. Причем объект DataSketches занимает очень мало места в памяти, несмотря на большой размер множества. В итоге Apache Druid, колоночная СУБД для быстрого приема огромных объемов данных о событиях и предоставления запросов с малой задержкой, стала работать еще быстрее.
https://datasketches.apache.org/
https://medium.com/expedia-group-tech/fast-approximate-counting-using-druid-and-datasketch-f5f163131acd
NVIDIA выпустила обновление для программы NVIDIA Canvas — графического редактора, создающего с помощью ИИ реалистичные пейзажи на основе схематичных рисунков.
https://youtu.be/wKztRskmsig