Big Data
البيانات الضخمة بيانات أكبر أو أسرع أو أكثر تنوعًا مما تستطيع أدوات جهاز واحد معالجته. الأبعاد الثلاثة، وMapReduce وSpark، ومجموعات البيانات التي تقف وراء الذكاء الاصطناعي الحديث.
البيانات الضخمة هي بيانات يتجاوز حجمها أو معدل ورودها أو تنوع تنسيقاتها ما تستطيع آلة واحدة وأدوات قواعد البيانات التقليدية تخزينه ومعالجته، ولذلك توزّع على عناقيد من الآلات التي تعالجها بالتوازي. وصف المحلل Doug Laney من META Group التحدي عام 2001 بثلاثة أبعاد تبدأ بحرف V: الحجم، أي كمية البيانات؛ والسرعة، أي معدل ورود البيانات والسرعة اللازمة لمعالجتها؛ والتنوع، أي مزيج الجداول المنظمة والسجلات والنصوص والصور والصوت والفيديو. وتضيف التعريفات اللاحقة الموثوقية، أي مدى جدارة البيانات بالثقة، والقيمة. وفي التعلم الآلي، تمثل البيانات الضخمة المادة الخام ومشكلة هندسية في آن واحد: تتحسن النماذج مع زيادة بيانات التدريب، وتتطلب خطوط الأنابيب التي تجمع تلك البيانات وتنظفها وتوفرها جزءًا كبيرًا من جهد بنائها.
البيانات الضخمة في الذكاء الاصطناعي والرؤية الحاسوبية#
نما التعلم العميق بالتوازي مع مجموعات بيانات أكبر من أن يتسع لها قرص واحد. تجاوزت ImageNet، التي أُطلقت عام 2009، 14 مليون صورة موسومة، ودربت صور التدريب البالغ عددها 1.28 مليون صورة في تحديها ذي الألف فئة الشبكة العصبية الالتفافية AlexNet التي فازت بمسابقة 2012. وتضم مجموعة بيانات SA-1B من Meta، التي أُصدرت عام 2023 مع Segment Anything Model، 11 مليون صورة و1.1 مليار قناع تقسيم، كما درّبت Meta نموذج Llama 3 مسبقًا على أكثر من 15 تريليون رمز نصي. وتوضح قوانين التوسع سبب جدوى هذه المجموعات: ينخفض الفقد بصورة متوقعة مع نمو البيانات والمعلمات والحوسبة معًا.
في الرؤية الحاسوبية، يأتي الحجم من أساطيل الكاميرات والمستشعرات. تسجل المركبة ذاتية القيادة تدفقات الكاميرات والرادار والليدار طوال كل ساعة تقودها، وتضيف المصانع والمتاجر آلاف تدفقات الفيديو المستمرة. وتكتسب السرعة أهمية عندما تكون النتائج مطلوبة فور ورود البيانات، كما في الاستدلال في الوقت الفعلي على فيديو حركة المرور أو خطوط الإنتاج. ويشمل التنوع الصور والفيديو إلى جانب التعليقات التوضيحية والبيانات الوصفية للمستشعرات والسجلات. ولا تفيد زيادة البيانات إلا عندما تكون تسمياتها دقيقة؛ لذا تعتمد مجموعات بيانات الرؤية الكبيرة على تنظيف البيانات وإزالة التكرارات والتعلم النشط لاختيار الصور الجديدة الجديرة بالتوسيم.
كيفية تخزين البيانات الضخمة ومعالجتها#
تتوسع أنظمة البيانات الضخمة أفقيًا: فهي توزّع البيانات والحوسبة على عدد كبير من الآلات التجارية بدلًا من خادم واحد أكبر. وصف بحث MapReduce الذي نشرته Google عام 2004 النموذج الذي عمّمه مشروع Apache Hadoop المفتوح المصدر: تقسيم الإدخال إلى أجزاء، وتشغيل دالة map على كل جزء بالتوازي على الآلة التي تخزنه، ثم اختزال النتائج الجزئية إلى إجابة واحدة. يحتفظ Apache Spark، الذي بدأ في UC Berkeley عام 2009، بالنتائج الوسيطة في الذاكرة، ما يجعل المهام التكرارية مثل تدريب النماذج أسرع بكثير من MapReduce المعتمد على القرص. وعادةً ما تُخزّن الملفات الخام في تخزين كائنات سحابي منظم على هيئة بحيرة بيانات، وتتيح التنسيقات العمودية مثل Apache Parquet للاستعلام قراءة الأعمدة التي يحتاج إليها فقط، بينما تنقل منصات البث مثل Apache Kafka الأحداث ذات معدل التدفق المرتفع.
يشغّل هذا المثال خطوتي map وreduce على ثلاثة أجزاء من تسميات الصور باستخدام المكتبة القياسية في Python:
from collections import Counter
from multiprocessing import Pool
# ثلاثة أجزاء من تسميات الصور؛ يخزّن العنقود كل جزء على آلة مختلفة
shards = [
["car", "person", "car", "bus"],
["person", "person", "bicycle"],
["car", "person", "dog", "car"],
]
def count_labels(shard):
"""Map step: count the labels in one shard."""
return Counter(shard)
if __name__ == "__main__":
with Pool(processes=3) as pool:
partial_counts = pool.map(count_labels, shards) # عملية عاملة واحدة لكل جزء
# خطوة Reduce: دمج الأعداد الجزئية في مجموع واحد
totals = sum(partial_counts, Counter())
print(totals.most_common())يُحصى كل جزء في عمليته الخاصة، وتدمج خطوة reduce الأعداد الجزئية في [('car', 4), ('person', 4), ('bus', 1), ('bicycle', 1), ('dog', 1)]. وتشغّل Spark وHadoop الخطوتين نفسيهما عبر آلاف الآلات، بإرسال كود map إلى الآلات التي تخزن كل جزء.
تدريب النماذج على البيانات الضخمة#
تقرأ عملية التدريب البيانات الضخمة على دفعات. تفكّك محمّلات البيانات بضع عشرات إلى بضع مئات من الصور في كل مرة من القرص المحلي أو تخزين الكائنات عبر عدة عمليات عاملة، فلا يلزم أن تتسع مجموعة البيانات كاملةً في الذاكرة، كما يقسم التدريب الموزع كل دفعة على العديد من وحدات GPU. وفي اكتشاف الكائنات، يبلغ حجم التنزيل لمجموعة اكتشاف Open Images V7 من Google مقدار 561 GB، وتضم 1.74 مليون صورة تدريب موزعة على 601 فئة، وهو حجم يفوق بكثير ما تستطيع معظم الآلات الاحتفاظ به في RAM. وعند طلب تخزين مجموعة بيانات مؤقتًا في الذاكرة باستخدام cache="ram"، يقدّر تدريب Ultralytics YOLO الحجم بعد فك الترميز استنادًا إلى 30 صورة عشوائية، ولا يخزّن البيانات مؤقتًا إلا إذا اتسع RAM المتاح لضعف ذلك التقدير؛ أما مجموعات البيانات الأكبر فتُقرأ من القرص وتُفكّك في كل حقبة.
البيانات الضخمة ومصطلحات ذات صلة#
- تنقيب البيانات: البحث عن الأنماط والحالات الشاذة والارتباطات في البيانات مهما كان حجمها، ويُجرى غالبًا على منصات البيانات الضخمة.
- تحليلات البيانات: الاستعلام عن البيانات وتلخيصها وتصويرها لدعم اتخاذ القرارات؛ وتحليلات البيانات الضخمة هي الجزء الذي يحتاج إلى محركات موزعة.
- الذكاء الاصطناعي المرتكز على البيانات: تحسين النماذج عبر رفع جودة بياناتها وشمولها، وهو أمر بالغ الأهمية عندما تكون مجموعة البيانات أكبر من أن تُفحص يدويًا.










