نکات کلیدی
۱. مدلهای زبان بزرگ پردازشگرهای قدرتمند متنی مبتنی بر یادگیری عمیق هستند.
مدلهای زبان بزرگ تواناییهای چشمگیری در درک، تولید و تفسیر زبان انسانی دارند.
پایهی یادگیری عمیق. مدلهای زبان بزرگ (LLMها) شبکههای عصبی عمیق پیشرفتهای هستند که بر روی مجموعههای عظیم متنی آموزش دیدهاند و قادرند متنی شبیه به زبان انسان را پردازش و تولید کنند. این مدلها جهشی قابل توجه نسبت به روشهای سنتی پردازش زبان طبیعی محسوب میشوند و در انجام وظایف پیچیدهای مانند تحلیل متنی در زمینه و تولید متن منسجم بسیار موفق عمل میکنند. LLMها کاربرد خاصی از یادگیری عمیق هستند که شاخهای از یادگیری ماشین است و بر شبکههای عصبی چندلایه تمرکز دارد.
هوش مصنوعی مولد. مدلهای زبان بزرگ اغلب به عنوان هوش مصنوعی مولد شناخته میشوند، زیرا توانایی خلق محتوای جدید، بهویژه متن، را دارند. قابلیت درک و تولید زبان، آنها را به ابزارهای چندمنظورهای تبدیل کرده است که از بررسی سادهی دستور زبان تا نگارش مقاله، کدنویسی و پشتیبانی از چتباتهای پیشرفته را شامل میشود. این توانایی مولد ناشی از هدف آموزشی آنهاست که معمولاً پیشبینی کلمهی بعدی در یک دنباله است.
معماری ترنسفورمر. موفقیت مدلهای زبان بزرگ مدرن عمدتاً به معماری ترنسفورمر و حجم عظیم دادههای آموزشی آنها نسبت داده میشود. این معماری، بهویژه نسخههای فقط دیکودر مانند GPT، برای تولید متنی به صورت ترتیبی طراحی شده است. اگرچه LLMها از نظر پارامترها و دادهها بزرگ هستند، اما با شناخت اجزای اصلی آنها درمییابیم که کاملاً «جعبه سیاه» نیستند.
۲. دادههای متنی باید به توکنها تقسیم و به بردارهای عددی تبدیل شوند تا برای LLMها قابل استفاده باشند.
مدلهای شبکه عصبی عمیق، از جمله LLMها، نمیتوانند متن خام را مستقیماً پردازش کنند.
نمایش عددی کلید کار است. LLMها که شبکههای عصبی هستند، نیازمند دادههای ورودی به شکل عددی هستند. متن خام که ماهیتی دستهای دارد، باید به بردارهای پیوسته تبدیل شود که به آن تعبیه (embedding) گفته میشود. این تبدیل امکان انجام عملیات ریاضی درون شبکه عصبی را فراهم میکند.
توکنیزه کردن متن. نخستین گام در آمادهسازی متن، توکنیزه کردن است؛ یعنی تقسیم متن به واحدهای کوچکتر به نام توکن که میتوانند کلمات، زیرکلمات یا کاراکترهای خاص باشند. سپس این توکنها بر اساس واژگان از پیش تعریفشده به شناسههای عددی منحصر به فرد نگاشت میشوند. روشهای پیشرفتهای مانند Byte Pair Encoding (BPE) کلمات ناشناخته را به زیرکلمات یا کاراکترهای شناختهشده تقسیم میکنند تا مدل بتواند هر متنی را پردازش کند.
ایجاد بردارهای تعبیه. شناسههای توکن سپس به بردارهای تعبیه تبدیل میشوند که معمولاً توسط لایه تعبیه درون خود LLM انجام میشود. این لایه مانند یک جدول جستجو عمل میکند و هر شناسه توکن را به برداری متراکم تبدیل میکند. این بردارها روابط معنایی را در خود جای میدهند، بهطوری که کلماتی با معانی مشابه بردارهای نزدیکی دارند و در طول آموزش مدل بهینه میشوند.
۳. مکانیزمهای توجه به LLMها امکان میدهند اهمیت بخشهای مختلف ورودی را وزندهی کنند.
توجه خودی (self-attention) مکانیزمی است که به هر موقعیت در دنباله ورودی اجازه میدهد هنگام محاسبهی نمایش دنباله، به تمام موقعیتهای دیگر در همان دنباله توجه کند.
رفع محدودیتهای دنبالهای. مدلهای پیشین مانند شبکههای عصبی بازگشتی (RNN) در پردازش دنبالههای طولانی مشکل داشتند، زیرا باید تمام اطلاعات ورودی را در یک حالت پنهان فشرده میکردند. مکانیزمهای توجه برای این طراحی شدند که مدل بتواند هنگام پردازش یک عنصر خاص یا تولید خروجی، به بخشهای مختلف دنباله ورودی به صورت انتخابی تمرکز کند.
توجه خودی درون دنباله. توجه خودی که جزو اصلی معماری ترنسفورمرها و LLMهاست، به هر توکن در دنباله ورودی اجازه میدهد با تمام توکنهای دیگر در همان دنباله تعامل داشته باشد و اهمیت آنها را بسنجد. این قابلیت به مدل امکان میدهد وابستگیهای بلندمدت و روابط متنی را درک کند که برای فهم ظرایف زبان ضروری است.
پرسشها، کلیدها و مقدارها. توجه خودی با نگاشت تعبیههای ورودی به سه بردار یادگرفتهشده به نامهای پرسش (query)، کلید (key) و مقدار (value) کار میکند. امتیازهای توجه با مقایسه پرسشها و کلیدها (معمولاً با ضرب داخلی) محاسبه میشوند که نشان میدهد هر توکن چقدر باید به توکنهای دیگر توجه کند. این امتیازها به وزنهای توجه تبدیل شده و سپس برای محاسبه مجموع وزنی بردارهای مقدار استفاده میشوند که بردارهای متنی غنیشدهای برای هر توکن فراهم میآورند.
۴. معماری GPT با انباشتن بلوکهای ترنسفورمر برای تولید متن ساخته شده است.
مدلهای GPT... معماریهای بزرگ شبکه عصبی عمیقی هستند که برای تولید متن جدید به صورت کلمه (یا توکن) به کلمه طراحی شدهاند.
طراحی فقط دیکودر. برخلاف ترنسفورمر اصلی که شامل کدگذار و دیکودر است، مدلهای GPT تنها از بخش دیکودر استفاده میکنند. این معماری برای پردازش یکطرفه و از چپ به راست طراحی شده و در وظایف تولید متن که مدل باید توکن بعدی را بر اساس توکنهای قبلی پیشبینی کند، بسیار مؤثر است.
بلوکهای ترنسفورمر هسته اصلی. معماری GPT با انباشتن چندین بلوک ترنسفورمر یکسان ساخته شده است. هر بلوک دنباله ورودی را پردازش کرده و نمایش توکنها را از طریق توجه خودی و شبکههای پیشخور بهبود میبخشد. تعداد این بلوکها عامل مهمی در اندازه و ظرفیت مدل است که از ۱۲ بلوک در کوچکترین نسخه GPT-2 تا ۴۸ بلوک در بزرگترین آن متغیر است.
تولید ترتیبی. تولید متن در GPT فرایندی تکراری است. با دریافت یک متن اولیه، مدل دنباله را از طریق لایهها پردازش میکند و لایه خروجی توزیع احتمالات روی واژگان برای توکن بعدی را پیشبینی میکند. محتملترین توکن (یا یکی به صورت نمونهگیری احتمالاتی) انتخاب شده، به دنباله ورودی افزوده میشود و این روند تکرار میشود تا متن خروجی به صورت توکن به توکن ساخته شود.
۵. نرمالسازی لایه و اتصالات میانبر آموزش عمیق LLMها را پایدار میکنند.
آموزش شبکههای عصبی عمیق با لایههای زیاد گاهی به دلیل مشکلاتی مانند ناپدید شدن یا انفجار گرادیانها چالشبرانگیز است.
پایدارسازی فعالسازیها. نرمالسازی لایه تکنیکی است که در بلوکهای ترنسفورمر برای پایدارسازی فرایند آموزش شبکههای عمیق به کار میرود. این روش خروجیهای یک لایه را برای هر نمونه ورودی به گونهای نرمال میکند که میانگین صفر و واریانس یک در طول بعد ویژگی داشته باشند. این کار از تغییرات داخلی توزیع داده جلوگیری کرده و همگرایی سریعتر و پایدارتر آموزش را ممکن میسازد.
کاهش مشکلات گرادیان. اتصالات میانبر که به آنها اتصالات باقیمانده یا پرش نیز گفته میشود، برای آموزش شبکههای بسیار عمیق مانند LLMها حیاتی هستند. این اتصالات ورودی یک لایه یا بلوک را مستقیماً به خروجی آن اضافه میکنند و مسیر جایگزینی برای جریان گرادیانها در هنگام پسانتشار فراهم میآورند. این کار به مقابله با مشکل ناپدید شدن گرادیان کمک میکند و اطمینان میدهد که گرادیانها به اندازه کافی بزرگ باقی میمانند تا وزنهای لایههای ابتدایی بهخوبی بهروزرسانی شوند.
ساخت بلوکهای مقاوم. در یک بلوک ترنسفورمر، نرمالسازی لایه معمولاً پیش از توجه چندسر و شبکه پیشخور اعمال میشود و اتصالات میانبر پس از این اجزا افزوده میشوند. این ترکیب تضمین میکند که شبکه عمیق میتواند الگوهای پیچیده را یاد بگیرد و در عین حال جریان گرادیان را پایدار نگه دارد و از توقف آموزش جلوگیری کند، که معماری را برای تعداد زیادی لایه مقیاسپذیر میسازد.
۶. پیشآموزش روی حجم عظیمی از متنهای بدون برچسب، مدل پایهای چندمنظوره ایجاد میکند.
وظیفه پیشبینی کلمه بعدی نوعی یادگیری خودنظارتی است که به معنای برچسبگذاری خودکار است.
مرحله اولیه آموزش. پیشآموزش نخستین و پرهزینهترین مرحله در ساخت یک LLM است. در این مرحله مدل روی مجموعهای عظیم از دادههای متنی بدون برچسب، معمولاً شامل میلیاردها یا تریلیونها کلمه از منابع متنوع مانند وبسایتها، کتابها و مقالات، آموزش داده میشود. این مواجهه گسترده به مدل امکان میدهد دستور زبان، نحو، حقایق و الگوهای کلی زبان را بیاموزد.
یادگیری خودنظارتی. وظیفه اصلی پیشآموزش برای مدلهای مشابه GPT پیشبینی کلمه بعدی است: مدل با دریافت دنبالهای از توکنها، یاد میگیرد توکن بعدی را پیشبینی کند. این یک وظیفه خودنظارتی است زیرا برچسبها (توکنهای بعدی) مستقیماً از داده ورودی استخراج میشوند و نیازی به برچسبگذاری دستی نیست، که امکان استفاده از حجم عظیمی از متن خام را فراهم میکند.
قابلیتهای مدل پایه. نتیجه پیشآموزش، مدلی پایه (foundation model) است که قادر به تکمیل متن بوده و ویژگیهای نوظهوری مانند یادگیری چندنمونهای محدود را نشان میدهد. این مدل هنوز برای وظایف خاص تخصصی نشده است، اما پایهای قدرتمند است که درک گستردهای از زبان کسب کرده و آماده تطبیق برای کاربردهای مختلف از طریق تنظیم دقیق است.
۷. بارگذاری وزنهای پیشآموزششده، آموزش اولیه پرهزینه را حذف میکند.
خوشبختانه OpenAI وزنهای مدلهای GPT-2 خود را بهصورت عمومی منتشر کرده است، بنابراین نیازی به صرف دهها تا صدها هزار دلار برای آموزش مجدد مدل روی مجموعه داده بزرگ نیست.
صرفهجویی در هزینه و منابع. پیشآموزش مدلهای بزرگ LLM از ابتدا بسیار پرهزینه است و نیازمند منابع محاسباتی و زمان زیادی است. بارگذاری وزنهای پیشآموزششده در دسترس عموم، مانند مدلهای GPT-2 OpenAI، به توسعهدهندگان امکان میدهد از آموزش گسترده قبلی بهرهمند شوند و هزینهها و منابع را بهطور قابل توجهی کاهش دهند.
نقطه شروع برای تطبیق. مدلهای پیشآموزششده نقطه شروع بسیار خوبی برای وظایف مختلف هستند. درک زبان یادگرفتهشده آنها میتواند به حوزههای جدید یا کاربردهای خاص با داده و محاسبات بسیار کمتر نسبت به آموزش از صفر منتقل شود. این امر LLMها را حتی برای تنظیم دقیق روی سختافزارهای مصرفی قابل دسترس میکند.
سازگاری و معماری. برای بارگذاری وزنهای پیشآموزششده، معماری مدل محلی باید با معماری مدل پیشآموزششده مطابقت داشته باشد، از جمله نوع لایهها، ابعاد و جزئیات مقداردهی اولیه مانند استفاده از بایاس. اگرچه ممکن است تفاوتهای جزئی معماری وجود داشته باشد (مانند اشتراک وزنها در لایه خروجی GPT-2 اصلی)، نگاشت دقیق وزنها تضمین میکند که مدل بارگذاریشده به درستی کار کند و قابلیتهای یادگرفتهشده در پیشآموزش را حفظ کند.
۸. تنظیم دقیق مدلهای زبان بزرگ برای وظایف طبقهبندی خاص انجام میشود.
در تنظیم دقیق طبقهبندی... مدل آموزش میبیند تا مجموعهای خاص از برچسبهای کلاس را تشخیص دهد...
تطبیق برای وظایف تخصصی. تنظیم دقیق مرحله دوم چرخه توسعه LLM است که در آن مدل پایه پیشآموزششده برای وظایف پاییندستی خاص با استفاده از مجموعه دادههای کوچکتر و برچسبدار تطبیق داده میشود. تنظیم دقیق طبقهبندی شامل آموزش مدل برای دستهبندی متن ورودی به کلاسهای از پیش تعریفشده مانند «هرزنامه» یا «غیر هرزنامه»، برچسبهای احساسات یا دستههای موضوعی است.
تغییر لایه خروجی. برای طبقهبندی، لایه خروجی اصلی مدل که برای پیشبینی توکن بعدی در واژگان بزرگ طراحی شده بود، با لایه خطی کوچکتری جایگزین میشود. این لایه جدید نمایش نهایی پنهان مدل را به تعداد کلاسهای مورد نیاز برای وظیفه (مثلاً ۲ برای طبقهبندی دودویی) نگاشت میکند.
آموزش روی دادههای برچسبدار. سپس مدل روی مجموعه داده برچسبدار آموزش میبیند که در آن هر نمونه متنی با برچسب کلاس صحیح خود جفت شده است. معمولاً فقط لایه طبقهبندی تازه افزوده شده و احتمالاً چند لایه آخر مدل پیشآموزششده قابل آموزش هستند و بقیه وزنها ثابت نگه داشته میشوند. این فرایند مدل را تنظیم میکند تا احتمالهای کلاس صحیح را برای ورودیها به درستی پیشبینی کند و با معیارهایی مانند تابع خطای آنتروپی متقاطع و دقت طبقهبندی ارزیابی میشود.
۹. تنظیم دقیق مبتنی بر دستورالعمل به مدلهای زبان بزرگ میآموزد دستورات انسانی را دنبال کنند.
تنظیم دقیق مبتنی بر دستورالعمل شامل آموزش مدل زبان روی مجموعهای از وظایف با استفاده از دستورالعملهای خاص است تا توانایی آن در درک و اجرای وظایف توصیفشده در پرامپتهای زبان طبیعی بهبود یابد...
توانمندسازی هوش مصنوعی مکالمهای. تنظیم دقیق مبتنی بر دستورالعمل گامی حیاتی در توسعه LLMها برای کاربردهای تعاملی مانند چتباتها و دستیارهای شخصی است. این فرایند مدل را آموزش میدهد تا دستورات بیانشده به زبان طبیعی را درک کرده و پاسخهای مناسب ارائه دهد، فراتر از تکمیل ساده متن و به سمت اجرای وظایف بر اساس پرامپتهای کاربر حرکت کند.
جفتهای دستور-پاسخ. این فرایند از مجموعه دادهای متشکل از جفتهای دستور و پاسخ استفاده میکند که اغلب با قالبهای خاص پرامپت (مانند سبک Alpaca) ساختاربندی شدهاند تا ورودی مدل را سازماندهی کنند. مدل آموزش میبیند که پاسخ متنی مطلوب را با توجه به دستور و هر زمینه ورودی مرتبط تولید کند.
فرایند آموزش. مشابه پیشآموزش، تنظیم دقیق مبتنی بر دستورالعمل از هدف پیشبینی توکن بعدی استفاده میکند، اما هدفها توکنهای پاسخ مطلوب پس از دستور هستند. بارگذارهای داده سفارشی ورودیهای با طول متغیر را با پر کردن توالیها و ماسک کردن توکنهای پرکننده در محاسبه خطا مدیریت میکنند. وزنهای مدل پیشآموزششده تنظیم میشوند تا اختلاف بین توکنهای پاسخ تولیدشده توسط مدل و توکنهای پاسخ هدف را به حداقل برسانند و مدل بتواند نگاشت از دستورات به خروجیهای مطلوب را بیاموزد.
خلاصه نقدها
کتاب «ساخت مدل زبان بزرگ» بهخاطر رویکرد جامع و گامبهگام خود در فهم و پیادهسازی مدلهای زبان بزرگ بسیار مورد تحسین قرار گرفته است. خوانندگان از توضیحات روشن، نمونههای کد عملی و ترکیب متعادل نظریه و کاربرد در این کتاب استقبال میکنند. این اثر همه مباحث را از اصول پایه ترنسفورمرها تا تنظیم دقیق مدلها برای وظایف خاص پوشش میدهد. بسیاری این کتاب را منبعی ارزشمند برای تازهکاران و همچنین متخصصان باتجربه در حوزه هوش مصنوعی و یادگیری ماشین میدانند. برخی از منتقدان اشاره کردهاند که اگرچه کتاب در توضیح «چگونگی» بسیار موفق است، میتوانست به «چرایی» برخی مفاهیم نیز عمیقتر بپردازد.
دیگران نیز خواندهاند
سؤالات متداول
1. What is Build a Large Language Model (From Scratch) by Sebastian Raschka about?
- Comprehensive LLM guide: The book is a hands-on, step-by-step tutorial for building GPT-style large language models (LLMs) from scratch, focusing on both foundational theory and practical coding.
- Covers full LLM pipeline: It walks readers through data preparation, tokenization, transformer architecture, attention mechanisms, pretraining, and fine-tuning.
- Educational focus: The goal is to demystify LLMs by having readers implement each component themselves, fostering deep understanding rather than just usage.
- Real-world applications: Readers learn to apply their models to tasks like classification and instruction-following, with guidance on loading and fine-tuning pretrained weights.
2. Why should I read Build a Large Language Model (From Scratch) by Sebastian Raschka?
- Deep understanding through building: The book follows the Feynman principle—“I don’t understand anything I can’t build”—by guiding readers to construct an LLM from the ground up.
- Bridges theory and practice: It balances conceptual explanations with hands-on coding, making complex ideas accessible and actionable.
- Relevant to modern AI: Readers gain skills in state-of-the-art techniques, including parameter-efficient fine-tuning and evaluation with other LLMs.
- Ideal for learners and practitioners: The book is suitable for those with intermediate Python and basic machine learning knowledge who want to master LLMs beyond surface-level familiarity.
3. What are the key takeaways from Build a Large Language Model (From Scratch) by Sebastian Raschka?
- LLM construction demystified: Readers learn how to build, train, and fine-tune GPT-like models from scratch, understanding every component.
- Hands-on coding skills: The book provides detailed code examples for tokenization, attention, transformer blocks, and training loops using PyTorch.
- Practical applications: It covers real-world tasks such as spam classification and instruction-following chatbots, including loading and adapting pretrained models.
- Modern training techniques: Readers are introduced to advanced methods like LoRA for parameter-efficient fine-tuning and evaluation using other LLMs.
4. What are the best quotes from Build a Large Language Model (From Scratch) by Sebastian Raschka and what do they mean?
- “I don’t understand anything I can’t build.” This Feynman quote, cited in the book, underscores the importance of hands-on construction for true understanding of complex systems like LLMs.
- “Every effort moves you toward finding an ideal new way to practice something!” An example output from a pretrained GPT-2 model, symbolizing the iterative nature of learning and model improvement.
- “The model is learning well from the training data, and there is little to no indication of overfitting.” This statement highlights the importance of monitoring training and validation losses for good generalization, a key practice taught in the book.
5. What are the main components and architecture of a large language model as explained in Build a Large Language Model (From Scratch) by Sebastian Raschka?
- Tokenization and embeddings: The book details how to tokenize text using byte pair encoding (BPE), convert tokens to IDs, and create token and positional embeddings.
- Attention mechanisms: It explains self-attention, causal masking, and multi-head attention, including their implementation with trainable weights.
- Transformer blocks: Readers learn to assemble transformer blocks with layer normalization, feed-forward networks (using GELU activations), and shortcut connections.
- GPT model assembly: The architecture is built up to a decoder-only GPT model capable of generating text token by token.
6. How does Build a Large Language Model (From Scratch) by Sebastian Raschka explain attention mechanisms and their importance?
- Self-attention fundamentals: The book starts with simple, non-trainable self-attention to build intuition, then introduces trainable query, key, and value matrices.
- Causal attention and masking: It explains how causal masks prevent the model from attending to future tokens, ensuring proper autoregressive generation.
- Multi-head attention: Multiple attention heads are used to capture diverse relationships in the input, with efficient implementation using tensor operations.
- Step-by-step code: The book provides detailed code for attention weight computation and matrix operations, demystifying this core transformer innovation.
7. How does Build a Large Language Model (From Scratch) by Sebastian Raschka approach text data preparation and batching?
- Tokenization with BPE: The book covers splitting text into tokens using byte pair encoding, handling unknown words without special tokens.
- Vocabulary and token IDs: It explains building a vocabulary, mapping tokens to unique IDs, and converting them into embeddings.
- Data sampling and batching: A sliding window approach is used to create input-target pairs for next-word prediction, with batching handled via PyTorch DataLoader.
- Padding and custom collate functions: For variable-length inputs, the book uses padding and custom collate functions to ensure efficient and stable training.
8. What is the process for pretraining a GPT-like model in Build a Large Language Model (From Scratch) by Sebastian Raschka?
- Pretraining objective: The model is pretrained on unlabeled data by minimizing cross-entropy loss for next-token prediction, learning language patterns from large corpora.
- Training loop: The book provides a simple yet effective training loop using the AdamW optimizer, with loss monitoring and sample text generation.
- Decoding strategies: It covers greedy decoding, temperature scaling, and top-k sampling to control randomness and diversity in generated text.
- Loading pretrained weights: Readers learn how to load OpenAI’s GPT-2 weights into their custom model, saving time and resources.
9. How does Build a Large Language Model (From Scratch) by Sebastian Raschka cover fine-tuning for specific tasks?
- Classification fine-tuning: The book explains adapting the LLM for tasks like spam detection by replacing the output layer with a classification head and preparing appropriate datasets.
- Instruction fine-tuning: It details formatting prompts, batching data, and training the model to follow human instructions, enabling chatbot and assistant applications.
- Parameter-efficient fine-tuning (LoRA): The book introduces LoRA, which fine-tunes only small low-rank matrices, drastically reducing the number of trainable parameters.
- Practical implementation: Readers are guided through dataset preparation, batching, and training loops for each fine-tuning approach.
10. What evaluation metrics and methods are used in Build a Large Language Model (From Scratch) by Sebastian Raschka?
- Cross-entropy loss and perplexity: The book uses cross-entropy loss for next-token prediction and introduces perplexity as an interpretable measure of model uncertainty.
- Classification accuracy: For classification tasks, accuracy is computed over training, validation, and test sets to quantify performance.
- Qualitative and automated evaluation: Instruction-following is evaluated by comparing generated responses to expected outputs, and automated scoring is demonstrated using Llama 3 via the Ollama application.
- Monitoring overfitting: Training and validation losses are tracked to detect overfitting and ensure good generalization.
11. What advanced training techniques are introduced in Build a Large Language Model (From Scratch) by Sebastian Raschka?
- Learning rate schedules: The book introduces linear warmup and cosine decay for learning rates, improving convergence and training stability.
- Gradient clipping: It explains how to clip gradients by norm to prevent exploding gradients, with practical code examples.
- Parameter-efficient fine-tuning: LoRA is covered in detail, showing how to fine-tune large models efficiently by updating only low-rank matrices.
- Efficient batching and masking: Custom batching and masking strategies are used to handle variable-length sequences and exclude padding from loss calculations.
12. What prerequisites and skills are needed to benefit from Build a Large Language Model (From Scratch) by Sebastian Raschka?
- Python programming: A solid foundation in Python is essential, as the book is code-heavy and hands-on.
- Basic machine learning knowledge: Familiarity with machine learning and deep learning concepts is helpful, though the book provides necessary introductions.
- Mathematics background: High school-level understanding of vectors and matrices is sufficient for grasping embeddings and attention mechanisms.
- Patience and curiosity: The book is designed for sequential, in-depth learning, so a willingness to engage deeply with the material is important.