Программируй на английском: ИИ-SDK для PySpark от Databricks

LLM AI MLOps Spark, MLOPS PySpark-AI примеры курсы обучение, Spark примеры курсы обучение AI ИИ, PySpark-AI English SDK Databricks курсы Machine Learning для дата-инженеров и аналитиков, обучение Machine Learning Apache Spark, Школа Больших Данных Учебный Центр Коммерсант

Как получать результаты обработки данных с помощью Apache Spark, адресуя ИИ бизнес-запросы на английском языке: знакомимся с English SDK от Databricks. Настоящий Low Code с PySpark-AI.

English SDK for Apache Spark и PySpark-AI: как это работает

Большие языковые модели (LLM, Large Language Model), основанные на генеративных нейросетях, применимы не только в чат-ботах и создании уникальных картинок. Они также отлично комментируют программный код и даже могут написать скрипт по запросу пользователя. Впрочем, как показывает личный опыт, вероятность того, что это скрипт будет работать с первого раза без ошибок, пока еще мала: приходится исправлять и уточнять полученный от нейросети результат. Однако, в целом ИИ-инструменты неплохо экономят время разработчика, подсказывая, в чем именно может быть причина ошибки или какую библиотеку следует использовать для решения конкретной задачи. Примечательно, что это вполне по силам не только ИИ-продуктам, ориентированным на разработку, таким как Copilot от GitHub и OpenAI, но и нейросеткам общего назначения.

Тем не менее, специализированный инструмент обычно работает лучше универсального. Поэтому LLM-модель, обученная на примерах кода, скорей всего, будет быстрее выдавать наиболее корректные результаты. Поэтому компания Databricks, которая развивает и коммерциализирует Apache Spark, решила внедрить возможности генеративного ИИ в SDK. Благодаря популярности Apache Spark и множеству учебников, статьей, а также примеров с отрытым исходным кодом, современные большие языковые модели неплохо ориентируются в этом фреймворке. Поэтому разработчики Databricks выбрали английский язык в качестве языка программирования, чтобы генеративный ИИ компилировал инструкции на естественном языке в код PySpark и SQL.

Англоязычный набор инструментов разработчика для Apache Spark (English SDK for Apache Spark) берет инструкции на английском языке и компилирует их в объекты PySpark, такие как DataFrames, чтобы реализовать следующие возможности:

  • поиск в Интернете, используя предоставленное пользователем описание и включать выбранные веб-данные в код Spark-приложения;
  • операции с DataFrame, включая преобразование, построение графиков и интерпретация на основе пользовательского англоязычного описания;
  • пользовательские функции (UDF) – при использовании простого декоратора пользователю нужно предоставить строку документации, а LLM-модель сама завершит процесс создания UDF, позволяя разработчику сосредоточиться на определении функции;
  • кэширование для повышения скорости выполнения запросов и получения воспроизводимых результатов. SparkAI хранит в памяти промежуточный кэш, который обновляется для LLM и результатов веб-поиска. Промежуточный кэш можно сохранить с помощью метода commit(). Поиск в кэше всегда выполняется как в промежуточном кэше в памяти, так и в постоянном кэше.

В работе English SDK используется PySpark-AI, Python-оболочка, которая использует модели генеративного языка для упрощения генерации кода PySpark. Принимая инструкции на английском языке, он объединяет возможности Apache Spark с такими моделями, как GPT-4 и GPT-3.5. PySpark-AI принимает на вход англоязычные инструкции и выполняет их, позволяя пользователю сфокусироваться на обработке данных, а не на кодировании.

Чтобы использовать PySpark-AI, необходимо установить этот пакет с помощью менеджера пакетов pip:

pip install pyspark-ai

Чтобы использовать LLM-модели OpenAI, надо задать секретный ключ в качестве переменной среды OPENAI_API_KEY:

export OPENAI_API_KEY='your api key'

По умолчанию SparkAIэкземпляры будут использовать модель GPT-4, однако, можно выбрать и другие варианты. Сперва следует инициализировать PySpark-AI:

from pyspark_ai import SparkAI
spark_ai = SparkAI()
spark_ai.activate() 

Затем можно выполнить преобразования с датафреймом, сначала определив его:

df = spark_ai._spark.createDataFrame(
    [
        ("Normal", "Cellphone", 6000),
        ("Normal", "Tablet", 1500),
        ("Mini", "Tablet", 5500),
        ("Mini", "Cellphone", 5000),
        ("Foldable", "Cellphone", 6500),
        ("Foldable", "Tablet", 2500),
        ("Pro", "Cellphone", 3000),
        ("Pro", "Tablet", 4000),
        ("Pro Max", "Cellphone", 4500)
    ],
    ["product", "category", "revenue"]
)

Для выполнения преобразования запрос пишется на английском языке, например, какие товары являются самыми продаваемыми и вторыми по популярности в каждой категории:

df.ai.transform("What are the best-selling and the second best-selling products in every category?").show()

Из-за отсутствия ключа OPENAI_API_KEY и невозможности получить его без обходных путей типа VPN или веб-прокси, у меня пока не получилось попробовать PySpark-AI на практике, чтобы запустить в Google Colab следующий код:

!pip install pyspark-ai pyspark plotly
!pip install langchain
import pyspark
from langchain.chat_models import AzureChatOpenAI
from pyspark_ai import SparkAI
from pyspark.sql import SparkSession

spark = SparkSession.builder.appName("tech_comp").getOrCreate()

llm = AzureChatOpenAI()
spark_ai = SparkAI(llm=llm)
spark_ai.activate() 
df = spark_ai.create_df("https://companiesmarketcap.com/tech/largest-tech-companies-by-market-cap/", ["company_name", "market_cap_trillion", "country"])
df.ai.plot()
df.ai.explain()
df.ai.plot("pie chart companies, show the top 5 brands and the sum of others")

Этот код создает датафрейм из данных о крупнейших технологических компаниях по рыночной капитализации, представленных на сайте по заданному URL-адресу, а также вызывает функции LLM для построения графиков и интерпретации набора данных.

Впрочем, даже без практической демонстрации становится понятно, что PySpark-AI не заменяет разработчика, а лишь ускоряет процесс исследования данных, позволяя аналитику и специалисту по Data Science проверять гипотезы самостоятельно. 

В заключение отметим, что Enflish SDK for Apache Spark добавлен в официальный релиз 3.5.0, о котором мы рассказываем в новой статье.

Освойте возможности Apache Spark для разработки приложений аналитики больших данных на специализированных курсах в нашем лицензированном учебном центре обучения и повышения квалификации для разработчиков, менеджеров, архитекторов, инженеров, администраторов, Data Scientist’ов и аналитиков Big Data в Москве:

Я даю свое согласие на обработку персональных данных и соглашаюсь с политикой конфиденциальности.

Источники

  1. https://www.databricks.com/blog/introducing-english-new-programming-language-apache-spark
  2. https://github.com/databrickslabs/pyspark-ai
  3. https://www.dbadbadba.com/blog/pyspark-ai-english-is-new-programming-language
Поиск по сайту