من خلال متابعتي للنقاشات التي تدور في وسائل التواصل حول الذكاء الاصطناعي لاحظت التباين الكبير في التصور عن المجال وفهم كيف يعمل وإمكاناته وحدوده، والسبيل الأمثل لدخول المجال وتعلمه. ما بين تبسيط مُخِل وإغراق في التعمق. مجموعة تصف أخرى بـ “الهواة” و “الدخلاء”، بينما تصم الثانية الأولى بـ “الغيرة” و “الخوف” وأنهم “حراس البوابة (gate keepers)” إشارة لتصور البعض بأنهم لا يشجعون المبتدئين في الدخول للمجال.

ما يزيد الموضوع تعقيداً دخول “علم البيانات” في الصورة. علم البيانات مصطلح خرج من قطاع الأعمال وليس من الجانب الأكاديمي، وهو يرتكز على تحليل البيانات باستخدام الأدوات الإحصائية (وأحياناً الذكاء الاصطناعي) لحل مشاكل الأعمال بطريقة عملية بالاستفادة من البيانات المتاحة. ويتضمن ذلك جانبي التقنية وفهم نطاق العمل وحاجة العميل. فهو يجمع بين عمل الباحثين والمطورين والمستشارين.

في الحقيقة يصعب أن تضع يدك على المشكلة إذا نظرت لها من زاوية واحدة فقط، هل يجب فقط قصر الذكاء الاصطناعي على المواضيع العميقة؟ وهذا هو مجال اهتمام الباحثين الأكادميين، أم نركز على التطوير؟ ولا مانع من استخدام المكتبات والأكواد الجاهزة؟ وهو ما يهم قطاع الأعمال. قبل قرابة العشر سنوات كان كل من يعمل في مجال الذكاء الاصطناعي هم من الباحثين، ولكن إتاحة التقنية وتسهيل استخدامها للمطورين تدريجياً أتاح لغير الباحثين الاستفادة من المجال، وهذا أحد أسباب تعدد النظرات بخصوص الذكاء الاصطناعي.

وقد تيسر لي أن عملت في المجال الأكاديمي باحثاً، وفي قطاع الأعمال في علم البيانات والبحث والتطوير، كما حضرت العديد من لقاءات المجتمعات التقنية والنقاشات، وأتابع ما ينشر في وسائل التواصل. هذه النظرة الشمولية أزعم أنها أتاحت لي فهم الوضع الحالي نوعاً ما، ويمكن إرجاعه إلى ثلاث أمور أساسية.

بين العلم والهندسة

الصراع بين العلم والهندسة قديم، فكل يدعي فضله على الآخر، مع أحقية كلاهما لذلك.

أحد النقاط التي يمكن تمييز العالم والمهندس من خلالها هي الدافع المحرك. ما يحفز ويحرك العالم هو البحث عن المعرفة لذاتها، كيف تعمل الأشياء؟ ويستخدم المنهجية العلمية للبحث وتنقيح الافتراضات. بينما حافز المهندس هو حل مشاكل العالم الحقيقي (real-world).

لنأخذ مثال محرك السيارة. بناء محرك يعتمد على الكثير من النظريات والاكتشافات العلمية البحتة المتعلقة بعلم المواد والفيزياء والكيمياء، لولا التقدم في هذه العلوم لما تطورت المحركات إلى الحد الذي وصلناه اليوم. ولكن صناعة المحرك وربطه بأجزاء السيارة يحتاج للمهارات الهندسية. فكما يتضح، العالم والمهندس كلاهما مهمّان لصناعة المحرك. قد لا يكون إسهام العالم مباشراً، ولكنه مهم على المدى البعيد.

العلم ليس شرطاً أساسياً للهندسة، فكثير من المشاريع الهندسية على مر التاريخ تم بناؤها من دون فهم عميق للأصول والنظريات العلمية التي تشرح الأدوات التي استخدمت. فالمهندس قد يصل إلى هدفه، الذي هو بناء حلول عملية، من دون فهم للنظريات العلمية التي تشرح عمله الذي قام به. على الأقل، هذا ينطبق على المشاريع القديمة! المشاريع الحديثة في الغالب معقدة وتحتاج من المهندس أن يكون ملماً بالأسس العلمية للأدوات والمواد التي يستخدمها. تخيل مهندس يبني عمارة من دون أن يفهم أساسيات علم المواد!

كلا المهندس والعالم يدرسان الرياضيات والعلوم الطبيعية بتعمق، ولكن العالم يستخدم هذه المعرفة بشكل أساسي لتحصيل المزيد من المعرفة، بينما المهندس يستخدم هذه المعرفة لتصميم وتطوير أجهزة وأدوات عملية، بالإضافة إلى المعماريات والعمليات. بعبارة أخرى، العالم يبحث عن المعرفة، والمهندس يسعى للتطبيق. [1]

