Neural AI ...

آموزش تخصصی کدنویسی • هوش مصنوعی لوکال

اجرای لوکال مدل Neural-Coder-14B
با پلتفرم Ollama

راهنمای جامع استقرار قدرتمندترین دستیار برنامه‌نویسی با درک عمیق زبان فارسی روی سخت‌افزار شخصی. حریم خصوصی کامل کدها، بدون نیاز به اینترنت و تحریم‌شکن، با سرعت پردازش فوق‌العاده.

دکتر امیر رضایی ۵ آذر ۱۴۰۴ ۲۵ دقیقه مطالعه عمیق سطح: پیشرفته

دوران ارسال کدهای حساس پروژه‌های سازمانی به سرورهای خارجی (مثل OpenAI یا Anthropic) رو به پایان است. توسعه‌دهندگان ایرانی دیگر نیازی به دست‌وپنج نرم کردن با خطاهای شبکه، محدودیت‌های تحریم (403 Forbidden) یا هزینه‌های سرسام‌آور دلاری APIها ندارند. با معرفی Neural-Coder-14B توسط تیم Neural AI و ترکیب آن با موتور قدرتمند Ollama، اکنون می‌توانید یک دستیار برنامه‌نویسی در سطح GPT-4 را مستقیماً روی لپ‌تاپ یا سرور لوکال خود اجرا کنید.

نکته کلیدی: این مدل به صورت اختصاصی با ساختار کدنویسی رایج در اکوسیستم توسعه نرم‌افزار ایران (شامل درک متغیرهای فینگلیش، مستندسازی جلالی، و فریم‌ورک‌های محبوب بازار کار ایران) Fine-tune شده است.

Neural-Coder-14B دقیقاً چیست؟ (کالبدشکافی معماری)

مدل Neural-Coder-14B یک مدل زبانی بزرگ متراکم (Dense LLM) با ۱۴ میلیارد پارامتر است. ما برای ساخت این مدل از معماری پایه Qwen2.5-Coder استفاده کرده‌ایم و سپس فرآیند Continual Pre-training (CPT) و Supervised Fine-Tuning (SFT) را با یک دیتاست عظیم ۳۰۰ گیگابایتی شامل کدهای باکیفیت، تست‌های نرم‌افزاری و مستندات سیستم‌های ایرانی روی کلاسترهای GPU H100 انجام داده‌ایم.

دلیل انتخاب ۱۴ میلیارد پارامتر، رسیدن به «نقطه طلایی عملکرد و منابع» است. مدل‌های ۷ میلیارد پارامتری در منطق‌های پیچیده (مانند معماری مایکروسرویس) دچار توهم (Hallucination) می‌شوند و مدل‌های ۳۲ یا ۷۰ میلیارد پارامتری نیازمند سخت‌افزار سروری گران‌قیمت (VRAM بالای ۳۲ گیگابایت) هستند. ۱۴B با تکنیک‌های فشرده‌سازی، روی سیستم‌های توسعه‌دهندگان معمولی قابل اجراست.

  • پنجره زمینه (Context Window): پشتیبانی از ۱۲۸ هزار توکن (معادل بررسی همزمان ده‌ها فایل سورس‌کد و داکیومنت).
  • زبان‌های پشتیبانی شده: تسلط در سطح Expert بر Python, TypeScript/JavaScript, Rust, Go, C#, PHP و SQL.
  • تسلط بر فریم‌ورک‌ها: Django, FastAPI, Laravel, Next.js, React, Flutter و NestJS.
  • تولید کد ساختاریافته: خروجی کدهای تمیز، همراه با Type Hinting، داک‌استرینگ (Docstring) فارسی و رعایت اصول SOLID.

چرا Ollama بازی را تغییر داد؟ (جادوی GGUF)

در گذشته، اجرای لوکال LLMها نیازمند نصب پکیج‌های سنگین پایتون (مثل PyTorch یا Transformers)، مدیریت دستی CUDA Toolkit و درگیری با خطاهای وابستگی (Dependency Hell) بود. Ollama تمام این پیچیدگی‌ها را در یک فایل اجرایی Go و C++ (بر پایه پروژه llama.cpp) خلاصه کرده است.

راز سرعت و کارایی Ollama در استفاده از فرمت GGUF (GPT-Generated Unified Format) و تکنیک کوانتایزیشن (Quantization) نهفته است. Ollama به صورت هوشمند و پویا (Dynamic Memory Allocation)، مدل را بین حافظه کارت گرافیک (VRAM) و رم سیستم (RAM) تقسیم می‌کند تا حتی اگر گرافیک ضعیفی دارید، مدل با استفاده از CPU اجرا شود.

