0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

GastroHealth システム(RAG部分)

Posted at

はじめに

RAG という技術は最近流行っています。この流行の理由は、LLMを基盤としたシステム開発の需要が高まっていることです。なぜなら、Chatgptは今、多くの人が毎日最も頻繁に使っているアプリの一つからです。日常的な質問をすると、すぐに正確な回答を返してくれます。しかし、言語モデル生成する内容は、学習に用いたデータセットに大きく依存します。例えば、データセットを含まれていない最新ニュースや最新の知識については、モデルが十分に回答できない場合があります。一方で、新い知識は日々増えていくため、その度にモデルを再学習のは現実的ではありません。計算コストが大きすぎるからです。この問題を解決するために、まず新しい知識や専門知識を外部に保存します。次に、ユーザーの質問を応じて、保存したデータベースから関連情報を検索し、その結果をLLMに参照させることで、最新の回答を含む回答が可能になります。現在、多くの企業は様々な専門データを持っています。そして、LLMを連携して専門的なチャットボットを開発するために、自社データをRAGシステムに取り込むケースが増えています。

構築

一般的なRAGは、以下の図に従って構築されています。
image.png
この流れの中で、重要な要素は主に三つあります。一つ目はデータソースの処理、二つ目はベクトルデータベースの選択、三つ目LLMの選択です。

データソースは非常に重要です。例えば、データはテキストのみの場合と、他の形式を含む場合とでは、後続のベクタ化処理に影響があります。そのため、まずデータのタイプを確認する必要があります。私たちのGastroHealthでは、データソースとして医療分野の論文を多く使用しています。例えば、Natureなどの学術論文のテキストです。これらの文章は、文単位に分割し、MySQLのデータベースに保存しました。
次に、ベクトルデータベースの選択について説明します。この部分では、データベースの選択だけでなく、ベクタル化手法の選択も重要です。例えば、sentense embedding モデルの選択があります。このモデルは文章をベクタル化するために使用されます。このモデルの選択する際には、ベンチマークを参考にしました。検索精度と検索速度の両方を考慮し、性能の良いモデルを選択しました。このリンクを参考してください。
https://huggingface.co/spaces/mteb/leaderboard
sentense embedding モデルの選択した後、ベークタデータベースの選択する必要があります。実際には、様々の選択肢があり、例えばChormaやWeaviateがあります。私は、実装の容易さを重視し、Chromaを選択しました。

最後に、LLMの選択です。この部分は比較的シンプルだと考えています。現在、高い性能を持つLLMの一つとして、Gemini proがあげられます。このグッグルのサービスは、APIとして直接利用でます。しかし、GastroHealthでは、このサービスは使用していません。代わりに、自前のLLMサービスを構築しています。AWS EC2上にA10G GPUを4枚搭載し、合計80gのVRAM を使用しています。この構成により、7Bおよび14Bの中規模モデルのデプロイ可能です。VLLMというフレームワークを用いて、モデルをデプロイました。

最後

RAG システムでは、評価の部分も非常に重要です。評価指標としては、検索速度と検索精度、検索結果の関連性、そしてLLM最終的に生成する結果の品質を用いています。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?