{単語埋め込み}{GloVe}{Sentence Embedding}{BERT}(4)

{Sentence EmbeddingはBERTよりGloVeの方が良い K#EDD2/5FB4}

実験的にも、BERTの[CLS]トークン埋め込み や 平均プーリング埋め込み を使うぐらいだったら、GloVe等の(もっと古い時代の)単語埋め込みを使った方がましということが知られている

{AI外注}{『社会人のための「AIガチャ」入門』}{Lambda}{BERT}(4)

{あれ K#EDD2/1A67}

LambdaでBERTを動かせるようになったんだけども、この知識を200万円ぐらいで売りたい。

誰か買ってくんねーかなぁ……
AI構築を外注すると考えると、安いほうですわよ。

ちなみにAI構築を外注すると、1回の試行で数百万円かかった上でだいたい失敗するらしいぞ♥

{onnxruntime-nodeでgzipで圧縮したonnxファイルを読み込む}{onnxに変換して量子化するコマンド}{Sentence Embedding}{BERT}{ONNX}(5)

{あれ K#EDD2/490B}

500MBあるBERTをONNXに変換した後に量子化したら110MBほどになってLambdaで動かせるようになった。
Githubに乗せるファイルは100MB以下でないとだめなので、ダメ押しでgzipで圧縮したら75MBになった。

{あれ}{Bedrock}{knownet}{BERT}(4)

{あれ K#EDD2/A791}

knownetの検索をBedrockからBERTに移行した。
検索精度の変化は定量的な比較をしてないので謎。体感的には変わらん気がする。

{AIモデル}{睾丸をグリップ}{Lambda}{BERT}(4)
{Textless NLP}{BERT}(2)
{Amplify}{knownet}{『t_wの輪郭』}{Sentence Embedding}{BERT}{DataStore}{React}{Next.js}(8)

{2023年11月14日日記 K#EDD2/D9E4}

 特に記憶に無いです。

仕事

 「Next.jsを使えば忌々しいAmplifyDataStoreを無くせるんじゃね?」とか思って、社内システムの移植を開始した。もともとReactで動いていたので、3時間ほどでシステムがNext.jsの上で動くようになった。Next.jsの恩恵が受けられるのはこれからだ。

 「Next.jsを使えばBERTSentence Embeddingを取るAPIをサーバーレスでつくれるんじゃね?」とかおもって実装した結果、比較的高性能な開発機であっても計算に3秒もかかることがわかり、検索には使えず無事死亡した。

デライトが落ちていた

 「あれ」ってどんなんだったっけと思って、デライトで検索しようとしたところ、デライトが落ちていた(障害のお知らせ)。普段当たり前のようにデライトが使えているが、knownetの開発を通じてデライトが安定稼働していたことの異常さに気付きつつある。knownetの方はちゃんと動いている期間のほうが短い。

 探そうとしていた情報については『t_wの輪郭』を参照して見つけられた。いざというときの保証として機能してくれた。

{Mozc}{漢字変換}{BERT}{IME}(4)

{あれ K#EDD2/E149}

ぬーん。Mozc漢字変換が気に入らない。


IMEは儲からないっぽいので、なかなか進歩してくれない。

BERT入れるだけで漢字変換がいい感じになりませんかのう……。


というか、iPadOS(多分iOSも)のIMEの漢字変換が進化しすぎやねんな。

{DynamoDB}{Azure Cognitive Search}{あれ}{ALBERT}{AWS LambdaでSentence Embedding}{Sentence Embedding}{BERT}{ベクトル検索}{Go言語}(9)

{あれ K#EDD2/4A93}

いや、「ベクトル検索ぐらいマネージドサービスあるやろ」とはなるんだけど、たけーのよ。Azure Cognitive Searchとか、一番安いので月額1万円以上する。

DynamoDBとLambdaでやりくりすれば、維持費をほぼ0円、処理があっても月額100円ぐらいで何とかなるはずなんや。

で、そのために文章をベクトル化(Sentence Embedding)する処理が必要だったのだけどもですね、世のSentence Embeddingするライブラリやら言語モデル(BERTとか)やらはファイルサイズが巨大で、Lambda関数に乗り切らんかったわけです。

そこで、BERTを小型化したALBERTでSentence Embeddingが取れるように学習してたんですけども、やっとこさそれらしい結果が出せるようになってきた。

となると、次の課題はベクトル検索のDB部分なわけです。今はJavaScriptのライブラリを使ってるので速くないので、Go言語とかでやりたい。

というか、JavaScriptでのSentence Embeddingの計算は遅いはずなので、そこもGo言語に切り替えるうまみがあるはず。

(1){あれ}
{BERT}

{}