Отправка запросов на выполнение кода в google colab Python

Час добрый
Подскажите пожалуйста если ли возможность из скрипта на пк отправлять запрос на решение задачи в google colab и получать в ответ нужные данные?
Детальное объяснение:
Требуется сделать скрипт который будет при помощи rugpt3 (large версии) генерировать текст, но т.к. для работы с rugpt3 в принципе требуется большой объем gpu памяти, то запускать скрипт полагаясь на возможности компьютера/ноутбука нет смысла, т.к. они просто зависают из-за недостатка памяти.
Не могу дать примеры кода т.к. не нашел ничего что может помочь в документации, но можно ли примерно в следующем виде сделать работу скрипта:\

  1. В google colab создать блокнот с кодом функции генерации текста
  2. Из локального файла на пк вызывать по средствам api (если таковые имеются) выполнение данного скрипта на стороне google colab
  3. После выполнения скрипта в google colab получить сгенерированный текст в переменную на рабочем устройстве (пк/ноутбук)

    Если все же описать примерный код, то вижу его примерно так (на примере запросов requests):
def get_text_from_google_colab(text)
    request = requests.post(API_URL, text)
    generated_text = request.text
    return generated_text

def main()
    text = 'пример затравки текста для генерации'
    generated_text = get_text_from_google_colab(text)

Если же есть возможность отправлять функцию на исполнение в google colab при помощи api, то тоже хотелось бы узнать об этом. Функция генерации текста:

def load_tokenizer_and_model(model_name_or_path):
    return GPT2Tokenizer.from_pretrained(model_name_or_path), GPT2LMHeadModel.from_pretrained(model_name_or_path).cuda()


def generate(
            model, tok, text,
            do_sample=True, max_length=50, repetition_penalty=5.0,
            top_k=5, top_p=0.95, temperature=1,
            num_beams=None,
            no_repeat_ngram_size=3
            ):

    input_ids = tok.encode(text, return_tensors="pt").cuda()
    out = model.generate(
      input_ids.cuda(),
      max_length=max_length,
      repetition_penalty=repetition_penalty,
      do_sample=do_sample,
      top_k=top_k, top_p=top_p, temperature=temperature,
      num_beams=num_beams, no_repeat_ngram_size=no_repeat_ngram_size
      )
    return list(map(tok.decode, out))

tok, model = load_tokenizer_and_model("sberbank-ai/rugpt3large_based_on_gpt2")
generated = generate(model, tok, "Александр Сергеевич Пушкин родился в ", num_beams=10)

Ответы (0 шт):