Набор инструментов для создания приложений генеративного искусственного интеллекта на базе Apache Spark.
Многие разработчики и компании пытаются использовать LLM для улучшения своих существующих приложений или создания совершенно новых. Благодаря LLM большинству из них больше не нужно обучать новые модели ML. Однако основной проблемой по-прежнему остаются данные и инфраструктура. Сюда входит прием данных, преобразование, векторизация, поиск и обслуживание моделей.
За последние несколько месяцев в отрасли наблюдается появление новых инструментов и инфраструктур, помогающих справиться с этими проблемами. Однако ни один из них не прост в использовании, не развертывается в рабочей среде и не может справиться с масштабом данных.
Целью этого проекта является предоставление набора инструментов из расширений Spark, источников данных и утилит, которые упростят создание надежной инфраструктуры данных на Spark для приложений генеративного искусственного интеллекта.
Полные примеры, с которых каждый может начать создавать свои собственные приложения генеративного ИИ.
Прочтите наши мысли о быстром проектировании, LLM и Low-code здесь.
В настоящее время проект ориентирован в основном на пользователей PySpark, однако, поскольку он также содержит высокопроизводительные соединители, в кластере Spark должны присутствовать зависимости PySpark и Scala.
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 поддерживаются:
Поддерживаемые интерфейсы приложений:
И многие другие в ближайшее время (не стесняйтесь запрашивать по мере выпуска)!
✅: Общая доступность; ?: доступность бета-версии; ?️: Дорожная карта;