مراجعة كتاب A Common-Sense Guide to AI Engineering
هذا هو الترشيح الثاني لكتب هندسة الذكاء الاصطناعي.
مستوى الكتاب مبتديء إلى متوسط.
أرشحه للقراءة بعد كتاب Grokking AI Applications، وإن شئت قراءته أول شيء فحسن أيضا ومناسب.
.
ميزة الكتاب الرائعة هو تسلسل أفكاره، حيث يبدأ ببرنامج بسيط بلغة بايثون ويطوره أثناء فصول الكتاب حتى يصل إلى بناء منتج درشة للدعم الفني مدعوم بالذكاء الاصطناعي.
وميزته الثانية هي طريقة ربطه للأفكار ببعضها، حيث يشرح الفكرة، ثم ينفذها بتعديل كود البايثون الصغير، ثم يحلل النتيجة ويثبت الأشياء الصالحة ويحتفظ بالمشاكل ليعالجها في التحسين التالي، وهكذا. بداية بسيطة، ثم تحسين مستمر، ثم مع كل تحسين يحصر المشاكل ويعالجها في الدورة التالية.
هذا الأسلوب شيق جدا، ويجبرك على الانتهاء من قراءة الفصل بمجرد البدء فيه، بل ويدفعك الفضول لبدء الفصل التالي، كأنك تقرأ رواية!
.
أما الكود، فهو واضح جدا حتى لو لم يكن لديك أية فكرة عن البايثون، لكن ينبغي أن تكون مبرمجا لتستفيد من الكتاب.
.
عالج الكتاب مواضيع متقدمة نوعا ما، مثل ال evals والguardrails. والevals عالجها مبكرا في الكتاب، لتسير معه مع كل تحسين أثناء فصول الكتاب، ثم تعرض لها في آخر الكتاب مرة أخرى عندما أتمتها.
.
الكتاب صدر في مايو ٢٠٢٦، فلم تتقادم معلوماته بعد!
.
أرشحه بشدة!
Jev is TypeSafe AI's first System One Model.
It is 100x faster and cheaper than frontier LLMs.
That opens up a lot of use cases people usually skip because the big models are too slow or too expensive for them.
Here are 9 use cases where we think Jev could be used instead of an LLM.
الحلقة الثانية من سلسلة
From Software Engineer
To AI Engineer
أو
AI Engineering بالهجايص
وتكلمنا فيها عن مصادر التعلم، وذكرنا من هذه المصادر:
1. مقالة مارتن فاولر
Emerging Patterns in Building GenAI Products
2.كتاب
Grokking AI Applications
3. كتاب
A Common-Sense Guide to AI Engineering
وحكيت قصتي مع بداية تعلم الموضوع وقدمت مراجعة سريعة لهذه المصادر مع الفروقات بينها.
الفيديو مدته ١١ دقيقة تقريبا.
أتمنى لكم مشاهدة ممتعة لا تخلو من الإزعاج 😉
#software_engineering #ai_engineering
الحلقة الأولى من سلسلة
AI Engineering بالهجايص
أو
From Software Engineering to AI Engineering بالعربي
وتكلمنا فيها عن معنى الai engineering وعن الفروقات بينها وبين الsoftware engineering التقليدي.
من الفروق التي ذكرناها:
1. Probabilistic = Non deterministic
2. Non explanatory
3. Pre-trained = Knowledge cut-off
4. Stateless
5. Auto-complete machine
7. Limited context window
لكني ذكرت الكثير من التفاصيل حول هذه النقاط في الفيديو، وقدمت للحلقات التالية - إن شاء الله - فإن رأيت أن هذا الموضوع يهمك، فالفيديو مدته ١٥ دقيقة، وأرجو أن تشاركه مع من تراه يهتم بهذا الموضوع لتعم الفائدة 👌
ولا تنس أن تكتب لي رأيك في التعليقات: ما الذي أعجبك؟ ما الذي لم يعجبك؟ هل أتكلم بسرعة أم ببطء أم معتدل؟ ماذا تتوقع في الحلقات القادمة؟ ما الموضوع الذي يهمك أن نتكلم فيه؟ 👇
#ai_engineering #ai #softwareengineering
https://t.co/hCcrX21Sll
هل تريد أن تبدأ في هندسة الذكاء الاصطناعي AI Engineering ولا تعلم من أين تبدأ؟
هل عندك رهبة أو حاجز نفسي يمنعك من البدء؟
هل تظن أنك تحتاج لتعلم أشياء كثيرة وهذا يثبطك عن البدء؟
هل تستخدم لغة برمجة غير بايثون وتظن أنك تحتاج لتعلمها أولا؟
هل تعتقد أن الانتقال من مهندس برمجيات software engineer إلى مهندس ذكاء اصطناعي AI engineer يحتاج لأن تنسى مهاراتك القديمة وتبدأ من الصفر؟
هل تعتقد أنك تحتاج لمذاكرة الكثير من الرياضيات لتبدأ في رحلة تعلم الذكاء الاصطناعي وتعلم الآفة الشاقة، حتى قبل أن تبدأ في تطوير أي تطبيق ذكي؟
هل تعتقد أن استخدامك للذكاء الاصطناعي في الcoding كافٍ؟
هل تظن أن بناء تطبيقات ذكية لا يحتاج أكثر من استخدام AI APIs؟
هل لا تعرف الفرق بين الAI Engineering والML Engineering؟
هل تظن أنك تحتاج لدورات Andrew NG في تعلم الآلة والتعلم العميق لتستطيع البدء؟
إذا كانت هذه اعتقاداتك، أو غيرها مما يمنعك من البدء، فإني أرشح لك هذا الكتاب:
Grokking AI Applications
الكتاب صدر منذ بضعة أشهر فقط، ربما في يوليو ٢٠٢٦ أو بعده، وهو مناسب للمبتدئين تماما، وفكرته ببساطة أن يشرح لك أهم المفاهيم التي تحتاجها في هندسة الذكاء الاصطناعي، ويبسطها بالأمثلة والرسومات التوضيحية، ثم عند التنفيذ يعطيك خيارين: استخدام منصات بصرية مثل Langflow و KNIME، وهي تعمل بطريقة السحب والإفلات للمكونات drag and drop على لوحة رسم canvas ويعطيك، هي low code platform، وكذلك خيار كتابة الكود باستخدام بايثون!
وينتقل من المفاهيم الأولية لبناء تطبيق دردشة ذكي، مرورا بال RAG ثم الAgents وبناء تطبيقات ذكية بناء على البيانات المسجلة في أنظمتك المؤسسية وليس الدردشة مع المستخدمين، وأخيرا نشر التطبيق ومراقبته.
الكتاب لا يغطي مفاهيم متقدمة مثل الevals والguardrails والfine-tuning، وغيرها، لكنه حقيقة كسر عندي حاجز البدء الجاد بدل العشوائية.
والمفارقة، رغم حداثة الكتاب فإني احتجت لإجراء بعض التغييرات على الأمثلة لتعمل على Langflow، الذي يتغير هو أيضا بسرعة، مثل بقية المجال كله!
والأجمل، أن الكتاب قصير، أقل من ٣٠٠ صفحة، على ما يحويه من رسومات كثيرة!
أرشحه بشدة!
#من_software_engineer_إلى_ai_engineer
كيف تكون بائسا؟
في شبابي، عندما كنت متهربا من الخدمة العسكرية، انتهى بي الأمر بشكل ما في قوات المارينز.
ثمة خرافة تقول إن تدريب رجال المارينز يحول المجندين الجدد اللينين الطيعين إلى قتلة متعطشين للدماء، لكن ثق بي عندما أقول لك إن المارينز ليسوا بتلك الكفاءة التي تحسبها. لكن ما تعلمك تدريباتهم إياه في الحقيقة أنفع بكثير.
تعلمك قوات المارينز كيف تكون بائسا، وهذا شيء ذو قيمة عظيمة للفنان.
يحب المارينز أن يكونوا بؤساء، ويستمدون نوعا شاذا من الرضا عن النفس من تناولهم طعاما باردا، واستخدامهم معدات قديمة وكون معدل الخسائر البشرية لديهم أعلى من بقية فروع القوات المسلحة، وهي الفروع التي يحتقرون أفرادها أصلا. لماذا؟ لأن هؤلاء المخنثين لا يعرفون كيف يكونوا بائسين.
الفنان الذي ألزم نفسه بمشروعه تطوع في الواقع للعمل في الجحيم، سواء أكان يدرك هذا أم يجهله. سوف يتعذى طوال مدة خدمته هناك على وجبات من العزلة والرفض وعدم الثقة بالنفس واليأس والسخرية والازدراء والإهانة. هكذا يجب أن يكون الفنان مثل جندي المارينز، يجب أن يفتخر بأنه يتحمل عناء أكثر من أي جندي آخر، لأنه في حرب يا عزيزي، والحرب جحيم.
--
الاقتباس من كتاب "حرب الفن"، لستيفين برسفيلد.
ويقصد الاستمرار في الطريق مهما كانت الظروف.
أظن أكثر من سيشعر بهذا المعنى هم الزملكاوية ، وشعارهم الخالد: #سنظل_أوفياء 😅
"حين تنسى النمر الواقف خلفك فهذا لا يعني أنه غير موجود. هذا خطؤك أنت لا خطأ النمر!"[*]
نعم، إنه خطؤنا نحن، لا خطأ النمر!
هل قلتُ إننا أخطأنا؟
نعم، لا بأس ببعض الأخطاء، وربما الكثير منها، فقد مللننا أن نكون محقين طيلة الوقت[*] 😜
.
لكم أسعدني حين سمعت تقييما لقبيلة يقول أن أجمل ما يميزها هو الأصالة، أو الauthenticity كما يقولون؛ إذ أن قبيلة منذ إطلاقها تحاول أن تتميز عن الشبكات الأخرى ويكون لها شخصيتها المتفردة، حتى وإن تشابهت مع بقية الشبكات في كثير أو قليل من الخصائص.
لكن حينما حاولنا التميز أكثر من اللازم وقعنا في عدة أخطاء كلاسيكية، وألاحظ تكرار هذه الأخطاء من الأصدقاء الذين يحاولون التميز هم أيضا، ولذلك أحببت التحدث عن هذه الأخطاء لتعم الفائدة.
.
هل لاحظتم أننا أحيانا نستخدم أسماءً غريبة للخصائص التي نطلقها في قبيلة؟
يعني مثلا، نحن مقتنعون أن التعلم الفردي لا يناسب كل الناس، والتعلم الجماعي والاستذكار والمدارسة مع الأقران ربما يكون أفيد للمتعلمين، وفي حضارتنا وثقافتنا عندنا فكرة "حلقات العلم". هذه قصة مسلية، وسردية مقنعة، أليس كذلك؟
بلى، لكن حين اخترنا اسم "الحلقات" للدلالة على هذه الفكرة، فإن المستخدم لم يستحضر كل هذه السردية، وظنها حلقات مرئية أو مسموعة، كأنما هي بودكاست مثلا أو نحو ذلك، ولم يخطر بباله أنها المجموعات أو المجتمعات، كما اعتاد عليها في الشبكات الأخرى.
ونفس الخطأ وقعنا فيه حين أطلقنا اسم "القبائل" على الموضوعات وتصنيفات المحتوى.
هذه الأسماء ليست سيئة، بالعكس، هي ممتازة للهوية، أو brand كما يقولون، وتصلح لتكون مفردات في حكاية سردية قبيلة وقصتها، لكنها تربك المستخدمين، وتصيبهم بالحيرة.
"وكما أن أذرع المومياوات ليست من الأشياء الصالحة لتجميل المنازل"[*]، فكذلك الأسماء المختلفة لمجرد الاختلاف ليست من الأشياء الصالحة دائمًا لتصميم واجهات الاستخدام!
.
والقاعدة الأهم في تجربة الاستخدام (User Experience) هي: لا تجعلني أفكر - كما صاغها ستيف كروغ Steve Krog.
ولتوضيح هذه الفكرة، سأذكر بعض الاقتباسات المتداولة في أدبيات تجربة المستخدم:
- قانون يعقوب Jakob's Law:
يقضي المستخدمون معظم وقتهم على مواقع أخرى، هذا يعني أنهم يفضلون أن يعمل موقعك بنفس الطريقة التي تعمل بها جميع المواقع الأخرى التي يعرفونها بالفعل.
- ومن مباديء التصميم التي وضعها يعقوب نيلسن Jakob Nilsen أيضا: التعرف بدلا من التذكر Recognition rather than recall.
يقصد تقليل العبء المعرفي لأن الذاكرة البشرية تواجه صعوبة في "استدعاء" المعلومات من الصفر (Recall) مقارنة بـ "التعرف" على الشيء عند رؤيته (Recognition).
- ومن مباديء نيلسن أيضا: التوافق بين النظام والعالم (Match Between System and Real World)
ويقصد وجوب أن يتحدث النظام لغة المستخدم العادية، وليس لغة المبرمجين أو أصحاب المنتج أو المصطلحات التقنية المعقدة.
- قاعدة أخرى شهيرة في تصميم واجهات الاستخدام:
واجهة الاستخدام مثل النكتة؛ إذا كان عليك شرحها، فهي ليست جيدة بما يكفي
A user interface is like a joke. If you have to explain it, it's not that good
.
الدرس المستفاد من هذه القصة تعلمته من الذكاء الاصطناعي، ويبدو أنه من بنات أفكاره لأني بحثت عن قائل هذه الجملة ولم أجدها!
Be creative in the brand. Be boring in the interface!
كن مبتكرًا في الهوية، ومألوفا أو مملًا في واجهة الاستخدام!
.
وقد تعلمنا الدرس، حيث أنه خطؤنا نحن، لا خطأ المستخدمين، وأصلحنا هذه الأسماء. فصارت "المجتمعات" و "الموضوعات"، الأسماء المملة المألوفة التي يعرفها المستخدون!
.
هل ثمة أخطاء أخرى ارتكبناها؟
"أكيد هناك أخطاء قاتلة أخرى ارتكبناها، لكنّي لا أذكر معظمها، وهذه مزية تفاعل الهروب الشهير الذي يجعلنا ننسى"[*]
--
[*] الاقتباسات للراحل أحمد خالد توفيق رحمه الله ببعض التصرف
#ProductManagement #UX
غدا إن شاء الله في تمام العاشرة صباحا بتوقيت القاهرة/الرياض، المقالة الثلاثون من سلسلة: "هل يمكن منافسة شبكات التواصل الاجتماعي؟"
وعنوانها:
كن مبتكرًا في الهوية، ومملًا في واجهة الاستخدام!
.
أتكلم فيها عن بعض الأخطاء التي وقعنا فيها في تصميم قبيلة، وبعض التحسينات المستمرة التي نطلقها تباعا (هل لاحظتم أي تغيير أسماء بعض الخصائص اليوم؟)
.
انتظرونا 🔥
افتح نفس الريبو في vscode، وشغل الاتنين مع بعض.
دي أسهل طريقة لقيتها!
وبما إني لما بكتب كود غالبا بيكون .net، فغالبا بيكون visual studio مع الagentic app.
--
أنا متصور الapps دي بتسمح بإني أعدل في الملفات بالفعل، بس حاسس إنهم مصعبينها، وأنا كسلت أدور وراها، فبقيت أشغل اللي أعرفه جنبهم!
@ahmd3ssam لا بالعكس، كانت عاملة زخم كبير الحمد لله لأن كانت عاملة حاجتين:
١. خوف الفقد FOMO
٢. اللي بيدخل كان بيحس إنه مميز، وده حقيقي، الناس كانت بتسأل رقمهم كام في اللي دخلوا!
@ahmd3ssam عشان احنا كنا تقريبا عاملين اللي أنت بتقول عليه ده 😅
كنا عاملين "قبيلة" والدخول ليها في البداية كان بدعوة فقط وبنراجع طلبات الدخول، وكان بلينكدإن فقط، وبعدين تخففنا من الحاجات دي مع الوقت 😬
المؤلف له كتاب تاني فكرته لطيفة - بحسب ما أذكرها لأني قرأته من زمان - بيقول إن الوضع اللي أنت فيه، والوضع اللي كنت فيه، والوضع اللي عايز توصل له، كل واحد فيهم محتاج مهارات مختلفة، ولو دخلتهم في بعض غالبا هتغرق لقاع الهامور ومش هتوصل لحاجة.
اسم الكتاب
What get you here won't get you there.
#عزيزي_المبرمج،
هل سمعت عن "وثيقة الصياح"؟
.
ذات مرة جاءني شعور أن مديري يظن أننا لا نعمل بالكفاءة المطلوبة وأننا نستغرق الكثير من الوقت في إنجاز المهام، وكان أن احتدم بيننا أكثر من خلاف في هذه الفترة، فطلبت منه اجتماعا رسميا مدته ساعة، وكان أن افتتحت الاجتماع بهذا الاقتباس "لويليام إدوارد ديمينغ W. Edwards Deming":
"In God we trust; all others bring data"
إن كنت لا تعلم، فهذا هو الشعار الرسمي للولايات المتحدة الأمريكية: "بالله نثق"، وهو مكتوب على ظهر الدولار الأمريكي.
ومعنى الاقتباس، أن الأمور التي تأتي من الله، فإننا نقبلها كما هي، لكن أي شخص آخر يجب أن يقدم دليلا على أي كلام يقوله!
ثم قلت له: أنا أستطيع أن أثبت لك أني أكثر شخص ينجز في هذه الشركة، بالبيانات والأرقام!
لن أحكي ما تم في بقية الاجتماع، لكن ذكرت هذه القصة لأقدم لكم ما أسميه:
"وثيقة الصياح 😅 Brag document"
وهي التي اعتمدت عليها - بعد الله سبحانه وتعالى - في الحديث بهذه الثقة 😊
نعم الترجمة متصرفة كثيرا، وترجمتها الحرفية ربما تكون "وثيقة أو ملف الفخر"، لكن ترجمتها هكذا لتكون أقرب للتذكر 😅
بالطبع، لم أبتكر هذه الوثيقة إنما تعلمتها من "جوليا إيفانز Julia Evans"، من مقالتها هذه:
Get your work recognized: write a brag document
https://t.co/khlszUUdbn...
الذي أفعله بالضبط، أني مع كل إنجاز أو مرحلة نطلقها في الproduction، أسجل تاريخ هذا الإنجاز، وتفاصيله ومن شارك فيه من فريقي، وبعض التفاصيل الأخرى التي تساعدني في تتبع أنماط إنجاز الفريق، مثل كم مشكلة ظهرت بعد هذا الإصدار، وهل هو إطلاق جديد أم حل لمشكلة سابقة، وهكذا.
وأسجل فقط ما "أطلقناه بالفعل"، أما الأعمال التي هي قيد التطوير أو انتهينا من تطويرها فأسجلها في مكان آخر لتتبعها، فالتركيز هنا على النتائج وليس المخرجات.
.
لماذا "وثيقة الصياح" هذه مهمة؟
أنا بطبعي لا أحب التفاخر كثيرا، ولست ممن "يصيحون" كلما فعلوا شيئا تافها، أو حتى ضخما، بل أعتبر ذلك من صميم عملي الذي أتقاضى راتبي عليه. لكني صرت أحدث هذه الوثيقة باستمرار لأستخدمها عندما تدعو الحاجة، مثلما حدث في الموقف الذي صدرت به الجواب.
وهي مهمة جدا جدا في التقييمات التي تجريها الشركات للموظفين، والتي عادة تخضع لانحيازات إدراكية، مثل "تأثير الانطباع الأول"، أو تأثير "النجاح الأخير"، أو حتى للانحياز الشخصي من حب أو بغض المدير لك.
البيانات هي الحل!
وهذه أبسط شيء يمكنك فعله دون أن "تصيح" في الفراغ!
كنت أقرأ كتاب "الاقتصاد العجيب Freakonomics" من قريب، لعل الله ييسر وأكتب له مراجعة، وكان يتكلم عن فكرة أن علم الاقتصاد له تطبيقات واسعة في فهم الظواهر الاجتماعية، ولا يقتصر دوره على فهم الظواهر الاقتصادية فقط.
ومن المفاهيم التي تكلم عنها فكرة "عدم تماثل المعلومات Information Asymmetry" وأنه عندما توجد معاملة بين طرفين، يكون لدى طرف منها معلومات أكثر من الطرف الآخر، فإن هذه المعلومات تعطيه أفضلية.
من أمثلة ذلك التعامل مع الخبراء أو الباعة، فإنهم غالبا يعرفون أكثر منك عن الموضوع أو السلعة أو الخدمة التي تتكلمون أو تتفاوضون عليها. هذه المعرفة تجعلهم يحددون السعر كما يشاءون، وربما يستخدمون حيلا نفسية لإجبارك على الشراء سريعا.
كان الناس قديما يسألون في أكثر من مكان عن السعر مثلا قبل أن يقرروا أن الوقت قد حان للشراء، بعد أن يكون قد تقرر لديهم السعر المرجعي العادل، ويساومون بناء على المعلومات التي حصلوا عليها من سؤالهم المتكرر هذا. أو يعتمدون على الثقة أن هذا الخبير أو التاجر أمين. فهذه الأفكار تقلل تأثير "عدم تماثل المعلومات" لأن الطرفين صار لديهم معلومات أيضا.
ثم جاءت الإنترنت، وقللت تأثير هذه الفكرة أكثر فأكثر، فأنت تبحث عن أي شيء تريده أونلاين، وتقرأ مراجعات العملاء السابقين.
وجاءت المجموعات النقاشية المتخصصة في أمر ما، مثل مجموعات التليجرام الشهيرة لمالكي سيارات معينة، حيث يسأل الأعضاء عن الأعطال وقطع الغيار وتجاراب الاستخدام إلخ.
ومؤخرا ظهر الذكاء الاصطناعي بقوة ليقلل تأثير "عدم تماثل المعلومات" أكثر فأكثر، فأنا مثلا حصل معي أكثر من مرة أن حدث عطل في السيارة، فكنت أسأل الذكاء الاصطناعي عن المشكلة، وربما أصورها له، فيقول لي السبب، وكيفية إصلاحها، وما التخصص الذي يصلحها لك أكفأ، بل ونطاق السعر، وأسعار قطع الغيار الأصلية والتجارية، وأماكن الإصلاح القريبة مني!
لا أخفيكم سرا، هذا الموضوع مفيد جدا للأشخاص الذين لا يحبون المساومة في السعر، كما هو حالي، فأنا غالبا أرضى بأول سعر أسمعه، وأشتري من أول مكان أقابله!
فالحمد لله على نعمه 🤲
هذه قوة جبارة للزبائن أو المشترين، فكيف يستفيد منها مقدمو الخدمات أو البائعون؟
طالت مني المقالة جدا، ولذلك سأكتفي بترشيح كتاب آخر لدانيال بينك بعنوان "البيع طبيعة إنسانية To Sell Is Human"، الكتاب يتكلم عن هذه النقطة تحديدا، عدم تماثل المعلومات، وينطلق منها لعرض بقية أفكاره.
هذه ملاحظة كنت قد سجلتها أثناء قراءة الكتاب المُرشح، لعلها تحمسكم لقراءته:
"كتاب "كيف تبيع أي شيء لأي إنسان How to sell anything to anybody" يعتمد على عدم تناسق المعلومات بين البائع والمشتري، حيث يعلم البائع أكثر من المشتري، ولذلك سًمي عصر البيع آنذاك (حذر المشتري)، بينما الآن الوضع تغير، وصارت التقنيات الدنيئة التي يعلمها الكتاب عن البيع عفى عليها الزمن، إذ يمكن للمشتري أن يحصل على الكثير من المعلومات، ربما أكثر من البائع نفسه. ولذلك العصر الحالي هو عصر (حذر البائع). ومع ذلك، لا يخلو الكتاب من أشياء جيدة لازالت صالحة للتطبيق، مثل الاهتمام بجودة الخدمة."