التثبيت | التوثيق | مرجع API | نماذج التعليمات البرمجية | رؤية الكمبيوتر | ماجستير
Pixeltable هي مكتبة Python توفر واجهة تعريفية للبيانات متعددة الوسائط (النص والصور والصوت والفيديو). ويتميز بإصدار مدمج، وتتبع النسب، والتحديثات المتزايدة، مما يمكّن المستخدمين من تخزين البيانات وتحويلها وفهرستها وتكرارها لسير عمل تعلم الآلة الخاص بهم.
يتم تضمين تحويلات البيانات واستدلال النموذج والمنطق المخصص كأعمدة محسوبة .
pip install pixeltable
Pixeltable ثابت. على عكس مكتبات بايثون الموجودة في الذاكرة مثل Pandas، فإن Pixeltable عبارة عن قاعدة بيانات.
تعرف على كيفية إنشاء الجداول وملؤها بالبيانات وتحسينها من خلال التحويلات المضمنة أو المحددة من قبل المستخدم.
عنوان | دفتر الملاحظات | عنوان | دفتر الملاحظات |
---|---|---|---|
جولة لمدة 10 دقائق في Pixeltable | الجداول وعمليات البيانات | ||
الوظائف المحددة من قبل المستخدم (UDF) | نماذج الكشف عن الكائنات | ||
الهندسة السريعة التزايدية | العمل مع الملفات الخارجية | ||
التكامل مع Label Studio | فهرسة نص الصوت/الفيديو | ||
تطبيق متعدد الوسائط | فهرسة الوثائق وRAG | ||
بوت Discord المدرك للسياق | بحث تشابه الصور/النص |
import pixeltable as pxt
v = pxt . create_table ( 'external_data.videos' , { 'video' : pxt . Video })
prefix = 's3://multimedia-commons/'
paths = [
'data/videos/mp4/ffe/ffb/ffeffbef41bbc269810b2a1a888de.mp4' ,
'data/videos/mp4/ffe/feb/ffefebb41485539f964760e6115fbc44.mp4' ,
'data/videos/mp4/ffe/f73/ffef7384d698b5f70d411c696247169.mp4'
]
v . insert ({ 'video' : prefix + p } for p in paths )
تعرف على كيفية التعامل مع البيانات في Pixeltable.
import pixeltable as pxt
from pixeltable . functions import huggingface
# Create a table to store data persistently
t = pxt . create_table ( 'image' , { 'image' : pxt . Image })
# Insert some images
prefix = 'https://upload.wikimedia.org/wikipedia/commons'
paths = [
'/1/15/Cat_August_2010-4.jpg' ,
'/e/e1/Example_of_a_Dog.jpg' ,
'/thumb/b/bf/Bird_Diversity_2013.png/300px-Bird_Diversity_2013.png'
]
t . insert ({ 'image' : prefix + p } for p in paths )
# Add a computed column for image classification
t . add_computed_column ( classification = huggingface . detr_for_object_detection (
t . image ,
model_id = 'facebook/detr-resnet-50'
))
# Retrieve the rows where cats have been identified
t . select ( animal = t . image ,
classification = t . classification . label_text [ 0 ])
. where ( t . classification . label_text [ 0 ] == 'cat' ). head ()
تعرف على الأعمدة المحسوبة واكتشاف الكائنات: مقارنة نماذج اكتشاف الكائنات.
@ pxt . udf
def draw_boxes ( img : PIL . Image . Image , boxes : list [ list [ float ]]) -> PIL . Image . Image :
result = img . copy () # Create a copy of `img`
d = PIL . ImageDraw . Draw ( result )
for box in boxes :
d . rectangle ( box , width = 3 ) # Draw bounding box rectangles on the copied image
return result
تعرف على المزيد حول الوظائف المحددة من قبل المستخدم: UDFs في Pixeltable.
# In this example, the view is defined by iteration over the chunks of a DocumentSplitter
chunks_table = pxt . create_view (
'rag_demo.chunks' ,
documents_table ,
iterator = DocumentSplitter . create (
document = documents_table . document ,
separators = 'token_limit' , limit = 300 )
)
تعرف على كيفية الاستفادة من طرق العرض لبناء سير عمل RAG الخاص بك.
# The computation of the mAP metric can become a query over the evaluation output
frames_view . select ( mean_ap ( frames_view . eval_yolox_tiny ), mean_ap ( frames_view . eval_yolox_m )). show ()
تعرف على كيفية الاستفادة من Pixeltable لتحليلات النماذج.
chat_table = pxt . create_table ( 'together_demo.chat' , { 'input' : pxt . String })
# The chat-completions API expects JSON-formatted input:
messages = [{ 'role' : 'user' , 'content' : chat_table . input }]
# This example shows how additional parameters from the Together API can be used in Pixeltable
chat_table . add_computed_column (
output = chat_completions (
messages = messages ,
model = 'mistralai/Mixtral-8x7B-Instruct-v0.1' ,
max_tokens = 300 ,
stop = [ ' n ' ],
temperature = 0.7 ,
top_p = 0.9 ,
top_k = 40 ,
repetition_penalty = 1.1 ,
logprobs = 1 ,
echo = True
)
)
chat_table . add_computed_column (
response = chat_table . output . choices [ 0 ]. message . content
)
# Start a conversation
chat_table . insert ([
{ 'input' : 'How many species of felids have been classified?' },
{ 'input' : 'Can you make me a coffee?' }
])
chat_table . select ( chat_table . input , chat_table . response ). head ()
تعرف على كيفية التفاعل مع خدمات الاستدلال مثل Together AI في Pixeltable.
import pixeltable as pxt
from pixeltable . functions . huggingface import clip_image , clip_text
from pixeltable . iterators import FrameIterator
import PIL . Image
video_table = pxt . create_table ( 'videos' , { 'video' : pxt . Video })
video_table . insert ([{ 'video' : '/video.mp4' }])
frames_view = pxt . create_view (
'frames' , video_table , iterator = FrameIterator . create ( video = video_table . video ))
@ pxt . expr_udf
def embed_image ( img : PIL . Image . Image ):
return clip_image ( img , model_id = 'openai/clip-vit-base-patch32' )
@ pxt . expr_udf
def str_embed ( s : str ):
return clip_text ( s , model_id = 'openai/clip-vit-base-patch32' )
# Create an index on the 'frame' column that allows text and image search
frames_view . add_embedding_index ( 'frame' , string_embed = str_embed , image_embed = embed_image )
# Now we will retrieve images based on a sample image
sample_image = '/image.jpeg'
sim = frames_view . frame . similarity ( sample_image )
frames_view . order_by ( sim , asc = False ). limit ( 5 ). select ( frames_view . frame , sim = sim ). collect ()
# Now we will retrieve images based on a string
sample_text = 'red truck'
sim = frames_view . frame . similarity ( sample_text )
frames_view . order_by ( sim , asc = False ). limit ( 5 ). select ( frames_view . frame , sim = sim ). collect ()
تعرف على كيفية العمل مع التضمين وفهارس المتجهات.
متطلبات | تقليدي | بكسلتابل |
---|---|---|
استخراج الإطار | ffmpeg + كود مخصص | تلقائي عبر FrameIterator |
كشف الكائنات | نصوص متعددة + التخزين المؤقت | عمود محسوب واحد |
فهرسة الفيديو | خطوط أنابيب مخصصة + Vector DB | بحث التشابه الأصلي |
إدارة التعليقات التوضيحية | أدوات منفصلة + كود مخصص | تكامل Label Studio |
تقييم النموذج | خط أنابيب المقاييس المخصصة | المدمج في حساب خريطة |
متطلبات | تقليدي | بكسلتابل |
---|---|---|
تقطيع المستندات | أداة + رمز مخصص | مقسم المستندات الأصلي |
جيل التضمين | خط أنابيب منفصل + التخزين المؤقت | الأعمدة المحسوبة |
بحث المتجهات | قاعدة بيانات المتجهات الخارجية | فهرسة المتجهات المضمنة |
الإدارة الفورية | حل تتبع مخصص | أعمدة يتم التحكم فيها بالإصدار |
إدارة السلسلة | أداة + رمز مخصص | العمود المحسوب DAGs |
متطلبات | تقليدي | بكسلتابل |
---|---|---|
أنواع البيانات | أنظمة تخزين متعددة | واجهة الجدول الموحدة |
البحث عبر الوسائط | التكامل المعقد | دعم التشابه الأصلي |
تنسيق خطوط الأنابيب | أدوات متعددة (تدفق الهواء، الخ) | واجهة تعريفية واحدة |
إدارة الأصول | نظام تتبع مخصص | النسب التلقائي |
ضبط الجودة | أدوات التحقق المتعددة | أعمدة التحقق من الصحة المحسوبة |
يقوم Pixeltable بتوحيد تخزين البيانات وتعيين الإصدار والفهرسة من خلال التنسيق وإصدار النموذج ضمن واجهة جدول تعريفية، مع تمثيل التحويلات واستدلال النموذج والمنطق المخصص كأعمدة محسوبة.
تتطلب الحلول الحالية لتطوير تطبيقات الذكاء الاصطناعي ترميزًا مخصصًا واسع النطاق وأنظمة السباكة للبنية التحتية. يعد تتبع النسب والإصدارات بين عمليات تحويل البيانات والنماذج وعمليات النشر وعبرها أمرًا مرهقًا. يتيح Pixeltable لمهندسي ML وعلماء البيانات التركيز على الاستكشاف والنمذجة وتطوير التطبيقات دون التعامل مع البيانات المعتادة.
نصيحة
راجع قسم عمليات التكامل، ولا تتردد في تقديم طلب لعمليات التكامل الإضافية.
نحن متحمسون للترحيب بالمساهمات من المجتمع! وإليك كيف يمكنك المشاركة:
هذه المكتبة مرخصة بموجب ترخيص Apache 2.0.