This commit is contained in:
2026-10-04 18:11:59 +03:30
parent d7054eeb73
commit e673d11a68
103 changed files with 522651 additions and 149 deletions
+244
View File
@@ -0,0 +1,244 @@
<!DOCTYPE html>
<html lang="fa" dir="rtl">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>مستند فنی: اجرای مدل GGUF برای OCR چندزبانه با Ollama</title>
<style>
/* قالب ثابت مستندات */
body {
font-family: 'Tahoma', 'Segoe UI', Arial, sans-serif;
line-height: 1.8;
color: #333;
background-color: #f4f6f8;
margin: 0;
padding: 20px;
}
.container {
max-width: 900px;
margin: 0 auto;
background: #ffffff;
padding: 35px;
border-radius: 10px;
box-shadow: 0 6px 16px rgba(0,0,0,0.08);
}
.header {
border-bottom: 3px solid #2c3e50;
padding-bottom: 20px;
margin-bottom: 30px;
}
.header h1 {
color: #2c3e50;
margin: 0;
font-size: 26px;
font-weight: bold;
}
.meta-info {
display: flex;
flex-wrap: wrap;
gap: 15px;
margin-top: 20px;
font-size: 14px;
color: #444;
}
.meta-info span {
background: #e8ecef;
padding: 6px 14px;
border-radius: 6px;
font-weight: 500;
}
.section {
margin-bottom: 35px;
}
.section h2 {
color: #2980b9;
border-right: 5px solid #2980b9;
padding-right: 15px;
font-size: 22px;
margin-bottom: 20px;
}
.step {
background: #f8fbff;
border: 1px solid #d6e4f0;
border-radius: 8px;
padding: 20px;
margin-bottom: 20px;
transition: transform 0.2s;
}
.step:hover {
transform: translateY(-2px);
box-shadow: 0 4px 8px rgba(0,0,0,0.05);
}
.step h3 {
margin-top: 0;
color: #1a5276;
font-size: 18px;
}
code {
background: #2d3436;
color: #55efc4;
padding: 3px 8px;
border-radius: 5px;
font-family: 'Courier New', Courier, monospace;
font-size: 14px;
direction: ltr;
display: inline-block;
}
pre {
background: #2d3436;
color: #dfe6e9;
padding: 20px;
border-radius: 8px;
overflow-x: auto;
direction: ltr;
text-align: left;
font-size: 14px;
line-height: 1.5;
}
.footer {
margin-top: 50px;
padding-top: 25px;
border-top: 2px solid #eee;
text-align: center;
font-size: 13px;
color: #777;
}
.note {
background: #fff8e1;
border: 1px solid #ffecb3;
color: #856404;
padding: 15px;
border-radius: 8px;
margin: 20px 0;
border-right: 4px solid #ffc107;
}
ul, ol {
padding-right: 25px;
}
li {
margin-bottom: 8px;
}
</style>
</head>
<body>
<div class="container">
<!-- سربرگ مستند -->
<div class="header">
<h1>مستند فنی: معرفی و اجرای مدل GGUF برای OCR چندزبانه با Ollama</h1>
<div class="meta-info">
<span>توسعه‌دهنده: هادی خزاعی اصل</span>
<span>شرکت: فن آوران ساحر علم</span>
<span>تاریخ تدوین: شنبه، ۱۱ مهر ۱۴۰۵</span>
<span>نسخه مستند: 1.0.0</span>
</div>
</div>
<!-- بخش ۱: مقدمه -->
<div class="section">
<h2>۱. مقدمه و هدف</h2>
<p>این مستند با هدف راهنمایی گام‌به‌گام مهندسان و توسعه‌دهندگان برای انتخاب، دانلود و اجرای بهینه‌ترین مدل‌های بینایی-زبانی (Vision-Language) با فرمت GGUF جهت انجام عملیات OCR (بازشناسی نوری کاراکتر) روی اسناد چندزبانه با استفاده از ابزار Ollama تهیه شده است.</p>
</div>
<!-- بخش ۲: معرفی مدل‌ها -->
<div class="section">
<h2>۲. معرفی مدل‌های پیشنهادی</h2>
<p>بر اساس جست‌وجوهای تخصصی در پلتفرم Hugging Face، مدل‌های زیر بهترین عملکرد را برای OCR چندزبانه در قالب GGUF و با سازگاری کامل با Ollama ارائه می‌دهند:</p>
<div class="step">
<h3>گزینه اول (پیشنهاد ویژه): Qwen2.5-VL (نسخه 7B یا 3B)</h3>
<p>مدل Qwen2.5-VL قابلیت‌های OCR خود را به سطح جدیدی ارتقا داده و از پشتیبانی چندزبانه، چندسناریویی و تشخیص متن در جهت‌های مختلف برخوردار است [[34]]. این مدل توسط تیم Qwen در Alibaba Cloud توسعه یافته و سازگاری عالی با Ollama دارد [[30]].</p>
<ul>
<li><strong>حجم و کارایی:</strong> نسخه 3B برای سیستم‌های با منابع محدود و نسخه 7B برای دقت بالاتر در اسناد پیچیده پیشنهاد می‌شود.</li>
<li><strong>پشتیبانی زبانی:</strong> پشتیبانی ذاتی و قدرتمند از فارسی، انگلیسی، عربی، چینی و بیش از 30 زبان دیگر.</li>
</ul>
</div>
<div class="step">
<h3>گزینه دوم: DeepSeek-OCR (نسخه GGUF)</h3>
<p>این مدل به‌طور خاص برای انجام OCR با توکن‌های کارآمد طراحی شده و متن‌های چاپی و دست‌نویس را در زبان‌های اصلی شناسایی می‌کند [[1]]. نسخه GGUF این مدل (مانند <code>NexaAI/DeepSeek-OCR-GGUF</code>) برای استنتاج محلی بهینه‌سازی شده است [[4]].</p>
</div>
<div class="step">
<h3>گزینه سوم: Unlimited-OCR-GGUF</h3>
<p>یک مدل بینایی-زبانی 3 میلیارد پارامتری که بر پایه DeepSeek-OCR ساخته شده و عملکرد آن را در وظایف تخصصی OCR ارتقا می‌دهد [[2]].</p>
</div>
</div>
<!-- بخش ۳: پیش‌نیازها -->
<div class="section">
<h2>۳. پیش‌نیازهای سیستم</h2>
<ul>
<li>نصب بودن آخرین نسخه <strong>Ollama</strong> (نسخه 0.13.0 یا بالاتر برای پشتیبانی بهینه از مدل‌های بینایی پیشنهاد می‌شود) [[41]].</li>
<li>حداقل 8 گیگابایت رم (برای نسخه 3B) یا 16 گیگابایت رم (برای نسخه 7B).</li>
<li>اتصال پایدار به اینترنت برای دانلود اولیه وزن‌های مدل.</li>
</ul>
</div>
<!-- بخش ۴: راهنمای گام‌به‌گام -->
<div class="section">
<h2>۴. راهنمای گام‌به‌گام اجرا</h2>
<div class="step">
<h3>گام ۱: اجرای مستقیم مدل Qwen2.5-VL از طریق Ollama (ساده‌ترین روش)</h3>
<p>ترمینال یا خط فرمان خود را باز کرده و دستور زیر را اجرا کنید. این دستور به‌طور خودکار مدل را دانلود و محیط تعاملی را راه‌اندازی می‌کند:</p>
<pre><code>ollama run qwen2.5vl</code></pre>
<p>برای استفاده از نسخه سبک‌تر و سریع‌تر، می‌توانید از دستور <code>ollama run qwen2.5vl:3b</code> استفاده نمایید.</p>
</div>
<div class="step">
<h3>گام ۲: اجرای مدل‌های GGUF سفارشی از Hugging Face</h3>
<p>اگر می‌خواهید از نسخه‌های خاص کوانتایز شده (مانند <code>unsloth/Qwen2.5-VL-7B-Instruct-GGUF</code>) استفاده کنید، مراحل زیر را دنبال کنید:</p>
<ol>
<li>فایل مدل GGUF مورد نظر (مثلاً با کوانتایزیشن <code>Q4_K_M</code>) را از Hugging Face دانلود کنید.</li>
<li>در همان دایرکتوری، یک فایل متنی با نام <code>Modelfile</code> (بدون پسوند) ایجاد کنید.</li>
<li>محتوای فایل <code>Modelfile</code> را به صورت زیر تنظیم کنید:</li>
</ol>
<pre><code>FROM ./Qwen2.5-VL-7B-Instruct-Q4_K_M.gguf
TEMPLATE """{{ if .System }}&lt;|im_start|&gt;system
{{ .System }}&lt;|im_end|&gt;
{{ end }}&lt;|im_start|&gt;user
{{ .Prompt }}&lt;|im_end|&gt;
&lt;|im_start|&gt;assistant
"""
SYSTEM "شما یک دستیار هوشمند و متخصص در استخراج دقیق متن از تصاویر و اسناد چندزبانه هستید. فقط متن موجود در تصویر را بدون توضیح اضافی بازگردانید."
PARAMETER temperature 0.1
</code></pre>
<ol start="4">
<li>مدل سفارشی را در Ollama بسازید:</li>
</ol>
<pre><code>ollama create qwen2.5vl-ocr-custom -f Modelfile</code></pre>
<ol start="5">
<li>مدل ساخته شده را اجرا کنید:</li>
</ol>
<pre><code>ollama run qwen2.5vl-ocr-custom</code></pre>
</div>
<div class="step">
<h3>گام ۳: نحوه ارسال تصویر برای عملیات OCR</h3>
<p>پس از اجرای مدل در محیط تعاملی Ollama، می‌توانید مسیر محلی تصویر یا سند خود را وارد کرده و درخواست استخراج متن کنید. مثال:</p>
<pre><code>/path/to/your/document.jpg
لطفاً تمام متن موجود در این تصویر را به دقت استخراج کن و به زبان فارسی خروجی بده.</code></pre>
</div>
</div>
<!-- بخش ۵: نکات بهینه‌سازی -->
<div class="section">
<h2>۵. نکات بهینه‌سازی و عیب‌یابی</h2>
<div class="note">
<strong>نکته تخصصی:</strong> برای اسناد چندزبانه که شامل زبان فارسی هستند، مدل‌های سری Qwen-VL به دلیل آموزش گسترده روی داده‌های چندزبانه، عملکرد بسیار بهتری نسبت به مدل‌های اختصاصی OCR قدیمی دارند [[35]].
</div>
<ul>
<li><strong>کاهش مصرف حافظه:</strong> همواره از کوانتایزیشن‌های <code>Q4_K_M</code> یا <code>Q5_K_M</code> استفاده کنید که تعادل عالی بین دقت و سرعت ارائه می‌دهند.</li>
<li><strong>خطای Vision:</strong> اگر مدل تصویر را نخواند، مطمئن شوید که نسخه Ollama شما به‌روز است و از فرمت‌های تصویری استاندارد مانند JPG، PNG یا WebP استفاده می‌کنید.</li>
<li><strong>افزایش دقت خروجی:</strong> پارامتر <code>temperature</code> را در <code>Modelfile</code> روی مقادیر پایین (مانند 0.1 یا 0.2) تنظیم کنید تا مدل خلاقیت کمتر و وفاداری بیشتری به متن اصلی تصویر داشته باشد.</li>
</ul>
</div>
<!-- پاورقی -->
<div class="footer">
<p>تمامی حقوق مادی و معنوی این مستند متعلق به شرکت <strong>فن آوران ساحر علم</strong> می‌باشد.</p>
<p>توسعه و تدوین: <strong>هادی خزاعی اصل</strong> | تاریخ بازنگری: شنبه، ۱۱ مهر ۱۴۰۵</p>
</div>
</div>
</body>
</html>
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff