กล่องเครื่องมือสำหรับสร้างแอปพลิเคชัน Generative AI บน Apache Spark
นักพัฒนาจำนวนมากเป็นบริษัทที่พยายามใช้ประโยชน์จาก LLM เพื่อปรับปรุงแอปพลิเคชันที่มีอยู่หรือสร้างแอปพลิเคชันใหม่ทั้งหมด ต้องขอบคุณ LLM ที่พวกเขาส่วนใหญ่ไม่ต้องฝึกฝน ML โมเดลใหม่อีกต่อไป อย่างไรก็ตาม ความท้าทายที่สำคัญก็คือข้อมูลและโครงสร้างพื้นฐาน ซึ่งรวมถึงการนำเข้าข้อมูล การแปลง การทำเวกเตอร์ การค้นหา และการให้บริการโมเดล
ในช่วงไม่กี่เดือนที่ผ่านมา อุตสาหกรรมได้เห็นเครื่องมือและกรอบการทำงานใหม่ๆ มากมายเพื่อช่วยรับมือกับความท้าทายเหล่านี้ อย่างไรก็ตาม ไม่มีสิ่งใดที่ใช้งานง่าย ปรับใช้กับการใช้งานจริง และไม่สามารถจัดการกับขนาดของข้อมูลได้
โปรเจ็กต์นี้มีจุดมุ่งหมายเพื่อให้กล่องเครื่องมือของส่วนขยาย Spark แหล่งข้อมูล และยูทิลิตี้ต่างๆ เพื่อทำให้การสร้างโครงสร้างพื้นฐานข้อมูลที่แข็งแกร่งบนแอปพลิเคชัน Spark สำหรับ Generative AI เป็นเรื่องง่าย
ตัวอย่างที่สมบูรณ์ที่ใครๆ ก็สามารถเริ่มต้นสร้างแอปพลิเคชัน Generative AI ของตนเองได้
อ่านความคิดของเราเกี่ยวกับวิศวกรรมพร้อมท์, LLM และ Low-code ที่นี่
ปัจจุบัน โปรเจ็กต์นี้มุ่งเป้าไปที่ผู้ใช้ 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 ที่รองรับ:
รองรับอินเทอร์เฟซแอปพลิเคชัน:
และอีกมากมายที่กำลังจะมาเร็ว ๆ นี้ (โปรดแจ้งปัญหาได้ตามสบาย)!
✅: ความพร้อมใช้งานทั่วไป; ?: ความพร้อมใช้งานของเบต้า; ️: แผนงาน;