はじめに
6/10(土)に開催された「JAWS-UG横浜 #58 Amazon Kendra HANDS-ON」を参加しました。
Kendraの基礎的説明をAWS関谷様から説明していただき、下記ブログ記事をベースに、streamlit + OpenAI & Kendra のアプリを作成するハンズオンでした。
イベントページ
https://jawsug-yokohama.connpass.com/event/279141/
kendra とは
kendra 、ML coreも含まれていて、セマンティック検索も行えて、$1,008/month(Enterprice edition)はコストパフォーマンスはいいのでは。
$810のDeveloper Edtion もあり
説明の資料は公開されないので、kendraについては詳しそう
ハンズオン
streamlintを利用して、便利なオープンソースのアプリフレームワークで、簡易なChatアプリを作れます。
LLMsとして、OpenAIを利用したので、Flan-T5-XL、Flan-T5-XXLのモデルをSageMaker Studio Jump Startからデプロイすることはなかったが、これらのモデルをデプロイするのに、ml.g5.2xlarge 、ml.g5.12xlargeを使うようで、これらのインスタンスタイプは、デフォルトは、Quota 0でデプロイできないので、Quota requestが必要。
OpenAIのFree Trial Userはたたけますが、三ヶ月経過した無料アカウントではAPIたたけなくなります。
本家のOpenAIを利用しますが、AzureOpenAIを使うのは、下記のように変更することで対応できます
openai.api_type = "azure" openai.api_base = "https://xxxxxx.openai.azure.com/" openai.api_version = "2023-03-15-preview" openai.api_key = OPENAI_KEY def generate_response(input_text): llm = AzureOpenAI( deployment_name="text-davinci-003", model_name="text-davinci-003", openai_api_base=openai.api_base, openai_api_version=openai.api_version or "", openai_api_key=openai.api_key or "", )
補足
SageMaker Studio domainの削除は、下記にはManagement consoleから削除できるようになっているが、削除する項目が見つからなかった。
AWS CLIでは削除するようになります。
https://docs.aws.amazon.com/sagemaker/latest/dg/gs-studio-delete-domain.html
Kendra、Connectorで、S3、Google Driveなどのデータも検索対象にすることが可能。インデックス作成に多少時間がかかる