برنامه LLM چیست؟
بیایید به طور گسترده ساده کنیم که چگونه به یک برنامه LLM پایان می دهیم. اول، یک دسته از داده ها برای آموزش یک LLM استفاده می شود. برای برنامه، برخی از منطق اطلاعات مفیدی را که در حال حاضر موجود است استخراج میکند، این اطلاعات زمان/کاربر خاص را به برخی از اعلان استاندارد به LLM گفتهشده اضافه میکند، که سپس فراخوانی میشود و مقداری خروجی تولید میکند. سپس این خروجی پردازش شده و به صورت یکپارچه در دید کاربر ادغام می شود.
ساخت یک برنامه LLM در OpenAI / GPT-4
در سمت مدل، امروزه تمام خشم بر روی GPT-4 و احتمالاً آموزش قریب الوقوع GPT-5 است که اندازه مدل را تا دو مرتبه دیگر افزایش می دهد. مدلهای خانواده GPT-N عمومی هستند و میتوانند درباره هر موضوع و اینچ نسبت به AGI استدلال کنند. این قدرتمند است زیرا سازندگان محصولات هوش مصنوعی میتوانند صرفاً به جنبه «کاربرد» فکر کنند بدون اینکه خود را به صنایع خاص یا موارد استفاده محدود کنند . مشکلات خاص برنامه صرفاً در موارد زیر خلاصه می شود: (1) فهمیدن اینکه چگونه LLM را برای تولید خروجی مطابق با برنامه مورد نظر (به عنوان مثال “ساخت سریع”)، (2) شناسایی اطلاعات مربوط به این فراخوانی خاص متقاعد کنیم. که باید به عنوان “زمینه” به اعلان اضافه شود و (3) خروجی را دوباره به برنامه پردازش کند. فراخوان واقعی LLM به سادگی به یک انتزاع API تبدیل می شود.
مشکلات مربوط به تکیه بر APIهای خارجی
اما برای اینکه یک مدل در همه چیز بهترین باشد ، باید به طور قابل توجهی بزرگتر از هر مدلی باشد که در چیزی بهترین است (هم از نظر تعداد پارامترها و هم از نظر مقدار داده های آموزش داده شده بر روی آن) و این مسائل کاربردی بسیاری را ایجاد می کند . به عنوان یک برنامه LLM، این باعث کاهش درآمد می شود (این APIها هزینه غیر جزئی دارند) و بدیهی است که تاخیر بیشتری نسبت به یک مدل کوچکتر و متمرکز خواهد داشت. سپس خطر وجودی وجود دارد – ساختن یک برنامه LLM با کنترل صفر بر نیمه LLM (که پتانسیل ساخت یک خندق فنی عمیق را فراهم می کند)، به خوبی می دانید که کسی می تواند مدلی ایجاد کند که کیفیت بالاتری را فقط در برنامه شما ایجاد کند.
تنظیم دقیق مدل ها در برنامه
این مسائل قبلاً شناخته شده اند – برای شرکت ها بیشتر و بیشتر رایج است که با GPT-N بوت استرپ می کنند اما سپس یک مدل خاص برنامه را از ابتدا آموزش می دهند (یا یک مدل منبع باز را تنظیم / تقطیر دقیق می کنند). این امر پیچیدگی را به خط لوله آموزشی اضافه می کند، اما کنترل بسیار بیشتری به شما می دهد. به عنوان مثال، ما در Codeium LLM را برای کد انجام میدهیم و همه مدلهای ما در داخل با ترکیبی از زبان طبیعی و دادههای مختص کد و مراحل آموزش آموزش داده میشوند. ما اکنون کنترل کاملی بر روی دادههای خود داریم، به این معنی که میتوانیم برای بهبود کیفیت پیشنهادات کد (مثلاً تضمین حضور کافی زبانهای کمیابتر در مجموعه آموزشی) و همچنین کارهایی که فکر میکنیم کار درستی هستند، انجام دهیم. که ممکن است شخصی مانند OpenAI از آن پیروی نکند (مثلاً حذف کد GPL و کپی لفت از داده های آموزشی).
شخصی سازی سطح کاربر و سازمان در سطح مدل
اما در اصل این پست – چرا در آنجا توقف کنیم؟ چرا سفارشی سازی مدل را در سطح برنامه متوقف کنید؟ چرا تمام راه را به سطح کاربر نمی روید؟
اگر بتوانید مدل خاص برنامه خود را با توجه به «نمونههای دادهای» که یک مشتری خاص دارد شخصیسازی کنید، مدلی ایجاد خواهید کرد که از نظر نظری بهترین مدل برای آن برنامه کاربردی برای آن کاربر است. بهتر از این نمی شود. برای کد، بسیاری از شرکتها در کاری که انجام میدهند، پیشروان صنعت هستند، کتابخانههای داخلی عظیمی از ابزارهای کمکی دارند و به قراردادهای خاص در میلیونها خط کد پایبند هستند. این می تواند مانند تنظیم دقیق، بازیابی، هر چیزی که باید در پایگاه کد کاربر شخصی سازی شود.
ممکن است کمی مبهمتر باشد که چرا دو کاربر با یک برنامه کاربردی ممکن است از این سود ببرند در مقایسه با اینکه چرا دو کاربر با برنامههای مختلف ممکن است از مرحله تنظیم دقیق موجود بهره ببرند. ما مقداری شهود خواهیم داشت که چرا گذر از این پیچیدگی اضافی همیشه بهتر از یک مدل عمومی با زمینه مناسب است و از فضای کد LLM به عنوان مثال استفاده می کنیم.
این به نحوه در نظر گرفتن قراردادها برای هر استنتاج استنباط خلاصه می شود – برای اینکه یک کد عمومی LLM به قراردادهای نحوی پایبند باشد یا از کتابخانه ها و ابزارهای موجود در پایگاه کد خاص استفاده کند، باید همه آن کد را به عنوان متن منتقل کنیم. اما LLM ها دارای طول زمینه محدودی هستند (مخصوصاً برای برنامه های کاربردی کم تأخیر مانند تکمیل خودکار کد)! فرض کنید که می خواهید برای تابع جدیدی که اضافه کرده اید یک تست واحد بنویسید. برای یک کد عمومی LLM، احتمالاً تابعی را که آزمایش میکنید بهعنوان زمینه میخواهید، اما در مورد آزمایشهای دیگر چطور میتوانید ببینید که آیا برخی از قراردادهای ساختار آزمایشی یا توابع کاربردی برای حفظ سازگاری پایگاه کد وجود دارد یا خیر؟ تفاوت های ظریف زیادی وجود دارد که تقریباً غیرممکن است نوشتن اکتشافی برای دانستن اینکه دقیقاً چه چیزی را وارد کنید. اما اگر مدل بر روی کد موجود شخصی سازی شده باشد؟ در این صورت نیازی نیست که زمینه فراخوانی را صرفاً برای پایبندی به پایگاه کد موجود بر روی قطعهها تلف کنید. شما تضمین میکنید که عملکردی عظیم را افزایش میدهید که هیچ مدل عمومی هرگز نمیتواند به آن برسد.
البته، پیچیدگیها در ایجاد زیرساخت آموزشی به گونهای که امنیت دادههای کاربر یا شرکت و نحوه اجرای استنتاج در بسیاری از انواع مختلف یک مدل را حفظ کند، ایجاد میشود. اما از دیدگاه خریدار، این جام مقدس ابزارسازی هوش مصنوعی است.
کدیوم برای سازمانی
در Codeium، ما شخصیسازی محلی را در پیشنهاد سازمانی خود ایجاد کردهایم ، و همراه با میزبانی کامل خود، این امکان را به شرکتها میدهد تا پیشرفتهترین جعبه ابزار شتاب کد مبتنی بر هوش مصنوعی را برای پایگاههای کد خود بدون از دست دادن چیزی در رابطه با امنیت کد داشته باشند. پایگاه کد شما و مدلهای آموزشدیده هرگز سرورهای on-prem یا VPC شما را ترک نمیکنند، با این وجود که شما انتخاب میکنید که مستقر شوید.