О чём урок
Преобразование запросов на естественном языке в SQL-операторы является мощным применением больших языковых моделей (LLM). Хотя можно напрямую попросить LLM сгенерировать SQL на основе промпта на естественном языке, это сопряжено с ограничениями. LLM может сгенерировать синтаксически некорректный SQL, поскольку диалект SQL различается в разных реляционных базах данных. LLM не имеет доступа ко всей схеме базы данных, именам таблиц и столбцов или индексам, что ограничивает ее способность генерировать точные/эффективные запросы. Передача полной схемы в качестве входных данных для LLM каждый раз может быть дорогостоящей. Предварительно обученные LLM не могут адаптироваться к обратной связи от пользователя и меняющимся текстовым запросам. Альтернативой является finetuning LLM на вашем конкретном наборе данных text-to-SQL, который может включать журналы запросов из вашей базы данных и другой релевантный контекст. Хотя этот подход может улучшить способность LLM генерировать точные SQL-запросы, он по-прежнему имеет ограничения в непрерывной адаптации. Finetuning также может быть дорогостоящим, что может ограничивать частоту обновления модели. LLM отлично справляются с in-context learning, поэтому, предоставляя им релевантную информацию в prompt, мы можем улучшить их output. Это идея, лежащая в основе Retrieval Augmented Generation (RAG) систем, которые объединяют извлечение информации с LLM для генерации более информированных и контекстуальных ответов на запросы. Извлекая релевантную информацию из базы знаний — схемы баз данных, какие таблицы запрашивать и ранее сгенерированные SQL-запросы, мы можем использовать LLM для генерации SQL-запросов, которые являются более точными и эффективными. В этом посте мы рассмотрим создание RAG системы, используя Mistral AI для embeddings и языкового моделирования, а также Neon Postgres в качестве vector database. Neon — это полностью управляемая бессерверная база данных PostgreSQL. Она разделяет хранилище и вычисления, предлагая такие функции, как мгновенное ветвление и автоматическое масштабирование. С расширением pgvector Neon может использоваться как vector database для хранения text embeddings и их запроса.
План урока
- Finetuning
- RAG systems
- RAG для text-to-sql
- Настройка и зависимости
- Mistral AI API
- Neon Database
- Python Libraries
- Подготовка данных
Урок входит в полный доступ. Полный текст и видео открываются после оплаты. Первые уроки каждого курса бесплатны.