پیاده‌سازی کد برای استفاده از Ollama از طریق Google Colab

در این آموزش، ما یک خط لوله تولید تقویت‌شده با بازیابی (RAG) کاملاً کاربردی را با استفاده از ابزارهای متن‌باز که به طور یکپارچه در Google Colab اجرا می‌شوند، می‌سازیم. ابتدا، نحوه راه‌اندازی Ollama و استفاده از مدل‌ها از طریق Colab را بررسی خواهیم کرد. ادغام مدل زبانی بزرگ DeepSeek-R1 1.5B که از طریق Ollama ارائه می‌شود، سازماندهی مدولار LangChain و ذخیره‌سازی بردار ChromaDB با عملکرد بالا به کاربران امکان می‌دهد اطلاعات بی‌درنگ استخراج‌شده از PDFهای بارگذاری‌شده را جستجو کنند. با ترکیبی از استدلال مدل زبان محلی و بازیابی داده‌های واقعی از اسناد PDF، این خط لوله یک جایگزین قدرتمند، خصوصی و مقرون‌به‌صرفه را نشان می‌دهد.

ما از افزونه colab-xterm برای فعال کردن دسترسی ترمینال به طور مستقیم در محیط Colab استفاده می‌کنیم. با نصب آن با !pip install collab و بارگیری آن از طریق %load_ext colabxterm، کاربران می‌توانند یک پنجره ترمینال تعاملی را در داخل Colab باز کنند، که اجرای دستوراتی مانند llama serve یا نظارت بر فرآیندهای محلی را آسان‌تر می‌کند.

دستور جادویی %xterm پس از بارگیری افزونه collab برای راه‌اندازی یک پنجره ترمینال تعاملی در رابط نوت‌بوک Colab استفاده می‌شود. این به کاربران امکان می‌دهد دستورات شل را در زمان واقعی اجرا کنند، درست مانند یک ترمینال معمولی، و آن را به ویژه برای اجرای سرویس‌های پس‌زمینه مانند llama serve، مدیریت فایل‌ها یا رفع اشکال عملیات سطح سیستم بدون خروج از نوت‌بوک مفید می‌کند.

نصب Ollama در Colab
نصب Ollama در Colab

در اینجا، ما ollama را با استفاده از curl https://ollama.ai/install.sh | sh نصب می‌کنیم.

راه‌اندازی سرور Ollama
راه‌اندازی سرور Ollama

سپس، ما ollama را با استفاده از ollama serve راه‌اندازی می‌کنیم.

دانلود مدل DeepSeek-R1
دانلود DeepSeek-R1 1.5B
دانلود DeepSeek-R1 1.5B

در نهایت، ما DeepSeek-R1:1.5B را از طریق ollama به صورت محلی دانلود می‌کنیم که می‌توان از آن برای ساخت خط لوله RAG استفاده کرد.

برای راه‌اندازی اجزای اصلی خط لوله RAG، ما کتابخانه‌های ضروری از جمله langchain، langchain-community، sentence-transformers، chromadb و faiss-cpu را نصب می‌کنیم. این بسته‌ها پردازش سند، جاسازی، ذخیره‌سازی بردار و عملکردهای بازیابی مورد نیاز برای ساخت یک سیستم RAG محلی کارآمد و مدولار را فعال می‌کنند.

ما ماژول‌های کلیدی را از کتابخانه‌های langchain-community و langchain-ollama وارد می‌کنیم تا بارگیری PDF، تقسیم متن، تولید جاسازی، ذخیره‌سازی بردار با Chroma و ادغام LLM از طریق Ollama را مدیریت کنیم. همچنین شامل ابزار آپلود فایل Colab و قالب‌های اعلان است که یک جریان یکپارچه از دریافت سند تا پاسخگویی به پرسش با استفاده از یک مدل میزبانی شده محلی را فعال می‌کند.

برای اینکه کاربران بتوانند منابع دانش خود را اضافه کنند، ما با استفاده از google.colab.files.upload() یک آپلود PDF را درخواست می‌کنیم. این نوع فایل بارگذاری شده را تأیید می‌کند و بازخورد ارائه می‌دهد، و اطمینان می‌دهد که فقط PDFها برای جاسازی و بازیابی بیشتر پردازش می‌شوند.

برای استخراج محتوا از PDF بارگذاری شده، ما کتابخانه pypdf را نصب می‌کنیم و از PyPDFLoader از LangChain برای بارگیری سند استفاده می‌کنیم. این فرآیند هر صفحه از PDF را به یک قالب ساختاریافته تبدیل می‌کند و وظایف پایین‌دستی مانند تقسیم متن و جاسازی را فعال می‌کند.

PDF بارگذاری شده با استفاده از RecursiveCharacterTextSplitter به قطعات قابل مدیریت تقسیم می‌شود، به طوری که اندازه هر قطعه 1000 کاراکتر و همپوشانی 200 کاراکتر است. این امر از حفظ بهتر زمینه در بین قطعات اطمینان می‌دهد، که ارتباط قطعات بازیابی شده در طول پاسخگویی به سوالات را بهبود می‌بخشد.

قطعات متن با استفاده از مدل all-MiniLM-L6-v2 از sentence-transformers، که روی CPU اجرا می‌شود، برای فعال کردن جستجوی معنایی جاسازی می‌شوند. این جاسازی‌ها سپس در یک ذخیره‌سازی بردار ChromaDB پایدار ذخیره می‌شوند، که امکان بازیابی کارآمد مبتنی بر شباهت را در بین جلسات فراهم می‌کند.

خط لوله RAG با اتصال مدل DeepSeek-R1 محلی (از طریق OllamaLLM) با بازیاب مبتنی بر Chroma نهایی می‌شود. با استفاده از زنجیره RetrievalQA LangChain با یک استراتژی "stuff"، مدل 3 قطعه مرتبط‌ترین به یک پرس و جو را بازیابی می‌کند و پاسخ‌های آگاهانه به زمینه را تولید می‌کند، و راه‌اندازی RAG محلی را کامل می‌کند.

برای آزمایش خط لوله RAG، یک تابع query_rag یک سوال کاربر را می‌گیرد، زمینه مرتبط را با استفاده از بازیاب بازیابی می‌کند و یک پاسخ با استفاده از LLM تولید می‌کند. همچنین اسناد منبع برتر را نمایش می‌دهد و شفافیت و قابلیت ردیابی را برای پاسخ مدل فراهم می‌کند.

در نتیجه، این آموزش ollama، قدرت بازیابی ChromaDB، قابلیت‌های سازماندهی LangChain و توانایی‌های استدلال DeepSeek-R1 را از طریق Ollama ترکیب می‌کند. این نمایش ساخت یک سیستم RAG سبک وزن و در عین حال قدرتمند را نشان داد که به طور کارآمد در سطح رایگان Google Colab اجرا می‌شود. این راه حل به کاربران امکان می‌دهد سوالاتی را مطرح کنند که مبتنی بر محتوای به روز از اسناد بارگذاری شده است، با پاسخ‌هایی که از طریق یک LLM محلی تولید می‌شوند. این معماری یک پایه برای ساخت دستیارهای هوش مصنوعی مقیاس‌پذیر، قابل تنظیم و دوستدار حریم خصوصی بدون تحمیل هزینه‌های ابری یا به خطر انداختن عملکرد فراهم می‌کند.

اینجا نوت بوک Colab است. همچنین، فراموش نکنید که ما را در توییتر دنبال کنید و به کانال تلگرام و گروه لینکدین ما بپیوندید. فراموش نکنید که به 85k+ ML SubReddit ما بپیوندید.