メインコンテンツへジャンプ
Engineering blog

Apache Sparkのための新しいプログラミング言語としての「英語」

Share this post

翻訳: Masahiko Kitamura 
オリジナル記事:Introducing English as the New Programming Language for Apache Spark

はじめに

私たちは、皆様のSpark体験を豊かにするために設計された革新的なツールである、Apache Sparkの英語SDKを発表できることを嬉しく思います。Apache Spark™は、世界208の国と地域から年間10億以上のダウンロードを記録し、大規模データ分析を大きく発展させました。ジェネレーティブAIの革新的なアプリケーションであるEnglish SDKは、Sparkをこれまで以上にユーザーフレンドリーで親しみやすいものにすることで、この活気あるコミュニティの拡大を目指します!

動機

GitHub Copilotは、AIによるコード開発の分野に革命をもたらした。強力な反面、ユーザーは生成されたコードを理解してコミットする必要がある。レビュアーもコードを理解しないとレビューできない。これは、より広範に採用されるための制限要因になるかもしれない。また、特にSparkのテーブルやDataFrameを扱うときに、コンテキストで苦労することがある。添付のGIFはこの点を示しており、Copilotはウィンドウの仕様を提案し、存在しない'dept_id'カラムを参照しています。

english programming language

AIを副操縦士として扱うのではなく、AIを運転手にして、私たちは豪華な後部座席に座ろうか?そこで英語SDKの出番だ。過去10年以上にわたって、APIドキュメント、オープンソースプロジェクト、質問と回答、チュートリアル、書籍など、オープンで高品質なコンテンツを大量に提供してきた素晴らしいSparkコミュニティのおかげで、最先端の大規模言語モデルはSparkを熟知していることがわかりました。そして今、私たちはGenerative AIのSparkに関する専門知識を英語版SDKにベイクした。複雑な生成コードを理解する代わりに、多くの人が理解できる英語の簡単な指示で結果を得ることができる:

transformed_df = df.ai.transform('get 4 week moving average sales by dept')

英語版SDKは、SparkのテーブルとDataFrameを理解しているため、複雑な処理に対応し、DataFrameを直接かつ正確に返します!

私たちの旅は、英語をプログラミング言語として使用し、Generative AIがこれらの英語の命令をPySparkとSQLコードにコンパイルするというビジョンから始まりました。この革新的なアプローチは、プログラミングへの障壁を下げ、学習曲線を単純化するように設計されています。このビジョンがEnglish SDKの原動力であり、私たちの目標はSparkのリーチを広げ、この非常に成功したプロジェクトをさらに成功させることです。

code diagram

英語SDKの特徴

英語版SDKは、以下の主要機能を提供することで、Sparkの開発プロセスを簡素化します:

  • データの取り込み: SDKは、提供された説明を使用してウェブ検索を実行し、LLMを使用して最も適切な結果を決定し、この選択されたウェブデータをSparkにスムーズに取り込むことができます。
  • DataFrameの操作: SDKは、与えられたDataFrameに対して、変換、プロット、および英語の記述に基づく説明を可能にする機能を提供します。これらの機能により、コードの可読性と効率が大幅に向上し、DataFrameに対する操作が簡単かつ直感的になります。
  • User-Defined Functions (UDFs): SDKは、UDFを作成するための合理化されたプロセスをサポートしています。シンプルなデコレーターを使用すると、docstringを提供するだけで、AIがコード補完を処理します。この機能により、UDFの作成プロセスが簡素化され、AIが残りを処理する間、あなたは関数の定義に集中することができます。
  • キャッシング:SDKは、実行速度の向上、結果の再現性の向上、コスト削減のためにキャッシングを組み込んでいます。

英語版SDKの使い方を説明するために、いくつかの例を見てみよう:

データの取り込み
もしあなたがデータサイエンティストで、アメリカの自動車販売台数2022台をインジェストする必要があるなら、たった2行のコードでこれができる:

spark_ai = SparkAI()
auto_df = spark_ai.create_df("2022 USA national auto sales by brand")

データフレーム操作
SDKでは、DataFrame dfが与えられると、df.aiで始まるメソッドを実行することができます。これには、変換、プロット、DataFrameの説明などが含まれます。
PySpark DataFrameの部分関数をアクティブにする:

spark_ai.activate()

