VibratoをLambdaで使いたい
Vibratoは高速便利な形態素解析器。
以下の記事参照。
VibratoをPythonで実験、Ginzaと速度比較
VibratoをWindows・Pythonで動かす高速な形態素解析器Vibrato。MeCabと同じ解析結果でMeCabの2倍速いらしい。Windows・Py…
これをAWS Lambdaで使いたい。
1. 実験
1.1. zipファイルの準備
Lambda関数にアップロードするzipファイルを用意する。
下記の2種を準備。
- lambda_function.py(Lambda関数で実行するコード)
- ipadic-mecab-2_7_0(Vibrato用の辞書ファイル)
「ipadic-mecab-2_7_0」は上の方にあるVibrato記事参照。
「lambda_function.py」の中身は以下の通り。
- lambda_function.py
1 | import vibrato |
これをzip圧縮。
下記のような構造になる。
1 | lambda_function.zip |
1.2. Lambdaレイヤーの作成
下記記事の要領でLambdaレイヤーを作成。
AWS Lambda用のレイヤーをWindows上のDockerで作成
Lambdaレイヤーを作成する目的と問題目的AWS Lambda関数で標準でないPythonライブラリ(今回の場合はopenai、linebot-sdkなど)を…
必要なPythonライブラリは2つ。
- vibrato
- zstandard
1.3. Lambda関数の作成
- 関数作成
AWSコンソールから「Lambda→関数→関数の作成」に移動。
適当な名前を付けて「関数の作成」。
- zipファイルアップロード
「Lambda→関数→さっき作った関数名→コード」に移動。
さっき作ったzipファイルをアップロード。
- 設定変更
このまま動かすとメモリが足りなくてエラーが発生する。
「Lambda→関数→さっき作った関数名→基本設定を編集」に移動。
メモリを、デフォルトの「128MB」から余裕を見て「512MB」くらいに増やす。
- Lambdaレイヤー設定
さっき作ったLambdaレイヤーを設定。
1.4. テスト
「Lambda→関数→さっき作った関数名→テスト」に移動。
イベントJSONにtext変数を作る。
1 | { |
「テスト」をクリックすると以下のように結果が表示される。
1 | { |
うまくできた。
所要時間 1228.00 ms
この値が速いのかどうかはわからない。