Share via


Az Azure AI-dokumentumintelligencia-szolgáltatással bővített generáció lekérése

Ez a tartalom a következőre vonatkozik::checkmarkv4.0 (előzetes verzió)

Bevezetés

A Retrieveal-Augmented Generation (RAG) egy olyan tervezési minta, amely egy előre betanított nagy nyelvi modellt (LLM) kombinál, például a ChatGPT-t egy külső adatlekérési rendszerrel, hogy továbbfejlesztett választ hozzon létre, amely az eredeti betanítási adatokon kívül új adatokat tartalmaz. Az alkalmazásokhoz adatlekérdezési rendszer hozzáadásával cseveghet a dokumentumaival, magával ragadó tartalmakat hozhat létre, és hozzáférhet az AdatokHoz készült Azure OpenAI-modellekhez. A válasz megfogalmazása során az LLM által használt adatokat is jobban szabályozhatja.

A Dokumentumintelligencia-elrendezés modell egy fejlett gépi tanuláson alapuló dokumentumelemzési API. Az elrendezési modell átfogó megoldást kínál a speciális tartalomkinyerési és dokumentumstruktúra-elemzési képességekhez. Az Elrendezés modellel egyszerűen kinyerheti a szöveget és a szerkezeti elemeket, így a nagyméretű szövegtörzseket a szemantikai tartalom alapján kisebb, jelentéssel bíró adattömbökre oszthatja, nem pedig tetszőleges felosztásokra. A kinyert információk kényelmesen kiadhatók Markdown formátumban, így a szemantikai adattömb-stratégiát a megadott építőelemek alapján határozhatja meg.

Screenshot depicting semantic chunking with RAG using Azure AI Document Intelligence.

Szemantikai adattömb

A hosszú mondatok kihívást jelentenek a természetes nyelvi feldolgozás (NLP) alkalmazások számára. Különösen akkor, ha több záradékból, összetett főnévből vagy igekifejezésből, relatív záradékból és zárójeles csoportosításból állnak. Az emberi beholderhez hasonlóan az NLP-rendszernek is sikeresen nyomon kell követnie az összes bemutatott függőséget. A szemantikai adattömbök célja egy mondatábrázolás szemantikailag koherens töredékeinek megkeresése. Ezek a töredékek ezután egymástól függetlenül feldolgozhatók, és szemantikai ábrázolásokként újrakombináltak anélkül, hogy információvesztést, értelmezést vagy szemantikai relevanciát veszítenének. A szöveg eredendő jelentését az adattömb-feldolgozási folyamat útmutatójaként használjuk.

A szöveges adattömbkezelési stratégiák kulcsszerepet játszanak a RAG-válasz és a teljesítmény optimalizálásában. A rögzített méretű és szemantikai két különböző adattömbelési módszer:

  • Rögzített méretű adattömb. A RAG-ban ma használt adattömb-stratégiák többsége fix méretű, adattömböknek nevezett szövegszegmenseken alapul. A rögzített méretű adattömbök gyors, egyszerű és hatékonyak olyan szövegekkel, amelyek nem rendelkeznek erős szemantikai szerkezettel, például naplókkal és adatokkal. A szemantikai megértést és pontos kontextust igénylő szövegek esetében azonban nem ajánlott. Az ablak rögzített méretű jellege a szavak, mondatok vagy bekezdések elválasztását eredményezheti, ami a megértést és az információáramlás és a megértés megzavarását eredményezheti.

  • Szemantikai adattömb. Ez a módszer a szemantikai megértés alapján adattömbökre osztja a szöveget. Az osztáshatárok a mondat tárgyára összpontosítanak, és jelentős számítási algoritmusokkal összetett erőforrásokat használnak. Az egyes adattömbök szemantikai konzisztenciájának fenntartása azonban külön előnye. Hasznos szövegösszesítési, hangulatelemzési és dokumentumbesorolási feladatokhoz.

Szemantikai adattömbelés dokumentumintelligencia-elrendezési modellel

A Markdown egy strukturált és formázott korrektúranyelv, és népszerű bemenet a szemantikai adattömbölés engedélyezéséhez a RAG-ban (Retrieveal-Augmented Generation). Az Elrendezési modell Markdown-tartalmának használatával bekezdéshatárok alapján oszthat fel dokumentumokat, konkrét adattömböket hozhat létre táblákhoz, és finomhangolhatja az adattömb-stratégiát a generált válaszok minőségének javítása érdekében.

Az Elrendezési modell használatának előnyei

  • Egyszerűsített feldolgozás. Egyetlen API-hívással elemezhet különböző dokumentumtípusokat, például digitális és beolvasott PDF-fájlokat, képeket, office-fájlokat (docx, xlsx, pptx) és HTML-fájlokat.

  • Méretezhetőség és AI-minőség. Az elrendezési modell nagy mértékben méretezhető az optikai karakterfelismerés (OCR), a táblák kinyerése és a dokumentumstruktúra elemzése során. 309 nyomtatott és 12 kézzel írt nyelvet támogat, így tovább biztosítja az AI-képességek által vezérelt kiváló minőségű eredményeket.

  • Nagy nyelvi modell (LLM) kompatibilitása. Az elrendezési modell Markdown formátumú kimenete LLM-barát, és megkönnyíti a munkafolyamatokba való zökkenőmentes integrációt. A dokumentum bármely tábláját Markdown formátumúvá alakíthatja, és elkerülheti a dokumentumok alapos elemzését a jobb LLM-megértés érdekében.

