エンタープライズ検索エンジンAmazon Kendraを試してみた
あんまり情報が落ちてなかったので、たまには本業の方を書いてみます。
あくまで個人の見解です。
結論
・インターネット上に公開されているwebベースのソースを検索するならGoogleで十分。
・独自で持っている、様々な形式のデータに関して実装したいならKendraも選択肢としてあり。
やってみようと思ったわけ
こんな記事を見かけて、 え!検索エンジンがこんな簡単に作れるの?
何それおいしいの?試してみたい!
というような話を弊社のWeb環境構築パートナーであるクラスメソッドさんに吐露したところ、先方のご担当者様もご興味あったとのことで、ノリノリで環境を作っていただけました。
上記の記事でも試しているのは社内資料検索の例ですし、弊社のサイト内検索は基本Google Programmable Search Engineを利用しており、精度にも問題は感じていませんでした。でも、私はWeb周りのインフラ担当、もしAWS内で使えるものがあれば取り入れてみたいなと思ってまずは検索精度を試してみたかったんです。
なので本採用目的ではなくあくまで実験でした。
イマサラですがAmazon Kendraとは
本来、検索エンジンを構築する際に必要な機械学習モデルの管理やらインデックスの管理なんかの面倒な部分をまるっとAWSにお任せできるというもの らしいです。
この辺の資料が分かりやすかったです
・Kendraとは
https://pages.awscloud.com/rs/112-TZM-766/images/20230330_28th_ISV_DiveDeepSeminar_Kendra.pdf
やったこと
・精度を比較したかったので、AWS S3にデータがあってなおかつ Programmable Search Engineが実装されているサイトで試しました。
・開発環境(Developer Edition)といえども、ONにしている間
費用は掛かるので検証時間をぎゅっと絞りました
月:実装する(ONしてもらう)
火:サイボウズでいじり倒す
水:いじったうえで疑問点をぶつける会を開く→その日のうちに停止
上記の利用でかかったのは約$60でした。
細かい所感
冒頭の結論と被るのですが、改めて
・Webに公開されているものはGoogle検索でよさそう
・社内で閉じているWebデータとか、様々な形式のものに対しての検索には有用かも
※費用対効果次第
・後は他のチャットサービスなんかと合わせて、問い合わせスクリプトを作成し、最適なものを吐き出すというのと組み合わせるのはいいかも?
という感じでした。
今回の発見
・会話文のような入力で検索できることを「セマンティック検索」というらしい
kendraは日本語のセマンティック検索に対応してる。
・精度比較のところはちょっとデータが少なすぎてなんともだったのですが、なかなか悪くない?しかも学習させていけるとなると今後に期待?
→学習は今は英語版だけ
しかもWebアプリの中で特定条件に一致した場合にAPIを叩く処理を実装すると、学習できるようになる
参考資料のP18
・AIによる自然な内容の日本語で回答が得られるケースがある
→中身はブラックボックスなので再現するケースは不明
・Enterprise Edition だと 1 つの Kendra インデックスで、50 個のデータソースを設定可能なので 1008USD/月程度で 500 個のサイトを対象にクロールできる。
Amazon Kendra の料金
弊社でもkintoneのエコシステムを広げたいと考えている今、最適なパートナーマッチングなんかに利用できたら、多くの人がハッピーになれるな・・なんて野望も膨らませつつ今後のアップデートなんかを見守っていきたいと思いました。
サイボウズWebチーム Advent Calendar 2023に参加してます
※写真はローカル渋谷のダルバート
この記事が参加している募集
この記事が気に入ったらサポートをしてみませんか?