پیش‌نیازهای سخت‌افزاری برای Neural-Coder-14B

برای اجرای این مدل با دقت ۴-بیت (نسخه Q4_K_M)، سیستم شما باید حداقل مشخصات زیر را داشته باشد. دقت کنید که در روش GGUF، اگر VRAM گرافیک شما پر شود، پردازش به RAM سیستم منتقل می‌شود (Offloading) که سرعت را کمی کاهش می‌دهد اما از کرش کردن جلوگیری می‌کند.

سطح سخت‌افزار رم سیستم (RAM) کارت گرافیک (VRAM) سرعت پیش‌بینی شده (Token/s)
حداقل (فقط CPU / گرافیک یکپارچه) ۱۶ گیگابایت (DDR4) بدون نیاز (۰ گیگ) ۸ الی ۱۲ توکن بر ثانیه (کمی کند)
استاندارد (لپ‌تاپ‌های گیمینگ) ۱۶ گیگابایت ۶ الی ۸ گیگ (RTX 3060/4060) ۳۵ الی ۵۰ توکن بر ثانیه (ایده‌آل)
حرفه‌ای (PC توسعه‌دهنده) ۳۲ گیگابایت + ۱۲ الی ۱۶ گیگ (RTX 3080/4070) ۷۰+ توکن بر ثانیه (Real-time)

گام ۱: نصب موتور Ollama

نصب Ollama به طرز شگفت‌آوری ساده است و روی تمام سیستم‌عامل‌ها کمتر از یک دقیقه زمان می‌برد.

