Apache Spark를 기반으로 Generative AI 애플리케이션을 구축하기 위한 도구 상자입니다.
많은 개발자는 회사에서 LLM을 활용하여 기존 응용 프로그램을 향상하거나 완전히 새로운 응용 프로그램을 구축하려고 합니다. LLM 덕분에 대부분은 더 이상 새로운 ML 모델을 교육할 필요가 없습니다. 그러나 여전히 가장 큰 과제는 데이터와 인프라입니다. 여기에는 데이터 수집, 변환, 벡터화, 조회, 모델 제공이 포함됩니다.
지난 몇 달 동안 업계에서는 이러한 과제를 해결하는 데 도움이 되는 새로운 도구와 프레임워크가 쏟아져 나왔습니다. 그러나 그 어느 것도 사용하기 쉽고 프로덕션에 배포할 수 없으며 데이터 규모를 처리할 수도 없습니다.
이 프로젝트의 목표는 Spark 확장 프로그램, 데이터 소스 및 유틸리티로 구성된 도구 상자를 제공하여 Generative AI 애플리케이션용 Spark에서 강력한 데이터 인프라를 쉽게 구축할 수 있도록 하는 것입니다.
누구나 자신만의 Generative 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:
지원되는 애플리케이션 인터페이스:
그리고 더 많은 내용이 곧 제공될 예정입니다(이슈로 자유롭게 요청하세요)!
✅: 일반 가용성; ?: 베타 가용성; ?️: 로드맵;