Files
xSaherelmWorkspace/Documents/Docs/Developer/OCR-LLMs.html
T
2026-10-04 18:11:59 +03:30

244 lines
13 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!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>