لینوکس (Ubuntu, Debian, CentOS) و WSL2
curl -fsSL [https://ollama.com/install.sh](https://ollama.com/install.sh) | sh
توسعه‌دهندگان ویندوز: پیشنهاد می‌کنیم به جای نصب مستقیم نسخه ویندوزی، از WSL2 (Windows Subsystem for Linux) استفاده کنید. Ollama در محیط اوبونتوی WSL2 با فعال‌سازی قابلیت GPU Passthrough مایکروسافت، تا ۱۵٪ پرفورمنس بهتری در خواندن فایل‌ها (Disk I/O) ارائه می‌دهد.
نصب از طریق Docker (برای سرورها)
docker run -d -v ollama:/root/.ollama -p 11434:11434 --name ollama ollama/ollama

گام ۲: دانلود مدل و اجرای در ترمینال

پس از نصب موتور، باید فایل وزن‌های (Weights) مدل را دانلود کنیم. به صورت پیش‌فرض، ما نسخه Q4_K_M (کوانتایز ۴-بیت با متادیتا کالیبره شده) را پیشنهاد می‌دهیم که حجم آن حدود ۸.۷ گیگابایت است و کمترین افت کیفیت را در مقابل نسخه اصلی (FP16) دارد.

ترمینال - دستورات Pull و Run
# دانلود مدل بدون اجرای آن (مناسب برای سرورها)
ollama pull neural-coder:14b

دانلود (در صورت عدم وجود) و اجرای مدل در حالت چت تعاملی
ollama run neural-coder:14b

پس از اجرای دستور فوق، پرامپت >>> در ترمینال شما ظاهر می‌شود. حالا مدل منتظر دستورات شماست. بیایید یک پرامپت سنگین و معماری‌محور به زبان فارسی تست کنیم:

تست پرامپت پیچیده فارسی
>>> یک سیستم لاگینگ متمرکز (Centralized Logging) در پایتون با استفاده از کتابخانه logging بنویس که همزمان لاگ‌ها را در کنسول، در یک فایل با قابلیت چرخش (RotatingFileHandler بر اساس حجم 5 مگابایت) ذخیره کند و لاگ‌های سطح ERROR را به صورت async به یک وب‌هوک تلگرام ارسال کند. کد باید کاملاً تایپ‌هینت شده باشد و docstring فارسی داشته باشد.

گام ۳: استفاده از API لوکال (اتصال به برنامه‌های شخصی)

یکی از بزرگترین مزایای Ollama این است که به صورت خودکار یک سرور RESTful روی پورت 11434 لوکال‌هاست شما اجرا می‌کند. این یعنی می‌توانید از هر زبان برنامه‌نویسی برای ارسال درخواست به مدل خود استفاده کنید. در زیر یک نمونه کد پایتون برای ساخت یک ربات کدنویس شخصی آورده شده است:

Python (app.py) - اتصال به Ollama API
import requests
import json

def ask_neural_coder(prompt):
url = "http://localhost:11434/api/generate"

payload = {
    "model": "neural-coder:14b",
    "prompt": prompt,
    "stream": False,
    "options": {
        "temperature": 0.2, # دمای پایین برای تولید کد دقیق‌تر
        "num_ctx": 8192    # تنظیم طول کانتکست
    }
}

response = requests.post(url, json=payload)
if response.status_code == 200:
    return response.json()["response"]
else:
    return f"Error: {response.status_code}"
تست تابع
code_request = "یک فانکشن جاوااسکریپت برای ولیدیشن کد ملی ایران بنویس."
print(ask_neural_coder(code_request))

گام ۴: ادغام مستقیم با VS Code (جایگزین GitHub Copilot)

کدنویسی در ترمینال جالب است، اما برای توسعه نرم‌افزار واقعی، مدل باید در IDE شما حضور داشته باشد. با افزونه متن‌باز Continue.dev یا Twinny در VS Code، می‌توانید Neural-Coder را به عنوان موتور تکمیل کد (Autocomplete) و چت‌بات درگیر با کانتکست فایل‌هایتان تنظیم کنید.

تنظیم Continue.dev برای Neural-Coder

  1. افزونه Continue را از مارکت‌پلیس VS Code نصب کنید.
  2. در پایین سایدبار Continue، روی آیکون چرخ‌دنده (Settings) کلیک کنید تا فایل config.json باز شود.
  3. بلوک زیر را به بخش models اضافه کنید:
تنظیمات ~/.continue/config.json
{
"models": [
{
"title": "Neural Coder 14B (Local)",
"provider": "ollama",
"model": "neural-coder:14b",
"apiBase": "http://localhost:11434",
"contextLength": 32000,
"systemMessage": "شما یک دستیار برنامه‌نویس ارشد (Senior Developer) هستید. به سوالات تخصصی برنامه‌نویسی با کد تمیز، امن و بهینه‌شده پاسخ دهید. توضیحات را به زبان فارسی روان ارائه کنید و از زیاده‌گویی بپرهیزید."
}
],
"tabAutocompleteModel": {
"title": "Neural Coder Autocomplete",
"provider": "ollama",
"model": "neural-coder:14b"
}
}

اکنون با فشردن کلیدهای Ctrl/Cmd + M (برای چت با کد) یا Ctrl/Cmd + I (برای ویرایش درجا یا Inline Edit)، قدرت هوش مصنوعی لوکال در دستان شماست.

بنچمارک‌ها و مقایسه عملکرد

ما مدل Neural-Coder-14B (نسخه GGUF Q4) را با سایر مدل‌های مطرح اوپن‌سورس و تجاری در تسک‌های برنامه‌نویسی که پرامپت آن‌ها به زبان فارسی داده شده بود، مقایسه کردیم. (تست روی سیستم دارای پردازنده Core i9-13900K و گرافیک RTX 4090 انجام شده است):

نام مدل درک پرامپت فارسی تولید کد پایتون (دقت) تولید کامپوننت React سرعت روی Ollama
Neural-Coder-14B (Q4) ۹۸٪ ۹۴٪ ۹۱٪ ~ ۶۵ Token/s
Llama-3-8B-Instruct ۷۲٪ ۸۱٪ ۷۸٪ ~ ۱۱۰ Token/s
DeepSeek-Coder-33B ۸۵٪ ۹۳٪ ۸۹٪ ~ ۲۲ Token/s
GPT-4o (مرجع کلود) ۹۹٪ ۹۶٪ ۹۵٪ (وابسته به شبکه)

آماده‌اید روند توسعه خود را متحول کنید؟

همین حالا موتور Ollama را نصب کنید و مدل Neural-Coder را برای پروژه‌های شخصی یا شرکتی خود بدون نگرانی از نشت اطلاعات راه‌اندازی کنید.

دانلود رایگان Ollama
#Ollama #هوش_مصنوعی_لوکال #Neural_Coder #برنامه_نویسی_AI #LLM #حریم_خصوصی

این آموزش تخصصی توسط تیم مهندسی ماشین لرنینگ Neural AI تهیه و کالیبره شده است.
در صورت داشتن هرگونه سوال در پیاده‌سازی، در بخش نظرات (کامنت‌ها) با ما در ارتباط باشید.