هناك قدر كبير من التداخل بين العلم والهندسة. في الحقيقة هو ليس تمايزاً ثنائياً، وعلى الرغم من ميلنا البشري للقَبَلية يمكن للعديد من الناس أن يطلقوا على أنفسهم علماء ومهندسين بنسب متفاوتة. إضافة إلى ذلك، المجالات تدعم بعضها البعض؛ إن التقدم العلمي يولد التقدم الهندسي مما يولد بدوره التطورات العلمية، وهكذا.

حسناً، هناك جدل عما إذا كان مجال علوم الحاسب يعتبر من العلوم أو لا ما بين مؤيد ومعارض، ولا مجال للدخول فيه الآن، ولكن من أراد الاطلاع على بعض النقاشات العديدة يمكنه الرجوع إلى [1] و [2]. بغض النظر عن ذلك، فالتجافي بين الباحثين الأكادميين في الحاسب والمطورين التطبيقيين يماثل التجافي بين العلم والهندسة إلى حد كبير. وينسحب هذا على المجالات الفرعية بما فيها الذكاء الاصطناعي، موضوعنا هنا. في مجال الذكاء الاصطناعي، الباحثون يبتكرون خوارزميات جديدة، والمطورون يبنون باستخدامها تطبيقات برمجية عملية.

وهنا تظهر نقطتان يكثر النقاش حولهما: هل يجب على المطور أن يفهم الخوارزميات بشكل عميق؟ وهل يجب على الباحث أن يطلع على ممارسات التطوير البرمجي ويتقنها؟

لست هنا بصدد الإجابة عن هذين السؤالين، فهذا يعتمد بشكل كبير على الظروف ومكان وبيئة وطبيعة العمل. في الجهات التي لديها إدارات للبحث والتطوير، يكون واضح لديهم كيفية الربط بين فريقي البحث والتطوير. وقد يكون لدى شخص العلم والمهارة في البحث والتطوير كلاهما، وقليلاً ما تكون إلى حد متقدم فيهما معاً. وهذا الشخص في العادة يكون مناسباً كوسيط بين الأكادميين والمطورين.

التقنية بين الصنّاع والمستخدمين

سيكون واضحاً لو قلنا أن بعض التقنيات الملموسة كالجوالات وأجهزة الحاسب لا تصنع عندنا. فهذه الأشياء نذهب ونشتريها ونمسكها بأيدينا. فكونها ملموسة تعطي صناعتها مفهوماً واضحاً. ولكن إذا تكلمنا عن صناعة البرمجيات يتحول الأمر لشيء غير ملموس يصعب على غير المتخصص أن يضع يده عليه. صحيح أن لدينا شركات لتطوير مواقع الانترنت وتطبيقات الجوال والتطبيقات الأخرى، وبالرغم من أهمية هذه التطبيقات إلا أنها لا تشكل الأساس التقني للبرمجيات. ما أتحدث عنه هنا أنظمة التشغيل وقواعد البيانات وأنظمة الحوسبة الموزعة والسحابية والبيئات البرمجية والمكتبات البرمجية، وغيرها. لا توجد لدينا جهات لتطوير مثل هذه الأنظمة والبيئات. ومهما وصل الأمر بالشخص من احتراف لها، فهو في حقيقة الأمر مستخدم. لا يعني حديثي هنا الاستنقاص من قدر هذه الأنظمة والبيئات ومن يستخدمها، فهي أشياء أساسية ومهمة ينبغي على أي مختص في مجاله أن يتقنها. ولكن ما أردت توضيحه أننا في الكثير من التقنيات لا نزال في مرتبة المستخدمين وليس الصنّاع.

حتى مطوري الذكاء الاصطناعي فإنهم باستخدامهم المكتبات والنماذج المدربة يتحولون تدريجياً إلى مستخدمين. في بداية الأمر، كان الباحثون الأكادِميون يكتبون الخوارزميات من الصفر، فهنا فعلاً كانوا صنّاعاً للتقنية. خلال السنوات العشر الماضية انتشرت تدريجياً مكتبات برمجية قوية للذكاء الاصطناعي سهلت بشكل كبير تطوير تطبيقات عملية. ولكن هذه المكتبات اختزلت الكثير من المفاهيم وعلبتها بحيث صار يسهل تنفيذها من خلال عدة أسطر برمجية. هذا الاختزال والتعليب حوّل مطوري الذكاء الاصطناعي تدريجياً من صنّاع إلى مستخدمين. وما يزيد من حدة هذا التحول اعتمادنا بشكل متزايد على النماذج المدربة مسبقاً، فيمكن فعلياً الآن تحميل نموذج تعلم آلة مدرب مسبقاً من أحد الجهات بسطر برمجي وتشغيله بسطر آخر بمنتهى السهولة.

