از Pista Academy حمایت کنید
خلاصه آموزشی
مرور سریع مفاهیم اصلی پیش از تماشای کامل یا برای جمعبندی بعد از آموزش.
در جلسه 6 آموزش Pista Academy، مدرس به بررسی فرآیند تبدیل فایل متنی به توکن در یک مدل زبانی میپردازد. ابتدا فایل متنی ایمپورت میشود و سپس با استفاده از کتابخانه SentencePiece به توکن تبدیل میگردد. این فرآیند شامل انکود کردن متن به آیدیهای عددی و ذخیرهسازی آن به صورت تنسور است. همچنین، این فرآیند به صورت یکباره انجام میشود تا در زمان اجرا سرعت کار افزایش یابد.
نکات کلیدی
فایل متنی ایمپورت شده و با استفاده از SentencePiece به توکن تبدیل میشود.
فرآیند تبدیل متن به توکن شامل انکود کردن به آیدیهای عددی و ذخیرهسازی به صورت تنسور است.
تبدیل متن به توکن به صورت یکباره انجام میشود تا سرعت اجرا افزایش یابد.
SentencePiece یک کتابخانه برای پردازش زبان طبیعی است که برای تبدیل متن به توکن استفاده میشود.
پرسشهای رایج
پاسخ کوتاه و مستقیم به پرسشهایی که معمولاً هنگام یادگیری این موضوع مطرح میشوند.
از کتابخانه SentencePiece برای تبدیل متن به توکن استفاده میشود.
فرآیند تبدیل متن به توکن شامل انکود کردن متن به آیدیهای عددی و ذخیرهسازی آن به صورت تنسور است.
این فرآیند به صورت یکباره انجام میشود تا در زمان اجرا سرعت کار افزایش یابد.
آخرین بهروزرسانی محتوای متنی:
آیا میخواهید واقعاً درک کنید که مدلهای زبانی بزرگ (Large Language Models) چگونه ساخته میشوند؟ در این دوره آموزشی، از سطح مفاهیم پایه شروع میکنیم و قدمبهقدم یک مدل زبانی بزرگ را از صفر با استفاده از PyTorch پیادهسازی میکنیم. هدف این دوره فقط استفاده از مدلهای آماده نیست؛ بلکه یاد میگیریم در پشت صحنه LLMها چه اتفاقی رخ میدهد و چگونه میتوان یک مدل زبانی را ساخت، آموزش داد، بهبود داد و برای کاربردهای واقعی آماده کرد. در طول این دوره، معماری داخلی مدلهای زبانی بزرگ، فرآیند آموزش، Alignment، Fine-Tuning و تکنیکهای مدرن بهینهسازی مدلها را بررسی خواهیم کرد. در این مسیر یاد میگیریم: 🔹 ساخت یک LLM کوچک از صفر و درک تمام مفاهیم کلیدی پشت آن 🔹 بررسی معماری Transformer و اجزای اصلی مدلهای زبانی 🔹 تحلیل عمیق نحوه عملکرد مدل با Visualizationهای پیشرفته 🔹 پیادهسازی و درک مفاهیم داخلی یک Advanced LLM 🔹 ساخت فرآیند Alignment از صفر و آشنایی با نحوه هماهنگسازی مدلها با اهداف انسانی 🔹 انجام Fine-Tuning مدلهای زبانی با استفاده از QLoRA 🔹 یادگیری تکنیکهای کاهش هزینه آموزش و بهینهسازی مدلها 🔹 بررسی ارتباط بین شبکههای عصبی، یادگیری ماشین و مدلهای مولد 🔹 توسعه درک عمیقتر از نحوه کارکرد مدلهای Generative AI سرفصلهای اصلی دوره: 📌 Coding a Small LLM from Scratch ساخت یک مدل زبانی کوچک و بررسی تمام مفاهیم پایه مورد نیاز 📌 Inside the AI Matrix Visualization و تحلیل عمیق ساختار داخلی LLMها 📌 Understanding Advanced LLMs بررسی معماری و مفاهیم پیشرفته مدلهای زبانی 📌 Building Alignment Process from Scratch درک فرآیند Alignment و نحوه آموزش مدل برای رفتار بهتر 📌 Fine-Tuning LLMs with QLoRA افزودن مهارتهای جدید به مدلهای زبانی با روشهای کمهزینه Fine-Tuning 📌 Origami + AI Learning بررسی ارتباط ایدههای یادگیری، شبکههای عصبی و هوش مصنوعی 📌 Activating the Generative Model of Your Own Mind نگاهی عمیقتر به مدلهای مولد و نحوه تفکر در مورد AI این دوره مناسب چه کسانی است؟ ✅ مهندسان یادگیری ماشین و هوش مصنوعی ✅ برنامهنویسان Python و PyTorch ✅ دانشجویان علاقهمند به Deep Learning ✅ افرادی که میخواهند از سطح استفادهکننده مدلهای AI به سطح سازنده مدل برسند ✅ کسانی که میخواهند درک عمیقی از ChatGPT، Llama و مدلهای مشابه داشته باشند پیشنیازهای پیشنهادی: آشنایی مقدماتی با Python آشنایی اولیه با Deep Learning آشنایی پایه با مفاهیم Neural Networks در این دوره، به جای اینکه فقط از LLMها استفاده کنیم، یاد میگیریم چگونه آنها را بسازیم، آموزش دهیم و شخصیسازی کنیم. 🎓 برای مشاهده کامل این دوره و دورههای تخصصی بیشتر در حوزه هوش مصنوعی، به کانال Pista Academy مراجعه کنید. #LLM #LargeLanguageModels #PyTorch #DeepLearning #GenerativeAI #FineTuning #QLoRA #ArtificialIntelligence #machinelearning pistaacademy.ir
سر کدو بهتون خواهم داد. توی جلسه آخر
لینک بهتون میدم هم دیتا ستی که نیاز
دارید هم کدایی که لازم داریدو بهتون
میدم. [صدای خرناس] ولی نیتم اینه که
فعلاً یه جورایی گوش بدید ببینید و مفهوم
اینا رو یاد بگیرید.
ما تا الان
هایپر پارامتر و ترینینگ کامپینگ و
لاگینگو مشخص کردیم. بریم سراغ چی؟ اون
دیتایی که قراره باهاش مدلمونو ترین
بکنیمو بیاریم داخل.
یه فایل تکسته که حالا من لینکشو بعداً بهتون میدم توی جلسه آخر [موسیقی] که
تقریباً ۱۷ ۸۰ مگ فایل تکستیه. ما اینو
اول باید ایمپورتش بکنیم. برای ایمپورت
کردنشم از این دستور استفاده میکنیم. ویت
اپن اون فایلا رو بهش میدیم میخوایم [ __ ]
بکنیم یوتیف ا و الی آخر.
این دقیقاً همون دیتا ست متنی ماست. یه
متنیه که ما از ویکیپدیا استخراجش کردیم
یا یه جای شب ویکیپدیا
میگه مدل زبانی مستقیماً نمیتونه فایل متنیو بخونه
ابتدا باید کلی یا بخشی از محتوا رو وارد
برنامه کنیم
با این قسمت
فایلو در حالت خواندن قرار میدیم
خب بیایم پایین سپس کل فاو میخوانم و داخل متغیر تکست قرار میده پس برابر خواهد
بود با استرینگ تایپش
یه همچین چیزی مثلاً میشه خروجش
در این مرحله هنوز توکنایزیشن انجام نشده
خود فایل خام رو ما در حقیقت دریافت کردیم
اینم مثلاً اومده یه ذره یه تیکه از خروجی روم میخواد نشون بده میگه میتونید این
کارو بکنید میریم جلوتر و
خب لود کردن توکنایزر اینجا اومدیم توکنایزررو آوردیم توی کارت
از چی استفاده کرد سنتنس پیس استفاده کردن
[صدای خرناس]
و قبلاًم طبیعتاً ما ایمپورتش کردیم توی
پروژه
سنتن پیس وظیفه دارد متن را به توکن تبدیل
کند
مثلاً میاد اینو تبدیل میکنه به یه همچین
چیزی
یا زیرمههای کوچیکتر.
بعد هر توکن یک آیدی عددی دارد.
این فایل توکنایزر از قبل آموزش دیده شماست.
یعنی قبلاً این روی دیتا ست اجرا شده و
یاد گرفته چه توکنهایی در وکبلی قرار
دارد. مسئله کلی اینه.
میگه در این مرحله توکنایزر رو ترین نمیکنیم بلکه توکنایزری که آموزش دیده از
قبل رو لودش میکنیم.
یعنی توکنزر شما ۴۰ ۴۰۹۶ توکن مختلفو الان شناخته.
یعنی عملاً انگار ۴۰۹۶
کلمه یا زیرکلمه مختلفو تشخیص داده.
چرا سایز وکبلاری مهمه؟ چون بعداً مستقیماً رو معماری ال اثر میذاره. مثلاً
امبدینگ لایرمون
اگر این باشه
میشه این. یعنی ۴۹۶ تا ورودی داره.
دق میاد تکستو به آیدی تبدیل میکنه یا بالعکس آیدی رو به تکست با این د تا تیکه
کد
حالا بعداً قراره بچهها این کدا کنار هم
قرار بگیره ال مورد سازهها فقط فعلاً
خط به خط کدشو چک بکنین
مثلاً این خطو به ان کد بدی تبدیل میکنه به این یعنی سنتنس پیس جمله شما رو به ۶
تا توکن تبدیل کرده
چیزی شبیه
لزوماً بچهها کلمه به توکن نیستا امکان داره یک کلمه بشه د تا توکن یادتون باشه
گفتم مفهوم توکن توی ال یعنی سه چهارم یک
کلمه
ممکنه یک کلمه به چند تا توکن تقسیم بشه
مثلاً این ممکنه این یه کلمه باشه بیلیو
یه کلمه باشه ایبلم یه کلمه بشه و هر قسمت
آیدی خودشو داشته باشه
میگه شبکههای عصبی طبیعتاً نمیتونن
مستقیماً متنو پردازش بکنن باید تبدیل بشه
به یک عدد
بعد اینا رو وارد ان بدیم لایرها کار میکنیم
به عدد تبدیل میکنیم ولی در این به دی نیاز دار آها میگه که ما توی فرایند آموزش
میایم توکنا رو اون تکستو میگیریم تبدیلش
میکنیم به توکن به این میگن انکود کردن
اما جایی که قراره متنو جنریت بکنیم برعکس
این فراآیند اتفاق میفته یعنی قراره اون
توکنا تبدیل بشن به تکست به متن تبدیل
بشه. پس اینجا به دیکود نیاز داریم. چون
الان شما اینو بذارید جلوی یک انسان
نمیتونید بفهمید این چیه. این باید تبدیل
بشه به متن که با دیکود انجام میشه.
این هدف اینه که کل این فایله رو یک بار توکنایز کنیم.
یه بار چک میکنی که قبلاً توکناز نکرده باشه که دوباره بخواد این کارو بکنه
اگر توکناز نکرده باشه با انکد میاد
توکنناز میکنه
این خط میگه که اگه جایی دیدید مفهومش اینه که توکن آیدیا به شکل اینتیجر ۶۴ بیت
داره ذخیره میشه چرا فلود نی چون اینها
مقدار عددی واقعی نیستن فقط ایندکس هستند
آها
میگه این یعنی توکن آیدی شماره ۶۱ ۱۲ خود
مفهوم ۶۱۲ مهم نیست اینجا
[صدای خرناس] بعدش اینو ذخیره میکنه اون دیتا سیتی که توکنز شده
تو یه فایلی به نام انcda.ptپیتی پیتی بچهها من همه این فایلا رو لینکشو خواهم
داد بهتونو عجله نکنید
و در نهایت تبدیل میشه به یه همچین چیزی
ما این فایل ورودیمون بود این توکناز شده
و اینم نهاییمونه تنسور نهاییمونه
میگه فرض کنید این چند گیگابایت باشه چرا این فایل مهمه اگر هر بار برنامه اجرا شده
بنویسیم این ممکنه از توکنزین چند دقیقه
یا حتی بیشتر زمان ببره ولی ولی یک بار
انجام میدیم بعد برنامه اینو نگه میداریم
این دیگه خیلی سریعتر اتفاق میفته این
فایلم
یه جورای میشه که پری پراسسینگ کش داریم
انجام میدیم
پس کل اتفاقی که تو این چند تا چند دقیقه من توضیح دادم یه همچین چیزیه که شما فایل
متنی ورودی رو میدید رو تکسته دیتای خامه
بعد سنتنس پینس میاد اینو توکنایز میکنه
انکودش میکنیم تبدیل میشه به یه سری آیدی
بعد میدیمش به ترچ پای تورچ تبدیل میکنه
به تنسور بعد این تنسوره رو ذخیره میکنیم
میشه یه فایل با پسوند پیتی دفات بعدی هر
جا که کار لازم داشته باشیم فایل پیتی رو
میدیم برای آموزش
یه بار اینو با هم چک کنیم ضرر نداره فرض کنید این متنمونه
خب این متنه رو میخونیم
بعد میایم چیکار میکنیم؟ اینجا انکودش
میکنیم تبدیل میشه به یه سری عدد بعد
اینو میدیم به تنسور تبدیل میکنه به یه
همچین چیزی بچهها اینا خود عدده مهم
نیستن یه آیدین یه ایندکسن
و در نهایت ذخیره میکنیم
اینم از این مرحله
بریم بیایم مرحله بعدی جلسه بعدی فعلاً خداحافظ