Реализация проекта машинного обучения от A до Я на примере приложения для обобщения текста

Алексей Михнин, 2023

Книга посвящена практической реализации проекта машинного обучения. Рассматривается весь жизненный цикл создания продукта на основе моделей машинного обучения, от формулировки бизнес-задачи до развертывания веб-приложения.Автор на конкретном кейсе демонстрирует процесс исследования проблемы, поиска алгоритмов, разработки и обучения AI моделей. Особое внимание уделяется вопросам проектирования кода и архитектуры, позволяющим создавать гибкие и масштабируемые системы искусственного интеллекта.Читатель получает ценные практические навыки по модульной разработке, тестированию, контейнеризации моделей и их интеграции через веб-интерфейсы. Книга содержит примеры кода и инструкции для создания собственных приложений машинного обучения.Это издание станет полезным как для начинающих, так и для опытных разработчиков в области искусственного интеллекта.

Оглавление

* * *

Приведённый ознакомительный фрагмент книги Реализация проекта машинного обучения от A до Я на примере приложения для обобщения текста предоставлен нашим книжным партнёром — компанией ЛитРес.

Купить и скачать полную версию книги в форматах FB2, ePub, MOBI, TXT, HTML, RTF и других

Шаг 1. Подготовка проекта

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

Все необходимые шаги, которые необходимо выполнить перед тем как приступить к модульному кодированию проекта, подробно со скриншотами кода, представлены в следующих разделах.

Настройка и клонирование репозитория GitHub на ПК

Первым делом в разработке любого проекта должно стать создание его «дома» — репозитория на GitHub. Эта платформа позволит нам не только хранить и версионировать код, но и настроить процесс непрерывной интеграции.

Мы задаем имя репозитория, совпадающее с названием нашего будущего проекта. Это поможет коллегам сразу понять его суть и назначение. Далее определяемся с уровнем доступа — сделать репозиторий публичным или приватным.

Как только репозиторий создан, добавляем в него файл README.md — это своего рода «паспорт» проекта с описанием его функционала и инструкциями по запуску.

Также важный шаг — добавление.gitignore и указание там Python как языка разработки. Это позволит исключить лишние промежуточные файлы из репозитория.

Завершающим аккордом станет выбор лицензии. Для открытых проектов отлично подходит лаконичная и ненавязчивая MIT — она позволит любому использовать код, указав авторство разработчиков.

Теперь у нашего проекта есть дом с просторными кодовыми хранилищами, настроен охранник в лице.gitignore и определены правила проживания благодаря выбранной лицензии.

Можно приступать к активной фазе — наполнению репозитория полезным кодом!

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

Для клонирования репозитория необходимо выполнить следующие действия:

Шаг1: перейти на страницу созданного репозитория на GitHub.

Шаг2: нажать на кнопку"Code", после чего скопировать предложенную ссылку в формате HTTPS. Эта ссылка указывает на расположение репозитория.

Шаг3: в директории на локальном компьютере, куда необходимо поместить клонируемый репозиторий, открыть окно терминала, набрав команду cmd в адресной строке.

Шаг4: выполнить команду git clone <ссылка>. Git использует указанную ссылку для скачивания всех файлов и данных репозитория.

После завершения клонирования в выбранной директории появится полная копия репозитория со всеми файлами и версиями на вашем диске.

Теперь репозиторий готов к использованию в локальной разработке. Все изменения можно будет синхронизировать обратно в удаленный репозиторий с помощью команд git push и git pull.

Создали директорию project_1 на рабочем столе и открыли терминал в этой же директории

Клонируем ранее созданный репозиторий на GitHub на локальный компьютер. В результате копирования на компьютере создаётся новая папка с названием репозитория.

Запускаем VSC (Visual studio code) среды разработки — для последующей работы над нашим проектом

Открыв VSC, в проводнике мы видим все наши файлы, которые мы клонировали с репозитория. Теперь приступаем к шагу 2: созданию скрипта на Python, содержащего будущую структуру папок и файлов нашего проекта.

Создание шаблона структуры папок и файлов

Краткое пояснение кода:

Данный код является простым и эффективным способом создания списка папок и файлов, связанных с проектом, для их последующего автоматического создания.

Он легко читается и понимается, и может быть легко настроен для разных проектов, изменив значение переменной `project_name`.

`src` — это сокращение от английского слова"source"(исходный код). В контексте данного кода, `src` — это директория, в которой хранится исходный код проекта. В этой директории могут находиться поддиректории, содержащие модули и компоненты проекта. Обычно, исходный код проекта хранится в директории `src`, чтобы отделить его от других файлов и директорий, связанных с проектом, таких как документация, конфигурационные файлы, тесты и т.д.

Если в будущем необходимо досоздать новые папки и файлы, то необходимо отредактировать список `list_of_files`, добавив новые пути к файлам и папкам, которые необходимо создать. При этом необходимо убедиться, что пути к файлам и папкам заданы корректно и соответствуют структуре проекта.

Структура папок, представленная в данном коде, напоминает внутреннюю библиотеку, которую можно использовать в текущем проекте. В данном случае, проект разделен на модули и компоненты, которые хранятся в соответствующих папках. Это позволяет легко организовать код проекта и упростить его поддержку и развитие.

Например, папка `conponents` содержит компоненты проекта, такие как модуль для предобработки данных или модуль для обучения модели.

Папка `utils` содержит утилиты, которые могут быть использованы в разных компонентах проекта.

Папка `config` содержит файлы конфигурации, которые используются для настройки параметров проекта.

Папка `pipeline` содержит модули, которые отвечают за обработку данных в конвейере.

Такая структура папок позволяет легко найти нужный модуль или компонент проекта, а также упрощает его тестирование и отладку. Кроме того, такая структура папок может быть использована для создания библиотеки, которую можно переиспользовать в других проектах.

Создание виртуального окружения

`conda create` — это команда менеджера пакетов Conda, которая создает новое виртуальное окружение и устанавливает в него пакеты и зависимости.

`-n project_1` — это опция команды `conda create`, которая задает имя нового виртуального окружения. В данном случае, имя виртуального окружения — `project_1`.

`python=3.11.4` — это опция команды `conda create`, которая указывает на установку пакета Python версии 3.11.4 в новое виртуальное окружение.

`-y` — это опция команды `conda create`, которая указывает на автоматическое подтверждение установки без запроса подтверждения пользователя.

Таким образом, данная команда создает новое виртуальное окружение с именем `project_1` и устанавливает в него Python версии 3.10с помощью менеджера пакетов Conda.

Опция `-y` указывает на автоматическое подтверждение установки без запроса подтверждения пользователя.

В результате выполнения этой команды будет создано новое виртуальное окружение, которое можно активировать с помощью команды `conda activate project_1`.

После активации виртуального окружения можно устанавливать необходимые пакеты и зависимости для проекта, не затрагивая другие проекты и системные настройки.

Создание структуры шаблона папок и файлов

Данный код является последовательностью команд, которые выполняются в командной строке операционной системы Windows.

Первая команда `cd Text-Summarizer-Project` переходит в директорию `Text-Summarizer-Project`, которая находится в текущей директории `project_1`.

Затем выполняется команда `python template.py`, которая запускает скрипт `template.py` на языке Python.

В данном случае, скрипт `template.py` содержит код для работы с модулем по автоматическому созданию краткого содержания текста (text summarization).

При выполнении данной команды в командной строке будет запущен интерпретатор Python, который выполнит код из файла `template.py`.

В результате выполнения скрипта будет создано краткое содержание текста, которое будет выведено в консоль.

Итого: Шаблон нашего проекта создан. Шаблон содержит все необходимые папки и файлы, которые на последующих шагах мы будем заполнять.

Лог в терминале — содержит информацию о создании файлов и директорий в проекте. Каждая строка лога содержит дату и время создания файла или директории, а также путь к созданному файлу или директории.

Например, первая строка лога `[2023-08-14 02:15:42,662]: Creating empty file: src\textSummarizer\constants\__init__.py:` указывает на создание пустого файла `__init__.py` в директории `constants`, которая находится в директории `textSummarizer`, которая в свою очередь находится в директории `src`.

Аналогично, остальные строки лога указывают на создание пустых файлов и директорий в проекте. Например, строка `[2023-08-14 02:15:42,674]: Creating directory:config for the file config.yaml:` указывает на создание директории `config`, в которой будет создан файл `config.yaml`.

Таким образом, логирование создания файлов и директорий позволяет отслеживать процесс создания файлов и директорий в проекте и выявлять возможные проблемы в процессе создания.

Конец ознакомительного фрагмента.

Оглавление

* * *

Приведённый ознакомительный фрагмент книги Реализация проекта машинного обучения от A до Я на примере приложения для обобщения текста предоставлен нашим книжным партнёром — компанией ЛитРес.

Купить и скачать полную версию книги в форматах FB2, ePub, MOBI, TXT, HTML, RTF и других

Смотрите также

а б в г д е ё ж з и й к л м н о п р с т у ф х ц ч ш щ э ю я