AI Personal Learning
und praktische Anleitung
豆包Marscode1

Agentisches Chunking: KI-Agenten-gesteuerte semantische Textverknüpfung

Einführung

Im Anwendungsbereich von Large Language Models (LLMs), insbesondere im Bereich der retrieval-gestützten Generierung (RAG) spielt das Chunking von Texten eine entscheidende Rolle. Die Qualität des Text Chunking steht in direktem Zusammenhang mit der Gültigkeit der Kontextinformationen, die wiederum die Genauigkeit und Vollständigkeit der von LLM generierten Antworten beeinflussen. Herkömmliche Text-Chunking-Methoden, wie z. B. das Chunking von Zeichen mit fester Größe und die rekursive Textsegmentierung, zeigen ihre inhärenten Grenzen auf, z. B. können sie in der Mitte eines Satzes oder einer semantischen Einheit abbrechen, was zu Kontextverlust und semantischer Inkohärenz führt. In diesem Beitrag werden wir uns mit einer intelligenteren Chunking-Strategie, dem Agentic Chunking, beschäftigen, die darauf abzielt, den menschlichen Beurteilungsprozess zu imitieren, um semantisch kohärente Textabschnitte zu erstellen und so die Leistung von RAG-Systemen deutlich zu verbessern. Darüber hinaus werden detaillierte Code-Beispiele bereitgestellt, um den Lesern den Einstieg zu erleichtern.

Referenzlektüre:Einfache, effektive RAG-Retrieval-Strategie: sparse + dense Hybrid-Suche und -Umordnung sowie Verwendung von "cue caching" zur Generierung von dokumentenrelevantem Gesamtkontext für Textabschnitte.


 

Was ist Agentic Chunking?

Agentisches Chunking ist eine hochmoderne LLM-basierte Chunking-Methode, die das menschliche Verständnis und Urteilsvermögen bei der Textsegmentierung nachahmt und darauf abzielt, semantisch kohärente Textabschnitte zu erzeugen. Die Kernidee besteht darin, sich auf die "agierenden" Elemente im Text zu konzentrieren, wie z. B. Zeichen, Organisationen usw., und Sätze, die sich auf diese agierenden Elemente beziehen, zu sinnvollen semantischen Einheiten zusammenzufassen.

Kerngedanken: Das Wesen des Agentic Chunking besteht darin, dass es sich nicht einfach auf die Anzahl der Zeichen oder vordefinierte Trennzeichen verlässt, um Text aufzuteilen. Stattdessen werden die semantischen Verständnisfähigkeiten des LLM genutzt, um semantisch eng verwandte Sätze zu Chunks zusammenzufassen, selbst wenn diese Sätze im Originaltext nicht zusammenhängend sind. Dieser Ansatz erfasst die innere Struktur und die semantischen Assoziationen des Textes genauer.

 

Warum brauchen Sie Agentic Chunking?

Herkömmliche Text-Chunking-Methoden haben einige schwer zu ignorierende Einschränkungen:

  • Chunking von Zeichen in fester Größe:
    • Bei diesem Ansatz wird der Text mechanisch in Blöcke mit einer vordefinierten festen Länge aufgeteilt. Dies kann dazu führen, dass zwischen Zeichen in der Mitte eines Satzes oder sogar innerhalb von Wörtern abgeschnitten wird, was die semantische Integrität des Textes stark beeinträchtigt.
    • Dabei wird die eigentliche Struktur des Dokuments, wie Überschriften, Listen usw., vollständig ignoriert, was zu Chunking-Ergebnissen führt, die nichts mit der logischen Struktur des Dokuments zu tun haben.
    • Eine willkürliche Segmentierung kann auch dazu führen, dass ansonsten nicht zusammenhängende Themen im selben Textblock vermischt werden, was die kontextuelle Kohärenz weiter beeinträchtigt.
  • Rekursive Textaufteilung:
    • Die rekursive Textsegmentierung stützt sich auf vordefinierte hierarchische Trennzeichen wie Absätze, Sätze, Wörter usw. zur Segmentierung.
    • Dieser Ansatz ist möglicherweise nicht in der Lage, komplexe Dokumentstrukturen, wie z. B. mehrstufige Überschriften, Tabellen usw., effektiv zu behandeln, was zu einem Verlust von Strukturinformationen führt.
    • Es ist immer noch möglich, dass in der Mitte von semantischen Einheiten wie Absätzen oder Aufzählungslisten abgeschnitten wird, was die semantische Integrität beeinträchtigt.
    • Entscheidend ist, dass es der rekursiven Textsegmentierung auch an einem tiefgreifenden Verständnis der Semantik des Textes mangelt und sie sich bei der Segmentierung nur auf die Oberflächenstruktur stützt.
  • Semantisches Chunking:
    • Beim semantischen Chunking wird versucht, Sätze auf der Grundlage der Ähnlichkeit ihrer Einbettungsvektoren zu gruppieren, um so semantisch relevante Chunks zu erstellen.
    • Gibt es jedoch große semantische Unterschiede zwischen Sätzen innerhalb eines Absatzes, kann das semantische Chunking diese Sätze fälschlicherweise in verschiedene Chunks einordnen, was zu einer Beeinträchtigung der Kohärenz innerhalb des Absatzes führt.
    • Darüber hinaus erfordert das semantische Chunking in der Regel eine große Anzahl von Ähnlichkeitsberechnungen, insbesondere bei der Verarbeitung großer Dokumente, wodurch die Rechenkosten erheblich steigen.

