Генеративний штучний інтелект є корисним інструментом, який забезпечує спосіб навігації застосунками та службами за допомогою природної мови. Прив’язавши великі мовні моделі (LLM) до конкретних джерел даних, ми можемо уникнути ризиків, пов’язаних із використанням лише навчальних даних. Про це повідомляє InfoWorld.
Хоча можна точно налаштувати LLM на конкретних даних, це може бути дорогим і трудомістким, а також може зафіксувати вас у певному часовому проміжку. Якщо вам потрібні точні та своєчасні відповіді, для роботи з вашими даними потрібно використовувати генерацію з доповненим пошуком (RAG).
RAG: серце копайлотів Microsoft
Нейронні мережі, на яких працюють LLM, по суті, є складними векторними пошуковими системами, які екстраполюють шляхи семантичних векторів у n-вимірному просторі, де чим вища розмірність, тим складніша модель.
Отже, якщо ви збираєтеся використовувати RAG, вам потрібно мати векторне представлення ваших даних, яке може як створювати підказки, так і задавати вектори, які використовуються для генерування виходу з LLM. Ось чому це одна з технік, яка використовується для різноманітних копайлотів Microsoft.
Можна розглянути Prompt Flow від Azure AI Studio – інтелектуальну агентську структуру Microsoft Semantic Kernel, Open Platform’s Power Platform’s, Open AI-powered boost у її оновленій Q and A Maker Copilot Studio тощо. У всіх цих підходах є один ключовий інструмент, який потрібно використовувати у своїх програмах, – векторна база даних.
Це дає змогу застосовувати інструменти вбудовування, які використовуються LLM для генерації текстових векторів для вашого контенту, прискорюючи пошук і забезпечуючи при цьому необхідні вихідні дані для керування робочим процесом RAG. Водночас RAG і подібні підходи гарантують, що ваші корпоративні дані залишаються на ваших серверах.
Незважаючи на те, що Microsoft додає можливості векторного пошуку та векторного індексу до своїх власних баз даних, а також підтримує сторонні векторні сховища в Azure, одна ключова технологія баз даних була відсутня в історії RAG. Ці відсутні бази даних є графовими базами даних – підходом NoSQL, який забезпечує простий шлях до векторного представлення ваших даних із додатковим бонусом зв’язків кодування у вершинах, які зв’язують вузли графа, що зберігають ваші дані.
Додавання графів до Azure AI за допомогою Neo4j
Такі бази даних Graph не слід плутати з Microsoft Graph. Він використовує модель вузла для запитів, але не використовує її для визначення зв’язків між вузлами. Бази даних Graph є більш складним інструментом. Хоча до них і можна надсилати запити за допомогою GraphQL, вони мають набагато складніший процес запиту, використовуючи такі інструменти, як система запитів Gremlin.
Однією з найвідоміших графових баз даних є Neo4j, яка нещодавно оголосила про підтримку корпоративної версії свого хмарного сервісу Aura на Azure. Доступна в Azure Marketplace, це SaaS-версія знайомого локального інструменту, що дає змогу розпочати роботу із даними, не витрачаючи час на налаштування інсталяції.
Доступні дві версії з різними параметрами пам’яті, побудованими на зарезервованій ємності, тому вам не потрібно турбуватися про те, що екземпляри будуть недоступні, коли вони вам знадобляться. Це недешево, але спрощує роботу з великими обсягами даних, заощаджуючи багато часу під час роботи із великомасштабними озерами даних у Fabric.
Створення графа знань із ваших даних
Однією з ключових особливостей Neo4J є концепція графа знань, яка зв’язує неструктуровану інформацію у вузлах у структурований граф. Таким чином ви можете швидко побачити взаємозв’язки між, скажімо, посібником із продукту та всім описом матеріалів, який входить до продукту. Замість того, щоб вказувати одну частину, яку потрібно замінити для виправлення, у вас є повний графік залежностей, який показує, на що це впливає та що необхідно для виправлення.
Інструмент на кшталт Neo4j, який може знаходитися на вершині великомасштабного озера даних, як-от Fabric від Microsoft, дає вам ще один корисний спосіб створити джерела інформації для програми RAG.
Тут ви можете використовувати інструмент візуалізації графіків, який є частиною Neo4j, щоб досліджувати складність ваших озерних будинків, генеруючи базові зв’язки між вашими даними та надаючи вам більш гнучкий і зрозумілий погляд на них.
Важливим аспектом графа знань є те, що вам не потрібно використовувати його весь. Ви можете використовувати зв’язки графів, щоб швидко відфільтрувати інформацію, яка вам не потрібна для вашої програми. Це зменшує складність і прискорює пошук. Гарантуючи, що кінцеві вектори та підказки обмежуються суворим набором зв’язків, це зменшує ризики помилкових виходів від вашого LLM.
У той же час ви можете використовувати Azure Open AI API, щоб додати набір вбудовувань до ваших даних, щоб використовувати векторний пошук для дослідження ваших даних у межах робочого процесу за допомогою LangChain або Semantic Kernel.
Використання графів у AI: GraphRAG
Справжня перевага використання графової бази даних із великою мовною моделлю приходить із варіацією знайомого підходу RAG – GraphRAG. GraphRAG, розроблений компанією Microsoft Research, використовує графи знань для покращення обґрунтування особистих даних, виходячи за межі можливостей стандартного підходу RAG для використання графа знань для зв’язування пов’язаних фрагментів інформації та створення складних відповідей.
Під час роботи з великими обсягами приватних даних за допомогою LLM слід розуміти розмір контекстного вікна. На практиці використання кількості токенів, необхідних для доставки великої кількості даних як частини підказки, є надто дорогим з точки зору обчислень. Вам потрібен підхід RAG, щоб обійти це обмеження, а GraphRAG йде далі, дозволяючи надавати набагато більше контексту для вашого запиту.
Оригінальне дослідження GraphRAG використовує базу даних новин, яку традиційний RAG не може ефективно проаналізувати. Однак за допомогою графа знань сутності та зв’язки відносно легко витягти із джерел, що дозволяє застосунку вибирати та підсумовувати новини, які містять пошукові терміни, надаючи LLM набагато більше контексту. Це пояснюється тим, що структура бази даних графа природним чином кластеризує схожі семантичні сутності, водночас забезпечуючи глибший контекст у зв’язках, закодованих у вершинах між цими вузлами.
Замість того, щоб шукати подібні терміни як традиційна пошукова система, GraphRAG дозволяє отримувати інформацію з усього набору даних, який ви використовуєте: чи то стенограми дзвінків у службу підтримки, чи всі документи, пов’язані із конкретним проєктом.
Хоча початкове дослідження використовує автоматизацію для побудови та кластеризації графа знань, існує можливість використовувати Neo4j для роботи з масивами даних у Microsoft Fabric, забезпечуючи спосіб візуалізації цих даних, щоб спеціалісти з обробки даних та бізнес-аналітики могли створювати власні кластери, які можуть допомогти створювати застосунки GraphRAG.
Наявність графової бази даних, як-от Neo4j, на Azure Marketplace дає вам інструмент, який допоможе вам зрозуміти та візуалізувати зв’язки у ваших даних у спосіб, який підтримується як людьми, так і машинами.
Його інтеграція з Fabric має допомогти створювати масштабні, контекстно-залежні застосунки на базі LLM, дозволяючи отримувати обґрунтовані результати з ваших даних у спосіб, який можуть пропустити стандартні підходи RAG. Буде цікаво побачити, чи почне Microsoft впроваджувати GraphRAG у свій власний інструмент Prompt Flow LLM.
Читайте також на ProIT: Distribution Matching Distillation – новий метод надшвидкої генерації зображень ШІ.
Підписуйтеся на ProIT у Telegram, щоб не пропустити жодної публікації!