هذا التحول أتاح للمطورين الذين ليس لديهم أي خلفية عن الذكاء الاصطناعي استخدام نماذج متقدمة بكل سهولة، وهو شيء جيد ومهم. ولكنه أحد أسباب الفجوة التي حدثت بين المطورين وباحثي الذكاء الاصطناعي، فكلاهما لديه تصور ونظرة مختلفة عن المجال. ما حصل أن بعض المطورين صاروا يقدمون أنفسهم على أنهم خبراء في الذكاء الاصطناعي -وقد يعتقدون ذلك بحكم تطويرهم لتطبيقات في المجال. وفي المقابل، يفترض متخصصو الذكاء الاصطناعي (الباحثون) أنه يجب أن يفهم المطور جميع النظريات المتعلقة بالمجال الذي يطورون باستخدامه. أعتقد ظهور بعض المسميّات الوظيفية كـ “مهندس تعلم آلة”، وقد يظهر قريباً “مطور تعلم آلة”، سيسهم بحل هذا اللبس بحيث يكون واضح أن عمل الشخص يمس الجانب العملي من التقنية.

في نظري أنه لا توجد مشكلة هنا، المطور هدفه تطوير برامج ذكية فصار قادراً على ذلك بطريقة أسهل، والباحث لا يزال يبحث في المستجدات في المجال وآخر التطورات. لا يوجد حد واضح بين الباحث والمطور، فيما يلي تدرج من الأكثر تخصصاً للأقل في مجال الذكاء الاصطناعي:

  1. الأبحاث المتعلقة في مجال الذكاء الاصطناعي وخوارزمياته، وآخر المستجدات في المجال
  2. برمجة الخوارزميات وتدريب النماذج من الصفر
  3. استخدام المكتبات البرمجية لتدريب النماذج
  4. استخدام النماذج المدربة مسبقاً

كلما اتجهنا إلى النماذج المدربة مسبقاً زادت السهولة، ولكن تقل مرونة الخيارات المتاحة.

انفصال المجتمعات

كل مجتمع عملي أو مهني له لغته الخاصة به، يكفي أن تحضر اجتماعاً لأطباء أو مهندسين وتسمع حواراتهم لتعرف ما أعني. الأطباء والمهندسون والمحامون والمحاسبون والمسوقون، كلٌ له لغته المهنية ومراجعهم واجتماعاتهم وجمهورهم وقواعدهم المهنية. أحياناً لتستفيد من أحد هذه المجالات تحتاج أن تفهم مصطلحاتهم المتداولة حتى تستطيع أن تفهم حواراتهم ومقالاتهم.

ينطبق هذا أيضاً على المجتمعين الأكاديمي (الحاسوبي هنا) والمطورين. الباحث عندما يناقش آخر مثله تكون بينهما أرضية ثقافية مشتركة، فيستطيع أن يدخل في تفاصيل تقنية دقيقة بدون مقدمات. وكذلك المطور عندما يناقش آخر مثله يدخلون في صميم المشاكل البرمجية لأن لديهما فهماً مشتركاً للغات البرمجة المستخدمة والبيئات والمعماريات البرمجية. سيختلف الأمر عندما يدور نقاش بين باحث ومطور عن موضوع معين، سيبحثان في البداية عن أرضية مشتركة، وقد يدخل بعض العموم في النقاش بدلاً من التفصيل الدقيق، وهذا شيء طبيعي.

مراجع الباحثين غالباً الكتب العلمية ومنشورات المؤتمرات والمجلات العلمية. قد يصعب على من لم يعتد على قراءتها استيعاب ما فيها. وفي الجهة المقابلة، أغلب الدورات المتاحة على الانترنت في مجال تعلم الآلة والذكاء الاصطناعي موجهة لغير الباحثين، فلغتها أبسط بكثير، ويغلب عليها استخدام مكتبات برمجية، والتركيز على التطبيق بدلاً من النظرية.

لهذا أحد الأسئلة الصعبة، بالرغم من سهولتها ظاهرياً، عندما يسأل شخص عن مرجع للبدء في تعلم مجال الذكاء الاصطناعي. فحتى أعطيك مرجعاً مناسباً لك، يجب أن أعرف خلفيتك بشكل جيد. فهناك مراجع ممتازة للباحثين -بتدرج خبرتهم- ولكن لا تصلح أبداً لغيرهم، كما أن هناك مراجع ممتازة للمطورين، قد يجدها الباحث لا تركز على الجانب النظري كما يرغب. والشيء نفسه بالنسبة للدورات.

في اعتقادي هذه الأمور الثلاثة هي من أهم أسباب الفجوة المتصورة بين من يعملون على الذكاء الاصطناعي، وقد يكون هناك غيرها. ومن تأمل في الموضوع يجد أنه لا توجد مشكلة فعلاً، ولكن كل شخص يرى الموضوع من زاويته. فالباحث هدفه الأساسي العلم والمطور هدفه تطوير أنظمة عملية.

ما رأيك أنت؟ هل تتفق أو تختلف معي؟ ولماذا؟


[1] Eide, A. R., Jenison, R. D., Mashaw, L. H., and Northup, L. L., “Engineering Fundamentals and Problem Solving,” New York: McGraw-Hill Book Company, 1979.

[2] Denning, P. J., “Is computer science science?,” Communications of the ACM, 48 (4), 27–31. 2005.

[3] Mahoney, M. S., “What Makes Computer Science a Science?,” BT – Science in the Context of Application. In M. Carrier & A. Nordmann (Eds.), pp. 389–408), Dordrecht: Springer Netherlands, 2011.