Bedrockを使用してRAGを行う
RAGはRetrieval-Augmented Generationの略で外部の知識ベース(ドキュメント等)を検索してそのドキュメントを元にLLMで回答を生成するというものである。
今回はOpenSearchの構築、Amazon Bedrockの知識ベースの構築、文書をOpenSearchに取り込む方法を紹介する。 ドキュメントをOpensearchやS3などの知識ベースに取り込むデータパイプラインを構築し、質問を受けたときに検索できるようにする。
RAGはRetrieval-Augmented Generationの略で外部の知識ベース(ドキュメント等)を検索してそのドキュメントを元にLLMで回答を生成するというものである。
今回はOpenSearchの構築、Amazon Bedrockの知識ベースの構築、文書をOpenSearchに取り込む方法を紹介する。 ドキュメントをOpensearchやS3などの知識ベースに取り込むデータパイプラインを構築し、質問を受けたときに検索できるようにする。
QAを実行する方法を紹介する。 今回は特定の車種のタイヤの交換方法を答えるQAを作成する。
モデルは知識ベースのデータに対してクエリを実行して正確な情報を含む応答を生成する。 生成AIモデルは確率分布を使用して質問に対する応答を生成する。モデルは膨大なテキストデータでトレーニングされているため、シーケンスや単語の次に何が続くかを予測できる。 ただし、モデルには確実性がないためすべての質問に対して正確な答えを返すことはできない。
プロンプトに知識ベースを追加することで正確な答えを返すことができるようになる。 この方法は短い知識ベースでで機能するが、知識ベースが長い場合は使用できない可能性がある。
以下の順番でモデルに対して質問を行う。
AWS bedrockのワークショップの内容をもとににbedrockを試してみたので紹介します。
今回は主にテキスト生成に焦点をあてて説明します。
S3はAmazon Simple Storage Serviceの略であり、オブジェクトを保存することができる。 オブジェクトは自動的に3つ以上のアベイラビリティーゾーンにレプリケーション(複製)される。これにより99.99%の可用性と99.999999999の耐久性を実現している。
ファイルなどのデータをS3にアップロードするとオブジェクトとして扱われる。オブジェクトを変更・追記することはできず、変更する場合は同じファイル名でアップロードする必要がある。
S3の主な使い方として以下の3つがある。
今回はAWSを使用してコンテナを起動する方法を紹介します。
また、今回のブログ記事は個人のメモとなるためキャプチャは添付しておりません。予めご了承ください。
使用するサービスは以下になります。
以下のコマンドをインストールしている前提で説明します。
テキスト補間で複雑なタスクを実行したたときに間違った答えが出力されることはありませんか?
今回は間違った答えを減らす方法について記載されている資料を要約したいと思います。
こちらで紹介する方法は一般論であり、タスクによっては使えない場合があるので予めご了承ください。
OpenAIからChat APIが公開されました。
今回はこのAPIについて紹介していきたいと思います。
ChatAPIの特徴として公式ドキュメントに記載されていることは以下になります。
前回のブログではFineTuningにより精度が向上するかどうかを検証した。 FineTuning実施前の精度は62%,FineTuning実施後の精度は100%ととなり精度が大幅に向上させることができた。 今回はDruppal Conosoleのコマンドを学習させてDrupal Consoleのコマンドに特化したモデルを作成する。 また、ベースとなるモデルを変えてモデルごとにどのような特徴が出るかも確認する。
OpenAIは2015年に設立された人工知能を研究する非営利団体となる。 OpenAIではAPIを提供しており、そのAPIでできることの例が以下になる。
テキスト補間
コード補間
FineTuning