توکنسازی مولفه قدرتمند در قلب مدلهای زبانی بزرگ – بخش هفتم

توکنسازی مولفه قدرتمند در قلب مدلهای زبانی بزرگ – بخش هفتم
توکنسازی مرحلهای حیاتی است که در آن متن به واحدهای کوچکتر به نام توکن تقسیم میشود. این توکنها میتوانند کلمات، زیرکلمات یا کاراکترها باشند. شایان ذکر است که انتخاب سطح توکنسازی تاثیر قابل توجهی بر طراحی و عملکرد مدل دارد.
یکی از دلایل اصلی برای در نظر گرفتن استراتژیهای مختلف توکنسازی، مانند توکنسازی زیرکلمات، به اندازه واژگان مربوط میشود. واژگان بزرگ میتوانند نیاز به حافظه بیشتر و سرعت پردازش کندتر را به همراه داشته باشند، در حالی که واژگان کوچک ممکن است برای ثبت جزئیات زبان کافی نباشد. توکنسازی زیرکلمات تعادلی بین داشتن واژگان بیش از حد بزرگ و عدم ثبت جزئیات زبانی کافی ایجاد میکند. این روش شامل تقسیم کلمات به واحدهای کوچکتر و معنادار است. این روش به مدل اجازه میدهد کلمات ناشناخته را بهتر مدیریت کند، زیرا میتواند آنها را به زیرواحدهای شناختهشده تجزیه کند. برای مثال، کلمه “unbreakable” میتواند به un- break و able تقسیم شود که احتمالا در دادههای آموزشی در زمینههای دیگر ظاهر شدهاند.
توکنسازی زیرکلمات مشکل کلمات خارج از واژگان (OOV) را که در طول آموزش دیده نشدهاند و ممکن است در زمان استنتاج مشکل ایجاد کنند، کاهش میدهد. با تجزیه کلمات به زیرکلمات رایج، مدل میتواند کلمات نادیده را از این قطعات شناختهشده سرهم کند، که توانایی آن را برای تعمیم و درک ورودیهای جدید بهبود میبخشد. این رویکرد همچنین استفاده کارآمدتری از واژگان مدل را ممکن میسازد و به مدل اجازه میدهد با دادههای کمتر، بیشتر یاد بگیرد و تعداد پارامترهای موردنیاز برای آموزش را کاهش دهد. برای درک بهتر موضوع اجازه دهید مثالی از توکنسازی را بررسی کنیم. فرض کنید متن ورودی ما “پیشرفتهای اخیر در هوش مصنوعی قابل توجه بودهاند.” است. در این حالت، توکنها میتوانند بهصورت [“پیشرفت”, “های”, “اخیر”, “در”, “هوش”, “مصنوعی”, …] باشند.
اختصاص شناسه توکن
پس از توکنسازی اولیه، به هر توکن یکتا یک شناسه مشخص، که اغلب بهعنوان شناسه توکن شناخته میشود، اختصاص داده میشود. ابتدا، یک واژگان از توکنها ایجاد میشود. این واژگان اساسا فهرست یا دیکشنری است که هر توکن یکتا در آن فهرست شده است. سپس به هر توکن در واژگان یک شناسه عددی یکتا اختصاص داده میشود. این شناسهها معمولا اعداد متوالی هستند که از یک عدد خاص، اغلب ۰ یا ۱، شروع میشوند. در اینجا، توکنهای دادهشده [“پیشرفت”, “های”, “اخیر”, “در”, “هوش”, …] هستند. واژگان بهصورت {“پیشرفت”: ۰, “های”: ۱, “اخیر”: ۲, “در”: ۳, “هوش”: ۴, …} خواهد بود. در یادگیری ماشین، بهویژه در NLP، مدلها دادههای عددی را پردازش میکنند. با تبدیل توکنها به شناسههای یکتا، دادههای متنی به فرمت عددی تبدیل میشوند که میتوانند به شبکههای عصبی وارد شوند.
استفاده از شناسههای توکن
استفاده از شناسههای توکن بهجای متن واقعی، پردازش دادهها را کارآمدتر میکند. عملیات عددی معمولا در محیطهای محاسباتی سریعتر و بهینهتر هستند. با وجود این تبدیل به شناسههای عددی، معنای معنایی و نحوی موجود در متن اصلی حفظ میشود، که برای یادگیری و پیشبینی مدل حیاتی است.
ذخیرهسازی نگاشتهای شناسه توکن
نگاشتهای بین توکنها و شناسههای آنها در یک ساختار دادهای ذخیره میشوند که اغلب به آن مدل توکنساز یا فایل واژگان گفته میشود. این فایل در طول آموزش مدل و هنگام پردازش متن جدید برای پیشبینیها استفاده میشود. مدل توکنساز میتواند در فرمتهای مختلفی مانند JSON یا فایل باینری ذخیره شود، بسته به نیازها و چارچوب یا کتابخانهای که استفاده میشود. هنگامی که مدل زبانی بزرگ (LLM) متن را پردازش میکند، به این مدل توکنساز مراجعه میکند تا متن ورودی را به دنبالهای از شناسههای توکن تبدیل کند. سپس مدل از این دنبالهها برای وظایف آموزشی یا استنتاج استفاده میکند.
ذخیرهسازی مجموعه داده و سیستمهای مدیریت پایگاه داده (DBMS)
پس از پردازش، مجموعه داده در فرمتی ذخیره میشود که برای آموزش مدل مناسب باشد. طرح ذخیرهسازی معمولا شامل یک فرمت جدولی با فیلدهایی برای ویژگیهای مختلف متن (مانند محتوا، منبع و تاریخ) است. بیایید یک نمونه طرح و ایجاد جدول را بررسی کنیم:
- token_id (int): شناسه یکتا برای هر توکن
- token (varchar): توکن واقعی
- frequency (int): تعداد دفعات توکن در مجموعه داده (اختیاری اما برای تحلیل مفید است)
- document_id (int): شناسه ارجاعی که توکن را به سند یا منبع اصلی آن مرتبط میکند:
CREATE TABLE llm_token_data (
token_id bigint,
token text,
frequency bigint,
document_ids list,
PRIMARY KEY (token_id)
);
برای ذخیره این مجموعه دادههای بسیار بزرگ، باید از سیستمهای فایل توزیعشده یا پایگاههای داده استفاده شود، زیرا نیاز به ذخیرهسازی و پردازش توزیعشده دارند. اکنون که دادههای آموزشی مدل را جمعآوری و پردازش کردهایم، میتوانیم به مرحله پیشآموزش و تنظیم دقیق مدل برویم. این مرحله یک LLM قابلاستفاده برای کاربرد خاص فراهم میکند.
پیشآموزش و تنظیم دقیق مدل
فرآیندهای پیشآموزش و تنظیم دقیق در چرخه عمر LLMOps اساسی هستند. این مراحل برای آمادهسازی مدلها، بهویژه مدلهای مبتنی بر ترنسفورمر، برای درک و تولید زبان بهطور مؤثر حیاتی هستند.
پیشآموزش
بیایید فرآیند پیشآموزش جمله «پیشرفتهای اخیر در هوش مصنوعی» را برای یک مدل ترنسفورمر بررسی کنیم. این جمله ابتدا به توکنهای [“پیشرفت”, “های”, “اخیر”, “در”, “هوش”, …] تقسیم میشود و سپس به نگاشت واژگان که قبلاًایجاد کردیم اعمال میشود، یعنی {“پیشرفت”: ۰, “های”: ۱, “اخیر”: ۲, “در”: ۳, “هوش”: ۴, …}. هر توکن بر اساس نگاشت واژگان به شناسه مربوطه تبدیل میشود:
["پیشرفت", "های", "اخیر", "در", "هوش", ...] → [۰, ۱, ۲, ۳, ۴, ...]
در مدلهایی مانند لاما ۲، که معمولا از رویکرد خودرگرسیون برای مدلسازی زبان استفاده میکنند، فرآیند آموزش شامل پیشبینی توکن بعدی در یک دنباله بر اساس توکنهای قبلی است. برای مثال، با داشتن توکنهای [۰, ۱, ۲]، مدل سعی میکند «های» (شناسه ۱) را بهعنوان توکن بعدی پیشبینی کند. این فرآیند آموزشی مدل را تشویق میکند تا احتمالات دنبالههای توکن را یاد بگیرد و توزیع آماری ساختار و زمینه زبان را توسعه دهد. پیشبینیهای مدل با شناسههای واقعی مقایسه میشوند و یک مقدار خطا (loss) محاسبه میشود. این خطا میزان اشتباه مدل در پیشبینی را نشان میدهد. اگر مدل بهجای ۲ برای «اخیر»، عدد ۵ را پیشبینی کند، تابع خطا این اشتباه را ثبت میکند. مدل از این بازخورد برای تنظیم پارامترهای داخلی خود استفاده میکند و دقت پیشبینی خود را با گذشت زمان بهبود میبخشد.
تنظیم دقیق
در این سناریو، هدف ما تنظیم دقیق مدل لاما ۲ است که ابتدا با درک گستردهای از زبان آموزش دیده، تا در وظایف پرسش و پاسخ (Q&A) مرتبط با مقالات خبری تخصص پیدا کند. این تخصص شامل تقویت تواناییهای مدل در درک محتوای روزنامهنگاری و استدلال دقیق برای پاسخ به پرسوجوهای مبتنی بر مقالات خبری است. برای این منظور، مجموعه دادهای شامل مقالات خبری، سرمقالهها و قطعات روزنامهنگاری همراه با پرسشهای مربوط به آنها را جدا میکنیم. برای مثال، فرض کنید جملهای داریم: «رشد اقتصادی در سه ماهه گذشته به دلیل افزایش سرمایهگذاریهای صنعت فناوری بهطور پیوسته افزایش یافت.» در این مورد، جفت تنظیم دقیق پرسش و پاسخ میتواند به این صورت باشد:
- پرسش: «چه چیزی به رشد اقتصادی در سهماهه گذشته کمک کرد؟»
- پاسخ: «افزایش سرمایهگذاریهای صنعت فناوری».
این جفت به یک دنباله واحد ترکیب میشود: «چه چیزی به رشد اقتصادی در سهماهه گذشته کمک کرد؟ رشد اقتصادی در سهماهه گذشته بهطور پیوسته افزایش یافت به دلیل افزایش سرمایهگذاریهای صنعت فناوری.»
این جمله توکنسازی میشود:
["چه", "چیزی", "به", "رشد", "اقتصادی", "در", "سهماهه", "گذشته", "کمک", "کرد", "؟", "رشد", "اقتصادی", "در", "سهماهه", "گذشته", "بهطور", "پیوسته", "افزایش", "یافت", "به", "دلیل", "افزایش", "سرمایهگذاریهای", "صنعت", "فناوری", "."]
پس از توکنسازی، توکنها به واژگان شناسههای یکتا نگاشت میشوند: [۷, ۸, ۱, ۵, …]. این نگاشتهای شناسه یکتا بهجای متن واقعی توسط مدل استفاده میشوند تا محاسبات کارآمدتری انجام شود، بهجای انجام عملیات ریاضی روی رشتههای متنی. در پیشآموزش، این نگاشتها برای پیشبینی توکنهای بعدی در یک دنباله استفاده میشوند. محاسبات خطا اعمال میشوند تا پارامترهای LLM برای مورد استفاده پرسش و پاسخ خبری بهینهتر شوند.
پنجرههای کشویی (Sliding windows)
در فرآیند تنظیم دقیق یک مدل زبانی مانند لاما ۲، از تکنیک پنجره کشویی برای مدیریت دنبالههایی که از ظرفیت حداکثر پردازش توکن مدل فراتر میروند، استفاده میشود. این تکنیک برای اطمینان از مشارکت هر بخش از یک دنباله طولانی در آموزش مدل، بهویژه هنگام کار با دادههای متنی گسترده، ضروری است.
پیادهسازی تکنیک پنجره کشویی
فرآیند با تنظیم پارامترهای پنجره کشویی آغاز میشود. در سناریوی ما، اندازه پنجره برای پذیرش حداکثر ۱۰ توکن در هر زمان تنظیم شده است. همچنین، اندازه جابجایی ۵ توکن تعیین میشود که گام حرکت پنجره در طول دنباله را مشخص میکند.
برای دنباله دادهشده: [“چه”, “چیزی”, “به”, “رشد”, “اقتصادی”, “در”, “سهماهه”, “گذشته”, “کمک”, “کرد”, “؟”, “رشد”, “اقتصادی”, “در”, “سهماهه”, “گذشته”, “بهطور”, “پیوسته”, “افزایش”, “یافت”, “به”, “دلیل”, “افزایش”, “سرمایهگذاریهای”, “صنعت”, “فناوری”, “.”]، پنجره اول ۱۰ توکن اولیه را در بر میگیرد: [“چه”, “چیزی”, “به”, “رشد”, “اقتصادی”, “در”, “سهماهه”, “گذشته”, “کمک”, “کرد”].
این پنجره یک قطعه زمینهای برای یادگیری مدل فراهم میکند. پس از پردازش پنجره اول، پنجره بهاندازه ۵ توکن به جلو جابجا میشود. این جابجایی توکن شروع پنجره بعدی را به «رشد» تغییر میدهد، تمرکز متن در حال پردازش را تغییر میدهد و اطمینان میدهد که بخشهای مختلف دنباله آموخته شوند. این فرآیند با پنجره دوم که توکنها را از «رشد» تا «بهطور» پوشش میدهد، ادامه مییابد و به همین ترتیب پیش میرود. هر جابجایی پنجره را ۵ توکن به جلو میبرد و به مدل اجازه میدهد بخشهای همپوشانی دنباله را بهصورت متوالی پردازش کند. این همپوشانی برای تداوم یادگیری حیاتی است و درک منسجمتری از متن به مدل ارائه میدهد. پنجره نهایی ممکن است بسته به توکنهای باقیمانده، اندازه متفاوتی داشته باشد. در مواردی که کمتر از ۱۰ توکن باقی مانده باشد، پنجره بهطور ساده همه توکنهای باقیمانده را شامل میشود، مانند [“به”, “افزایش”, “سرمایهگذاریهای”, “صنعت”, “فناوری”, “.”]. این امر تضمین میکند که حتی پایان دنباله نیز در آموزش مدل مشارکت کند.
جزئیات پنجره کشویی
انتخاب اندازه پنجرههای کشویی تصمیمی ظریف است که تحت تأثیر عواملی مانند محدودیتهای معماری مدل، نوع وظیفه در دست، و منابع محاسباتی موجود قرار میگیرد. برای مثال، در مدلهایی مانند BERT که ظرفیت حداکثر ۵۱۲ توکن دارند، اندازه پنجره برای تنظیم دقیق اغلب توسط این محدودیت تعیین میشود. با این حال، در کاربردهای عملی، معمولا اندازههای کوچکتر برای کارایی انتخاب میشوند، که معمولاً بین ۱۲۸ تا ۱۲۹ توکن برای وظایفی که نیاز به تحلیل زبانی دقیق دارند، مناسب هستند. این اندازهها برای ارائه درک عمیق زمینهای بدون فشار بیش از حد به منابع محاسباتی کافی هستند.
در مقابل، برای وظایفی که نیاز به زمینهای گستردهتر دارند، مانند خلاصهسازی اسناد یا پاسخ به سوالات پیچیده که بخشهای بزرگتری از متن را در بر میگیرند، اندازههای پنجره ممکن است به حد بالای، مانند ۳۸۴ یا حتی ۵۱۲ توکن کامل، نزدیک شود. این پنجره بزرگتر به مدل اجازه میدهد زمینهای گستردهتر را در بر بگیرد، که برای درک و تولید پاسخها یا خلاصههای منسجم در چنین وظایفی حیاتی است.
اندازه جابجایی، یا گامی که پنجره در متن حرکت میکند، عامل مهم دیگری است. معمولا این مقدار به کسری از اندازه پنجره، اغلب بین 30 تا ۷۵ درصد، تنظیم میشود تا همپوشانی قابلتوجهی در بخشهای متنی تحلیلشده ایجاد شود. برای مثال، یک پنجره ۱۲ با اندازه جابجایی حدود ۱۲ تا ۱۲۹ توکن ممکن است استفاده شود تا تداوم در مواجهه مدل با متن فراهم شود.
انتخاب اندازه پنجره همچنین نیاز به زمینه را در برابر کارایی محاسباتی متعادل میکند. پنجرههای بزرگتر، هرچند از نظر زمینهای غنی هستند، به قدرت محاسباتی بیشتری نیاز دارند و میتوانند زمان آموزش را افزایش دهند. بنابراین، تعادل استراتژیک اغلب در تنظیم دقیق، که بیشتر مختص وظیفه است تا پیشآموزش، جستجو میشود.
برای مثال، در تنظیم دقیق یک مدل برای وظایف در سطح جمله، پنجرههای کوچکتر که یک یا دو جمله را در بر میگیرند ممکن است ترجیح داده شوند، در حالی که تحلیل در سطح پاراگراف ممکن است به پنجرههای بزرگتر نیاز داشته باشد که چندین جمله یا یک پاراگراف کامل را شامل شوند. اکنون که یک LLM آموزشدیده داریم، میتوانیم به مدیریت و بررسی مدل برویم. این موارد عوامل مهمی در تعیین اینکه آیا یک مدل میتواند در یک محیط تولید مستقر شود یا خیر هستند.