پردازش ورودی خط لوله LLM
پردازش ورودی خط لوله LLM

رمزگشایی خط لوله LLM - مرحله 1: پردازش ورودی و توکنایز کردن

از متن خام به ورودی آماده مدل

در پست قبلی، من خط لوله ۸ مرحله‌ای LLM را تشریح کردم، و توضیح دادم که چگونه مدل‌های زبانی بزرگ (LLM) زبان را در پشت صحنه پردازش می‌کنند. حالا، بیایید زوم کنیم - با مرحله ۱: پردازش ورودی شروع می‌کنیم.

در این پست، دقیقاً بررسی خواهم کرد که چگونه متن خام به ورودی‌های عددی ساختاریافته تبدیل می‌شود که LLMها می‌توانند بفهمند، و به بررسی پاکسازی متن، روش‌های توکنایز کردن، رمزگذاری عددی و ساختاربندی چت می‌پردازم. این مرحله اغلب نادیده گرفته می‌شود، اما بسیار مهم است زیرا کیفیت رمزگذاری ورودی مستقیماً بر خروجی مدل تأثیر می‌گذارد.

1. پاکسازی و نرمال‌سازی متن (متن خام → متن پیش پردازش شده)

هدف: ورودی خام کاربر → متن استاندارد و پاک برای توکنایز کردن دقیق.

چرا پاکسازی و نرمال‌سازی متن؟

  • متن ورودی خام → اغلب نامرتب (غلط املایی، حروف بزرگ و کوچک، علامت‌گذاری، ایموجی) → نرمال‌سازی سازگاری را تضمین می‌کند.
  • مرحله آماده‌سازی ضروری → کاهش خطاهای توکنایز کردن، تضمین عملکرد بهتر در پایین دست.
  • مبادله نرمال‌سازی: مدل‌های GPT قالب‌بندی و ظرافت را حفظ می‌کنند (پیچیدگی بیشتر توکن)؛ BERT به شدت متن را پاک می‌کند → توکن‌های ساده‌تر، ظرافت کمتر، ایده‌آل برای کارهای ساختاریافته.

جزئیات فنی (پشت صحنه)

  • نرمال‌سازی یونیکد (NFKC/NFC) → کاراکترها را استاندارد می‌کند (é در مقابل e´).
  • تا کردن حروف (تبدیل به حروف کوچک) → اندازه واژگان را کاهش می‌دهد، نمایش را استاندارد می‌کند.
  • نرمال‌سازی فضای خالی → فضاهای غیرضروری، تب‌ها، شکست خط را حذف می‌کند.
  • نرمال‌سازی علامت‌گذاری (استفاده از علامت‌گذاری سازگار).
  • رسیدگی به انقباض ("don’t" → "do not" یا بر اساس الزامات مدل دست نخورده نگه داشته می‌شود). GPT معمولاً انقباضات را حفظ می‌کند، مدل‌های مبتنی بر BERT ممکن است تقسیم شوند.
  • رسیدگی به کاراکترهای خاص (ایموجی‌ها، لهجه‌ها، علامت‌گذاری).

هدف: متن خام → توکن‌ها (زیرکلمات، کلمات یا کاراکترها).

توکنایز کردن مستقیماً بر کیفیت و کارایی مدل تأثیر می‌گذارد.

چرا توکنایز کردن؟

  • مدل‌ها نمی‌توانند متن خام را مستقیماً بخوانند → باید به واحدهای گسسته (توکن‌ها) تبدیل شوند.
  • توکن‌ها: واحد اساسی که شبکه‌های عصبی پردازش می‌کنند.
مثال: "interesting" → ["interest", "ing"]

پشت صحنه

توکنایز کردن شامل:

  • نگاشت متن → توکن‌ها بر اساس یک واژگان از پیش تعریف شده.
  • نرمال‌سازی فضای خالی و علامت‌گذاری (به عنوان مثال، فضاها → نشانگرهای ویژه مانند Ġ).
  • تقسیم کلمات ناشناخته به زیرکلمات شناخته شده.
  • متعادل کردن اندازه واژگان و کارایی محاسباتی.
  • می‌تواند قطعی (قوانین ثابت) یا احتمالی (تقسیم تطبیقی) باشد.

