ホームページ > テクノロジー周辺機器 > AI > Bhagavad Gita AIアシスタントの構築

Bhagavad Gita AIアシスタントの構築

尊渡假赌尊渡假赌尊渡假赌
リリース: 2025-03-05 11:39:10
オリジナル
898 人が閲覧しました

AIの急速に進化する世界では、大規模な言語モデルが速度、精度、および費用効率の境界を押し広げています。 OpenaiのO1に匹敵するオープンソースモデルであるDeepseek R1の最近のリリースは、特に27倍低コストと優れた推論機能を考えると、AIスペースのホットトピックです。これをQdrantのバイナリ量子化と組み合わせて、効率的で迅速なベクトル検索で、1,000ページ以上のドキュメントをインデックスできます。この記事では、1,000ページのインデックスを作成し、GROQを使用して数秒で複雑なクエリに答えることができるBhagavad Gita AIアシスタントを作成し、ドメイン固有の精度で洞察を提供します。

学習目標

メモリ効率の高いベクトルインデックス作成のためにQDRANTにバイナリ量子化を実装します。
  • 効率的なテキスト検索のために、DeepSeek R1、QDrant、およびLlamainDexを使用してBhagavad Gita AIアシスタントを構築する方法を理解してください。
  • GROQを使用してBhagavad Gita AIアシスタントを最適化することを学び、高速でドメイン固有のクエリ応答と大規模なドキュメントインデックスを作成します。
  • llamaindexとastembedローカル埋め込みを使用してragパイプラインを構築して、1,000ページのバガヴァッドギータを処理します。
  • deepseek R1をGROQの推論からリアルタイムの低遅延応答の推論から統合します。
  • 透明性を備えたAIを搭載した洞察を紹介するための流線のUIを開発します
  • この記事は、

データサイエンスブログの一部として公開されました。 目次deepseek r1 vs openai o1ベクターデータベースのバイナリ量子化とは何ですか? deepseek r1 vs openai o1

Deepseek R1は、APIコストを27倍低く、推論ベンチマークでほぼ同期のパフォーマンスで挑戦します。 OpenaiのO1クローズド、サブスクリプションベースのモデル(月額$ 200)、Deepseek R1 ISFREE、オープンソース、および予算志向のプロジェクトや実験に最適です。

