نرم افزار، و چالش های برنامه نویسی ایجنتیک
ایجنت ها دارن یه عنوان شغلی جدید میسازن!

تا چند سال پیش اگه به یه برنامه نویس میگفتی بیا یه محصول بساز که متن رو بفهمه و خلاصه اش کنه، کد بنویسه خودشم با کاربرا چت کنه و جوابشونو بده، قطعا یه نگاه عاقل اندر سفیه بهت مینداخت و میگفت آقا بیا برو خدا شفات بده
الان همون کارو در یه نصف روز و یه API key و یه لیوان چایی میتونی انجام بدی.
ایده و تصاویر این پست رو از مقاله The Rise of the AI Engineer گرفتم که swyx سال ۲۰۲۳ توی Latent Space منتشرش کرد و به نظرم یکی از اولین جاهایی بود که یکی اومد و دقیق اسم گذاشت روی چیزی که داشت اتفاق میفتاد و من خودم اون موقع بنظرم داشت شر میگفت ولی الان که سه سال گذشته، دوباره چشمم بهش افتاد و دیدم پسر این مقاله چقدر دقیق تونسته آینده رو حدس بزنه!
یعنی دارم میگم که قبلا اگه میخواستی با هوش مصنوعی کار کنی، باید سمت ریسرچ میبودی و باید ریاضی و دو دو تا چارتا یاد میگرفتی و مقاله میخوندی و دیتا ملتو از کف نت جمع میکردی باهاش مدل train میکردی و خلاصه کلی دردسر داشت.
ولی وقتی مدل های بزرگ ( منظورم Foundation Models هست ) اومدن وسط، یه اتفاق جالب افتاد و یه سری شرکت با یه عالمه پول و GPU نشستن مدل رو ساختن و بعد اون مدل رو از طریق یه API دادن دست ما.
یعنی کاری که قبلا کار یه تیم ریسرچ بود، الان با یه API زپرتی قابل انجامه.
حالا کار عملی با هوش مصنوعی داره از سمت ریسرچ و آکادمی و لابراتور میاد سمت مهندسا و محصول و حالا هر چی بیشتر بیای سمت راست این تصویر که پایین گذاشتم، دیگه کمتر با train کردن مدل سر و کار داری و دیگه سرو کارت بیشتر با تولید کد و ساخت محصول و خروجی گرفتن از ال ال امه.

و اون آدمی که اون سمت راست وایمیسته و محصول میسازه، همون AI Engineer هست.
خب AI Engineer با ML Engineer چه فرقی داره؟
اینجا یه سوتفاهم بزرگ وجود داره و من روزی نیست که با یکی سر این موضوع بحثم نشه :)))
اون ML Engineer یا Research Engineer کسیه که با خود llm سر و کار داره و دیتا جمع میکنه و مدل رو train و fine tune میکنه میکنه و این داستانا.
ولی AI Engineer کسیه که مدل رو یه ابزار میبینه و میخواد باهاش یه چیزی بسازه که یه دردی رو دوا کنه و اصلا لازم نیست بدونه اون پشت دقیقا چه ریاضیاتی داره اتفاق میفته ولی خب باید خیلی خوب بدونه این مدل کجاها خوبه، کجاها خرابکاری میکنه و چطوری باید از مدل، حمال ساخت.
البته مرز این دوتا هم خیلی مشخص نیست و طبیعتا یه AI Engineer هم ممکنه کم کم بره سمت fine tune کردن و هاست کردن مدل خودش و ازونورم یه Research Engineer هم ممکنه بیاد روی API ها محصول بسازه ولی کلیت قضیه اینه که یکی داره خود مدل رو میسازه و اون یکی داره از مدل، حمال میسازه.
حالا به چند دلیل، این نقش AI Engineer هر روز داره پر رنگ تر میشه:
۱. مدل ها خیلی بیشتر از چیزی که سازنده هاشون فکر میکردن میتونن حمالی کنن. یعنی یه مدل رو برای یه کار ساختن ولی ملت دارن باهاش ده تا کار دیگه میکنن که ریسرچر ها در خوابشون هم نمیدیدن و هیچکس پیش بینیش رو نکرده بود. و اینم یعنی یه عالمه کاربرد کشف نشده وجود داره که یکی باید بیاد پیداشون کنه، و اون بیکاری هم که این کاربرد هارو پیدا میکنه معمولا یه ریسرچر نیست، و یه مهندسه که داره سوراخ دماغ مدل ور میره.
۲. تعداد آدمایی که واقعا بلدن LLM بسازن خیلی کمه و شاید چند هزار نفر در کل دنیا واقعا ازین داستان سر در میارن ولی تعداد برنامه نویس ها که ماشالا هزار ماشالا چند میلیون نفره پس اگه قرار باشه هوش مصنوعی واقعا بیاد توی محصولات، این کار از دست اون چند هزار نفر برنمیاد و این کار اون چند میلیون نفریه که کارشون حمالی کشیدن از مدله.
۳. GPU کمه و گرونه و شرکت ها به جای اینکه برن مدل خودشون رو train کنن، ترجیح میدن قابلیت مدل رو از یکی دیگه اجاره کنن. یعنی یه API میخرن و روش محصول میسازن و اینم باز یعنی تقاضا برای کسی که بلد باشه با این API ها کار کنه بالا میره.