A Document Intelligence Studióval feldolgozott szövegkép és a MarkDown-kimenet elrendezési modellel

Screenshot of newspaper article processed by Layout model and outputted to Markdown.

A Document Intelligence Studióval feldolgozott táblázatkép elrendezési modellel

Screenshot of table processed by Layout model and outputted to Markdown.

Első lépések

A Dokumentumintelligencia-elrendezés modell 2024-02-29-preview és 2023-10-31 előzetes verziója a következő fejlesztési lehetőségeket támogatja:

Készen áll a kezdésre?

Document Intelligence Studio

Az első lépésekhez kövesse a Document Intelligence Studio rövid útmutatóját . Ezután integrálhatja a Dokumentumintelligencia-funkciókat a saját alkalmazásával a megadott mintakód használatával.

  • Kezdje az elrendezési modellel. A RAG stúdióban való használatához a következő elemzési beállításokat kell kiválasztania:

    **Required**

    • Az aktuális dokumentumelemzési tartomány futtatása.
    • Az oldaltartomány → az összes lapot.
    • A kimeneti formátum stílusa → Markdown.

    **Optional**

    • A megfelelő opcionális észlelési paramétereket is kiválaszthatja.
  • Válassza a Mentés lehetőséget.

    Screenshot of Analyze options dialog window with RAG required options in the Document Intelligence studio.

  • A kimenet megtekintéséhez válassza az Elemzés futtatása gombot.

    Screenshot of the Run Analysis button in the Document Intelligence Studio.

SDK vagy REST API

  • Kövesse a Dokumentumintelligencia rövid útmutatóját az előnyben részesített programozási nyelv SDK-hoz vagy REST API-hoz. Az Elrendezési modell használatával kinyerheti a dokumentum tartalmát és struktúráját.

  • A GitHub-adattárakban kódmintákat és tippeket is találhat a dokumentumok Markdown kimeneti formátumban való elemzéséhez.

Dokumentumcsevegés készítése szemantikai adattömbdel

  • Az adatokon futó Azure OpenAI lehetővé teszi a támogatott csevegések futtatását a dokumentumokon. Az adatokon futó Azure OpenAI a dokumentumintelligencia-elrendezési modellt alkalmazza a dokumentumadatok kinyerésére és elemzésére hosszú szövegek táblázatok és bekezdések alapján történő darabolásával. Az adattömb-stratégiát a GitHub-adattárban található Azure OpenAI-mintaszkriptekkel is testre szabhatja.

  • Az Azure AI Document Intelligence mostantól integrálva van a LangChainnel a dokumentumbetöltők egyikeként. Segítségével egyszerűen betöltheti az adatokat és a kimenetet Markdown-formátumba. További információkért tekintse meg a RAG-minta egyszerű demóját bemutató mintakódunkat, amely az Azure AI Document Intelligencet dokumentumbetöltőként, az Azure Search-t pedig lekérőként mutatja be a LangChainben.

  • Az adatmegoldásgyorsító kódmintájával folytatott csevegés egy végpontok közötti alapkonfigurációs RAG-mintát mutat be. Az Azure AI Search-t használja lekérőként és Azure AI-dokumentumintelligenciaként a dokumentumok betöltéséhez és szemantikai adattömbhöz.

Használati eset

Ha egy dokumentum egy adott szakaszát keresi, szemantikai adattömbök használatával kisebb adattömbökre oszthatja a dokumentumot a szakaszfejlécek alapján, így gyorsan és egyszerűen megtalálhatja a keresett szakaszt:


# Using SDK targeting 2024-02-29-preview or 2023-10-31-preview, make sure your resource is in one of these regions: East US, West US2, West Europe
# pip install azure-ai-documentintelligence==1.0.0b1
# pip install langchain langchain-community azure-ai-documentintelligence

from azure.ai.documentintelligence import DocumentIntelligenceClient

endpoint = "https://<my-custom-subdomain>.cognitiveservices.azure.com/"
key = "<api_key>"

from langchain_community.document_loaders import AzureAIDocumentIntelligenceLoader
from langchain.text_splitter import MarkdownHeaderTextSplitter
 
# Initiate Azure AI Document Intelligence to load the document. You can either specify file_path or url_path to load the document.
loader = AzureAIDocumentIntelligenceLoader(file_path="<path to your file>", api_key = key, api_endpoint = endpoint, api_model="prebuilt-layout")
docs = loader.load()
 
# Split the document into chunks base on markdown headers.
headers_to_split_on = [
    ("#", "Header 1"),
    ("##", "Header 2"),
    ("###", "Header 3"),
]
text_splitter = MarkdownHeaderTextSplitter(headers_to_split_on=headers_to_split_on)
 
docs_string = docs[0].page_content
splits = text_splitter.split_text(docs_string)
splits

Következő lépések