推論 - arc-agiベンチマーク:[ソース:arc-agi deepseek]

  • deepseek:20.5%の精度(パブリック)、15.8%(半プライベート)。
  • openai:21%の精度(public)、18%(semi-private)。
  • これまでの私の経験から、DeepSeekは数学の推論、コーディング関連のユースケース、コンテキストに付与されたプロンプトで素晴らしい仕事をしています。
  • ベクターデータベースのバイナリ量子化とは?
  • バイナリ量子化(BQ)は、高次元ベクトルストレージと検索を最適化するためのQDRANTのインデックス圧縮技術です。 32ビットのフローティングポイントベクトルを1ビットバイナリ値に変換することにより、メモリ使用量をby40xを削減し、検索速度を劇的に加速します。

    それがどのように機能するか

    • 双方向化:ベクターはしきい値に基づいて0秒および1に簡素化されます(例:値> 0は1になります)。
    • 効率的なインデックス作成:QDRANTのHNSWアルゴリズムは、これらのバイナリベクトルを使用して、迅速な近隣隣接(ANN)検索に使用します。
    • オーバーサンプリング:速度と精度のバランスを取るために、BQは追加の候補者(たとえば、100の制限が200)を取得し、元のベクターを使用して再ランクします。
    • なぜそれが重要なのか

    ストレージ:1536次元のOpenaiベクターは6kbから0.1875 kbに縮小します。

    速度:1ビットベクトルのブール操作は、より速く実行し、遅延を減らします。
      スケーラビリティ:最小限のリコールトレードオフを備えた大きなデータセット(1Mベクター)に最適です。
    • 情報の損失が精度に大きな影響を与えるバイナリ量子化forlow-dimensionベクター(< 1024)を避けます。従来のスカラー量子化(例:UINT8)は、より小さな埋め込みに適している可能性があります。
    • Bhagavad Gitaアシスタントの構築
    • 以下は、Bhagwad Gitaアシスタントを構築する方法について説明するフローチャートです。

    アーキテクチャの概要

    データの摂取:900ページのBhagavad Gita PDFはテキストチャンクに分かれています。

    埋め込み:QDRANT FASTEMBEDのテキストからベクトルの埋め込みモデル。Bhagavad Gita AIアシスタントの構築

    Vector DB:QDRANT BQストアが埋め込み、ミリ秒検索を可能にします。

    LLM推論:GROQ LPUを介したDeepseek R1は、コンテキスト認識応答を生成します。 UI:拡張可能な「思考プロセス」の可視性を備えたretrylidアプリ。

      ステップバイステップの実装
    • 次に、手順を1つずつ進みましょう
    • Step1:インストールと初期セットアップ
    • LlamainDexを使用してRAGパイプラインの基礎を設定しましょう。コアLlamainDexライブラリ、QDRANTベクターストアの統合、埋め込み用に断定されたLLMアクセス用GROQなどの必須パッケージをインストールする必要があります。
    • 注:
    • ドキュメントインデックスの場合、データを保存するためにcolabからa
    gpu

    を使用します。これは1回限りのプロセスです。

    データが保存されたら、VSコード、streamlit、またはその他のプラットフォームでも、コレクション名を使用してどこでも推論を実行できます。

    インストールが完了したら、必要なモジュールをインポートしましょう。

    ステップ2:ドキュメントの処理と埋め込み

    ここでは、生のテキストをベクトル表現に変換する重要なタスクを処理します。 SimpleDirectoryReaderは、指定されたフォルダーからドキュメントをロードします フォルダー、つまりデータディレクトリを作成し、内部のすべてのドキュメントを追加します。私たちの場合、Bhagavad Gitaドキュメントをダウンロードして、データフォルダーに保存しました。

    〜900ページのBhagavad Gitaドキュメントをこちらからダウンロードできます:IskConmangaluru !pip install llama-index !pip install llama-index-vector-stores-qdrant llama-index-embeddings-fastembed !pip install llama-index-readers-file !pip install llama-index-llms-groq

    qdrantのastembedは、効率的な埋め込み生成のために設計された軽量で高速のPythonライブラリです。人気のあるテキストモデルをサポートし、推論のためのONNXランタイムとともに量子化されたモデルの重みを利用して、重い依存関係なしで高性能を確保します。

    テキストチャンクを埋め込みに変換するには、QDrantのastembedを使用します。これらを50のドキュメントのバッチで処理して、メモリを効率的に管理しています。

    Step3:バイナリ量子化によるQDRANTセットアップ
import logging
import sys
import os

import qdrant_client
from qdrant_client import models

from llama_index.core import SimpleDirectoryReader
from llama_index.embeddings.fastembed import FastEmbedEmbedding
from llama_index.llms.groq import Groq # deep seek r1 implementation
ログイン後にコピー
ログイン後にコピー
パフォーマンスのために最適化された設定を備えたベクトルデータベースであるQDRANTクライアントを構成する時間。特定のベクトルパラメーターを備えた「Bhagavad-gita」という名前のコレクションを作成し、効率的なストレージと検索のためにバイナリ量子化を有効にします。

QDRANTクライアントを使用するには、3つの方法があります

メモリ内モード:location =”:memory:”を使用して、一度だけ実行される一時的なインスタンスを作成します。 

localhost:location =” localhost”を使用して、dockerインスタンスを実行する必要があります。ここでセットアップガイドをフォローしてください:QDRANT QuickStart。 

    クラウドストレージ:クラウドにコレクションを保存します。これを行うには、新しいクラスターを作成し、クラスター名を提供し、APIキーを生成します。キーをコピーして、CurlコマンドからURLを取得します。
  • コレクション名は一意である必要があります。すべてのデータ変更後、これも変更する必要があります。
  • 最初に、指定されたcollection_nameを含むコレクションがqdrantに存在するかどうかを確認します。そうでない場合のみ、1,024次元ベクトルを保存するように構成された新しいコレクションを作成し、距離測定にコサインの類似性を使用します。
  • 元のベクトルのディスク上のストレージを有効にし、バイナリ量子化を適用します。これにより、ベクトルを圧縮してメモリの使用量を削減し、検索速度を向上させます。 Always_ramパラメーターは、量子化されたベクトルがより速いアクセスのためにRAMに保持されることを保証します。
ステップ4:ドキュメントのインデックス

インデックスプロセスは、処理されたドキュメントとその埋め込みをバッチ内のQDRANTにアップロードします。各ドキュメントは、そのベクトル表現と一緒に保存され、検索可能な知識ベースを作成します。
data = SimpleDirectoryReader("data").load_data()
texts = [doc.text for doc in data]

