RADIENT هي مكتبة صديقة للمطورين وخفيفة الوزن للبيانات غير المهيكلة ETL و IE تحويل الصوت والرسوم البيانية والصور والجزيئات والنص وأنواع البيانات الأخرى في تضمينات. يدعم RADIENT التقييم البسيط وكذلك سير العمل المعقدة المتمحورة حول المتجهات.
$ pip install radientإذا وجدت هذا المشروع مفيدًا أو مثيرًا للاهتمام ، فيرجى التفكير في منحه نجمة.
يمكن تنفيذ التقييم الأساسي على النحو التالي:
from radient import text_vectorizer
vz = text_vectorizer ()
vz . vectorize ( "Hello, world!" )
# Vector([-3.21440510e-02, -5.10351397e-02, 3.69579718e-02, ...]) يقلل المقتطف أعلاه السلسلة "Hello, world!" باستخدام نموذج افتراضي ، وهو bge-small-en-v1.5 من sentence-transformers . إذا كانت بيئة Python لا تحتوي على مكتبة sentence-transformers ، فإن RADIENT ستطالبك بذلك:
vz = text_vectorizer ()
# Vectorizer requires sentence-transformers. Install? [Y/n]يمكنك كتابة "y" لتثبيتها ريشة لك تلقائيًا.
يمكن لكل متجه أن يأخذ معلمة method إلى جانب وسيطات الكلمات الرئيسية الاختيارية التي يتم تمريرها مباشرة إلى مكتبة التقييم الأساسية. على سبيل المثال ، يمكننا اختيار نموذج Mixbread AI من mxbai-embed-large-v1 باستخدام مكتبة sentence-transformers عبر:
vz_mbai = text_vectorizer ( method = "sentence-transformers" , model_name_or_path = "mixedbread-ai/mxbai-embed-large-v1" )
vz_mbai . vectorize ( "Hello, world!" )
# Vector([ 0.01729078, 0.04468533, 0.00055427, ...])مع Radient ، لا تقتصر على النص. يمكن تخصيص الصوت والرسوم البيانية والصور والجزيئات أيضًا:
from radient import (
audio_vectorizer ,
graph_vectorizer ,
image_vectorizer ,
molecule_vectorizer ,
)
avec = audio_vectorizer (). vectorize ( str ( Path . home () / "audio.wav" ))
gvec = graph_vectorizer (). vectorize ( nx . karate_club_graph ())
ivec = image_vectorizer (). vectorize ( str ( Path . home () / "image.jpg" ))
mvec = molecule_vectorizer (). vectorize ( "O=C=O" )يمكن العثور هنا على قائمة جزئية من الأساليب و KWARGs الاختيارية التي تدعمها كل طريقة.
بالنسبة لحالات استخدام الإنتاج بكميات كبيرة من البيانات ، فإن الأداء هو المفتاح. يوفر RADIENT أيضًا وظيفة accelerate لتحسين محطات الحواس أثناء الطيران:
import numpy as np
vz = text_vectorizer ()
vec0 = vz . vectorize ( "Hello, world!" )
vz . accelerate ()
vec1 = vz . vectorize ( "Hello, world!" )
np . allclose ( vec0 , vec1 )
# Trueعلى 2.3 جيجا هرتز رباعي النواة ، يعود المتجهات الأصلي في ~ 32 مللي ثانية ، بينما يعود المتجهات المتسارع في ~ 17ms.
بصرف النظر عن إجراء التجارب ، فإن التوجه النقي ليس مفيدًا بشكل خاص. تعكس خطوط أنابيب ETL للبيانات المحتوية على البيانات ، غالبًا ما تتطلب أعباء عمل ETL غير المهيكلة مجموعة من أربعة مكونات: مصدر بيانات يتم فيها تخزين البيانات غير المنظمة ، وحدات تحويل أخرى تؤدي تحويلات البيانات والمعالجة المسبقة ، وموظف متجه يحول البيانات إلى دمج غنية بشكل دلالي ، ومغسلة إلى persist التي تم حسابها بمجرد حسابها.
يوفر RADIENT كائن Workflow خصيصًا لبناء تطبيقات ETL المتمحورة حول المتجهات. مع سير العمل ، يمكنك الجمع بين أي عدد من هذه المكونات في رسم بياني موجه. على سبيل المثال ، قد يبدو سير العمل لقراءة المستندات النصية من Google Drive بشكل مستمر ، وتجاوزها مع Voyage AI ، وتجاوزها في Milvus:
from radient import make_operator
from radient import Workflow
extract = make_operator ( "source" , method = "google-drive" , task_params = { "folder" : "My Files" })
transform = make_operator ( "transform" , method = "read-text" , task_params = {})
vectorize = make_operator ( "vectorizer" , method = "voyage-ai" , modality = "text" , task_params = {})
load = make_operator ( "sink" , method = "milvus" , task_params = { "operation" : "insert" })
wf = (
Workflow ()
. add ( extract , name = "extract" )
. add ( transform , name = "transform" )
. add ( vectorize , name = "vectorize" )
. add ( load , name = "load" )
) يمكنك استخدام الحوادث المسلحة المتسارعة والتحويلات في سير العمل من خلال تحديد accelerate=True لجميع المشغلين المدعومة.
RADIENT يبني على قمة العمل من مجتمع ML الأوسع. معظم الحوادث تأتي من المكتبات الأخرى:
يتم تسريع النموذج أثناء الطيران عبر ONNX.
شكراً هائلاً لجميع المبدعين والمحللون في هذه المكتبات.
بضع ميزات مقررة على المدى القريب (نأمل):
لن تكون موصلات LLM ميزة توفرها RADIENT. إن بناء أنظمة السياق حول LLMS هي مهمة معقدة ، وليس تلك التي تعتزم حلها. تعد مشاريع مثل Haystack و Llamaindex من الخيارات العديدة العديدة التي يجب مراعاتها إذا كنت تتطلع إلى استخراج أقصى أداء للخرق.
ستأتي الكتابة الكاملة على RADIENT لاحقًا ، إلى جانب المزيد من تطبيقات العينات ، لذلك ترقبوا.