Проста техніка робить пам'ять RAG ~32x ефективною! - Perplexity використовує його у своєму пошуковому індексі - Azure використовує його у своєму пошуковому конвеєрі - HubSpot використовує його у своєму асистенті зі штучним інтелектом Давайте розберемося, як його використовувати в системах RAG (з кодом):
Сьогодні давайте побудуємо систему RAG, яка запитує вектори 36M+ за <30 мс за допомогою двійкового квантування. Технологічний стек: - @llama_index для оркестровки - @milvusio як векторна БД - @beam_cloud для безсерверного розгортання - @Kimi_Moonshot Kimi-K2 як LLM, що розміщується на Groq Давайте його побудуємо!
Ось робочий процес: - Приймайте документи та генеруйте двійкові вкладення. - Створення індексу двійкового вектора та зберігання вкладень у векторну БД. - Отримання top-k документів, схожих на запит користувача. - LLM генерує відповідь на основі додаткового контексту. Давайте це реалізуємо!
0️⃣ Налаштування Groq Перш ніж ми почнемо, збережіть свій ключ Groq API у файлі .env і завантажте його у своє середовище, щоб використовувати найшвидший у світі висновок штучного інтелекту. Перевірте це 👇
1️⃣ Завантаження даних Ми отримуємо наші документи за допомогою інструменту для читання каталогів LlamaIndex. Він може зчитувати різні формати даних, включаючи Markdown, PDF, документи Word, колоди PowerPoint, зображення, аудіо та відео. Перевірте це 👇
2️⃣ Генерація двійкових вкладень Далі ми генеруємо текстові вкладення (у float32) і перетворюємо їх на двійкові вектори, що призводить до 32-кратного зменшення пам'яті та сховища. Це називається двійковим квантуванням. Перевірте цю реалізацію 👇
3️⃣ Векторна індексація Після того, як наше двійкове квантування завершено, ми зберігаємо та індексуємо вектори в базі даних векторів Milvus для ефективного пошуку. Індекси – це спеціалізовані структури даних, які допомагають оптимізувати продуктивність операцій з пошуку даних. Перевірте це 👇
4️⃣ Отримання На етапі пошуку ми: - Вбудуйте запит користувача та застосуйте до нього двійкове квантування. - Використовуйте відстань Хеммінга як пошуковий показник для порівняння двійкових векторів. - Отримайте топ-5 найбільш схожих фрагментів. - Додайте отримані фрагменти до контексту. Перевірте це👇
5️⃣ Генерація Нарешті, ми будуємо конвеєр генерації, використовуючи модель інструктажу Kimi-K2, яка подається на найшвидшому висновку штучного інтелекту від Groq. Ми вказуємо як запит, так і отриманий контекст у шаблоні запиту та передаємо його до LLM. Перевірте це 👇
6️⃣ Розгортання за допомогою Beam Beam забезпечує надшвидке безсерверне розгортання будь-якого робочого процесу зі штучним інтелектом. Таким чином, ми загортаємо наш додаток в інтерфейс Streamlit, вказуємо бібліотеки Python і обчислювальні специфікації для контейнера. Нарешті, ми розгортаємо додаток у кількох рядках коду👇
7️⃣ Запустіть програму Beam запускає контейнер і розгортає наш додаток streamlit як сервер HTTPS, до якого можна легко отримати доступ з веб-браузера. Перегляньте цю демонстрацію 👇
Рухаючись далі, щоб по-справжньому оцінити масштаб і швидкість висновків, ми тестуємо розгорнуту установку на наборі даних PubMed (вектори 36M+). Наш додаток: - запросив вектори 36M+ за <30 мс. - згенерував відповідь за <1с. Перегляньте цю демонстрацію👇
Зробити! Ми щойно створили найшвидший стек RAG, використовуючи BQ для ефективного пошуку та використовуючи надшвидке безсерверне розгортання нашого робочого процесу на основі штучного інтелекту. Ось робочий процес знову для довідки 👇
Ось і все! Якщо ви вважаєте її зрозумілою, повторно поділіться нею зі своєю мережею. Знайди мене → @_avichawla Щодня я ділюся навчальними матеріалами та ідеями про DS, ML, LLM та RAG.
Avi Chawla
Avi Chawla4 серп., 14:33
Проста техніка робить пам'ять RAG ~32x ефективною! - Perplexity використовує його у своєму пошуковому індексі - Azure використовує його у своєму пошуковому конвеєрі - HubSpot використовує його у своєму асистенті зі штучним інтелектом Давайте розберемося, як його використовувати в системах RAG (з кодом):
695,77K