Можливо, у цьому випадку ви знайдете мову графічних запитів доречною. Neo4J є золотим стандартом для GraphQL. Ви також можете отримати основи цього на їхніх безкоштовних курсах тут. GraphQL може допомогти вам засвоїти LLM і змусити розкидані знання в різних документах працювати разом. Це представляє дані як вузли та їхні зв’язки з ребрами. Таким чином, головна перевага цього полягає в тому, що ви можете задавати запитання, які прямо не прописані ніде в документах. Наприклад, для короткого документа ви можете отримати такий графік: "графік"

(Автор зображення: https://towardsdatascience.com/integrate-llm-workflows-with-knowledge-graph-using-neo4j-and-apoc-27ef7e9900a2)

Тепер на основі даних можна зробити запит, щоб знайти фільми, де і Кіану Рівз, і Керрі-Енн Мосс виступила. Тепер ця інформація може не бути прямо прописана в доступних документах. Але навіть після цього ми можемо буквально створювати подібні ідеї/знання.

Кроки перетворення вашої бази знань на взаємопов’язане представлення графів такі (спрощені):

Навчання

  • Чанкінг Документи
  • Передайте кожен фрагмент LLM, щоб сформувати триплет. На основі наявної інформації з одного блоку можна сформувати кілька триплетів. Трійки – це не що інше, як 3-кортежі, тобто (суб’єкт, відношення, об’єкт). Наприклад: (Keanu Reeves, ACTED_IN, The Matrix Reloaded), (Lily Wachowski, DIRECTED, The Matrix Reloaded) тощо.
  • Ці триплети буде збережено в базі даних графіків. Де суб’єкти та об’єкти є вузлами, а зв’язки – ребрами.

Висновок

  • Під час висновку запит користувача буде перетворено на запит графа, надавши схему графа за допомогою LLM.
  • запит буде використано для отримання відповідних результатів із бази даних.
  • Результуючі дані знову буде перетворено на природну мову за допомогою LLM.

Більше

  • GraphQL як Neo4J підтримує індексування, включно з векторним індексуванням, яке дозволить вам не лише шукати пряму відповідність, але й шукати векторний вбудований пошук у базі даних.
  • Він також підтримує індексування на основі ключових слів, і ви навіть можете використовувати його разом із векторним вбудованим індексуванням.
  • Популярні фреймворки, такі як LangChain має вбудований інтеграція підтримка для цього. І це для Бібліотека Llama-Index.
  • Підтримує побудову графіків з інших баз даних, як-от MySQL. Таким чином, це допоможе вам створити цілісне представлення всіх даних у вашому домені.

Міркування

  • Немає жодної «срібної кулі», яка могла б працювати в усіх сценаріях.
  • GraphQL також має деякі проблеми, очевидні проблеми: накладні витрати на створення графічної бази даних, перетворення з природної мови на GraphQL і навпаки.
  • Згенерований запит може стати недійсним і нічого не отримати.
  • Згенерований запит може бути дійсним, але константні значення можуть не бути присутніми безпосередньо в базі даних, і зрештою ви можете нічого не мати. Наприклад, коли згенерований запит містить орфографічні помилки/синоніми терміна, який ви шукаєте в базі даних.
  • Розмір контексту може не дозволити вам створити відповідний кортеж, якщо пов’язані терміни знаходяться далеко один від одного.
  • Може бути згенеровано кілька майже подібних трійок, які можна було б скоротити до однієї трійки.
  • Наскільки я знаю, Neo4J Community Edition може мати лише одну стандартну базу даних. Щоб створити більше однієї бази даних, вам може знадобитися скористатися платною версією. У версії спільноти також відсутні додаткові функції безпеки.

Previous Article

Як знайти правильний контекст у відповіді на запитання відкритої книги?

Next Article

Write a Comment

Leave a Comment

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *