HyperAIHyperAI

Command Palette

Search for a command to run...

تشين تيانكي: في عصر الوكلاء، كيف ينبغي لنا إعادة التفكير في مُجمِّعات الذكاء الاصطناعي؟

Featured Image

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

تيانكي تشين، أستاذ مساعد في قسم التعلم الآلي وقسم علوم الحاسوب في جامعة كارنيجي ميلون، ومهندس متميز في شركة NVIDIA، ومطور أساسي ومؤسس لمشاريع مفتوحة المصدر مشهورة عالميًا مثل XGBoost وApache TVM وMLC LLM.حضر الفعالية كضيف شرف. وقد شارك هذا الرائد في مجال مُجمِّعات الذكاء الاصطناعي التوجهات التطويرية الحالية لمجتمع TVM مفتوح المصدر، وانخرط في نقاشات معمقة مع الحضور.

قامت شركة HyperAI بتجميع وتلخيص مشاركة البروفيسور تشين تيانكي دون تغيير المعنى الأصلي.

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

السؤال الأول: هل لا تزال هناك قيمة في مُترجمات الذكاء الاصطناعي؟ عندما يُمكن برمجة الوكلاء مباشرةً، هل ما زلنا بحاجة إلى المُترجمات؟

السؤال الثاني: بفضل الأتمتة، أصبح بإمكاننا إنجاز المزيد. في الماضي، كانت الموارد الهندسية هي أكبر عائق أمام الفرق الصغيرة؛ أما مع ظهور الوكلاء، فيمكننا تحقيق المزيد بفرق أصغر.

إذن، ما أود مشاركته اليوم هو:في عصر وكلاء الذكاء الاصطناعي، كيف ينبغي لنا إعادة التفكير في مُجمِّعات الذكاء الاصطناعي؟ وما هو الاتجاه الذي ينبغي أن تتخذه مُجمِّعات الذكاء الاصطناعي المستقبلية؟

حضر تشن تيانكي فعالية "لقاء مُترجم الذكاء الاصطناعي"

تسريع التكرار الخاص بالعامل

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

أولاً، من أجل تسريع التكرارات الخاصة بكل وكيل، وجدنا أن استقرار حدود المشروع وقابليتها للتركيب ونمطيتها أمور بالغة الأهمية.

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

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

ثانيًا، لتمكين الوكيل من إكمال التكرارات المخصصة بسرعة، سترى المزيد من الدعم متعدد اللغات في المستقبل.

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

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

لتحقيق ذلك، عملنا مؤخرًا على TIRx، وأصدرنا أيضًا برنامجًا تعليميًا بعنوان "برمجة وحدات معالجة الرسومات الحديثة". بالطبع، لا يقتصر البرنامج على وحدات معالجة الرسومات فقط، بل يسعى إلى تقديم مفاهيم برمجة معجلات أكثر شمولًا. خلال الأشهر الستة الماضية، ذكرتُ لفينغ سييوان أنني قضيتُ حوالي نصف وقتي في كتابة التعليمات البرمجية. فبفضل Agent، يُمكننا بالفعل مراجعة وإعادة هيكلة كود المشروع بالكامل. في العام الماضي، جعلنا وحدة TVM FFI مستقلة ومستقرة نسبيًا، وسنواصل تعزيز استقلالية واستقرار TIRx.

في عصر الوكلاء، ما الذي يمكن أن تفعله المترجمات؟

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

بالعودة إلى الموضوع الرئيسي: في عصر الوكلاء، ما الذي يمكن أن تفعله المترجمات؟

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

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

هذا كل ما أردت مشاركته، شكراً لكم جميعاً.

جلسة أسئلة وأجوبة

السؤال الأول: مع ظهور المزيد والمزيد من الأجهزة، هل ينبغي للمترجمات المستقبلية أن تعتمد على تكييف معماري للأغراض العامة أم على تكييف خاص بالأجهزة؟

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

في المقابل، يبقى السؤال مطروحًا: ما الذي يمكن أن يبقى مشتركًا؟ ما زلنا بحاجة إلى أساس متين نسبيًا يمكّن الوكلاء من بناء مُجمِّعات خاصة بالأجهزة. على سبيل المثال، يهدف عملنا الأخير على TIRx إلى تمكين الأجهزة المختلفة من تسجيل قواعد التوزيع الخاصة بها، ثم السماح للوكيل بتوليد المعرفة ذات الصلة بناءً على خصائص الجهاز.

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

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

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

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

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

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

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

وبالمثل، تُعدّ بنية تحتية جيدة للتمثيل الوسيط (IR) أمرًا بالغ الأهمية. فعلى سبيل المثال، لا يوجد حاليًا حل عملي مثالي لكتابة تمثيل وسيط للمترجم يدعم لغات مثل بايثون، وراست، وسي++. وفي المستقبل، إذا تمكّنا من توفير مثل هذه البنية التحتية، فسيسهم ذلك بشكل كبير في تحسين كفاءة التطوير.

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

السؤال الرابع: ما هي المواقع التي ستشغلها مستويات مختلفة من المترجمات، مثل لغات البرمجة الخاصة بالمجال منخفضة المستوى ولغات البرمجة الخاصة بالمجال عالية المستوى، في الصناعة وبيئة التطوير في المستقبل؟

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

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

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

يُعدّ MegaKernel أحد أبرز اتجاهات البحث الحديثة، وهو يتطلب تفاعلاً بين النوى المختلفة. لذا، فقد بحثنا في كيفية دمج كلا النوعين من المعلومات ضمن مُعرّف موارد متكامل واحد (IR). إذا أمكن تحقيق ذلك مستقبلاً، فأعتقد أنه سيؤدي إلى تطورات مثيرة للاهتمام. على سبيل المثال، اعتمدت الأعمال السابقة على MegaKernel بشكل أساسي على التفاعل بين مستوى الرسم البياني ومستوى النواة لتحقيق التحسين الأمثل.

السؤال السادس: هل المترجم الصديق للوكلاء هو اقتراح صحيح؟

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

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

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

ما سبق هو ملخص للعرض التقديمي القيّم الذي قدمه البروفيسور تشين تيانكي في صالون "ميت إيه آي كومبلر" التقني. سيتم نشر نصوص محاضرات أخرى شيّقة من هذا الحدث، فتابعونا!