embeddings = []
BATCH_SIZE = 50
ログイン後にコピー
ログイン後にコピー
GPUはこの段階で使用され、データサイズに応じて、この手順には数分かかる場合があります。

Step5:DeepSeek R1

を使用したRag Pipeline

Process-1:R-関連するドキュメントを取得
embed_model = FastEmbedEmbedding(model_name="thenlper/gte-large")


for page in range(0, len(texts), BATCH_SIZE):
    page_content = texts[page:page + BATCH_SIZE]
    response = embed_model.get_text_embedding_batch(page_content)
    embeddings.extend(response)
ログイン後にコピー
ログイン後にコピー

検索関数はユーザークエリを取り、それを埋め込みに変換し、コサインの類似性に基づいてQDRANTから最も関連するドキュメントを取得します。 Bhagavad-Gītāに関するサンプルクエリでこれを示し、取得したコンテキストにアクセスして印刷する方法を示しています。
!pip install llama-index
!pip install llama-index-vector-stores-qdrant llama-index-embeddings-fastembed
!pip install llama-index-readers-file
!pip install llama-index-llms-groq  
ログイン後にコピー
ログイン後にコピー

プロセス-2:A-プロンプトの増強

ragの場合、chatprompttemplateを使用してシステムのインタラクションテンプレートを定義することが重要です。このテンプレートは、複数の言語(英語、ヒンディー語、サンスクリット語)を理解できるバガヴァッドギータに知識のある専門のアシスタントを作成します。

コンテキストインジェクションとクエリ処理用の構造化されたフォーマットが含まれており、コンテキスト外の質問を処理するための明確な指示が含まれています。

Process-3:g-応答の生成
import logging
import sys
import os

import qdrant_client
from qdrant_client import models

from llama_index.core import SimpleDirectoryReader
from llama_index.embeddings.fastembed import FastEmbedEmbedding
from llama_index.llms.groq import Groq # deep seek r1 implementation
ログイン後にコピー
ログイン後にコピー

最後のパイプラインは、まとまりのあるぼろきれシステムにすべてをまとめます。これは、回収された高得点パターンに従います。関連するドキュメントの取得、専門のプロンプトテンプレートでそれらを増強し、LLMを使用して応答を生成します。ここでLLMには、GROQでホストされているDeepseek R-1 Distill 70 Bを使用します。ここからキーを入手してください:GROQコンソール。

出力:(構文:< Think> Reasoning</think> response)

data = SimpleDirectoryReader("data").load_data()
texts = [doc.text for doc in data]

embeddings = []
BATCH_SIZE = 50
ログイン後にコピー
ログイン後にコピー

Bhagavad Gita AIアシスタントの構築

embed_model = FastEmbedEmbedding(model_name="thenlper/gte-large")


for page in range(0, len(texts), BATCH_SIZE):
    page_content = texts[page:page + BATCH_SIZE]
    response = embed_model.get_text_embedding_batch(page_content)
    embeddings.extend(response)
ログイン後にコピー
ログイン後にコピー

このアプリケーションをもう一度使用する必要がある場合はどうなりますか?私たちはすべての手順を再度受けることになっていますか?Bhagavad Gita AIアシスタントの構築

答えはno。

です

ステップ6:インデックス推論の保存

あなたがすでに書いたものに大きな違いはありません。 query_pointsを実行するために必要なコレクション名とともに、同じ検索とパイプラインの機能を再利用します。

retrylit app.pyで同じ上記の2つの関数とmessage_templateを使用します。 

Step7:ui
collection_name = "bhagavad-gita"

client = qdrant_client.QdrantClient(
    #location=":memory:",
    url = "QDRANT_URL", # replace QDRANT_URL with your endpoint
    api_key = "QDRANT_API_KEY", # replace QDRANT_API_KEY with your API keys
    prefer_grpc=True
)
ログイン後にコピー
を合理化します

retrylittで、ユーザーの質問のたびに、状態はリフレッシュされます。ページ全体が再度更新されないようにするために、cache_resourceのretrylistの下にいくつかの初期化ステップを定義します。

ユーザーが質問を入力したときに覚えておいてください、Fastembedはモデルの重みを一度ダウンロードします。GROQとQDRANTインスタンス化にも同じことが言えます。

応答出力に気付いた場合、形式は< think>です。 Reasoning</think>応答。

