Post content
Должен ли ML инженер понимать принцип работы процессов/потоков в питоне? Очень часто в обсуждениях вопросов с собеседования ML инженеров слышу споры о том, нужно ли спрашивать про принцип работы питона, в частности про потоки/процессы/GIL и прочее. Разумеется, это зависит от задач, которыми предстоит заниматься в команде. Но вот вам пример, который встречался мне несколько раз в разных компаниях, где за 10 минут можно было получить кратный прирост в скорости: Есть пайплайн на pyspark, который скачивает картинки с помощью user-defined function (udf). udf применяется построчно и параллельность тут достигается только за счет нескольких воркеров. Теперь меняем udf на pandas_udf (обработка идет сразу чанками, pd.Series) и внутри уже скачиваем картинки потоками. Несколько измененных строчек кода и пайплайн работает в ~5-10 раз быстрее. Пайплайн на спарке можно заменить и на обычный питон скрипт, смысл останется тем же.