یه زمانی Andrej Karpathy یه حرفی زد که بهش میگفتن Software 2.0. حرفشم این بود که به جای اینکه برنامه نویس بشینه خط به خط کد بنویسه، دیگه میاد میزنه تو سر مدل و مدل از روی دیتا یاد میگیره که چیکار کنه.
یعنی کد رو آدم ها نمینویسن، بلکه مدل هارو کتک میزنن تا سریع تر یاد میگیرن و خروجی درست و درمون از خودشون در کنن.
حالا با اومدن LLM ها یه قدم جلوتر رفتیم و بعضیا بهش میگن Software 3.0، جایی که واقعا زبان انگلیسی ( یا هر زبان دیگه ای ولی LLM ها انگلیسی رو از هر زبان دیگه بهتر میفهمن ) خودش تبدیل شده به یه زبان برنامه نویسی.
یعنی شما به مدل حالی میکنی که چیکار کنه و مدل واقعا انجامش میده.

این یعنی برنامه نویسی تموم شد؟؟
جوابش آره یا نه نیست! خود این سوال کاملا نامربوط هست!
به دنبال سوال اشتباه، هر جوابی اشتباهه و اگه شما میخوای به یک جواب درست برسی اول باید سوال درست رو بپرسی.
من بارها در پست هام گفتم که یه LLM به تنهایی فقط بلده متن تولید کنه و برای اینکه بتونی از ال ال ام خروجی بگیری، یه چیزی باید باید مدل رو به دیتابیس وصل کنه و ابزار بهش بده و خروجیش رو parse کنه و خطاهاشو هندل کنه و چندتا مدل رو کنار هم بچینه و کلی کار دیگه و همه اینا کده آقا! هارنس کد هست!
و یه آدم باید بنویسدش و وریفای کنه حالا اون آدم میتونه هارنس هم با LLM بنویسه ولی این یه لوپ بی پایان هست و بشر به یه حجم نامتناهی از کد و نرم افزار نیاز داره و الان نیاز به آدم هایی هست که بیان راهکار بدن که چطور میشه ازین LLM ها با هزینه کمتر، خروجی با کیفیت تر و بیشتری گرفت.

اگه دوست داری بدونی این لایه ای که دور مدل کشیده میشه دقیقا چیه، دیشب یه رایت آپ در مورد هارنس نوشتم، حتما بخونش.
یعنی Software 3.0 جایگزین Software 1.0 نشد، بلکه کنار هم نشستن دارن تخمه میشکونن و یه طرف پرامپت و مدل هست و یه طرف هارنسی که اون مدل رو کنترل میکنه و این وسط کسی که این دوتا رو به هم وصل میکنه، همون AI Engineer هست که گفتم.
کار AI Engineer آسونه؟ نخیر، و این AI Engineer هم این نیست که شما بری با مدل سلام علیک کنی و بگی برات کد بزنه بلکه خروجی با کیفیت و مقرون به صرفه گرفتن ازین مدل ها خودش یه کار فول تایم و پیچیده هست و نیاز به کلی آزمون و خطا و ساعت ها یادگیری و تحقیق داره.
اینکه یه API رو کال کنی و یه جواب بگیری که کاری نداره ولی اینکه بیای با کمک ال ال ام ها یه سیستمی بسازی که هر روز صد ها هزار تا آدم ازش استفاده کنن، داستانش کاملا فرق داره و یک چالش جدیدی هست و یه AI Engineer باید با همین چالش ها باید دست و پنجه نرم کنه:
۱. ارزیابی سیستم و اینکه از کجا میفهمی مدلت خوب کار میکنه؟ خروجی مدل رو چطور بنچمارک میکنی؟ از کجا میفهمی اگه هارنس رو تغییر دادی، کیفیت خروجی بهتر شد یا بدتر؟ این یکی از سخت ترین قسمت های کاره و هنوزم هیچکس جواب صد در صدی براش نداره و هیچ استانداردی هم براش نیست.
۲. انتخاب ابزار و تکنولوژی مناسب مثلا RAG بزنم؟ وکتور دیتابیس لازم دارم؟ ایجنت بسازم یا کار با یه workflow ساده در میاد؟ از کدوم مدل استفاده کنم؟
بعدشم هر روز یه ابزار جدید میاد و باید بدونی کدومش به درد کارت میخوره و کدومش فقط هایپه و اصلا خیلی از ابزار هارو یاد بگیری که فقط کارتو راه بندازه و یه ماه دیگه فراموشش کنی.
من قبلا یه رایت آپ هم راجع به ایجنت ها و تفاوتشون با workflow ها نوشتم که اگه نخوندی حتما بخون.
۳. به روز موندن هم خودش داستان هست و حجم مقاله ها و مدل ها و ابزار هایی که هر هفته منتشر میشن دیوونه کننده اس و اگه بخوای همه رو دنبال کنی عملا باید کار و زندگیتو ول کنی. باید یاد بگیری چیو دنبال کنی و چیو نادیده بگیری و چطور مطالب رو دست چین کنی.
آره خلاصه، خسته شدم دیگه جمع بندی هم حال ندارم بنویسم خودت هر نتیجه گیری ازین پست کردی، همون درسته آفرین بهت ماچ به کله ات