UIでは、推論を整ったエキスパンダーの下に保持し、推論部分を取得するために、文字列インデックスを使用して推論と実際の応答を抽出しましょう。

チャットボットコンポーネント

if not client.collection_exists(collection_name=collection_name):
    client.create_collection(
        collection_name=collection_name,
        vectors_config=models.VectorParams(size=1024,
                                           distance=models.Distance.COSINE,
                                           on_disk=True),
        quantization_config=models.BinaryQuantization(
            binary=models.BinaryQuantizationConfig(
                always_ram=True,
            ),
        ),
    )
else:
    print("Collection already exists")
ログイン後にコピー
Streamlitのセッション状態のメッセージ履歴を初期化します。サイドバーの「クリアチャット」ボタンを使用すると、ユーザーはこの履歴をリセットできます。 

保存されたメッセージを繰り返し、チャットのようなインターフェイスに表示します。アシスタント応答の場合、extract_thinking_and_answer関数を使用して、思考プロセス(拡張可能なセクションに表示)を実際の回答から分離します。

残りのコードは、retrylittのチャットボットコンポーネント、つまりユーザーの質問の入力フィールドを作成する入力処理を定義するための標準形式です。質問が提出されると、メッセージ履歴に表示され、追加されます。これで、ロードスピナーを表示しながら、ラグパイプラインを介してユーザーの質問を処理します。応答は思考プロセスと回答コンポーネントに分割されます。

!pip install llama-index
!pip install llama-index-vector-stores-qdrant llama-index-embeddings-fastembed
!pip install llama-index-readers-file
!pip install llama-index-llms-groq  
ログイン後にコピー
ログイン後にコピー
重要なリンク

    完全なコードを見つけることができます
  • 代替bhagavad gita pdf-ダウンロード
  • 「< lt; api-key>」プレースホルダーを鍵に置き換えます。
結論

DeepSeek R1の推論、QDRANTのバイナリ量子化、LlamainDexのRAGパイプラインを組み合わせることにより、Sub-2-Second Responson 1,000ページを配信するAIアシスタントを構築しました。このプロジェクトは、ドメイン固有のLLMと最適化されたベクトルデータベースが、コスト効率を維持しながら、古代のテキストへのアクセスを民主化する方法を強調しています。オープンソースモデルが進化し続けるにつれて、ニッチAIアプリケーションの可能性は無限です。

キーテイクアウト

Deepseek R1は、1/27のコストでOpenai O1に匹敵します。聖書分析のようなドメイン固有のタスクに最適です。
    LamainDexとQDRANTを使用したドキュメント処理、埋め込み生成、およびベクターストレージのための実証されたコード例を使用したRAGパイプラインの実装を理解してください。
  • qdrantのバイナリ量子化による効率的なベクトルストレージの最適化、パフォーマンスと精度を維持しながら大規模なドキュメントコレクションの処理を可能にします。
  • 多言語クエリ(英語、ヒンディー語、サンスクリット語)を処理し、コンテスト外の質問を効果的に管理するための明確なテンプレートを使用した構造化されたプロンプトエンジニアリングの実装。
  • retryliTを使用したインタラクティブUI、ベクトルデータベースに一度保存されたアプリケーションを推論します。
  • よくある質問
  • q1。
  • バイナリ量子化は回答の品質を低下させますか?リコールへの最小限の影響! QDRANTのオーバーサンプリングは、元のベクトルを使用してトップ候補を再ランクし、精度を維持しながら速度40xを高め、メモリ使用量を97%削減します。
  • astembedは、サンスクリット語/ヒンディー語のような英語以外のテキストをハンドルできますか?はい! Rag Pipelineは、Fastembedの埋め込みとDeepseek R1の言語の柔軟性を使用しています。カスタムプロンプトは、英語、ヒンディー語、またはサンスクリット語の回答をガイドします。一方、ヒンディー語のトークンを理解できる埋め込みモデルを使用できますが、この場合、トークンは英語とヒンディー語のテキストを理解していました。 
q3。 なぜopenai o1? ​​

aでdeepseek r1を選択するのか。 Deepseek R1は、APIコストの27倍、同等の推論精度(20.5%対O1の21%)、および優れたコーディング/ドメイン固有のパフォーマンスを提供します。聖書分析のような専門的なタスクに最適です。コストと焦点を絞った専門知識が重要です。

この記事に示されているメディアは、Analytics Vidhyaが所有しておらず、著者の裁量で使用されています。

以上がBhagavad Gita AIアシスタントの構築の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート