В 2022 мы с коллегами в Сбере составили карту компетенций, которую давали Juniorам, вновь нанятым в наше подразделение.
C тех пор утекло порядочно воды, но думаю, как база, это все никуда не ушло, только что-то добавилось.
Можно ориентироваться на этот список, если вы Junior DS/ML инженер или хотите им стать.
Не пугайтесь. Это то, чем владеют профессионалы. Начинать можно с гораздо меньшего.
Базы данных SQL
- SQL клиент (Dbeaver/php-my-admin/heidi) подключение, работа с таблицами
- пишем простые запросы select, join, group by, having
- выгрузка данных в файлы
- Колоночные базы данных, ClickHouse
- запуск Postgres сервера в качестве хранилища данных
- DataWareHouse, Data Lake - знать что это и уметь подключаться в хранилищу типа S3
Linux
- базовые команды для директорий
- копирование, удаление файлов/папок, архивирование
- права, владельцы, смена прав и владельцев
- пайплайны команд
- работа с потоками stdout, stderr
- cron
Python
- циклы, условия, переменные
- импорт библиотек
- работа с файлами (чтение, копирование, запись, преобразование форматов)
- подключение к базам данных
- скрипты извлечения и переноса данных из SQL хранилищ, автоматизированная работа с массивными файловыми архивами
- классы, объекты
- pickle
- requests
- threading, concurrent
- asyncio
Файловые форматы
- CSV, XLSX, JSON, XML, TXT, DBF, Commerce ML
- в каких редакторах открывать
- как работать через Python
- PIL - работа с изображениями в Python
Pandas
- датафреймы и серии
- сортировка, группировка, фильтрация
- чтение и сохранение данных
- построение графиков - гистограммы, распределения, статистические связи
- корреляции
- сводные таблицы
- работа с SQL базами данных
- экспорт отчетов
- Стандартизация данных
- feature extraction
Jupyter Notebook
- интерактивная среда анализа данных
- графики
- таблицы
- построение и экспорт отчетов
- построение дашбордов с Ipywigets
- интерактивные web дашборды с Voila
Numpy
- Срезы, преобразования матриц, тензоров
- Математические операции с векторами и матрицами, модуль линейной алгебры
Модели
- задачи классификации
- знать метрики в задачах классификации - точность полнота, F-мера и т.д., понимать, чем они отличаются
- логистическая регрессия (sklearn)
- дерево решений
- случайный лес
- бустинговые деревья (Catboost, Xgboost)
- байесовские алгоритмы (наивный байес)
- Уметь реализовывать с помощью sklearn python и pyspark
Задачи регрессии
- Линейная регрессия (sklearn)
- Ridge регрессия
- Lasso регрессия
- регрессия Random Forest
- регрессия бустинговыми деревьям (Catboost)
- Уметь реализовывать с помощью sklearn python и pyspark
Задачи кластеризации
- kmeans
- Principal Component Analysis (PCA)
- DBSCAN
Нейросетевые модели
- Понимание принципов работы нейронной сети
- Функции активации и функции потерь
- многослойный перцептрон
- сверточные сети для изображений
- сверточные сети для работы с текстами
- рекуррентные сети и LSTM
- сети VGG для классификации изображений
- автоэнкодеры
Работа с OpenCV
- обработка изображений
- фильтры, выделение контуров
- захват видео
- детекция людей, лиц, автомобилей - предобученные сети в OpenCV
NLP
- токенизация
- регулярные выражения, очистка текста, выделение эмоджи
- TF-IDF модели для классификации текстов (униграммы. биграммы) - лог регрессия, полносвязная сеть.
- работа с эмбеддингами FastText, Word2Vec
- обучение собственных эмбеддингов слов в gensim
- сверточные сети для работы с текстами - классификация текстов, предсказание целевых значений по тексту.
- классификация текстов с Bert
- задачи NER, NLI
- zero shot, few shot inference с использованием языковых моделей
- Техники промптинга LLM
- Работа с API OpenAi и ChatGPT
PyTorch
- работа с тензорами
- Запуск модели с git (в отдельном env и предустановкой всех requerments)
- создание многослойного персептрона для классификации, регрессии
- запуск моделей для классификации и детекции изображений (свертки - VGG, YOLO)
- запуск моделей с Hugginface
- архитектура трансформеров, работа с BERT, GPT, извлечение контекстных эмбеддингов
- запуск ruGPT-3, работа с затравками
- генерация текстов с GPT-3
- дообучение GPT-3 под кастомную задачу генерации
- вычисление перплексии с GPT-3
Hadoop
- работа с HDFS и распределенные файловые системы
- работа с parquet
Spark
- Spark DataFrame
- Spark Functions
- работа с Hive
- подключение к SQL базам данных
- Spark ML
Веб сервисы и API
- делаем http запросы с requests (GET, POST, PUT, DELETE)
- отправляем и получаем данные - html, xml, json
- парсинг html, веб скрепинг с BeautifulSoup
- подключаемся к API (архитектура rest, заголовки запросов, basic auth)
- структура собственного API веб сервиса, пример сервиса на Python3 с фреймворками
- Flask
- Bottle
- FastAPI
- веб приложение - архитектура MVC
- веб приложение с формой (отправка форм, html, css)
- веб приложение с базой данных (Mysql, Postgres)
- веб приложение с кэшем - memcached, Redis
- деплой и контейнеризация - Docker
Брокеры очередей
- Kafka
- RabbitMQ