Agentic Chunking überwindet die Einschränkungen der oben genannten traditionellen Methoden durch die folgenden Vorteile:

  • Semantische Kohärenz: Agentic Chunking ist in der Lage, semantisch aussagekräftigere Textabschnitte zu generieren, was die Genauigkeit beim Auffinden relevanter Informationen erheblich verbessert.
  • Kontexterhaltung: Die kontextuelle Kohärenz innerhalb von Textblöcken bleibt besser erhalten, wodurch LLM genauere und kontextbezogene Antworten generieren kann.
  • Flexibilität: Die Agentic Chunking-Methode zeichnet sich durch ein hohes Maß an Flexibilität aus, da sie sich an Dokumente unterschiedlicher Länge, Struktur und Inhaltstypen anpassen kann und somit ein breiteres Spektrum an Anwendungen ermöglicht.
  • Robustheit: Agentic Chunking verfügt über einen perfekten Schutz- und Fallback-Mechanismus, der selbst bei ungewöhnlich komplexer Dokumentenstruktur oder LLM-Leistungseinschränkungen die Effektivität und Stabilität des Chunking gewährleistet.

 

Wie Agentic Chunking funktioniert

Der Arbeitsablauf des Agentic Chunking besteht aus den folgenden Hauptschritten:

  • Mini-Chunk-Erstellung:
    • Erstens werden beim Agentic Chunking rekursive Textsegmentierungstechniken eingesetzt, um das Eingabedokument zunächst in kleinere Mikrochunks zu zerlegen. Die Größe jedes Mikrochunks kann zum Beispiel auf etwa 300 Zeichen begrenzt werden.
    • Während des Segmentierungsprozesses achtet Agentic Chunking besonders darauf, dass Miniatur-Chunks nicht in der Mitte eines Satzes abgeschnitten werden, um die grundlegende semantische Integrität zu wahren.
  • Markierung von Mini-Chunks:
    • Anschließend wird jedem Mikroblock eine eindeutige Markierung hinzugefügt. Diese Markierung hilft LLM, die Grenzen der einzelnen Mikroblöcke bei der nachfolgenden Verarbeitung zu identifizieren.
    • Es ist wichtig anzumerken, dass das LLM den Text eher auf der Grundlage der Token Er ist jedoch gut darin, strukturelle und semantische Muster im Text zu erkennen. Die Markierung von Mikroblöcken hilft dem LLM, Blockgrenzen zu erkennen, auch wenn er die Zeichen nicht genau zählen kann.
  • LLM-unterstützte Chunk-Gruppierung:
    • Legen Sie dem LLM das markierte Dokument zusammen mit den spezifischen Anweisungen vor.
    • An diesem Punkt besteht die Aufgabe des LLM darin, eine eingehende Analyse der Abfolge von Miniaturbrocken durchzuführen und sie auf der Grundlage semantischer Verwandtschaft zu größeren, semantisch kohärenteren Textbrocken zu kombinieren.
    • Während des Gruppierungsprozesses können Einschränkungen, wie z. B. die maximale Anzahl der in jedem Block enthaltenen Mikroblöcke, festgelegt werden, um die Größe der Blöcke entsprechend den tatsächlichen Anforderungen zu steuern.
  • Chunk-Montage:
    • Kombinieren Sie die vom LLM ausgewählten Mikroblöcke, um die endgültige Ausgabe des Agentic Chunking zu bilden - einen Textblock.
    • Um diese Textblöcke besser verwalten und nutzen zu können, können jedem Block relevante Metadaten hinzugefügt werden, wie z. B. die Quellenangaben des Originaldokuments, die Indexposition des Textblocks im Dokument usw.
  • Chunk-Überlappung zur Erhaltung des Kontexts:
    Um die Kohärenz des Kontexts zwischen den Blöcken zu gewährleisten, überschneidet sich der endgültig generierte Block in der Regel bis zu einem gewissen Grad mit den vorangehenden und nachfolgenden Mikroblöcken. Dieser Überschneidungsmechanismus hilft LLM, die Kontextinformationen bei der Verarbeitung benachbarter Textblöcke besser zu verstehen und eine Informationsfragmentierung zu vermeiden.
  • Leitplanken und Rückfallmechanismen:
    • Block Size Limit: Erzwingt die Festlegung einer maximalen Blockgröße, die sicherstellt, dass die generierten Textblöcke immer innerhalb der Eingabelänge des LLM liegen, um Probleme durch zu lange Eingaben zu vermeiden.
    • Context Window Management: Bei sehr langen Dokumenten, deren Länge die LLM-Kontextfenstergrenze überschreitet, kann Agentic Chunking diese auf intelligente Weise in mehrere überschaubare Teile aufteilen und in Stapeln verarbeiten, um eine effiziente und effektive Verarbeitung zu gewährleisten.
    • Validierung: Nachdem das Chunking abgeschlossen ist, führt Agentic Chunking auch einen Validierungsprozess durch, um zu bestätigen, dass alle Mikrochunks korrekt in den endgültigen Textblock aufgenommen wurden, damit keine Informationen fehlen.
    • Rückgriff auf rekursives Chunking: Wenn die LLM-Verarbeitung fehlschlägt oder aus irgendeinem Grund nicht verfügbar ist, kann Agentic Chunking auf herkömmliche rekursive Text-Chunking-Methoden zurückgreifen und so sicherstellen, dass die grundlegende Chunking-Funktionalität in allen Fällen gewährleistet ist.
    • Parallele Verarbeitung: Agentic Chunking unterstützt parallele Verarbeitung Modus, durch den Einsatz von Multi-Threading und andere Technologien, können Sie erheblich beschleunigen die Verarbeitungsgeschwindigkeit des Textes Chunking, vor allem bei der Verarbeitung von großen Dokumenten, wenn der Vorteil ist mehr offensichtlich.

 

Anwendungen von Agentic Chunking

Die Agentic Chunking-Technologie hat ein großes Potenzial für die Anwendung in einer Reihe von Bereichen:

1. verbessertes Lernen

  • Definition und Erläuterung: Agentic RAG optimiert den Lernprozess, indem es komplexe Informationen in überschaubare Einheiten zerlegt und so das Verständnis und die Merkfähigkeit der Lernenden verbessert. Dieser Ansatz legt besonderes Augenmerk auf die "agenturischen" Elemente eines Textes (z.B. Charaktere, Organisationen) und durch die Organisation von Informationen um diese Kernelemente herum, ist Agentic RAG in der Lage, kohärentere und zugänglichere Lerninhalte zu schaffen.
  • Rolle im Lernprozess: Agentische RAG-Frameworks spielen eine immer wichtigere Rolle in modernen Bildungsmethoden. Durch den Einsatz intelligenter Agenten, die auf der RAG-Technologie basieren, können Pädagogen die Inhalte flexibler auf die individuellen Bedürfnisse der verschiedenen Lernenden zuschneiden.
  • Anwendungen im Bildungswesen: Immer mehr Bildungseinrichtungen nutzen die Technologie von Agentic RAG, um ihre Lehrstrategien zu erneuern, ansprechende und personalisierte Lehrpläne zu entwickeln und die Lehr- und Lernergebnisse zu verbessern.
  • Auswirkungen auf das Engagement der Schüler: Agentic Chunking steigert die Konzentration, die Motivation und das Interesse der Schüler am Lernen, indem es Informationen in klar strukturierten, leicht verständlichen Textblöcken präsentiert.
  • Effektive Mustererkennung: Eine eingehende Analyse und Identifizierung effektiver Muster beim Einsatz von Agentic RAG-Systemen im Bildungsbereich ist für die kontinuierliche Optimierung von Bildungsergebnissen unerlässlich.

