خب، پس شما در مورد ساخت «یک هوش مصنوعی» کنجکاو هستید. نه به معنای هالیوودی که به وجود فکر میکند، بلکه از آن نوعی که میتوانید روی لپتاپ خود اجرا کنید و پیشبینی کند، مسائل را مرتب کند، شاید حتی کمی چت کند. این راهنما در مورد نحوه ساخت هوش مصنوعی روی رایانه ، تلاش من برای رساندن شما از هیچ به چیزی است که واقعاً به صورت محلی کار میکند . انتظار میانبرها، نظرات بیپرده و گاهی اوقات انحراف از مسیر را داشته باشید، زیرا بیایید واقعبین باشیم، سرهمبندی هرگز کار درستی نیست.
مقالاتی که شاید بعد از این مطلب دوست داشته باشید بخوانید:
🔗 نحوه ساخت یک مدل هوش مصنوعی: مراحل کامل توضیح داده شده است
تجزیه و تحلیل واضح از ایجاد مدل هوش مصنوعی از ابتدا تا انتها.
🔗 هوش مصنوعی نمادین چیست: هر آنچه که باید بدانید
اصول اولیه هوش مصنوعی نمادین، تاریخچه و کاربردهای امروزی آن را بیاموزید.
🔗 الزامات ذخیرهسازی دادهها برای هوش مصنوعی: آنچه شما نیاز دارید
نیازهای ذخیرهسازی برای سیستمهای هوش مصنوعی کارآمد و مقیاسپذیر را درک کنید.
حالا چرا خودتو اذیت کنی؟ 🧭
چون دوران «فقط آزمایشگاههایی در مقیاس گوگل میتوانند هوش مصنوعی انجام دهند» گذشته است. این روزها، با یک لپتاپ معمولی، برخی ابزارهای متنباز و سرسختی، میتوانید مدلهای کوچکی بسازید که ایمیلها را طبقهبندی کنند، متن را خلاصه کنند یا تصاویر را برچسبگذاری کنند. به هیچ مرکز دادهای نیاز نیست. فقط کافی است:
-
یک طرح،
-
یک چیدمان تمیز،
-
و هدفی که بتوانید بدون اینکه بخواهید دستگاه را از پنجره بیرون بیندازید، به آن برسید.
چه چیزی این را ارزشمند میکند؟ ✅
افرادی که میپرسند «چگونه یک هوش مصنوعی روی کامپیوتر خود بسازیم» معمولاً مدرک دکترا نمیخواهند. آنها چیزی میخواهند که واقعاً بتوانند آن را اجرا کنند. یک برنامه خوب چند نکته را در بر میگیرد:
-
از چیزهای کوچک شروع کنید : احساسات را طبقهبندی کنید، نه اینکه «اطلاعات را حل کنید».
-
تکرارپذیری :
condaیاvenvتا بتوانید فردا بدون وحشت از نو بسازید. -
صداقت سختافزاری : پردازندهها برای scikit-learn خوب هستند، پردازندههای گرافیکی برای شبکههای عمیق (اگر خوش شانس باشید) [2][3].
-
دادههای تمیز : بدون برچسبگذاری اشتباه و دادههای بیارزش؛ همیشه به دادههای آموزشی/معتبر/آزمایشی تقسیم میشوند.
-
معیارهایی که معنایی دارند : دقت، صحت، فراخوانی، F1. برای عدم تعادل، ROC-AUC/PR-AUC [1].
-
راهی برای اشتراکگذاری : یک API کوچک، رابط خط فرمان (CLI) یا یک برنامه آزمایشی.
-
ایمنی : بدون مجموعه دادههای مشکوک، بدون نشت اطلاعات خصوصی، خطرات را به وضوح ذکر کنید [4].
اگر این موارد را درست انجام دهید، حتی مدل «کوچک» شما هم واقعی خواهد بود.
نقشه راهی که ترسناک به نظر نرسد 🗺️
-
یک مشکل کوچک + یک معیار انتخاب کنید.
-
پایتون و چند کتابخانه کلیدی را نصب کنید.
-
یک محیط تمیز ایجاد کنید (بعداً از خودتان تشکر خواهید کرد).
-
مجموعه داده خود را بارگذاری کنید، به درستی تقسیم کنید.
-
یک خط پایه احمقانه اما صادقانه آموزش دهید.
-
فقط در صورتی که ارزش افزودهای ایجاد میکند، شبکه عصبی را امتحان کنید.
-
یک نسخه آزمایشی (دمو) را بستهبندی کنید.
-
یادداشت بردار، در آینده - از خودت تشکر خواهی کرد.
حداقل تجهیزات: بیش از حد پیچیده نکنید 🧰
-
پایتون : از python.org دریافت کنید.
-
محیط : کوندا یا
ونبا پیپ. -
نوتبوکها : ژوپیتر برای بازی.
-
ویرایشگر : VS Code، کاربرپسند و قدرتمند.
-
کتابخانههای اصلی
-
پانداس + نامپای (کار با دادهها)
-
سایکیت-لرن (یادگیری ماشین کلاسیک)
-
پایتورچ یا تنسورفلو (یادگیری عمیق، GPU ماده را میسازد) [2][3]
-
مبدلهای چهره در آغوشگیرنده، spaCy، OpenCV (پردازش زبان طبیعی + بینایی)
-
-
شتاب (اختیاری)
-
انویدیا → ساختهای CUDA [2]
-
AMD → ساختهای ROCm [2]
-
اپل → پایتورچ با بکاند فلزی (MPS) [2]
-
⚡ نکته فرعی: اگر اجازه دهید نصابهای رسمی دقیق راهاندازی را به شما بدهند، بیشتر «دردسرهای نصب» از بین میرود. کپی، پیست، تمام [2][3].
قاعده کلی: ابتدا با CPU شروع کنید، سپس با GPU بدوید.
انتخاب دسته گل: در برابر چیزهای براق مقاومت کنید 🧪
-
دادههای جدولی → scikit-learn. رگرسیون لجستیک، جنگلهای تصادفی، تقویت گرادیان.
-
متن یا تصاویر → PyTorch یا TensorFlow. برای متن، تنظیم دقیق یک Transformer کوچک یک مزیت بزرگ است.
-
شبیه چتبات →
llama.cppمیتواند LLM های کوچک را روی لپتاپها اجرا کند. انتظار جادو نداشته باشید، اما برای یادداشتبرداری و خلاصهنویسی جواب میدهد [5].
راه اندازی محیط پاک 🧼
# Conda way conda create -n localai python=3.11 conda activate localai # OR venv python -m venv .venv source .venv/bin/activate # Windows: .venv\Scripts\activate
سپس موارد ضروری را نصب کنید:
نصب pip در numpy pandas، scikit-learn، jupyter، نصب pip در torch، torchvision torchaudio # یا tensorflow، نصب pip در transformers، مجموعه دادههای transformers
(برای ساخت پردازندههای گرافیکی، جدای از شوخی، فقط از انتخابگر رسمی [2][3] استفاده کنید.)
اولین مدل کاربردی: کوچک نگهش دار 🏁
ابتدا خط پایه. CSV → ویژگیها + برچسبها → رگرسیون لجستیک.
از sklearn.linear_model وارد کردن LogisticRegression ... چاپ ("دقت:"، امتیاز دقت (y_test، preds)) چاپ (گزارش طبقه بندی (y_test، preds))
اگر این از حالت تصادفی بهتر عمل کرد، جشن بگیرید. قهوه یا کلوچه، انتخاب با شماست ☕.
برای کلاسهای نامتعادل، به جای دقت خام، منحنیهای دقت/فراخوانی + ROC/PR را تماشا کنید [1].
شبکههای عصبی (فقط اگر مفید باشند) 🧠
متن دارید و میخواهید دستهبندی احساسات انجام دهید؟ یک ترانسفورماتور کوچک از پیش آموزشدیده را تنظیم کنید. سریع، مرتب، دستگاه شما را خراب نمیکند.
از ترانسفورماتورها، AutoModelForSequenceClassification را وارد کنید ... train.train() print(trainer.evaluate())
نکته حرفهای: با نمونههای کوچک شروع کنید. اشکالزدایی روی ۱٪ دادهها ساعتها صرفهجویی میکند.
دادهها: اصول اولیهای که نمیتوانید از آنها بگذرید 📦
-
مجموعه دادههای عمومی: Kaggle، Hugging Face، مخازن دانشگاهی (بررسی مجوزها).
-
اخلاق: اطلاعات شخصی را پاک کنید، به حقوق احترام بگذارید.
-
تقسیمبندیها: آموزش، اعتبارسنجی، آزمایش. هرگز نگاه اجمالی نکنید.
-
برچسبها: ثبات و پایداری مهمتر از مدلهای فانتزی است.
بمب حقیقت: ۶۰٪ نتایج از برچسبهای تمیز حاصل میشوند، نه از جادوی معماری.
معیارهایی که شما را صادق نگه میدارد 🎯
-
طبقهبندی → دقت، صحت، فراخوانی، F1.
-
مجموعههای نامتعادل → ROC-AUC، PR-AUC اهمیت بیشتری دارند.
-
رگرسیون → MAE، RMSE، R².
-
بررسی واقعیت → بررسی چشمی چند خروجی؛ اعداد میتوانند دروغ بگویند.
مرجع مفید: راهنمای معیارهای scikit-learn [1].
نکات افزایش سرعت 🚀
-
انویدیا → ساخت CUDA در پایتورچ [2]
-
ایامدی → راکمیکر [2]
-
اپل → بخش مدیریت MPS [2]
-
TensorFlow → نصب رسمی GPU + تأیید [3] را دنبال کنید
اما قبل از اینکه حتی خط مبنای شما اجرا شود، بهینهسازی را انجام ندهید. این مثل این است که قبل از اینکه ماشین چرخ داشته باشد، رینگها را صیقل دهید.
مدلهای مولد محلی: بچه اژدهاها 🐉
-
زبان → LLM های کوانتیزه شده از طریق
llama.cpp[5]. برای یادداشتها یا نکات کد مناسب است، نه مکالمه عمیق. -
تصاویر → انواع انتشار پایدار وجود دارد؛ مجوزها را با دقت بخوانید.
گاهی اوقات یک Transformer که برای یک کار خاص تنظیم شده و به خوبی کار میکند، یک LLM حجیم را روی سختافزار کوچک شکست میدهد.
دموهای بستهبندی: بگذارید مردم کلیک کنند 🖥️
-
گرادیو → سادهترین رابط کاربری.
-
FastAPI → API تمیز.
-
فلاسک → اسکریپتهای سریع.
وارد کردن گرادیو به عنوان gr clf = pipeline("تحلیل احساسات") ... demo.launch()
وقتی مرورگرتان آن را نشان میدهد، حس جادویی دارد.
عادتهایی که سلامت روان را حفظ میکنند🧠
-
گیت برای کنترل نسخه.
-
MLflow یا دفترچه یادداشت برای ردیابی آزمایشها.
-
نسخهبندی دادهها با DVC یا هشها.
-
اگر دیگران نیاز به اجرای برنامههای شما دارند، از داکر استفاده کنید.
-
وابستگیها را پین کنید (
requirements.txt).
به من اعتماد کن، آینده - سپاسگزار خواهی بود.
عیبیابی: لحظات رایج «اه» 🧯
-
خطاهای نصب؟ فقط env را پاک کنید و دوباره بسازید.
-
GPU شناسایی نشد؟ عدم تطابق درایور، نسخهها را بررسی کنید [2][3].
-
مدل یاد نمیگیرد؟ نرخ یادگیری را پایین بیاورید، ساده کنید یا برچسبها را پاک کنید.
-
بیشبرازش؟ منظمسازی، حذف یا فقط دادههای بیشتر.
-
معیارهای خیلی خوبی دارید؟ شما مجموعه تست را لو دادید (این اتفاق بیشتر از آنچه فکر میکنید میافتد).
امنیت + مسئولیت پذیری 🛡️
-
نوار PII.
-
به مجوزها احترام بگذارید.
-
اولویت محلی = حریم خصوصی + کنترل، اما با محدودیتهای محاسباتی.
-
ریسکها (انصاف، ایمنی، انعطافپذیری و غیره) را مستند کنید [4].
جدول مقایسهای کاربردی 📊
| ابزار | بهترین برای | چرا از آن استفاده کنیم؟ |
|---|---|---|
| سایکیت-لرن | دادههای جدولی | بردهای سریع، API تمیز 🙂 |
| پایتورچ | شبکههای عمیق سفارشی | جامعهای انعطافپذیر و عظیم |
| تنسورفلو | خطوط لوله تولید | اکوسیستم + گزینههای سرو |
| ترانسفورماتورها | وظایف متنی | مدلهای از پیش آموزشدیده، محاسبات را ذخیره میکنند |
| اسپاسی | خطوط لوله NLP | قدرت صنعتی، عملگرا |
| گرادیو | نسخههای نمایشی/رابطهای کاربری | 1 فایل → UI |
| FastAPI | رابطهای برنامهنویسی کاربردی (API) | سرعت + اسناد خودکار |
| زمان اجرای ONNX | استفاده بین فریمورکی | قابل حمل + کارآمد |
| لاما.cpp | موسسات آموزش عالی کوچک محلی | کوانتیزاسیون سازگار با CPU [5] |
| داکر | اشتراکگذاری envها | «همه جا کار میکند» |
سه غواصی عمیقتر (در واقع از آن استفاده خواهید کرد) 🏊
-
مهندسی ویژگی برای جداول → نرمالسازی، وان-هات، مدلهای درختی را امتحان کنید، اعتبارسنجی متقابل [1].
-
یادگیری انتقالی برای متن → تنظیم دقیق ترانسفورماتورهای کوچک، حفظ طول توالی متوسط، F1 برای کلاسهای نادر [1].
-
بهینهسازی برای استنتاج محلی → کوانتیزه کردن، اکسپورت ONNX، توکنایزرهای کش.
تلههای کلاسیک 🪤
-
ساختن ساختمان خیلی بزرگ، خیلی زود.
-
نادیده گرفتن کیفیت دادهها.
-
نادیده گرفتن تقسیمبندی آزمون.
-
کدنویسی کورکورانه با کپی و پیست.
-
چیزی را مستند نمیکند.
حتی یک فایل README ساعتها بعد ذخیره میشود.
منابع آموزشی که ارزش وقت گذاشتن دارند 📚
-
اسناد رسمی (PyTorch، TensorFlow، scikit-learn، Transformers).
-
دوره فشرده گوگل ML، DeepLearning.AI.
-
اسناد OpenCV برای اصول اولیه بینایی.
-
راهنمای استفاده از spaCy برای خطوط لوله NLP.
ترفند کوچک برای نجات: نصبکنندههای رسمی که دستور نصب GPU شما را تولید میکنند، نجاتبخش هستند [2][3].
همه چیز را با هم جمع می کنم 🧩
-
هدف → دستهبندی تیکتهای پشتیبانی به ۳ نوع.
-
دادهها → خروجی CSV، ناشناس، تقسیمشده.
-
خط پایه → TF-IDF در scikit-learn + رگرسیون لجستیک.
-
ارتقا → تنظیم دقیق ترانسفورماتور در صورت توقف خط پایه.
-
نسخه آزمایشی → اپلیکیشن جعبه متن گرادیو.
-
ارسال → داکر + فایل راهنمای ترجمه.
-
تکرار → رفع خطاها، تغییر برچسب، تکرار.
-
حفاظت → ریسکهای سند [4].
به طرز کسل کننده ای موثر است.
دکتر 🎂
یادگیری نحوه ساخت هوش مصنوعی روی کامپیوتر = یک مشکل کوچک انتخاب کنید، یک خط پایه ایجاد کنید، فقط وقتی مفید است، آن را تشدید کنید و تنظیمات خود را قابل تکرار نگه دارید. این کار را دو بار انجام دهید و احساس شایستگی خواهید کرد. این کار را پنج بار انجام دهید و مردم شروع به درخواست کمک از شما خواهند کرد، که مخفیانه بخش سرگرم کننده آن است.
و بله، بعضی وقتها حس این را دارید که به یک تُستر شعر گفتن یاد بدهید. اشکالی ندارد. به ور رفتن با آن ادامه بدهید. 🔌📝
منابع
[1] scikit-learn — ارزیابی معیارها و مدل: لینک
[2] PyTorch — انتخابگر نصب محلی (CUDA/ROCm/Mac MPS): لینک
[3] TensorFlow — نصب + تأیید GPU: لینک
[4] NIST — چارچوب مدیریت ریسک هوش مصنوعی: لینک
[5] llama.cpp — مخزن LLM محلی: لینک