成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

動手實現GraphRAG,檢索效果大幅提升

發布于 2024-7-30 00:48
瀏覽
0收藏

1 理解檢索增強生成(RAG)

檢索增強生成(RAG)技術通過融合檢索得到的文檔和用戶輸入的查詢,為語言模型注入了額外的上下文信息。這種結合不僅豐富了模型的知識庫,還提升了其回答的準確性和相關性。

例如,當用戶提出涉及特定個人信息或商業數據的問題時,RAG能夠從預設的數據源中提取關鍵信息,輔助模型給出更加精準的答復。

簡而言之,RAG技術就像是給語言模型配備了一個智能的背景知識庫,使其在面對復雜問題時,能夠做出更加明智的回應。

2 GraphRAG:通過圖形結構增強上下文

GraphRAG技術在傳統RAG的基礎上更進一步,通過構建信息的圖形網絡,實現了對數據的深度理解和應用。這不僅僅是簡單地檢索相關文檔,更重要的是能夠洞察文檔中實體間的復雜聯系。

舉個例子,假設數據集中包含了紐約、洛杉磯和芝加哥等城市的信息。GraphRAG不僅能夠檢索到這些城市的相關資料,還能識別并利用它們之間的各種關系,比如紐約與洛杉磯之間的貿易伙伴關系,或是洛杉磯與芝加哥之間的文化交流項目。

這樣的技術使GraphRAG在處理信息時能夠展現出更為豐富的洞察力和更深層次的分析能力。

3 設置環境

源碼地址:

??https://github.com/aniket-work/why_graphRAG_such_game_changer??

創建虛擬環境:

python -m venv why_graphRAG_such_game_changer

激活環境:

why_graphRAG_such_game_changer\Scripts\activate   (Windows)