2. verbesserte Informationsspeicherung

  • Kognitive Prozesse: Die agentische RAG-Technologie macht sich die natürliche Tendenz der menschlichen kognitiven Prozesse zunutze, Informationen zu organisieren und zu verknüpfen, um das Behalten von Informationen zu verbessern. Das Gehirn zieht es vor, Daten in überschaubaren Einheiten zu organisieren, was den Prozess des Abrufens und Erinnerns von Informationen erheblich vereinfacht.
  • Verbesserter Gedächtnisabruf: Durch die Konzentration auf die "handelnden" Elemente des Textes (z. B. Personen oder Organisationen) sind die Lernenden in der Lage, den Lernstoff leichter mit ihrem vorhandenen Wissensschatz zu verknüpfen und so die gelernten Informationen besser abzurufen und zu festigen.
  • Langfristige Strategien zur Wissenserhaltung: Die Integration der Agentic RAG-Technologie in die tägliche Lernpraxis hilft bei der Entwicklung effektiver Strategien für kontinuierliches Lernen und Wissensakkumulation, die eine langfristige Wissenserhaltung und -entwicklung ermöglichen.
  • Praktische Anwendungen: In Bereichen wie Bildung und Unternehmensschulung kann die Präsentation der Inhalte von Agentic RAG an die Bedürfnisse bestimmter Zielgruppen angepasst werden, um Informationen optimal zu vermitteln und aufzunehmen.

3. effiziente Entscheidungsfindung

  • Geschäftsanwendungen: In der Geschäftswelt revolutioniert das Agentic RAG System das Entscheidungsparadigma von Geschäftsführern, indem es einen strukturierten Rahmen für die Entscheidungsfindung bietet. Es bietet einen Rahmen, der die Wissenschaft der strategischen Planung und der operativen Effizienz erheblich verbessert.
  • Entscheidungsrahmen: Agentic RAG ist in der Lage, komplexe Geschäftsdaten und -informationen in kleinere, besser handhabbare Teile zu zerlegen, was den Entscheidungsträgern im Unternehmen hilft, sich auf die Schlüsselelemente zu konzentrieren, sich nicht in der Masse der Informationen zu verlieren und die Entscheidungseffizienz zu verbessern.
  • Vorteile für Unternehmensleiter: Agentic RAG hilft Unternehmensleitern, ein tieferes Verständnis für Markttrends und Kundenbedürfnisse zu erlangen und damit eine genauere Entscheidungshilfe für strategische Anpassungen und Marktreaktionen zu erhalten.
  • Schritte zur Umsetzung:
    • Identifizieren Sie die wichtigsten Geschäftsbereiche, in denen die Agentic RAG-Technologie einen Mehrwert für Ihr Unternehmen schaffen kann.
    • Entwicklung einer maßgeschneiderten Implementierung von Agentic RAG, die in hohem Maße auf die strategischen Ziele der Organisation abgestimmt ist.
    • Schulung des Personals in der Anwendung des Agentic RAG-Systems, um sicherzustellen, dass das System wirksam umgesetzt und angewendet werden kann.
    • Überwachen Sie kontinuierlich den Betriebseffekt des Agentic RAG-Systems und passen Sie die Optimierungsstrategie entsprechend der tatsächlichen Anwendungssituation an, um die maximale Leistung des Systems zu gewährleisten.

 