انواع توکنایزر و تفاوت‌های اصلی

انواع توکنایزر
انواع توکنایزر

توکنایز کردن زیرکلمه (BPE، WordPiece، Unigram) به دلیل کارایی و دقت متعادل، در LLMهای مدرن رایج‌تر است.

انواع توکنایزرهای زیرکلمه:

  • رمزگذاری جفت بایت (BPE): به طور مکرر جفت کاراکترهای مکرر را ادغام می‌کند (مدل‌های GPT).
  • BPE سطح بایت: BPE، اما در سطح بایت عمل می‌کند، و امکان توکنایز کردن بهتر متن غیر انگلیسی را فراهم می‌کند (GPT-4، LLaMA-2/3).
  • WordPiece: تقسیم‌ها را بر اساس احتمال در پیکره آموزشی بهینه می‌کند (BERT).
  • Unigram: توکن‌های غیرمحتمل را به طور مکرر حذف می‌کند، و یک مجموعه بهینه ایجاد می‌کند (T5، LLaMA).
  • SentencePiece: مستقیماً از متن خام پشتیبانی می‌کند؛ آگاه از فضای خالی (DeepSeek، مدل‌های چند زبانه).
مثال خروجی توکنایزر
توکنایزرهای مختلف، تقسیم‌های توکن مختلفی را بر اساس الگوریتم، اندازه واژگان و قوانین رمزگذاری تولید می‌کنند.
  • GPT-4 و GPT-3.5 از BPE استفاده می‌کنند - تعادل خوبی بین اندازه واژگان و عملکرد.
  • BERT از WordPiece استفاده می‌کند - رویکرد زیرکلمه ساختاریافته‌تر؛ رسیدگی کمی متفاوت به کلمات ناشناخته.

انواع اصلی توکنایزر عمومی هستند، اما مدل‌های هوش مصنوعی خاص ممکن است از نسخه‌های تنظیم شده آنها استفاده کنند (به عنوان مثال، BPE الگوریتمی است که تصمیم می‌گیرد چگونه متن را تقسیم کند، اما مدل‌های GPT از یک نسخه سفارشی از BPE استفاده می‌کنند). سفارشی‌سازی‌های توکنایزر خاص مدل، عملکرد را بهینه می‌کنند.

3. رمزگذاری عددی (توکن‌ها → شناسه‌های توکن)

هدف: تبدیل توکن‌ها به شناسه‌های عددی منحصر به فرد.

  • LLMها متن را مستقیماً پردازش نمی‌کنند - آنها روی اعداد عمل می‌کنند. → توکن‌ها هنوز واحدهای مبتنی بر متن هستند
  • هر توکن دارای یک نمایش عدد صحیح منحصر به فرد در واژگان مدل است.
  • شناسه‌های توکن (اعداد صحیح) عملیات تانسور کارآمد و محاسبات را در داخل لایه‌های عصبی فعال می‌کنند.

پشت صحنه

جداول جستجوی واژگان به طور کارآمد توکن‌ها را → اعداد صحیح منحصر به فرد (شناسه‌های توکن) نگاشت می‌کنند.

  • اندازه واژگان محدودیت‌های مدل را تعریف می‌کند (استفاده از حافظه و عملکرد) (GPT-4: ~50K توکن):

واژگان کوچک: پارامترهای کمتر، حافظه کمتر، اما تقسیم توکن بیشتر.

واژگان بزرگ: زمینه غنی‌تر، دقت بالاتر، اما افزایش هزینه محاسباتی.

  • جداول جستجو نقشه‌های هش هستند: امکان تبدیل توکن به ID زمان ثابت را فراهم می‌کنند (پیچیدگی O(1)).
  • توکن‌های ویژه (به عنوان مثال، [PAD]، <EOS>، [CLS]) دارای شناسه‌های رزرو شده هستند → فرمت ورودی استاندارد.

