先日公開した「GPT-2動かしてみました」の記事の続きで、ウェブアプリとして利用できるように色々こしらえて公開しました。
https://lab.sheltie-garage.xyz/gpt2/
動き的には短い文章を指定した後、送信ボタンを押すことで文章が生成されますが・・・
レンタルしているVPSが弱すぎてリソース不足で落ちます・・・
どんなにタイムアウトを伸ばしてもだめでした。
でも作ったので記念に公開しておきます・・・
フロントはReact、バックエンドはFlaskで作成
GPT-2本体はPython製なので、Flaskを利用することで簡単にWebAPI化することができます。
フロントは勉強のためReactで組んでみました。
import flask
from flask_cors import CORS
import gpt2
import bleach
app = flask.Flask(__name__)
CORS(
app,
supports_credentials=True
)
@app.route('/create', methods=['post'])
def createSentnce():
if flask.request.headers['Content-Type'] != 'application/json':
print(flask.request.headers['Content-Type'])
return flask.jsonify(res='error'), 400
word = flask.request.json['word']
generated = gpt2.create(word)
return flask.jsonify({"generated": bleach.clean(generated)})
if __name__ == '__main__':
app.run(host='0.0.0.0', port=5000)
GPT-2をWebAPI化するためのPythonコードはこんな感じです。
上記APIをReactのフロントエンドから呼び出すという作りになってます。
が、どうしても動かず
一応アプリの設置まで行いましたが、実際に実行させるとLAが10以上になり、どんなに待っても結果が帰ってきませんでした。
(ちなみにローカルマシンでは3分以内に文章が生成されます)
流石にメモリ1GB、CPU2コアのサーバで機械学習を動かすのは厳しいみたいで、こればっかりは、もうどうにもならん・・・
個人で機械学習アプリを公開するときに一番の壁になるのは、VPSのスペックだなと痛感しました。
他の開発者の方はどんな感じのプラットフォームを利用して公開されているのか・・・
アプリを実行したときのDataDogのグラフ。しばらく頑張った後、諦めて色々落ちていました
created by Rinker
¥2,948
(2024/10/27 18:37:23時点 楽天市場調べ-詳細)
created by Rinker
¥1,430
(2024/10/27 18:37:24時点 楽天市場調べ-詳細)