Apache Spark 上に Generative AI アプリケーションを構築するためのツールボックス。
多くの開発者は、LLM を活用して既存のアプリケーションを強化したり、まったく新しいアプリケーションを構築したりしようとしています。 LLM のおかげで、ほとんどの LLM は新しい ML モデルをトレーニングする必要がなくなりました。しかし、依然として大きな課題はデータとインフラストラクチャです。これには、データの取り込み、変換、ベクトル化、検索、モデルの提供が含まれます。
過去数か月間、業界ではこれらの課題を解決するための新しいツールやフレームワークが急増しています。ただし、どれも使いやすく、本番環境に展開するのは簡単ではなく、データの規模に対処することもできません。
このプロジェクトは、Spark 拡張機能、データ ソース、ユーティリティのツールボックスを提供して、Generative AI アプリケーション用の堅牢なデータ インフラストラクチャを Spark 上に簡単に構築できるようにすることを目的としています。
誰もが独自の生成 AI アプリケーションの構築を開始できる完全なサンプル。
プロンプト エンジニアリング、LLM、ローコードに関する私たちの考えについては、こちらをご覧ください。
現在、このプロジェクトは主に PySpark ユーザーを対象としていますが、高性能コネクタも備えているため、PySpark と Scala の両方の依存関係が Spark クラスター上に存在する必要があります。
from spark_ai . webapps . slack import SlackUtilities
# Batch version
slack = SlackUtilities ( token = 'xoxb-...' , spark = spark )
df_channels = slack . read_channels ()
df_conversations = slack . read_conversations ( df_channels )
# Live streaming version
df_messages = ( spark . readStream
. format ( 'io.prophecy.spark_ai.webapps.slack.SlackSourceProvider' )
. option ( 'token' , 'xapp-...' )
. load ())
from spark_ai . llms . openai import OpenAiLLM
from spark_ai . dbs . pinecone import PineconeDB
OpenAiLLM ( api_key = 'sk-...' ). register_udfs ( spark = spark )
PineconeDB ( '8045...' , 'us-east-1-aws' ). register_udfs ( self . spark )
( df_conversations
# Embed the text from every conversation into a vector
. withColumn ( 'embeddings' , expr ( 'openai_embed_texts(text)' ))
# Do some more pre-processing
...
# Upsert the embeddings into Pinecone
. withColumn ( 'status' , expr ( 'pinecone_upsert( ' index-name ' , embeddings)' ))
# Save the status of the upsertion to a standard table
. saveAsTable ( 'pinecone_status' ))
df_messages = spark . readStream
. format ( "io_prophecy.spark_ai.SlackStreamingSourceProvider" )
. option ( "token" , token )
. load ()
# Handle a live stream of messages from Slack here
サポートされているデータ ソース:
サポートされているベクトル データベース:
サポートされている LLM:
サポートされているアプリケーション インターフェイス:
さらに多くの機能が近日公開予定です (問題として遠慮なくリクエストしてください)。
✅: 一般提供。 ?: ベータ版が利用可能。 ?️: ロードマップ。