auto_df`の概要を説明する:

auto_df.ai.plot()

graph

自動車関連企業の市場シェア分布を見る:

auto_df.ai.plot("pie chart for US sales market shares, show the top 5 brands and the sum of others")

pie chart

最も成長したブランドを手に入れること:

auto_top_growth_df=auto_df.ai.transform("top brand with the highest growth")
auto_top_growth_df.show()
brand

us_sales_2022

sales_change_vs_2021

Cadillac

134726

14

DataFrameの説明を得る:

auto_top_growth_df.ai.explain()

要約すると、この DataFrame は、2021 年と比較して 2022 年の売上変動が最も大きいブランドを検索しています。売上高の変化で降順にソートされた結果が表示され、一番上の結果のみが返されます。

User-Defined Functions (UDFs)
SDKはシンプルで洗練されたUDF作成プロセスをサポートしています。spark_ai.udfデコレーターを使用すると、docstringで関数を宣言するだけで、SDKが裏で自動的にコードを生成します:

@spark_ai.udf
def convert_grades(grade_percent: float) -> str:
    """Convert the grade percent to a letter grade using standard cutoffs"""
    ...

これで、SQLクエリやDataFrameでUDFを使用できるようになりました。

SELECT student_id, convert_grades(grade_percent) FROM grade

結論

English SDK for Apache Sparkは、開発プロセスを大幅に向上させる非常にシンプルかつ強力なツールです。複雑なタスクを簡素化し、必要なコードの量を減らし、データから洞察を得ることに集中できるように設計されています。

英語SDKは開発の初期段階にありますが、私たちはその可能性に大きな期待を寄せています。この革新的なツールを探求し、その利点を直接体験し、プロジェクトへの貢献を検討することをお勧めします。あなたの洞察と参加は、English SDKを改良し、Apache Sparkのアクセシビリティを拡大する上で非常に貴重なものとなるでしょう。

英語の命令をPythonコードにコンパイルするように設計されたEnglish SDK for Apache Sparkで、ジェネレーティブAIのイノベーションを体験してください。この革命的なツールは、プログラミングの学習曲線を簡素化するだけでなく、データから価値ある洞察を抽出することに集中できます。革命を観察するだけでなく、その一部になりましょう。今すぐpyspark.aiでEnglish SDKのパワーを体験してください。

Databricks 無料トライアル

関連記事

Platform blog

AI Functions のご紹介: 大規模な言語モデルをDatabricks SQLで統合する

Introducing AI Functions: Integrating Large Language Models with Databricks SQL 翻訳: junichi.maruyama 大規模言語モデルの分野で素晴らしい進歩が見られる中、お客様から、SQLアナリストが日々のワークフローでこの強力なテクノロジーを活用できるようにするにはどうしたらよいかという問い合わせがありました。 本日、私たちはAI Functions のパブリックプレビューを発表できることを嬉しく思います。AI Functionsは、DBに組み込まれたSQL関数で、SQLから直接Large Language Models(LLM)にアクセスできるようになります。 今回の発表により、使い慣れたSQLのインターフェイスから、自社のデータに対してLLMの実験を素早く行うことができるようになりました。正しいLLMプロンプトを開発したら、Delta Live Tablesやスケジュールされたジョブなど、既存のDatabricksツールを使
Platform blog

Unleashing the Power of AI and Machine Learning: A Sneak Peek into Data and AI Summit Sessions

The Data and AI Summit is just around the corner, promising an unparalleled opportunity to delve into the world of artificial intelligence (AI)...
Engineering blog

Databricks ❤️ Hugging Face

Original Blog : Databricks ❤️ Hugging Face 翻訳: junichi.maruyama ジェネレーティブAIが世界を席巻しています。データ&AIカンパニーである私たちは、オープンソースの大規模言語モデル「Dolly」と、そのファインチューニングに使用した研究・商用利用のための社内クラウドソーシングデータセット「databricks-dolly-15k」をリリースし、この旅に参加しています。モデルもデータセットも、Hugging Faceで公開されています。そして今日、私たちはHugging Faceコードベースへの最初の公式コミットを発表し、ユーザーがApache Spark™データフレームからHugging Faceデータセットを簡単に作成できるようにすることに興奮しています。 「Databricksがモデルやデータセットをコミュニティに公開することは素晴らしいことですが、今回、Hugging Faceに直接オープンソースを提供することで、その作業を拡張していることがわか
オープンソース一覧へ