Vorteile des Agentic Chunking

  • Semantische Kohärenz: Agentic Chunking erzeugt semantisch bedeutsamere Textabschnitte und verbessert so die Genauigkeit der abgerufenen Informationen erheblich.
  • Kontexterhaltung: Agentic Chunking erhält effektiv die kontextuelle Kohärenz innerhalb von Textblöcken aufrecht, was es LLMs ermöglicht, genauere und kontextualisierte Antworten zu generieren.
  • Flexibilität: Agentic Chunking zeigt eine hervorragende Flexibilität bei der Anpassung an Dokumente unterschiedlicher Länge, Struktur und Inhaltsart.
  • Robustheit: Agentic Chunking verfügt über eingebaute Schutz- und Fallback-Mechanismen, die einen stabilen Systembetrieb auch im Falle von Anomalien in der Dokumentenstruktur oder Leistungseinschränkungen des LLM gewährleisten.
  • Anpassungsfähigkeit: Agentic Chunking lässt sich nahtlos in verschiedene LLMs integrieren und unterstützt eine fein abgestimmte Optimierung für spezifische Anwendungsanforderungen.

 

Agentic Chunking in Aktion

  • 92% weniger falsche Annahmen: Das Manko herkömmlicher Chunking-Methoden ist, dass ungenaues Chunking zu falschen Annahmen des KI-Systems führen kann. Agentic Chunking reduziert solche Fehler erfolgreich um unglaubliche 92%.
  • Verbesserte Vollständigkeit der Antworten: Agentic Chunking verbessert die Vollständigkeit der Antworten erheblich, so dass die Benutzer umfassendere und genauere Antworten erhalten und die Benutzererfahrung deutlich verbessert wird.

 

Implementierung von Agentic Chunking (Python-Beispiel)

Dieser Abschnitt enthält eine Beispiel-Implementierung von Agentic Chunking Python-Code, der auf dem Langchain-Framework basiert, und erklärt den Code Schritt für Schritt, um den Lesern einen schnellen Einstieg zu ermöglichen.

Voraussetzung:

  • Stellen Sie sicher, dass die Python-Bibliotheken Langchain und OpenAI installiert sind:pip install langchain openai
  • Konfigurieren Sie den OpenAI-API-Schlüssel.

Beispiel-Code:

