هوش مصنوعی بدون تبلیغات: راهنمای یک مهندس عملی
مقدمهای عملی و واقعبینانه برای استفاده از LLM و ابزارهای ML در پروژههای واقعی، بدون بازاریابی یا تفکر جادویی.
بیشتر محتوای هوش مصنوعی آنلاین در دو دسته قرار میگیرد: ترس از ابرهوش، یا ادعاهای بیاساس که یک چتبات شغلت را تا سهشنبه جایگزین میکند. هیچ کدام کمکی برای انجام کار نیست. این راهنما هر دو را نادیده میگیرد و نحوه استفاده واقعی از نسل فعلی ابزارهای هوش مصنوعی در پروژههای واقعی را شرح میدهد، با محدودیتهای کاملاً مشخص.
LLM واقعاً چه کار میکند
یک مدل زبان بزرگ مانند GPT-4 یا Llama 3 توکن بعدی را در یک دنباله پیشبینی میکند، با آموزش روی مقدار زیادی متن. بس. هیچ بررسیکنندهی واقعی درونی وجود ندارد، هیچ حافظهی پایدار بین جلسات (مگر اینکه خودتان بسازید)، و هیچ درک در راه که یک انسان درک میکند. وقتی یک سؤال از آن میپرسید، یک ادامهی آماری محتمل برای درخواست شما تولید میکند.
این به صورت عملی اهمیت دارد: مدل با اعتماد کامل یک تابع Python تولید میکند که روش کتابخانهای را فراخوانی میکند که وجود ندارد، چون آن روش شبیه چیزی است که کتابخانه داشته باشد. همیشه کد را اجرا کنید. همیشه مرجع API را بررسی کنید. خروجی مدل را مثل یک طرح نخستین از یک کارآموز سریع و با دانش فراوان تعامل کنید که گاهی بدون اطلاع دروغ میگوید.
جریان کاری واقعی: استفاده از LLM برای کد
اینجا یک الگو است که کار میکند، به جای فقط خواستن از ChatGPT "برای من یک برنامه بساز":
- خود امضای تابع و docstring را بنویسید، نوعها و حالات حدی را مشخص کنید.
- از مدل بخواهید آن را برابر آن مشخصات دقیق پیادهسازی کند.
- تستهای خود را جدا بنویسید — از مدل نخواهید که برای کدی که هماکنون نوشت تست بنویسد، تمایل دارد تستهایی بنویسد که بیپایه موفق شوند.
- تستها را اجرا کنید. شکستها را به صورت prompt های جدید بازخوراست دهید، نه جملات مبهم "کار نمیکند".
def parse_duration(text: str) -> int:
"""
Parse strings like '1h30m', '45s', '2d' into total seconds.
Raise ValueError on invalid input.
"""
دادن این قرارداد دقیق به مدل خروجی بسیار بهتری تولید میکند تا یک توصیف سست، و چیز واقعیای را برای آزمایش میدهد.
Retrieval-augmented generation، به زبان ساده
RAG به عنوان یک لغت تبلیغاتی استفاده میشود اما مکانیسم ساده است: به جای تکیه بر آنچه مدل در طول آموزش حفظ کرد، اسناد مرتبط را در زمان query واکشی میکنید و آنها را در prompt میریزید.
یک راهاندازی پایه:
- اسناد خود را تقسیم کنید (500-1000 توکن برای هر قسمت یک نقطه شروع رایج است).
- هر قسمت را با مدلی مثل
text-embedding-3-smallیا مدلی باز مثلbge-small-enembed کنید. - بردارها را در چیزی مثل Postgres با
pgvectorیا فروشگاه اختصاصی مثل Qdrant ذخیره کنید. - در زمان query، سؤال کاربر را embed کنید، جستجوی شباهت اجرا کنید (cosine distance معیار است)، و بالاترین-k قسمت را به prompt کنار سؤال بکشید.
SELECT content FROM docs
ORDER BY embedding <=> '[0.012, -0.045, ...]'
LIMIT 5;
این است که چرا یک چتبات آموزش دادهشده روی دادههای تا تاریخ cutoff میتواند هنوز به سؤالات دربارهی wiki داخلی شما از هفتهی گذشته پاسخ دهد. دربارهی شرکت شما استدلال نمیکند — اسناد شما را میخواند و خلاصه میکند.
جایی که ML کلاسیک هنوز برنده است
هر مسئلهای به transformer نیاز ندارد. اگر churn را از دادههای جدولی ساختاریافته پیشبینی میکنید — سن حساب، فراوانی استفاده، تیکتهای پشتیبانی — یک مدل gradient-boosted tree مثل XGBoost یا LightGBM معمولاً بر روش مبتنی بر LLM غلبه میکند، در دقایق به جای ساعات آموزش میبیند، و کسری هزینه دارد. قبل از تماس API، RandomForestClassifier scikit-learn یا XGBoost را انتخاب کنید، به خصوص وقتی دادههای شما در یک صفحهگسترده متناسب است و متغیر هدف یک عدد یا دستهبندی تمیز است.
هزینه و latency محدودیتهای طراحی هستند، نه اندیشههای بعدی
یک فراخوانی GPT-4-class پول واقعی برای هر توکن هزینه میکند و ثانیههای واقعی برای بازگشت میگیرد. اگر یک ویژگی میسازید که برای هر بارگذاری صفحه برای هر کاربر اجرا شود، این سریع جمع میشود و latency قابلرویت خواهد بود. قویاً کش کنید، از یک مدل کوچکتر مثل GPT-4o-mini یا یک Llama 3 8B محلی برای هر چیز استفاده کنید که به استدلال بالاترین سطح نیاز ندارد، و فراخوانیهای مدل گران را برای بخشهایی از pipeline که کیفیت واقعاً اهمیت دارد رزرو کنید.
حالت شکست که کسی هشدار نمیدهد
مدلها بیشتر، نه کمتر، توهم میدیدند وقتی از شما درخواست چیزهایی کمی خارج توزیع آموزشیشان میکند — نسخههای کتابخانهی کمیاب، لغات تخصصی درونی شرکت، شمارههای CVE اخیر. اگر پاسخ باید دقیقاً درست باشد (یک هشدار امنیتی، یک استناد حقوقی، یک دوز پزشکی)، تنهایی generation را قبول نکنید. هر بار برابر منبع اصلی تایید کنید، و آن مرحلهی تایید را به جای تکیه بر بررسی انسانی بعد از واقعه، درون pipeline بگنجانید.
ابزارهای هوش مصنوعی واقعاً مفید هستند وقتی تمایل به انتظار از آنها برای تفکر را متوقف کنید و آنها را مثل یک pattern-matcher سریع تعامل کنید که باید بررسی کنید. مرحلهی تایید را از روز یکم بگنجانید و مقدار واقعیای از آن بدست میآورید به جای جریانی از ادعاهای اعتمادآلود و بیپایه.
اگر میخواهید بیشتر بروید، مسیر Python و Data Science Korra Studio را برای مبانیای که کار با این ابزارها را واقعاً مولد میکند بررسی کنید.
با کمک هوش مصنوعی نوشتهشده، بازبینی و منتشرشده توسط Michal Pilch (CISSP)، Korra Studio.
این یکی از یادداشتهای پایگاه دانش Korra Studio است — پلتفرم هر موضوع را با مربی یکبهیک جفت میکند.
شروع رایگانarrow_forward