Описание курса
Проектирование и разработка интеллектуальных информационных систем
23.11.24
14.12.24
Целью курса является изучение базовых парадигм разработки интеллектуальных информационных систем (ИИС), т.е. систем обладающих способностью собирать, обрабатывать и анализировать большое количество данных, на основе которых она может автоматически принимать решения и выполнять задачи. Такие системы могут быть использованы для широкого круга задач в различных отраслях, включая финансы, здравоохранение, транспорт, производство и множество других областей.
Интеллектуальные системы могут автоматизировать процессы и улучшать качество принимаемых решений. Они могут анализировать данные и выдавать рекомендации или предсказания, учитывая сложные факторы и зависимости, вычисляемые на основе статистических данных.
Разделы
[Intro] Введение в ИИС и выравнивание знаний.
Определение, основные принципы, характеристики; анализ существующих примеров ИИС и их роли в различных областях; этические и социальные аспекты разработки и использования ИИС. Оформление кода, разработка проектов на языке Python, а также хранение и извлечение данных.
- Отличающие характеристики интеллектуальных системы от информационных;
- Основные этапы жизненного цикла разработки интеллектуальных информационных систем;
- Требования к данным, обучающим выборкам и инфраструктуре, при разработке интеллектуальных систем;
- Структура кода (PEP8) и проекта на Python;
- Модульное тестирование (автотесты);
- Типы лицензий;
- Документирование и журналирование;
- Роль обучающей, валидационной и тестовой выборок данных при разработке интеллектуальных систем;
- Несбалансированные данные для обучения моделей;
- Извлечение данных;
- Безопасность и конфиденциальность данных;
- Реляционные и нереляционные базы данных;
- Графовые базы данных;
- Векторная базы данных.
[Algo] Алгоритмизация стратегий и решений для разработки ИИС.
Базовые возможности ИИС на примерах задач оптимизации и анализа данных, сравнение эффективности реализаций и основы теории алгоритмов.
- Концепции разработки алгоритмов;
- Линейное, вероятностное и функциональное программирование в решении практических задач;
- Алгоритмы на графах и сетях;
- Генетические алгоритмы;
- Алгоритмы решения задач большой размерности;
- Подходы для ускорения работы алгоритмов.
[ML] Классификация и описание моделей и их метрик в машинном обучении.
Обзор на классические задачи машинного обучения и разбор ключевых алгоритмов, с точки зрения их принципа работы и сравнения при помощи базовых метрик оценки.
- Модели и метрики, общий подход
- Обучение с учителем
- Обучение без учителя
- Модели кластеризации и её метрики
- Ансамблевые модели и метрики
- Снижение размерности
- Рекомендательные системы
[NLP] Техники и Модели обработки естественного языка (NLP).
Формирование понятийного аппарата и обзор открытых инструментов в области анализа естественного языка, навыки поиска и использования готовых NLP-моделей, и создание исследовательского цикла от исходных текстовых данных до отчета с артефактами.
- Терминология, базовые возможности и инструменты в NLP
- Векторизация и группировка (embedding) слов
- Рекуррентная нейросеть (RNN) в NLP
- Тональность и эмоциональная классификация текста
- NER
[LLM] Большие языковые модели (LLM) для ИИС.
На основе OpenAI API и комбинации запросов, создание приложений для генеративной текстовой модели (>GPT-3.5).
- Работа с OpenAI API
- Базовые понятия в Prompt Engineering
Задания
[Intro] Введение в ИИС и выравнивание знаний.
- Python, Numpy, Pandas: Manual, Notebook, Titanic data, Iris data
- Работа с данными: Notebook
- Визуализация данными: Notebook, Cereal data
[Algo] Алгоритмизация стратегий и решений для разработки ИИС.
- Временные ряды, часть 1: Notebook, Market data, BTC data
- Алгоритмы на графах: Notebook
[ML] Классификация и описание моделей и их метрик в машинном обучении.
- Основы машинного обучения: Notebook
- Деревья решений (Decision Tree): Notebook, ans data, train data, test data
[NLP] Техники и Модели обработки естественного языка (NLP).
- Word Embeddings: Notebook
- Streamlit: Notebook
- Латентное размещение Дирихле (LDA): Notebook, Elon Musk data
- Анализ текста: Notebook 1, Notebook 2, Text data
Проекты
Проект: Визуализация данных о заболеваемости COVID-19
- Описание: Разработка интерактивного веб-приложения для визуализации статистики заболеваемости COVID-19 по регионам, странам и времени. Приложение позволяет пользователям выбирать регионы и периоды времени для анализа графиков и тенденций.
- Стек: , ,
- Источник данных: Our World in Data, Johns Hopkins University
- Источник модели: Не требуется
- Системные характеристики: CPU с 2 ядрами, 4 ГБ ОЗУ, 10 ГБ свободного места на диске
- Роли в команде:
- – отвечает за сбор, очистку и обработку данных из внешних источников, интеграцию данных в приложение, настройку сервера и API.
- – создает пользовательский интерфейс, настраивает визуализацию данных с помощью Plotly и Streamlit, следит за отзывчивостью интерфейса.
- – анализирует данные, выявляет тренды и паттерны, предоставляет рекомендации по улучшению визуализаций.
- – проверяет функциональность и корректность приложения, управляет задачами и сроками команды.
Проект: Приложение для отслеживания личных финансов
- Описание: Веб-приложение для управления личными финансами с возможностью учета доходов и расходов, анализа и генерации отчетов.
- Стек: , или , ,
- Источник данных: Открытые API банков (Plaid API)
- Источник модели: Не требуется
- Системные характеристики: CPU с 2 ядрами, 4 ГБ ОЗУ, 10 ГБ свободного места на диске
- Роли в команде:
- – создает серверную часть приложения, интегрирует API для получения данных банков, обрабатывает данные и настраивает их хранение в базе данных.
- – отвечает за визуальное представление данных, создает формы ввода и таблицы, разрабатывает адаптивный интерфейс с использованием Bootstrap.
- – создает алгоритмы для анализа финансовых данных, разрабатывает отчеты и инструменты визуализации для пользователя.
- – проектирует пользовательский интерфейс, разрабатывает макеты и взаимодействия, оптимизирует приложение для удобства использования.
Проект: Telegram-бот для рекомендаций фильмов
- Описание: Создание Telegram-бота, который предоставляет рекомендации фильмов на основе жанра, года выпуска или рейтинга.
- Стек: , ,
- Источник данных: OMDb API
- Источник модели: Не требуется
- Системные характеристики: CPU с 2 ядрами, 4 ГБ ОЗУ, 5 ГБ свободного места на диске
- Роли в команде:
- – реализует функциональность бота, создает логику обработки команд и ответов, интегрирует бот с Telegram API.
- – отвечает за подключение к OMDb API, получение данных о фильмах и их обработку.
- – проверяет работу бота, управляет контентом (данные фильмов), создает тестовые сценарии.
- – разрабатывает текстовые и визуальные элементы взаимодействия с ботом, улучшает пользовательский опыт.
Проект: Приложение для учёта спортивных достижений
- Описание: Веб-приложение для спортсменов, позволяющее отслеживать спортивные достижения и прогресс (например, бег, велосипед, плавание).
- Стек: , , ,
- Источник данных: Strava API
- Источник модели: Не требуется
- Системные характеристики: CPU с 2 ядрами, 4 ГБ ОЗУ, 10 ГБ свободного места на диске
- Роли в команде:
- – создает API для работы с данными пользователей, интегрирует Strava API для получения данных о спортивных достижениях.
- – разрабатывает интерфейс приложения, настраивает визуализацию данных с использованием Chart.js.
- – анализирует спортивные данные, создает отчеты и графики прогресса.
- – организует процессы разработки, тестирует функциональность и координирует команду.
Проект: Приложение для планирования задач с использованием Kanban-доски
- Описание: Приложение для планирования задач, основанное на методологии Kanban, с функциями добавления, изменения и удаления задач.
- Стек: , ,
- Источник данных: Нет (приложение использует внутренние данные пользователя)
- Источник модели: Не требуется
- Системные характеристики: CPU с 2 ядрами, 4 ГБ ОЗУ, 10 ГБ свободного места на диске
- Роли в команде:
- – разрабатывает серверную часть приложения, отвечает за управление данными задач, их хранение и обработку.
- – создает пользовательский интерфейс Kanban-доски, настраивает взаимодействие с сервером.
- – проводит тестирование функциональности приложения, выявляет и исправляет ошибки.
- – проектирует макеты Kanban-доски, улучшает пользовательский опыт и удобство использования.
Проект: Приложение для рекомендаций книг по жанрам
- Описание: Веб-приложение, которое предлагает пользователю книги для чтения на основе выбранных жанров.
- Стек: , , ,
- Источник данных: Goodreads API
- Источник модели: Не требуется
- Системные характеристики: CPU с 2 ядрами, 4 ГБ ОЗУ, 10 ГБ свободного места на диске
- Роли в команде:
- – реализует взаимодействие с Goodreads API, получает и обрабатывает данные о книгах.
- – создает интерфейс для выбора и просмотра книг, разрабатывает страницы с использованием Bootstrap.
- – управляет базой данных книг, следит за актуальностью и качеством данных.
- – проектирует и улучшает внешний вид приложения, разрабатывает макеты интерфейсов.
Проект: Приложение для управления списками покупок
- Описание: Веб-приложение для создания и управления списками покупок с возможностью делиться ими с другими пользователями.
- Стек: , , ,
- Источник данных: Нет (локальные данные пользователя)
- Источник модели: Не требуется
- Системные характеристики: CPU с 2 ядрами, 4 ГБ ОЗУ, 10 ГБ свободного места на диске
- Роли в команде:
- – разрабатывает серверную логику для управления списками покупок, настраивает базы данных.
- – создает интерфейс приложения, реализует взаимодействие с сервером и базой данных.
- – проверяет функциональность приложения, устраняет ошибки и улучшает производительность.
- – проектирует пользовательский интерфейс, оптимизирует приложение для лучшего опыта.
Проект: Веб-приложение для изучения иностранных языков
- Описание: Приложение, которое помогает учить новые слова и фразы, используя флэш-карты и мини-тесты.
- Стек: , , ,
- Источник данных: Open Multilingual Wordnet
- Источник модели: Не требуется
- Системные характеристики: CPU с 2 ядрами, 4 ГБ ОЗУ, 10 ГБ свободного места на диске
- Роли в команде:
- – создает серверную часть приложения, отвечает за хранение и обработку данных о словах и тестах.
- – создает интерфейс приложения, разрабатывает компоненты для флэш-карт и тестов.
- – управляет базой данных слов и выражений, следит за их актуальностью и полнотой.
- – проверяет корректность работы приложения, выявляет и устраняет баги.
Проект: Интерактивное приложение для расчета калорийности блюд
- Описание: Веб-приложение, которое позволяет пользователям вводить ингредиенты и рассчитывать калорийность блюда.
- Стек: , , ,
- Источник данных: USDA Food Data Central
- Источник модели: Не требуется
- Системные характеристики: CPU с 2 ядрами, 4 ГБ ОЗУ, 10 ГБ свободного места на диске
- Роли в команде:
- – интегрирует приложение с базой данных продуктов, реализует API для обработки пользовательских запросов.
- – разрабатывает интерфейс приложения, настраивает визуализацию данных с использованием Chart.js.
- – тестирует приложение, выявляет и исправляет ошибки.
- – разрабатывает макеты интерфейса, оптимизирует приложение для удобства использования.
Проект: Приложение для мониторинга уровня шума в городах
- Описание: Приложение для сбора и отображения данных о уровне шума в разных частях города. Использует данные, полученные с мобильных устройств пользователей.
- Стек: , , ,
- Источник данных: London Datastore, данные пользователей
- Источник модели: Не требуется
- Системные характеристики: CPU с 2 ядрами, 4 ГБ ОЗУ, 10 ГБ свободного места на диске
- Роли в команде:
- – разрабатывает серверную часть приложения, настраивает базы данных для хранения и обработки данных о шуме.
- – создает интерфейс для отображения данных о шуме, интегрирует карты и визуализации.
- – проверяет корректность работы приложения, находит и исправляет баги.
- – анализирует данные о шуме, выявляет паттерны и тренды, предлагает улучшения.
Проект: Прогнозирование цен акций российских компаний с использованием LSTM
- Описание: Разработка системы прогнозирования цен акций российских компаний, таких как “Сбербанк”, “Газпром”, “Яндекс”, с использованием методов глубокого обучения (Long Short-Term Memory — LSTM). Система анализирует исторические данные с Московской Биржи (MOEX) и предсказывает цены на основе временных рядов.
- Стек: , , , ,
- Источник данных: Московская Биржа (MOEX), Alpha Vantage API
- Источник модели: Предобученная LSTM модель с TensorFlow Hub
- Системные характеристики: GPU (например, NVIDIA с поддержкой CUDA), 8 ГБ ОЗУ, 50 ГБ свободного места на диске
- Роли в команде:
- – обучает модели LSTM для прогнозирования цен акций, настраивает гиперпараметры и проводит экспериментирование.
- – интегрирует данные с Московской Биржи и Alpha Vantage API, настраивает API для получения данных в реальном времени.
- – анализирует финансовые данные, готовит датасеты для обучения моделей, проводит визуализацию результатов.
- – тестирует производительность и точность модели, отвечает за координацию команды и управление сроками.
Проект: Система рекомендаций для российских интернет-магазинов
- Описание: Разработка системы рекомендаций для российских интернет-магазинов, которая анализирует поведение пользователей и предлагает персонализированные товары и услуги в реальном времени.
- Стек: , , , ,
- Источник данных: Открытые данные маркетплейсов (Ozon, Wildberries), Kaggle (E-commerce Data)
- Источник модели: Модель рекомендаций BERT4Rec с HuggingFace
- Системные характеристики: CPU с 8 ядрами, 16 ГБ ОЗУ, 200 ГБ свободного места на диске
- Роли в команде:
- – обучает рекомендательные модели, настраивает их параметры и тестирует на реальных данных.
- – настраивает API для обработки данных в реальном времени, интегрирует систему с данными от Ozon и Wildberries.
- – создает интерфейс для отображения рекомендаций пользователям, улучшает визуальное восприятие.
- – проводит тестирование системы, оценивает качество рекомендаций и предлагает улучшения.
Проект: Платформа анализа потребностей в туристических услугах
- Описание: Платформа для анализа данных о туристических поездках по России, включая интеграцию с социальными сетями и автоматизацию маркетинговых стратегий для туристических агентств.
- Стек: , , , ,
- Источник данных: Открытые данные Ростуризма, Twitter API
- Источник модели: Модель анализа тональности (Russian Sentiment Analysis) с HuggingFace
- Системные характеристики: CPU с 8 ядрами, 16 ГБ ОЗУ, 250 ГБ свободного места на диске
- Роли в команде:
- – интегрирует платформу с данными Ростуризма и Twitter API, обрабатывает данные и управляет базой данных.
- – создает интерфейс для визуализации анализа и отчетов по потребностям туристов.
- – анализирует данные из социальных сетей и источников по туризму, использует модели анализа тональности.
- – проводит тестирование системы, управляет процессами разработки и сроками.
Проект: Интеллектуальная система для управления городским транспортом
- Описание: Платформа для анализа и прогнозирования пассажиропотока в городском транспорте на основе данных о движении автобусов, метро, трамваев и троллейбусов в Москве.
- Стек: , , , ,
- Источник данных: Открытые данные Московского транспорта, Яндекс API
- Источник модели: Модели временных рядов для анализа пассажиропотока с HuggingFace
- Системные характеристики: CPU с 4 ядрами, 8 ГБ ОЗУ, 100 ГБ свободного места на диске
- Роли в команде:
- – обучает модели для прогнозирования пассажиропотока, анализирует результаты и оптимизирует алгоритмы.
- – создает API для интеграции данных о движении транспорта и пассажиропотока, настраивает связи с Яндекс API.
- – анализирует данные о движении транспорта, разрабатывает стратегии для оптимизации пассажиропотока.
- – тестирует интерфейс, улучшает пользовательский опыт и разрабатывает макеты.
Проект: Система предсказания отказов оборудования для российских заводов
- Описание: Использование методов машинного обучения для анализа данных с датчиков российских заводов и предсказания вероятности отказа оборудования, что позволяет предотвратить поломки и снизить затраты на ремонт.
- Стек: , , ,
- Источник данных: Открытые данные Российского промышленного сектора, Kaggle (Machine Failure Data)
- Источник модели: Модель классификации отказов оборудования с TensorFlow Hub
- Системные характеристики: CPU с 4 ядрами, 8 ГБ ОЗУ, 50 ГБ свободного места на диске
- Роли в команде:
- – обучает модели для предсказания отказов оборудования, проводит оптимизацию и анализирует результаты.
- – интегрирует приложение с датчиками и внешними системами заводов, создает API для обмена данными.
- – анализирует данные с датчиков, готовит их для обучения моделей.
- – проверяет производительность системы, управляет задачами и сроками выполнения.
Проект: Интеллектуальная система управления энергопотреблением в умных домах
- Описание: Разработка системы для управления энергопотреблением в умных домах, использующей данные с IoT-датчиков для оптимизации использования электроэнергии и снижения затрат.
- Стек: , , , , ,
- Источник данных: Открытые данные энергетики России, Open Power System Data
- Источник модели: Модель прогнозирования энергопотребления с TensorFlow Hub
- Системные характеристики: GPU (NVIDIA RTX 3090), 32 ГБ ОЗУ, 1 ТБ SSD
- Роли в команде:
- – обучает и оптимизирует модели для прогнозирования энергопотребления, анализирует результаты и улучшает точность.
- – создает инфраструктуру для развертывания и масштабирования системы, интегрирует Docker и Apache Kafka.
- – анализирует данные с датчиков, выявляет паттерны и проводит исследование для улучшения точности моделей.
- – тестирует работоспособность системы, управляет задачами и сроками.
Проект: Автоматизация обнаружения мошенничества в банковских операциях
- Описание: Разработка системы для автоматизированного обнаружения мошенничества в банковских операциях, использующей машинное обучение и анализ поведения пользователей.
- Стек: , , , ,
- Источник данных: Открытые банковские данные России, Kaggle (Fraud Detection Datasets)
- Источник модели: Модель для обнаружения аномалий с HuggingFace
- Системные характеристики: GPU (NVIDIA A100), 64 ГБ ОЗУ, 2 ТБ SSD
- Роли в команде:
- – разрабатывает и обучает модели для обнаружения мошенничества, проводит тестирование и оптимизацию.
- – отвечает за обработку и подготовку данных, разработку потоков данных и интеграцию с банковскими системами.
- – анализирует результаты моделей, выявляет аномалии и улучшает алгоритмы.
- – проверяет безопасность системы, устраняет уязвимости и управляет рисками.
Проект: Система прогнозирования запасов для ритейла
- Описание: Создание системы прогнозирования запасов для крупной сети розничных магазинов, использующей временные ряды и данные о продажах для оптимизации логистики и снижения издержек.
- Стек: , , , ,
- Источник данных: Открытые данные ритейла, Kaggle (Retail Sales Datasets)
- Источник модели: Модель прогнозирования продаж с Facebook Prophet
- Системные характеристики: GPU (NVIDIA RTX 3080), 32 ГБ ОЗУ, 1 ТБ SSD
- Роли в команде:
- – обучает модели прогнозирования, настраивает гиперпараметры и проводит тестирование.
- – отвечает за сбор, очистку и подготовку данных для моделей.
- – анализирует результаты прогноза, предоставляет рекомендации по улучшению моделей и стратегии закупок.
- – тестирует систему, управляет проектом и координирует задачи команды.
Проект: Система автоматического распознавания лиц для безопасности на предприятиях
- Описание: Разработка системы автоматического распознавания лиц для контроля доступа на предприятии, использующей нейросети и компьютерное зрение.
- Стек: , , , ,
- Источник данных: Открытые данные изображений лиц, Kaggle (Face Recognition Datasets)
- Источник модели: Модель для распознавания лиц с FaceNet
- Системные характеристики: GPU (NVIDIA RTX 3090), 64 ГБ ОЗУ, 1 ТБ SSD
- Роли в команде:
- – разрабатывает и обучает модели для распознавания лиц, оптимизирует их производительность.
- – разворачивает и масштабирует систему с использованием Docker и Kubernetes.
- – анализирует точность моделей и улучшает алгоритмы.
- – управляет рисками и проверяет уязвимости системы.
Проект: Автоматизированная система прогнозирования урожайности в сельском хозяйстве
-
Описание: Разработка системы для прогнозирования урожайности сельскохозяйственных культур на основе данных о погоде, почве и состоянии растений.
-
Стек: , , , ,
-
Источник данных: Открытые данные сельского хозяйства России, NASA Earth Data
-
Источник модели: Модель прогнозирования урожайности с DeepMind’s Alpha Fold
-
Системные характеристики: GPU (NVIDIA A100), 128 ГБ ОЗУ, 4 ТБ SSD
-
Роли в команде:
- – обучает модели на данных о погоде и состоянии растений, оптимизирует их для различных культур.
- – собирает и обрабатывает данные из различных источников, интегрирует их в систему.
- – анализирует данные о почве и погоде, улучшает модели прогноза.
- – проверяет точность системы, управляет проектом и координирует работу команды.
Проект: Система предсказания дорожных заторов и аварий в реальном времени
- Описание: Разработка системы предсказания заторов и аварий на дорогах крупных городов, используя данные с камер наблюдения, GPS и социальные сети.
- Стек: , , , ,
- Источник данных: Открытые данные транспорта России, API Яндекс.Пробки
- Источник модели: Модель обнаружения объектов и прогнозирования трафика с YOLO (You Only Look Once)
- Системные характеристики: GPU (NVIDIA RTX 4090), 64 ГБ ОЗУ, 2 ТБ SSD
- Роли в команде:
- – обучает модели для анализа трафика и предсказания аварий, оптимизирует их для реального времени.
- – разворачивает систему на сервере, масштабирует и обеспечивает бесперебойную работу.
- – анализирует данные о движении, улучшает точность прогнозов.
- – следит за защитой данных, проверяет систему на уязвимости.
Проект: Платформа для автоматизации анализа медицинских изображений
- Описание: Создание системы для автоматического анализа медицинских изображений (например, рентгеновских снимков, КТ) с целью диагностики заболеваний.
- Стек: , , , ,
- Источник данных: Открытые медицинские данные России, Kaggle (Medical Image Datasets)
- Источник модели: Модель глубокого обучения для анализа изображений с CheXNet
- Системные характеристики: GPU (NVIDIA RTX 4090), 128 ГБ ОЗУ, 2 ТБ SSD
- Роли в команде:
- – разрабатывает и обучает модели для анализа медицинских изображений, оптимизирует их точность.
- – отвечает за развертывание и масштабирование системы на сервере с помощью Docker и Kubernetes.
- – анализирует результаты диагностики, улучшает алгоритмы анализа изображений.
- – тестирует систему на корректность и безопасность, устраняет уязвимости.
Проект: Платформа анализа настроений и отзывов клиентов для крупного бизнеса
- Описание: Разработка системы для анализа настроений и отзывов клиентов по социальным сетям и отзывам на сайтах, использующей технологии NLP и машинное обучение.
- Стек: , , , ,
- Источник данных: Открытые данные социальных сетей, API VK, Twitter API
- Источник модели: Модель для анализа тональности текстов с RuBERT
- Системные характеристики: GPU (NVIDIA RTX 3090), 64 ГБ ОЗУ, 2 ТБ SSD
- Роли в команде:
- – обучает модели анализа тональности, оптимизирует их для конкретных доменов.
- – собирает данные из социальных сетей и отзывов, готовит их для обучения моделей.
- – создает интерфейс для визуализации анализа отзывов и настроений.
- – тестирует систему, управляет проектом и контролирует выполнение задач.
Проект: Система автоматического анализа юридических документов
- Описание: Разработка системы для автоматизированного анализа и обработки юридических документов, включая определение ключевых рисков и возможностей.
- Стек: , , , ,
- Источник данных: Открытые юридические данные России, Kaggle (Legal Text Datasets)
- Источник модели: Модель NLP для анализа юридических текстов с BERT for Legal
- Системные характеристики: GPU (NVIDIA RTX 3090), 64 ГБ ОЗУ, 1 ТБ SSD
- Роли в команде:
- – обучает модели для анализа юридических текстов, оптимизирует их для конкретных задач.
- – отвечает за сбор и подготовку юридических документов для анализа.
- – анализирует результаты моделей, находит паттерны и риски в юридических документах.
- – тестирует систему, проверяет на уязвимости и улучшает безопасность.
Проект: Платформа для мониторинга и управления климатом в сельском хозяйстве
- Описание: Разработка системы мониторинга и управления климатическими условиями для фермеров, включающей прогнозирование погоды и управление поливом.
- Стек: , , , ,
- Источник данных: Открытые данные метеорологии России, NASA Earth Data
- Источник модели: Модель прогнозирования погоды с WeatherBench
- Системные характеристики: GPU (NVIDIA RTX 4090), 128 ГБ ОЗУ, 2 ТБ SSD
- Роли в команде:
- – обучает модели для прогнозирования климатических условий, улучшает их точность.
- – интегрирует систему с IoT-устройствами для сбора данных с полей.
- – анализирует климатические данные, предлагает стратегии управления.
- – тестирует работоспособность системы, управляет задачами и сроками.
Критерии оценки
-
Реализация и полнота проекта (20%)
- Соответствие требованиям: проект должен соответствовать первоначально заявленным требованиям и задачам. Оценивается полнота и качество выполнения поставленных задач.
- Функциональность: система должна корректно выполнять заявленные функции. Проверяется наличие всех ключевых функций, их работоспособность и правильность выполнения.
- Завершенность: оценивается, завершен ли проект полностью или остались незакрытые задачи или ошибки.
-
Качество кода и архитектуры (15%)
- Чистота и читаемость кода: код должен быть структурированным, хорошо документированным и читаемым. Следование лучшим практикам программирования, включая использование комментариев, ясных имен переменных и функций.
- Архитектура проекта: оценивается выбор архитектурных решений, их соответствие задачам проекта, гибкость и масштабируемость. Наличие логической структуры, модульности и разделения ответственности.
- Эффективность и оптимизация: оценка эффективности работы системы, включая использование ресурсов (памяти, процессора), быстродействие и оптимизация запросов к базе данных.
-
Использование технологий и моделей (20%)
- Правильность выбора технологий и моделей: соответствие выбранных технологий и моделей задачам проекта. Оценивается уместность и целесообразность их использования.
- Интеграция и использование внешних библиотек и API: умение эффективно использовать внешние библиотеки и API, их правильная интеграция в проект.
- Актуальность моделей и методов: оценка актуальности и новизны использованных методов и моделей машинного обучения, наличие инновационных подходов.
-
Анализ данных и обучение моделей (15%)
- Качество данных и подготовка: оценивается качество исходных данных, их очистка, обработка и подготовка для анализа и обучения моделей.
- Точность и адекватность моделей: оценка точности обученных моделей, их адекватности решаемой задаче. Использование метрик оценки качества, таких как точность (accuracy), полнота (recall), F1-мера и другие.
- Обоснование выбора моделей и методов: насколько обоснован выбор использованных моделей и методов, их преимуществ и ограничений для конкретного проекта.
-
Интерфейс и пользовательский опыт (UX/UI) (10%)
- Дизайн и удобство использования: оценивается удобство и интуитивность интерфейса, соответствие современным стандартам UX/UI-дизайна.
- Эргономика и адаптивность: проверка на эргономичность и адаптивность интерфейса под различные устройства и платформы.
- Качество визуализации данных: оценивается качество и информативность визуализаций, используемых в проекте (графики, диаграммы, интерактивные панели).
-
Документация и презентация проекта (5%)
- Качество документации: наличие и качество документации к проекту, включая техническую документацию, инструкции для пользователей, установочные руководства и комментарии в коде.
- Презентация проекта: оценивается качество презентации, включающей демонстрацию функционала, основных особенностей и преимуществ проекта.
- Обоснование решений: способность команды обосновать выбранные решения, подходы и методы.
-
Инновационность и оригинальность решения (10%)
- Инновационность подходов: использование инновационных технологий, методов и подходов. Оценка новизны идеи и оригинальности проекта.
- Решение новых или сложных задач: способность проекта решать новые или особенно сложные задачи, которые до этого не имели эффективных решений.
-
Командная работа и организация процесса (5%)
- Эффективность командной работы: оценивается взаимодействие в команде, распределение ролей и задач, соблюдение сроков.
- Управление проектом: оценка качества управления проектом, использования методов Agile/Scrum, управления задачами и отслеживания прогресса.
Важность баланса в проекте
На визуализации представлены два проекта — Проект A и Проект B, демонстрирующие, насколько важно соблюдать баланс в работе над проектом.
Проект A: Сильная реализация, слабое оформление
Проект A получил высокие оценки за:
- Техническую реализацию: сильные стороны в разработке, качестве кода, использовании технологий и анализе данных.
- Однако слаб в оформлении: низкие оценки за UX/UI и презентацию. Проект может быть труден в использовании и плохо воспринимается пользователями.
Проект B: Хорошее оформление, слабая реализация
Проект B показывает:
- Высокое качество UX/UI и презентации: проект удобен и понятен пользователям.
- Но слабую техническую реализацию: средние и низкие оценки за реализацию, код и анализ данных, что снижает его эффективность.
Успешный проект требует сочетания сильной технической реализации и качественного оформления. Хорошо разработанный продукт должен быть не только функциональным, но и удобным в использовании. Помните: баланс — ключ к успеху любого проекта!
План работы над проектом
1. Выбор темы проекта
Определите проблему или задачу: начните с выявления актуальной проблемы, которая требует решения. Тема должна быть значимой, интересной и иметь потенциал для инноваций. Рассмотрите направления в области интеллектуальных информационных систем (ИИС), такие как прогнозирование, автоматизация, анализ данных или машинное обучение.
- Проанализируйте тренды в ИИС и определите области, где можно внедрить инновационные решения. Например, изучите популярные направления на Kaggle или Towards Data Science.
- Посмотрите исследования и примеры успешных проектов на PapersWithCode и Arxiv.org.
2. Формирование команды
Подберите команду с разными навыками: команда должна включать специалистов с навыками программирования, анализа данных, дизайна, управления проектами и маркетинга. Убедитесь, что роли четко распределены.
- Используйте методы командной динамики, такие как моделирование ролей по методике Belbin или SWOT-анализ навыков команды.
- Определите ключевые роли (разработчик, аналитик данных, UX/UI дизайнер, менеджер проекта) и распределите задачи в соответствии с компетенциями.
- Изучите материалы по командной работе на MindTools и Scrum Guide.
3. Первый питчинг (представление концепции проекта)
Подготовьте презентацию идеи: кратко и убедительно представьте свою тему, проблему, которую решаете, и предлагаемый подход. Основное внимание уделите актуальности проблемы и вашей стратегии решения.
- Используйте структуру презентации «Проблема-Решение-Рынок» для наглядного представления. Подготовьте краткие слайды с ключевыми моментами.
- Рассмотрите шаблоны питч-деков, такие как Guy Kawasaki’s 10/20/30 Rule.
- Для визуализации данных и концепции используйте инструменты, такие как Canva или Google Slides.
4. Разработка и тестирование проекта
Реализуйте проект: начните с создания минимально жизнеспособного продукта (MVP), протестируйте основные функции и обеспечьте устойчивость системы. Проводите итерации разработки, тестируя и улучшая каждый модуль.
- Используйте Agile/Scrum методы управления проектами: делите работу на спринты, устанавливайте короткие сроки для достижения каждой цели.
- Проводите регулярные тестирования с участием всех членов команды: автоматизированные тесты для проверки функциональности, UX/UI тесты для оценки удобства использования.
- Полезные материалы: Agile Manifesto, JUnit, Usability.gov.
5. Второй питчинг (тестирование и промежуточная презентация)
Представьте MVP и промежуточные результаты: покажите работу прототипа, опишите текущий прогресс, выявленные проблемы и предложенные улучшения. Получите обратную связь от экспертов и потенциальных пользователей.
- Подготовьте интерактивную демонстрацию и используйте видео или живую демонстрацию работы продукта.
- Попросите целевую аудиторию или менторов оценить проект по ключевым критериям и дать обратную связь.
- Используйте инструменты для сбора обратной связи, такие как Google Forms или SurveyMonkey.
6. Финальная разработка и подготовка к защите
Улучшите проект на основе полученной обратной связи: внесите изменения и доработки, исправьте ошибки и оптимизируйте проект перед финальной защитой.
- Проведите повторное тестирование всех функций проекта, убедитесь, что он работает стабильно и эффективно.
- Подготовьте финальную презентацию, которая акцентирует внимание на сильных сторонах проекта, достигнутых результатах и инновациях.
- Используйте Trello или Asana для организации и отслеживания всех задач.
7. Финальная защита проекта
Подготовьте защиту: создайте презентацию, в которой кратко и убедительно продемонстрируйте решение, результаты и достижения. Отметьте уникальные особенности проекта и его ценность для пользователей.
- Используйте методику презентации TED Talks для создания интересной и запоминающейся истории.
- Тренируйте публичное выступление, чтобы уверенно представить проект и ответить на вопросы аудитории.
- Примеры успешных защит и выступлений можно найти на YouTube или SlideShare.
Рекомендации
JupyterLab – гибкая, интегрируемая и легко расширяемая среда, поддерживающая одновременную работу с несколькими блокнотами Jupyter (*.ipynb
), текстовыми файлами, датасетами и терминалами (поддерживает также изображения, CSV, JSON, Markdown, PDF и другие форматы).
Spyder – бесплатная среда разработки предназначенная для ученых, инженеров и аналитиков данных, интерфейс очень похож на RStudio.
- Deepnote – удобная платформа для командной работы, имеет множество возможностей для интеграции, имеется educatiaon plan (
Python
,R
,SQL
). - HEX – мощная онлайн платформа делающая упор на работу с данными, интегрированные инструменты позволяют не только подключить данные из множества источников, но и увидеть множество вариантов визуализации (
Python
,R
,SQL
). - GoogleColab – относительно хорошая производительность бесплатно предоставляемых мощностей (
Python
).
- EmEditor – коммерческий текстовый редактор для Windows, способный работать с очень большими объемами табличных данных (до 248 ГБ или 2,1 миллиарда строк).
Источники
[Intro] Введение в ИИС и выравнивание знаний.
[1] Андрейчиков Александр – Интеллектуальные информационные системы и методы искусственного интеллекта, 2023.
[2] Остроух Андрей, Николаев Андрей – Интеллектуальные информационные системы и технологии : монография, 2021.
[3] Асхат Уразбаев – Управление DS проектами и продуктами при помощи Lean Data Science, 2020.
[4] Коул Роб, Скотчер Эдвард – Блистательный Agile. Гибкое управление проектами с помощью Agile, Scrum и Kanban, 2019.
[5] Леврик Михаэль, Линк Патрик, Лейфер Ларри – Дизайн-мышление. От инсайта к новым продуктам и рынкам, 2020.
[6] Кеннет Рейтц, Таня Шлюссер – Автостопом по Python, 2017.
[7] Яворски Михал, Зиаде Тарек – Pythoп. Лучшие практики и инструменты. 4-е изд., 2024.
[8] Танимура Кэти – SQL для анализа данных, 2024.
[9] Серхио Рохас-Галеано – ChatGPT: ваш наставник по Python, 2023.
[Algo] Алгоритмизация стратегий и решений для разработки ИИС.
[1] Ахмад Имран – 40 алгоритмов, которые должен знать каждый программист на Python, 2023.
[2] Кохендерфер Микель, Уилер Тим, Рэй Кайл – Алгоритмы принятия решений, 2023.
[3] Луридас Панос – Алгоритмы для начинающих: теория и практика для разработчика, 2018.
[4] LeetCode: Online Programming Learning Platform – https://leetcode.com
[5] LeetCode & Coding Interview Guide – https://doocs.github.io/leetcode/#/README_EN
[6] Leonardo Vanneschi, Sara Silva – Lectures on Intelligent Systems, 2023.
[ML] Классификация и описание моделей и их метрик в машинном обучении.
[1] Протодьяконов А.В. – Алгоритмы DataScience и их практическая реализация на Python, 2022.
[2] labml.ai: Annotated PyTorch Paper Implementations – https://nn.labml.ai
[NLP] Техники и Модели обработки естественного языка (NLP).
[1] NLP Course | For You – https://lena-voita.github.io/nlp_course.html
[2] Хобсон Лейн, Ханнес Хапке, Коул Ховард – Обработка естественного языка в действии, 2020.
[LLM] Большие языковые модели (LLM) для ИИС.
[1] Aймен Эль Амри – GPT-3: программирование на Python в примерах, 2023.
[2]
[3] Brex’s Prompt Engineering Guide – https://github.com/brexhq/prompt-engineering