mayukorin / meigen-line-bot

0 stars 0 forks source link

【Magnitude】4時間以上空けると,most_similar の実行に約50秒かかる. #6

Open mayukorin opened 1 year ago

mayukorin commented 1 year ago

image

mayukorin commented 1 year ago

呼び出した瞬間

image

2回目 image

mayukorin commented 1 year ago

目的:コールドスタートを改善したい

解決策 もしこれが,「コールドスタート:まったくインスタンスが存在しない状態から、リクエストの発生によりインスタンスを起動する」に起因する問題だとすれば,以下の解決策が考えられる.

  1. startup CPU boost を使う.起動時のメモリイメージを保存して高速にロードさせる、などの技術が使われているのではないか
  2. 実行対象の関数のモジュールのみをロードする.というか,そもそもmecab のランダム名言はいらないかも.
  3. Cloud Functions を適切なリージョンで利用する.東京にしよ.
mayukorin commented 1 year ago

目的:similar の実行時間を短くしたい

解決策

  1. コールドスタートが発生するギリギリの単位でポーリング処理をする.

他に解決策が思い浮かばん..多分原因が分かっていないから. おそらく,これによると,magnitude は一度実行するとメモリにデータが載ると言っている.でも,cloud function でインスタンスが削除されるとせっかく載ったメモリが消されるからだと思われる.

→ 解決策としては,

  1. インスタンスを永続化する.

 - 文字通り永続化する  - 疑似永続化する.消えそうになったら作る.

mayukorin commented 1 year ago

word2vec と magnitude の違い

word2Vec は毎回読み込むけど,magnitude は読み込んだらメモリに保存してくれる.よって,1回目の magnitude = 毎回のword2vec.

similar で,初めて必要なものを読み込んでいるとすれば,3 は効果あるかも.読み込むスピードを早める的な施策は効果ある.

mayukorin commented 1 year ago

start up boost を取り入れたけど,similar の実行時間は50秒のまま. ということは,起動時により多くのCPUを割り当てる startup CPU boost はあまり効果ない.+ むしろ,load に第一より時間かかってる. 起動時ではなく,most_similar で割り当ててほしいんだけどなー.

image

cpu のメモリとかを4GBにしても解決しなかったんだから,start up boost にしても解決するはずがなかった.

mayukorin commented 1 year ago

リージョンを東京にしても,most_similar は 49 秒だった.

これはもうポーリングするしかない.

mayukorin commented 1 year ago

ダウンロードせずにそのまま使う,公式の方法を試そうとしたけど,

[BusyError: BusyError: database is locked](https://console.cloud.google.com/errors/detail/CIWpq-HNnNb4gQE;time=P1D?project=eighth-ridge-348103)

https://www.mobileread.com/forums/showthread.php?t=323714 によると,

That error indicates there are multiple processes reading the database. Given that you also have issues with something opening and locking the viewer's cache files, there is definitely something screwy going on with your system.

と書いてあるから,同じstorage を何回も開きに行ってるのがダメなのかな.

mayukorin commented 1 year ago

次はこのエラー

apsw.SQLError: SQLError: SQL logic error"