t_wの輪郭

あれ

2023/8/13 22:06:00

いや、「ベクトル検索ぐらいマネージドサービスあるやろ」とはなるんだけど、たけーのよ。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言語に切り替えるうまみがあるはず。

knownetの曖昧検索

2023/10/4 23:50:00

当初ベクトル検索を用いようとしていたが、検索速度や精度に問題が有るため取りやめた。

現在は検索語を分かち書きして、検索語を構成する句を含む投稿を取得、さらにその投稿と紐づく投稿を取得し、投稿のEmbeddingと検索語のEmbeddingのコサイン類似度で並び替えしている。

Embeddingの取得にはAmazon Bedrockを使っている。

あれ

2023/5/24 9:00:00

AWSでベクトル検索しようとするとAmazon OpenSearchとかいうのを使うのが正攻法なのだけど、OpenSearchはEC2インスタンスが立ち上がってしまって費用的にも労力的にも良くない。そこで、ベクトル検索ライブラリで生成したインデックスをAmazon DynamoDBのインデックスにすればサーバーレスで安価に運用できる気がしている。

未検証。できるかどうか不明。果たして、任意のインデックスをレコードに設定することができるのか?

というか、そういう機能をAWSが作るべきだと思う。作るでしょ。そのうち。