نویسنده (ها): ECEM KARAMAN
در ابتدا منتشر شده در به سمت هوش مصنوعیبشر
🔎 رمزگشایی خط لوله LLM – مرحله 1: پردازش ورودی و نشانه گذاری
🔹 از متن خام گرفته تا ورودی مدل آماده
در پست قبلی من ، من خط لوله LLM 8 مرحله ای، رمزگشایی چگونه مدل های بزرگ زبان (LLMS) زبان پردازش در پشت صحنه. حالا ، بیایید بزرگنمایی کنیم – از مرحله 1: پردازش ورودیبشر
در این پست ، من دقیقاً چگونگی تبدیل متن خام را به ورودی های عددی ساختاری که LLM ها می توانند درک کنند ، تبدیل می شود ، غواصی به تمیز کردن متن ، روش های نشانه گذاری ، رمزگذاری عددی و ساختار گپ می کنم. این مرحله غالباً نادیده گرفته می شود ، اما بسیار مهم است زیرا کیفیت رمزگذاری ورودی مستقیماً بر خروجی مدل تأثیر می گذارد.
🧩 1. تمیز کردن متن و عادی سازی (متن خام → متن از پیش پردازش شده)
هدف: ورودی کاربر خام → استاندارد ، متن تمیز برای نشان دادن دقیق.
📌 چرا تمیز کردن متن و عادی سازی؟
- متن ورودی خام → اغلب کثیف (علامت ، پوشش ، نگارشی ، ایموجی ها) → عادی سازی تضمین می شود ثباتبشر
- مرحله مقدماتی ضروری خطاهای توکن سازی را کاهش می دهد، اطمینان از عملکرد پایین دست بهتر.
- تجارت عادی سازی: مدل های GPT قالب بندی و Nuance (پیچیدگی بیشتر) را حفظ می کنند. BERT متن را به صورت تهاجمی تمیز می کند to نشانه های ساده تر ، کاهش ظرافت ، ایده آل برای کارهای ساخت یافته.
🔍 جزئیات فنی (پشت صحنه)
- عادی سازی یونیکد (NFKC/NFC) partors شخصیت ها را استاندارد می کند (é در مقابل é).
- تاشو مورد (پایین تر) → اندازه واژگان را کاهش می دهد ، نمایش را استاندارد می کند.
- عادی سازی فضای سفید faces فضاهای غیر ضروری ، زبانه ها ، استراحت خط را از بین می برد.
- عادی سازی نقطه گذاری (استفاده از نگارشی مداوم).
- دست زدن به انقباض (“نکن” → “انجام نده” یا بر اساس الزامات مدل دست نخورده نگه داشته شده است). GPT به طور معمول انقباضات را حفظ می کند ، مدل های مبتنی بر BERT ممکن است تقسیم شوند.
- دست زدن به شخصیت خاص (ایموجی ها ، لهجه ها ، نگارشی).
import unicodedata
import redef clean_text(text):
text = text.lower() # Lowercasing
text = unicodedata.normalize("NFKC", text) # Unicode normalization
text = re.sub(r"\\s+", " ", text).strip() # Remove extra spaces
return text
raw_text = "Hello! How’s it going? 😊"
cleaned_text = clean_text(raw_text)
print(cleaned_text) # hello! how’s it going?
🔡 2. توکن سازی (متن از پیش پردازش شده → نشانه ها)
هدف: متن خام → نشانه ها (زیر کلمات ، کلمات یا کاراکترها).
توکن سازی به طور مستقیم بر کیفیت و کارآیی مدل تأثیر می گذارد.
📌 چرا نشانه گذاری؟
- مدل متن خام را مستقیماً نمی خواند → باید به واحدهای گسسته تبدیل شود (توکن).
- توکن ها: واحد اساسی که شبکه های عصبی پردازش می کنند.
مثال: “جالب” [“interest”, “ing”]
🔍 پشت صحنه
نشانه گذاری شامل:
- نقشه برداری متن → نشانه ها بر اساس یک واژگان از پیش تعریف شده.
- فضای سفید و عادی سازی نگارشی (به عنوان مثال ، فضاها → نشانگرهای ویژه مانند
Ġ
). - تقسیم کلمات ناشناخته به زیرزمین های شناخته شده.
- متعادل کردن اندازه واژگان و راندمان محاسباتیبشر
- می تواند قطعی (قوانین ثابت) یا احتمالی (تقسیم بندی تطبیقی) باشد
🔹 انواع توکنار و تفاوتهای اصلی
✅ Subword Tokenization (BPE ، Wordpiece ، unigram) بیشتر در LLM های مدرن به دلیل راندمان و دقت متعادل متداول است.
انواع نشانه های فرعی:
- رمزگذاری جفت بایت (BPE): به طور تکراری جفت شخصیت های مکرر (مدل های GPT) را ادغام می کند.
- BPE سطح بایت: BPE ، اما در سطح بایت فعالیت می کند ، و امکان بهتر کردن متن غیر انگلیسی را فراهم می کند (GPT-4 ، LLAMA-2/3)
- کلمه: تقسیمات را بر اساس احتمال در آموزش Corpus (BERT) بهینه می کند.
- unigram: توکن های بعید به طور تکراری از بین می رود و یک مجموعه بهینه (T5 ، Llama) ایجاد می کند.
- جمله: متن خام را مستقیماً پشتیبانی می کند. Whitespace-Aware (Deepseek ، مدل های چند زبانه).
- GPT-4 وت GPT-5.5 استفاده کردن BPE – تعادل خوب اندازه و عملکرد واژگان.
- برخاستن کاربردهای کلمه – رویکرد زیرزمینی ساختاری تر ؛ دست زدن به کلمات ناشناخته کمی متفاوت.
📌 هسته انواع توکن ساز عمومی هستند ، اما مدل های خاص هوش مصنوعی ممکن است از نسخه های تنظیم شده خوبی از آنها استفاده کنند (به عنوان مثال BPE یک الگوریتم است که تصمیم می گیرد نحوه تقسیم متن را انتخاب کند ، اما مدل های GPT از نسخه سفارشی BPE استفاده می کنند). سفارشی سازی توکن ساز خاص بهینه عملکرد را بهینه می کند.
# GPT-2 (BPE) Example
from transformers import AutoTokenizer
tokenizer_gpt2 = AutoTokenizer.from_pretrained("gpt2")
tokens = tokenizer_gpt2.tokenize("Let's learn about LLMs!")
print(tokens)
# ['Let', "'s", 'Ġlearn', 'Ġabout', 'ĠLL', 'Ms', '!']
# Ġ prefix indicates whitespace preceding token
# OpenAI GPT-4 tokenizer example (via tiktoken library)
import tiktoken
encoding = tiktoken.encoding_for_model("gpt-4")
tokens = encoding.encode("Let's learn about LLMs!")
print(tokens) # Numeric IDs of tokens
print(encoding.decode(tokens)) # Decoded text
🔢 3. رمزگذاری عددی (Tokens → IDS Token)
هدف: نشانه ها را به شناسه های عددی منحصر به فرد تبدیل کنید.
- LLMS متن را مستقیماً پردازش نکنید – آنها روی شماره ها کار می کنند. → توکن ها هنوز واحدهای مبتنی بر متن هستند
- هر توکن دارای بازنمایی عدد صحیح منحصر به فرد در واژگان مدل.
- IDS Token (اعداد صحیح) عملیات و محاسبات تانسور کارآمد را در لایه های عصبی فعال کنید.
🔍 پشت صحنه
جداول جستجوی واژگان به طور کارآمد نقشه توکن → عدد صحیح منحصر به فرد (شناسه های توکن).
- اندازه واژگان محدودیت های مدل (استفاده از حافظه و عملکرد) را تعریف می کند (GPT-4: 50k tokens):
→واژگان کوچک: پارامترهای کمتری ، حافظه کمتری ، اما لکه های بیشتر.
→واژگان بزرگ: زمینه غنی تر ، دقت بالاتر ، اما افزایش هزینه محاسباتی.
- جداول جستجو نقشه های هش است: اجازه دادن زمان ثابت تبدیل نشانه به ID (O (1) پیچیدگی).
- نشانه های خاص (به عنوان مثال ،
[PAD]
با
با[CLS]
) شناسه های رزرو شده forment قالب ورودی استاندارد.
from transformers import AutoTokenizertokenizer = AutoTokenizer.from_pretrained("gpt2")
tokens = tokenizer.tokenize("LLMs decode text.")
print("Tokens:", tokens) # Tokens: ['LL', 'Ms', 'Ġdecode', 'Ġtext', '.']
token_ids = tokenizer.convert_tokens_to_ids(tokens)
print("Token IDs:", token_ids) # Token IDs: [28614, 12060, 35120, 1499, 13]
📜 4. قالب بندی ورودی برای LLMS (IDS Token → الگوهای چت)
هدف: ورودی توکن ساختار برای مدلهای مکالمه (چت چند چرخش)
- چرا: LLMS مانند GPT-4 ، CLAUDE ، LLAMA انتظار دارد که از ورودی ساخته شده در داخل باشد نقش (سیستم ، کاربر ، دستیار).
- پشت صحنه: مدل ها از قالب بندی خاص و نشانه های خاص استفاده می کنند – زمینه و نقش مکالمه را حفظ کنید.
🔍 پشت صحنه
الگوهای چت ارائه می دهند:
- شناسایی نقش: به وضوح دستورالعمل های سیستم ، ورودی های کاربر و پاسخ های دستیار را از هم جدا می کند.
- مدیریت متن: تاریخ مکالمه چند چرخش را حفظ می کند → انسجام بهتر پاسخ.
- ورودی ساختاری: هر پیام پیچیده شده با نشانه های خاص یا JSON ساختاری → به مدل کمک می کند تا ورودی ها را به وضوح تشخیص دهد.
- ابرداده (اختیاری): ممکن است شامل جدول زمانی ، برچسب های بلندگو یا شمارش نشانه ها در هر بلندگو (برای مدل های پیشرفته) باشد.
📐 5. رمزگذاری ورودی مدل (متن ساختاری → تانسور)
هدف: تبدیل شناسه های توکن عددی → آرایه های عددی ساختاری (تانسور)) GPUسازگاری محاسبات عصبی مبتنی بر.
✅ چرا تانسور؟
- شبکه های عصبی انتظار دارند آرایه های عددی (تانسور) با ابعاد یکنواخت (اندازه دسته ای × دنباله طول) ، لیست های ساده ای از اعداد صحیح نیست.
- شناسه های توکن به تنهایی = اعداد صحیح گسسته ؛ آرایه های تانسور ساختار و زمینه را اضافه می کنند (بالشتک ، ماسک).
- بالشتک مناسب ، کوتاه کردن ، دسته بندی → مستقیماً بر کارایی و عملکرد مدل تأثیر می گذارد.
🔍 جزئیات فنی (پشت صحنه)
- بالشتک: نشانه های خاص را اضافه می کند
[PAD]
به توالی های کوتاه تر → اشکال تانسور یکنواخت. - کوتاه کردن: نشانه های اضافی را از ورودی های طولانی حذف می کند → سازگاری با ویندوزهای زمینه ثابت را تضمین می کند (به عنوان مثال ، GPT-2: 1024 توکن).
- ماسک های توجه: تانسرهای باینری که نشانه های واقعی را متمایز می کنند (
1
) در مقابل نشانه های بالشتک (0
) → مانع از حضور در مدل های بالشتک در هنگام محاسبه می شود. - دسته بندی تانسور: چندین ورودی را در دسته ها ترکیب می کند – محاسبات موازی بهینه سازی شده در GPUبشر
🔍 غذای اصلی
✅ پردازش ورودی چیزی بیش از توکن سازی است – شامل آن است تمیز کردن متن ، نشانه گذاری ، رمزگذاری عددی ، ساختار گپ و قالب بندی ورودی مدل نهایی.
✅ Tokenizer Type → مدل های تجاری: BPE (GPT) ، Wordpiece (BERT) ، Unigram (Llama) – انتخاب بر اندازه واژگان ، سرعت ، پیچیدگی تأثیر می گذارد.
✅ مدل های مبتنی بر گپ به قالب بندی ساختاری متکی هستند (الگوهای گپ) → مستقیماً بر انسجام ، ارتباط ، جریان مکالمه تأثیر می گذارد.
✅ IDS Token → Tensors Critical: سازگاری عددی را برای پردازش عصبی کارآمد تضمین می کند.
📖 بعدی: مرحله 2 – پردازش شبکه عصبی
حالا که ما چگونه پوشش داده ایم متن خام به ورودی مدل ساختار یافته تبدیل می شود، پست بعدی چگونگی پردازش شبکه عصبی این ورودی را برای تولید معنی تجزیه کنید – پوشش تعبیه لایه ها ، مکانیسم های توجه و موارد دیگر.
اگر از این مقاله لذت بردید:
💻 من را بررسی کنید گیتوب برای پروژه ها ai/مولکول، امنیت سایبری و پایتون
🔗 با من ارتباط برقرار کنید وابسته به لینکدین برای گپ زدن در مورد همه چیز AI
💡 افکار؟ سوال؟ بیایید بحث کنیم! 🚀
منتشر شده از طریق به سمت هوش مصنوعی