Обучение ИИ в масштабе
Это часть серии сообщений в блогах, посвященных внедрению искусственного интеллекта. Если вас интересует предыстория этой истории или ее развитие:
На прошлой неделе мы рассмотрели, как использовать параметр chips, отвечающий за сужение результатов, запрашивая изображения с определенной высотой в SerpApi’s Google Images Scraper API для обучения моделей машинного обучения. На этой неделе мы изучим автоматическое обновление набора данных изображения несколькими запросами одного типа и увидим результаты в более крупном масштабе глубокого обучения.
Что такое ИИ в масштабе?
Этот термин относится к масштабируемости при расширении набора данных изображений для использования в процессе обучения машинному обучению, а также к расширению или повторному обучению модели машинного обучения в масштабе с минимальными усилиями. Проще говоря, если у вас есть модель, которая различает кошку и собаку, вы должны иметь возможность легко расширить обучение ИИ, автоматически собирая изображения обезьян и переобучая или расширяя существующий классификатор с использованием различных фреймворков. Решения ИИ с большими моделями нуждаются в эффективных рабочих процессах для разработки моделей.
Как сократить время обучения?
Используя четкие данные, вы можете уменьшить шум и получить эффективные модели искусственного интеллекта, которые могут превзойти другие модели ИИ. В компьютерном зрении этот аспект более важен, поскольку рабочие нагрузки значительно изменятся по сравнению с алгоритмами, отвечающими за nlp (обработку естественного языка).
Легко очищать четкие данные
На прошлой неделе я показал, как вручную получить параметр chips
из поиска Google. SerpApi может создавать список различных значений chips
и обслуживать их под ключом suggested_searches
.
Здесь следует отметить, что значение chips
для разных запросов будет иметь разные значения. Однако вы можете получить значение chips
определенного запроса и запустить его на разных страницах для этого же конкретного запроса.
Например, значение chips
для запроса American Foxhound imagesize:500x500
и спецификации dog
равно:q:american+foxhound,g_1:dog:FSAvwTymSjE%3D
То же значение chips
для American Hairless Terrier imagesize:500x500
:q:american+hairless+terrier,g_1:dog:AI24zk7-hcI%3D
Как видите, зашифрованная часть значения chips
отличается. Вот почему вам нужно сделать хотя бы один вызов SerpApi's Google Images Scraper API, чтобы получить желаемое значение chips
.
Я добавил новый ключ с именем desired_chips_name
в наш класс Query
для проверки результатов с желаемым name
в suggested_searches
:
Также была потребность в другой функции в классе Download
для извлечения значения chips
и использования его для поиска:
Эта функция отвечает за вызов SerpApi с запросом и возврат желаемого параметра chips
, а также его обновление в классе Query
.
Теперь, когда есть все необходимое для автоматического выполнения вызова с желаемой спецификацией и добавления его в наш набор данных модели ИИ, который будет использоваться для обучения машинному обучению, давайте объявим класс, который будет использоваться для выполнения нескольких запросов:
Ключ queries
здесь будет списком запросов, которые вы хотите классифицировать. Например: Список пород собак
Ключ desired_chips_name
будет их общей спецификацией. В данном случае это dog
.height
и width
будут желаемыми размерами изображений, которые будут собраны для обучения глубокому обучению.num
будет количеством результатов на странице.number_of_pages
будет количество страниц, которые вы хотели бы получить. 1 даст около 100 результатов, 2 даст около 200 изображений, если число равно 100 и т. д.google_domain
– это домен Google, в котором вы хотите выполнить поиск.api_key
– ваш уникальный ключ API для SerpApi.
Давайте определим функцию для автоматического вызова запросов по порядку и загрузки изображений в набор данных хранилища с их классификацией:
Мы запрашиваем SerpApi один раз с chips_serpapi_search
, а затем используем значение chips
для запуска реальных поисков. Затем мы перемещаем все изображения в хранилище набора данных изображений для обучения моделей машинного обучения, созданных ранее.
Наконец, давайте объявим для него конечную точку в main.py
:
Обучение в масштабе
Для демонстрации мы будем использовать 8 видов американских пород собак. На самом деле, мы могли бы даже интегрировать SerpApi's Google Organic Results Scraper API, чтобы автоматически получать Famous American Dog Breeds
и запускать его с нашим ключом queries
. Это выходит за рамки сегодняшнего сообщения в блоге. Но это хороший показатель многоцелевого использования SerpApi.
Если вы отправитесь на площадку по следующей ссылке, вас встретит желаемый результат:
Теперь мы возьмем список из organic_result
и поместим его в наш объект MultipleQueries
в конечной точке /multipl_query
:
Этот словарь принесет нам 2
страниц (около 200
изображений) с высотой 500
и шириной 500
в Google US со значением чипов для dog
(специально суженным до только изображений собак) для каждой породы собак, которую мы ввели.
Вы можете заметить, что изображения загружаются на сервер хранения N1QL:
Если вы хотите создать свои собственные оптимизации для своего проекта машинного обучения, вы можете получить бесплатную пробную версию на SerpApi.
Теперь, когда у нас есть все необходимое, давайте обучим модель машинного обучения, которая различает американские породы собак в конечной точке /train, со следующим словарем:
Модель искусственного интеллекта будет автоматически обучаться в больших масштабах с использованием изображений, которые мы загрузили в набор данных, в этом случае через высокопроизводительный графический процессор моего компьютера (также возможно обучение с процессором):
Я благодарен пользователю за внимание и Блестящим людям SerpApi за то, что этот пост стал возможен. На этой неделе мы сосредоточились не на создании эффективных моделей с хорошими метриками, а на процессе автоматизации создания. В следующие недели мы будем работать над устранением его недостатков и недостающих частей. Эти части включают в себя возможность распределенного обучения для моделей машинного обучения, поддержку всех оптимизаторов и критериев, добавление настраиваемых классов моделей, возможность обучения моделей машинного обучения на различных типах файлов (текст, видео), неэффективное использование конвейеров, использование различных инструментов обработки данных. , поддерживая другие библиотеки машинного обучения, такие как tensorflow, наряду с pytorch и т. д. Я не стремлюсь сделать современный проект. Но я стремлюсь создать решение для простого создания систем искусственного интеллекта. Я также стремлюсь создать визуализацию для сравнения различных моделей глубокого обучения, созданных в рамках экосистемы. Мы также обсудим визуализацию процесса обучения, чтобы иметь эффективные модели. Цель состоит в том, чтобы иметь библиотеку с открытым исходным кодом, в которой вы можете масштабировать свои модели по своему усмотрению.
Первоначально опубликовано на https://serpapi.com 19 июля 2022 г.