Запуск моделей машинного обучения на локальном компьютере может быть затруднен при работе с обширными алгоритмами глубокого обучения, особенно если графический процессор недостаточно мощный. Google Colab предлагает решение, предоставляя бесплатный доступ к графическому процессору.
Google Colab предоставляет возможность подключения к локальной среде, но тем самым вы позволяете интерфейсу Colab выполнять код в ноутбуке, используя локальные ресурсы вашего компьютера. Следовательно, ваш графический процессор имеет приоритет над ресурсами графического процессора, предлагаемыми Colab.
Чтобы реализовать гибридный подход, обеспечивающий плавный переход между локальным выполнением и выполнением в Colab, мы можем настроить сервер Flask в Google Colab и предоставить API для выполнения определенного кода.
Однако прямой доступ к серверу Flask по адресу (по умолчанию) localhost:5000 из Colab невозможен из-за различий между виртуальной машиной Colab и локальной машиной. Решение простое! Чтобы сделать сервер доступным, перед запуском сервера необходимо выполнить простой фрагмент кода.
from google.colab.output import eval_js print(eval_js("google.colab.kernel.proxyPort(5000)")) OUTPUT: https://a2nb27sj8gr-496sf2e9c6d22116-5000-colab.googleusercontent.com/
Когда вы запустите этот фрагмент кода, он отобразит общедоступный URL-адрес, который вы можете использовать для доступа к серверу Flask, работающему на порту 5000, из внешних источников.
Создать флажковый сервер
Во-вторых, мы можем создать новую ячейку с простым фляжным сервером:
from flask import Flask from flask_ngrok import run_with_ngrok app = Flask(__name__) run_with_ngrok(app) @app.route("/") def home(): return "<h1>Hello this is Flask</h1>" app.run()
Добавьте свои конечные точки
Наконец, вы можете добавить свои конечные точки, например:
from flask import Flask from flask_ngrok import run_with_ngrok app = Flask(__name__) run_with_ngrok(app) def my_task(): #YOUR CODE HERE @app.route("/") def home(): return "<h1> Hello this is Flask </h1>" @app.route("/task") def task(): result=my_task() return result app.run()
Подключиться из локальной IDE
Теперь из локальной среды IDE вы можете подключиться к этим конечным точкам:
import requests # Replace this URL with the URL you obtained from running the code snippet on Colab colab_url = "https://a2nb27sj8gr-496sf2e9c6d22116-5000-colab.googleusercontent.com" # Endpoint to access the home route home_url = colab_url + "/" # Endpoint to access the custom task route task_url = colab_url + "/task" # Make a GET request to the home route response = requests.get(home_url) print("Response from Home Route:") print(response.text) # Make a GET request to the custom task route response = requests.get(task_url) print("\nResponse from Task Route:") print(response.text)
Теперь у вас есть мощность графического процессора в вашей локальной среде разработки! Этот гибридный подход позволяет вам использовать бесплатные ресурсы графического процессора Colab для ресурсоемких задач, одновременно пользуясь удобством и привычностью вашей локальной IDE.
Для обучения, создания прототипов и экспериментов Colab предоставляет отличную среду с ускорением графического процессора. Для производственных или крупномасштабных проектов рассмотрите возможность использования выделенных облачных служб, которые предлагают гарантированные ресурсы и более продолжительное время выполнения.
Однако важно знать о некоторых ограничениях, несмотря на бесплатное предложение графического процессора Colab, таких как время ожидания сеанса или ограничения ресурсов.