复制复制
复制
from langchain_core.prompts import ChatPromptTemplate
from langchain_openai import ChatOpenAI
from langchain_core.pydantic_v1 import BaseModel, Field
from langchain import hub
# 1. 文本命题化 (Propositioning)
# 示例文本
text = """
On July 20, 1969, astronaut Neil Armstrong walked on the moon.
He was leading NASA's Apollo 11 mission.
Armstrong famously said, "That's one small step for man, one giant leap for mankind" as he stepped onto the lunar surface.
Later, he planted the American flag.
The mission was a success.
"""
# 从 Langchain hub 获取命题化提示模板
obj = hub.pull("wfh/proposal-indexing")
# 使用 GPT-4o 模型
llm = ChatOpenAI(model="gpt-4o")
# 定义 Pydantic 模型以提取句子
class Sentences(BaseModel):
sentences: list[str]
# 创建结构化输出的 LLM
extraction_llm = llm.with_structured_output(Sentences)
# 创建句子提取链
extraction_chain = obj | extraction_llm
# 将文本分割成段落 (为简化示例,本文假设输入文本仅包含一个段落,实际应用中可处理多段落文本。)
paragraphs = [text]
propositions = []
for p in paragraphs:
sentences = extraction_chain.invoke(p)
propositions.extend(sentences.sentences)
print("Propositions:", propositions)
# 2. 创建 LLM Agent
# 定义块元数据模型
class ChunkMeta(BaseModel):
title: str = Field(description="The title of the chunk.")
summary: str = Field(description="The summary of the chunk.")
# 用于生成摘要和标题的 LLM (这里可以使用温度较低的模型)
summary_llm = ChatOpenAI(temperature=0)
# 用于块分配的 LLM
allocation_llm = ChatOpenAI(temperature=0)
# 存储已创建的文本块的字典
chunks = {}
# 3. 创建新块的函数
def create_new_chunk(chunk_id, proposition):
summary_prompt_template = ChatPromptTemplate.from_messages(
[
(
"system",
"Generate a new summary and a title based on the propositions.",
),
(
"user",
"propositions:{propositions}",
),
]
)
summary_chain = summary_prompt_template | summary_llm
chunk_meta = summary_chain.invoke(
{
"propositions": [proposition],
}
)
chunks[chunk_id] = {
"chunk_id": chunk_id,  # 添加 chunk_id
"summary": chunk_meta.summary,
"title": chunk_meta.title,
"propositions": [proposition],
}
return chunk_id  # 返回 chunk_id
# 4. 将命题添加到现有块的函数
def add_proposition(chunk_id, proposition):
summary_prompt_template = ChatPromptTemplate.from_messages(
[
(
"system",
"If the current_summary and title is still valid for the propositions, return them."
"If not, generate a new summary and a title based on the propositions.",
),
(
"user",
"current_summary:{current_summary}\ncurrent_title:{current_title}\npropositions:{propositions}",
),
]
)
summary_chain = summary_prompt_template | summary_llm
chunk = chunks[chunk_id]
current_summary = chunk["summary"]
current_title = chunk["title"]
current_propositions = chunk["propositions"]
all_propositions = current_propositions + [proposition]
chunk_meta = summary_chain.invoke(
{
"current_summary": current_summary,
"current_title": current_title,
"propositions": all_propositions,
}
)
chunk["summary"] = chunk_meta.summary
chunk["title"] = chunk_meta.title
chunk["propositions"] = all_propositions
# 5. Agent 的核心逻辑
def find_chunk_and_push_proposition(proposition):
class ChunkID(BaseModel):
chunk_id: int = Field(description="The chunk id.")
allocation_prompt = ChatPromptTemplate.from_messages(
[
(
"system",
"You have the chunk ids and the summaries. "
"Find the chunk that best matches the proposition. "
"If no chunk matches, return a new chunk id. "
"Return only the chunk id.",
),
(
"user",
"proposition:{proposition}\nchunks_summaries:{chunks_summaries}",
),
]
)
allocation_chain = allocation_prompt | allocation_llm.with_structured_output(ChunkID)
chunks_summaries = {
chunk_id: chunk["summary"] for chunk_id, chunk in chunks.items()
}
# 初始chunks可能为空,导致allocation_chain.invoke报错
if not chunks_summaries:
# 如果没有已存在的块,直接创建新块
next_chunk_id = 1
create_new_chunk(next_chunk_id, proposition)
return
best_chunk_id = allocation_chain.invoke(
{"proposition": proposition, "chunks_summaries": chunks_summaries}
).chunk_id
if best_chunk_id not in chunks:
# 如果返回的 chunk_id 不存在,创建新块
next_chunk_id = max(chunks.keys(), default=0) + 1 if chunks else 1
create_new_chunk(next_chunk_id, proposition)
else:
add_proposition(best_chunk_id, proposition)
# 遍历命题列表,进行分块
for i, proposition in enumerate(propositions):
find_chunk_and_push_proposition(proposition)
# 打印最终的块
print("\nFinal Chunks:")
for chunk_id, chunk in chunks.items():
print(f"Chunk {chunk_id}:")
print(f"  Title: {chunk['title']}")
print(f"  Summary: {chunk['summary']}")
print(f"  Propositions: {chunk['propositions']}")
print("-" * 20)