source why_graphRAG_such_game_changer/bin/activate  (Unix/macOS

安裝依賴項:

cd path/to/your/project
pip install -r requirements.txt

使用Ollama拉取必要的模型:

ollama pull mistral
ollama pull nomic-embed-text

安裝Ollama:

  • 訪問Ollama官方網站:https://ollama.ai/
  • 下載適合的操作系統的版本(Windows、macOS或Linux)。
  • 按照操作系統提供的安裝說明進行操作。
  • 安裝完成后,打開終端或命令提示符。
  • 通過運行以下命令來驗證安裝:

ollama --version

初始化和使用GraphRAG:

python -m graphrag.index --init --root ragtest

下載數據

你可以下載任何你喜歡的數據,已經將一個小型的、基于場景的、面向關系的故事情節檢查并放入了“input”文件夾中。

4 初始化過程

運行命令python -m graphrag.index --init --root ragtest初始化GraphRAG時,以下一系列操作將會自動進行:

創建配置文件:

  • .env:此文件包含運行GraphRAG管道所需的環境變量。它通常包括用于OpenAI API或Azure OpenAI端點的API密鑰。例如:

GRAPHRAG_API_KEY=<API_KEY>
  • settings.yaml:此文件保存GraphRAG管道的設置??梢孕薷拇宋募哉{整各種管道設置,例如Azure OpenAI的API基礎、版本和部署名稱。例如:

llm:
  type: azure_openai_chat
  api_base: https://<instance>.openai.azure.com
  api_version: 2024-02-15-preview
  deployment_name: <azure_model_deployment_name>
  • prompts/:此目錄包含GraphRAG使用的默認提示。這些提示指導大型語言模型(LLM)生成回答。可以修改這些提示或運行自動提示調整命令以生成適應你數據的新提示。

5 目的和用途

  • .env 文件:

目的:存儲環境變量,包括用于驗證對OpenAI或Azure OpenAI服務請求的API密鑰。

用途:此文件由GraphRAG系統引用,以訪問必要的憑據和配置設置。

  • settings.yaml 文件:
  • 目的:包含GraphRAG管道的詳細配置設置,如API端點、模型版本和部署名稱。
  • 用途:此文件用于自定義GraphRAG管道的行為,允許用戶指定使用哪個LLM以及如何與之交互。
  • prompts/ 目錄:
  • 目的:保存默認的LLM提示,指導模型生成回答。這些提示可以根據你的數據的具體需求進行定制。
  • 用途:用戶可以修改提示以提高生成回答的準確性和相關性。該目錄還支持運行自動提示調整命令以創建新的、特定于數據的提示。

6 修改 settings.yaml

由于我們打算在本地運行graphRAG,需要對默認的 settings.yaml 文件進行一些更改。

encoding_model: cl100k_base
skip_workflows: []
llm:
  api_key: ${GRAPHRAG_API_KEY}
  type: openai_chat
  model: mistral
  model_supports_json: true
api_base: http://localhost:11434/v1
parallelization:
  stagger: 0.3
async_mode: threaded
embeddings:
  async_mode: threaded
  llm:
    api_key: ${GRAPHRAG_API_KEY}
    type: openai_embedding
    model: nomic_embed_text
    api_base: http://localhost:11434/api

7 修改以使用 Ollama 嵌入

GraphRAG 本身不支持 Ollama 嵌入模型,但可以通過修改 GraphRAG 庫中的特定文件來添加此支持。通過編輯 openai_embeddings_llm.py 文件,我們可以啟用使用 Ollama 嵌入模型。這涉及導入必要的模塊并更新代碼以調用 Ollama 的嵌入函數,允許我們在 GraphRAG 管道中利用高級嵌入。

以下是如何更新 openai_embeddings_llm.py 文件的方法:

from typing_extensions import Unpack
from graphrag.llm.base import BaseLLM
from graphrag.llm.types import EmbeddingInput, EmbeddingOutput, LLMInput
from .openai_configuration import OpenAIConfiguration
from .types import OpenAIClientTypes
import ollama

class OpenAIEmbeddingsLLM(BaseLLM[EmbeddingInput, EmbeddingOutput]):
    """
    使用 Ollama 進行嵌入的自定義 LLM(大型語言模型)實現。
    """

    def __init__(self, client: OpenAIClientTypes, configuration: OpenAIConfiguration):
        """
        初始化 OpenAIEmbeddingsLLM 實例。

        參數:
            client (OpenAIClientTypes): 與AI服務交互的客戶端。
            configuration (OpenAIConfiguration): AI服務的配置設置。
        """
        self._client = client
        self._configuration = configuration

    async def _execute_llm(
        self, input: EmbeddingInput, **kwargs: Unpack[LLMInput]
    ) -> EmbeddingOutput | None:
        """
        使用 Ollama 嵌入執行大型語言模型。

        參數:
            input (EmbeddingInput): 嵌入模型的輸入數據。
            **kwargs (Unpack[LLMInput]): 模型參數的附加關鍵字參數。

        返回:
            EmbeddingOutput | None: 模型的輸出嵌入或如果沒有輸出則為 None。
        """
        args = {
            "model": self._configuration.model,
            **(kwargs.get("model_parameters") or {}),
        }
        embedding_list = []
        for inp in input:
            embedding = ollama.embeddings(model="nomic-embed-text", prompt=inp)
            embedding_list.append(embedding["embedding"])
        return embedding_list

8 使用 GraphRAG 運行查詢

使用以下命令索引數據:

python -m graphrag.index --root .\ragtest

輸出

動手實現GraphRAG,檢索效果大幅提升-AI.x社區圖片

運行查詢以測試設置:

python -m graphrag.query --root .\ragtest --method global "How was the impact of Lily's action on villagers"

輸出

動手實現GraphRAG,檢索效果大幅提升-AI.x社區圖片

9 結語

未來,人工智能在商業領域的影響力將日益增強。那些能夠將人工智能技術有效融入其業務運營的公司,將具備更快的創新速度、更優質的客戶服務體驗,以及更高效的流程優化能力。GraphRAG技術的出現,僅是人工智能潛力的冰山一角。

隨著時間推移,人工智能將變得更加精密復雜。它將不僅能夠理解問題,還能生成貼近人類思維的回答。預計不久的將來,企業將見證一種新型人工智能系統的誕生——這些系統不僅能夠回答問題,還能基于海量數據分析提供戰略性的見解和建議。因此,對于任何希望在競爭中保持領先地位的企業而言,積極擁抱人工智能并持續關注其最新發展,顯得尤為關鍵。這不僅是一個選擇,更是一個必然的趨勢。

本文轉載自 ??AI科技論談??,作者: AI科技論談

收藏
回復
舉報
回復
相關推薦
主站蜘蛛池模板: 国产精品久久久久久婷婷天堂 | 欧美一区二区综合 | 国产精品久久久乱弄 | 国产剧情一区 | 免费黄篇 | 久久色视频 | 日本三级网站在线观看 | 中文字幕人成乱码在线观看 | 国产精品激情在线 | 国产精品久久久久久影视 | 毛片一级片 | 一级欧美视频 | 国产高清免费视频 | 丁香婷婷成人 | 国产精品久久久久久久久久久免费看 | 国产精品久久久久久久免费观看 | 日韩字幕 | 亚洲成av | 久久网国产 | www国产成人免费观看视频 | 亚洲一区三区在线观看 | av特级毛片 | 精品二区 | 激情六月天 | 欧美日韩国产在线观看 | 欧美成人激情 | 欧美一级艳情片免费观看 | 久久国产综合 | 精品三级在线观看 | av大全在线观看 | 天堂中文字幕av | 色婷婷久久 | 久久www免费人成看片高清 | 丁香一区二区 | 欧美日韩一 | 日韩精品免费视频 | 国产精品mv在线观看 | 亚洲午夜精品一区二区三区 | 欧美理论片在线 | 日本免费一区二区三区 | 美国一级片在线观看 |