4. قالب‌بندی ورودی برای LLMها (شناسه‌های توکن → الگوهای چت)

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

  • چرا: LLMهایی مانند GPT-4، Claude، LLaMA انتظار دارند ورودی به نقش‌ها (سیستم، کاربر، دستیار) ساختار یابد.
  • پشت صحنه: مدل‌ها از قالب‌بندی خاص و توکن‌های ویژه استفاده می‌کنند → زمینه و نقش‌های مکالمه را حفظ می‌کنند.

پشت صحنه

الگوهای چت فراهم می‌کنند:

  • شناسایی نقش: به وضوح دستورالعمل‌های سیستم، ورودی‌های کاربر و پاسخ‌های دستیار را جدا می‌کند.
  • مدیریت زمینه: سابقه مکالمه چند نوبتی را حفظ می‌کند → انسجام پاسخ بهتر.
  • ورودی ساختاریافته: هر پیام با توکن‌های ویژه یا JSON ساختاریافته پیچیده شده است → به مدل کمک می‌کند ورودی‌ها را به وضوح تشخیص دهد.
  • فراداده (اختیاری): ممکن است شامل مهر زمانی، برچسب‌های گوینده یا تعداد توکن در هر گوینده باشد (برای مدل‌های پیشرفته).
مقایسه الگوهای چت
<strong>مقایسه الگوهای چت:</strong> سبک‌های مختلف مستقیماً بر تفسیر مدل از زمینه تأثیر می‌گذارند.

5. رمزگذاری ورودی مدل (متن ساختاریافته → تانسورها)

هدف: تبدیل شناسه‌های توکن عددی → آرایه‌های عددی ساختاریافته (تانسورها) برای سازگاری محاسبات عصبی مبتنی بر GPU.

چرا تانسورها؟

  • شبکه‌های عصبی انتظار دارند آرایه‌های عددی (تانسورها) با ابعاد یکنواخت (اندازه دسته‌ای × طول دنباله)، نه لیست‌های ساده از اعداد صحیح.
  • شناسه‌های توکن به تنهایی = اعداد صحیح گسسته؛ آرایه‌های تانسور ساختار و زمینه را اضافه می‌کنند (بالشتک‌گذاری، ماسک).
  • بالشتک‌گذاری مناسب، کوتاه کردن، دسته‌بندی → مستقیماً بر کارایی و عملکرد مدل تأثیر می‌گذارد.

جزئیات فنی (پشت صحنه)

  • بالشتک‌گذاری: توکن‌های ویژه [PAD] را به دنباله‌های کوتاه‌تر اضافه می‌کند → شکل‌های تانسور یکنواخت.
  • کوتاه کردن: توکن‌های اضافی را از ورودی‌های طولانی حذف می‌کند → سازگاری با پنجره‌های زمینه ثابت را تضمین می‌کند (به عنوان مثال، GPT-2: 1024 توکن).
  • ماسک‌های توجه: تانسورهای باینری که توکن‌های واقعی (1) در مقابل توکن‌های بالشتک‌گذاری (0) را متمایز می‌کنند → از توجه مدل به توکن‌های بالشتک‌گذاری در طول محاسبه جلوگیری می‌کند.
  • دسته‌بندی تانسور: چندین ورودی را در دسته‌ها ترکیب می‌کند → محاسبات موازی بهینه شده در GPU.

نکات کلیدی

پردازش ورودی چیزی بیش از توکنایز کردن است - شامل پاکسازی متن، توکنایز کردن، رمزگذاری عددی، ساختاربندی چت و قالب‌بندی نهایی ورودی مدل می‌شود.

نوع توکنایزر → مبادلات مدل: BPE (GPT)، WordPiece (BERT)، Unigram (LLaMA) - انتخاب بر اندازه واژگان، سرعت، پیچیدگی تأثیر می‌گذارد.

مدل‌های مبتنی بر چت به قالب‌بندی ساختاریافته متکی هستند (الگوهای چت) → مستقیماً بر انسجام، ارتباط، جریان مکالمه تأثیر می‌گذارد.

شناسه‌های توکن → تانسورها حیاتی: سازگاری عددی را برای پردازش عصبی کارآمد تضمین می‌کند.

بعدی: مرحله 2 - پردازش شبکه عصبی

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