Code-Erläuterung:

  • Propositionalisierung:
    • Das Codebeispiel verwendet zunächst hub.pull("wfh/proposal-indexing"), um eine vordefinierte propositionalisierte Eingabeaufforderungsvorlage aus dem Langchain Hub zu laden.
    • Als nächstes wurde die LLM-Instanz mit ChatOpenAI(model="gpt-4o") initialisiert, wobei das GPT-4o-Modell für eine bessere Leistung gewählt wurde.
    • Definieren Sie das pydantische Modell Sentences für das strukturierte Parsing der vom LLM ausgegebenen Liste von Sätzen.
    • Konstruiert eine Verbindungskette zwischen der Prompt-Vorlage und der LLM extraction_chain.
    • Um das Beispiel zu vereinfachen, geht dieser Artikel davon aus, dass der Eingabetext nur einen Absatz enthält, die eigentliche Anwendung kann mehrere Textabsätze verarbeiten. Code wird der Beispieltext in eine Liste von Absätzen unterteilt werden.
    • Schleife über den Absatz und Verwendung von extraction_chain, um den Absatz in eine Liste von Aussagen umzuwandeln.
  • Erstellen Sie den LLM-Agenten:
    • Definieren Sie das pydantische Modell ChunkMeta und legen Sie die Struktur der Blockmetadaten (Titel und Zusammenfassung) fest.
    • Erstellen Sie zwei Instanzen von LLM, summary_llm und allocation_llm. summary_llm wird verwendet, um die Zusammenfassung und den Titel eines Textblocks zu erstellen, während allocation_llm dafür zuständig ist, zu bestimmen, in welchen bestehenden Block ein Vorschlag aufgenommen werden soll, oder einen neuen Block zu erstellen.
    • Initialisiert das Chunks-Wörterbuch, das zum Speichern der erstellten Textblöcke verwendet wird.
  • create_new_chunk Funktion:
    • Die Funktion akzeptiert chunk_id und proposition als Eingabeparameter.
    • Ausgehend von den Vorschlägen werden der Titel und die Zusammenfassung des Blocks mit summary_prompt_template und summary_llm erstellt.
    • und speichert den neuen Block im Chunks-Wörterbuch.
  • Funktion add_proposition:
    • Die Funktion nimmt auch chunk_id und proposition als Eingabe.
    • Ruft vorhandene Blockinformationen aus dem Chunks-Wörterbuch ab.
    • Aktualisiert die Liste der Vorschläge für den aktuellen Block.
    • Neubewertung und Aktualisierung von Blocktiteln und Zusammenfassungen.
    • und aktualisieren die Metadaten des entsprechenden Blocks im Chunks-Wörterbuch.
  • Funktion find_chunk_and_push_proposition (Kernlogik des Agenten):
    • Definieren Sie das pydantische Modell ChunkID zum Parsen von Block-IDs für die LLM-Ausgabe.
    • Erzeugt ein allocation_prompt, das den LLM anweist, den vorhandenen Block zu finden, der dem aktuellen Vorschlag am besten entspricht, oder eine neue Block-ID zurückzugeben.
    • Erstellen Sie allocation_chain, indem Sie die Prompt-Vorlage und allocation_llm verbinden.
    • Erzeugt das Wörterbuch chunks_summaries, in dem die ID und die Zusammenfassungsinformationen für vorhandene Blöcke gespeichert werden.
    • Wenn das Chunk-Wörterbuch leer ist (d.h. es gibt noch keine Textabschnitte), wird direkt ein neuer Abschnitt erstellt.
    • Verwenden Sie allocation_chain, um LLM aufzurufen, um die ID des am besten passenden Blocks zu erhalten.
    • Wenn die von LLM zurückgegebene chunk_id nicht im chunks-Wörterbuch enthalten ist, was bedeutet, dass ein neues Textstück erstellt werden muss, wird die Funktion create_new_chunk aufgerufen.
    • Wenn die zurückgegebene chunk_id bereits im chunks-Wörterbuch vorhanden ist, was bedeutet, dass der aktuelle Vorschlag zu einem bestehenden Textblock hinzugefügt werden soll, rufen Sie die Funktion add_proposition auf.
  • Hauptschleife:
    • Schleife über die Liste von Vorschlägen.
    • Für jeden Vorschlag wird die Funktion find_chunk_and_push_proposition aufgerufen, und der Vorschlag wird dem entsprechenden Textblock zugeordnet.
  • Ergebnisse der Ausgabe:
    • Endgültige Ausgabe des generierten Textblocks, einschließlich Titel, Zusammenfassung und Liste der enthaltenen Vorschläge.

Hinweise zur Verbesserung des Codes:

  • Verbessern Sie die Funktion find_chunk_and_push_proposition, indem Sie die Funktion create_new_chunk direkt aufrufen, wenn das chunks-Wörterbuch leer ist, um mögliche Fehler zu vermeiden.
  • In der Funktion create_new_chunk wird dem Wörterbuch chunks[chunk_id] ein Schlüssel-Wert-Paar chunk_id hinzugefügt, um die Block-ID explizit zu erfassen.
  • Durch die Optimierung der next_chunk_id-Generierungslogik wird die Robustheit der ID-Generierungslogik verbessert und die korrekte ID-Generierung in verschiedenen Szenarien sichergestellt.

 

Bauen vs. Kaufen

Obwohl das Agentic Chunking nur ein Teil des KI-Agenten-Workflows ist, ist es entscheidend für die Erzeugung semantisch kohärenter Textabschnitte. Es hat Vor- und Nachteile, eine eigene Agentic Chunking-Lösung zu entwickeln, anstatt eine Standardlösung zu kaufen:

Vorteile des Selbstbaus:

  • Hoher Grad an Kontrolle und Anpassung: Die selbst erstellte Lösung ermöglicht es den Nutzern, tiefgreifende Anpassungen an ihre spezifischen Bedürfnisse vorzunehmen, von der Gestaltung der Eingabeaufforderung bis zur Optimierung der Algorithmen, die alle perfekt zu den tatsächlichen Anwendungsszenarien passen.
  • Präzises Targeting: Unternehmen können die am besten geeignete Text-Chunking-Strategie für eine optimale Leistung auf der Grundlage ihrer einzigartigen Datenmerkmale und Anwendungsanforderungen anpassen.

Nachteile des Selbstbaus:

  • Hohe Entwicklungskosten: Der Aufbau einer eigenen Agentic Chunking-Lösung erfordert spezielle Kenntnisse der Technologie für die Verarbeitung natürlicher Sprache und eine erhebliche Investition von Entwicklungszeit, was kostspielig ist.
  • Unvorhersehbarkeit des Verhaltens von LLMs: Das Verhalten von LLMs ist manchmal schwer vorherzusagen und zu kontrollieren, was eine technische Herausforderung für selbstgebaute Lösungen darstellt.
  • Laufende Wartungskosten: Generative KI-Technologie entwickelt sich schnell weiter, und selbst entwickelte Lösungen erfordern laufende Investitionen in Wartung und Updates, um mit dem Tempo der technologischen Entwicklung Schritt zu halten.
  • Herausforderungen in der Produktion: Es ist eine Sache, in der Prototyping-Phase gute Ergebnisse zu erzielen, aber es gibt immer noch erhebliche Herausforderungen, wenn es darum geht, Agentic Chunking-Lösungen mit hohen Genauigkeitsraten von 99% oder höher in die Produktion zu bringen.

 

Zusammenfassungen

Agentic Chunking ist eine leistungsstarke Text-Chunking-Technik, die das menschliche Verständnis und Urteilsvermögen nachahmt, um semantisch kohärente Textabschnitte zu erstellen und so die Leistung von RAG-Systemen erheblich zu verbessern. Agentic Chunking überwindet viele der Einschränkungen traditioneller Text-Chunking-Methoden und ermöglicht es LLM, genauere, vollständigere und kontextualisierte Antworten zu generieren.

Dieser Artikel hilft dem Leser, das Funktionsprinzip und die Implementierung von Agentic Chunking anhand von detaillierten Codebeispielen und schrittweisen Erklärungen zu verstehen. Zugegeben, die Implementierung von Agentic Chunking erfordert ein gewisses Maß an technischer Investition, aber die Leistungsverbesserung und der Anwendungswert, den es mit sich bringt, sind offensichtlich. Agentic Chunking ist zweifelsohne eine effektive technische Lösung für jene Anwendungsszenarien, die große Mengen an Textdaten verarbeiten müssen und hohe Leistungsanforderungen an RAG-Systeme stellen.

ZUKÜNFTIGE TRENDS: Zukünftige Richtungen für Agentic Chunking können sein:

  • Vertiefte Integration mit Graphdatenbanken zur Erstellung von Wissensgraphen und Weiterentwicklung der Graph RAG-Technologie (Graph Structure-based Retrieval Augmentation Generation), um die Wissensgewinnung und -nutzung zu vertiefen.
  • Kontinuierliche Optimierung des LLM-Hint-Engineerings und des Instruktionsdesigns, um die Genauigkeit und die Verarbeitungseffizienz des Text Chunking weiter zu verbessern.
  • Entwicklung intelligenter Strategien zur Zusammenführung und Aufteilung von Textblöcken, um komplexere und vielfältigere Dokumentstrukturen effektiv zu bewältigen und die Vielseitigkeit von Agentic Chunking zu verbessern.
  • Aktive Erforschung der Anwendung von Agentic Chunking in einem breiteren Spektrum von Bereichen, wie z. B. intelligente Textzusammenfassung, hochwertige maschinelle Übersetzung usw., um die Anwendungsgrenzen zu erweitern.
Darf nicht ohne Genehmigung vervielfältigt werden:Leiter des AI-Austauschkreises " Agentisches Chunking: KI-Agenten-gesteuerte semantische Textverknüpfung
de_DEDeutsch