COE 592Lecture 5.3المحاضرة 5.3
Quantization (III): PTQ granularity, range clipping, rounding, QAT, binary/ternary and mixed precisionالتكميم (Quantization) الجزء الثالث: دقة PTQ، وقص المدى، والتقريب، وQAT، والثنائي والثلاثي، والدقة المختلطة
How to pick the linear quantization parameters (S, Z) after training (per-tensor vs per-channel vs group scales, VS-Quant and MX formats, activation range via EMA, calibration, MSE, KL divergence and OCTAV, AdaRound), how quantization-aware training with fake quantization and the straight-through estimator recovers accuracy, how binarization and ternarization push weights to 1 or 2 bits with XNOR and popcount arithmetic, and how HAQ searches per-layer mixed precision with hardware feedback.كيف نختار معاملات التكميم الخطي (S وZ) بعد التدريب (مقاييس لكل موتر مقابل لكل قناة مقابل لكل مجموعة، وصيغ VS-Quant وMX، ومدى التنشيط عبر EMA والمعايرة وMSE وتباعد KL وOCTAV، وAdaRound)، وكيف يستعيد التدريب الواعي بالتكميم (QAT) بالتكميم الزائف (fake quantization) والمقدّر المباشر (straight-through estimator) الدقة، وكيف يدفع التثنيث والتثليث الأوزان إلى 1 أو 2 بت بحساب XNOR وpopcount، وكيف يبحث HAQ عن دقة مختلطة لكل طبقة بتغذية راجعة من العتاد.
- Partsالأجزاء
- 9
- Conceptsالمفاهيم
- 41
- Slidesالشرائح
- 76
- Readingمدة القراءة
- 246 min246 دقيقة
AOverviewنظرة عامة
Lectures 5.1 and 5.2 gave you the arithmetic of quantization: a real value is stored as an integer with r ≈ S(q − Z). This lecture answers the engineering question that follows. Given a trained network and a target chip, how do you pick the scales, ranges and roundings so that accuracy survives, what do you do when it does not, and how far down in bits can you go?
أعطتك المحاضرتان 5.1 و5.2 حساب التكميم (quantization): تُخزَّن القيمة الحقيقية كعدد صحيح وفق r ≈ S(q − Z). هذه المحاضرة تجيب عن السؤال الهندسي الذي يلي ذلك. إذا كانت لديك شبكة مدرّبة وشريحة مستهدفة، فكيف تختار الـscales والمدى (ranges) وطريقة التقريب (rounding) بحيث تبقى الدقة محفوظة، وماذا تفعل إذا لم تبقَ، وإلى أي حد يمكنك تقليل عدد البتات؟
As a PhD student you need this in three places. The midterm asks you to compute scales, errors, clip points and XNOR outputs by hand, and to explain why one method beats another. Your research project almost certainly deploys a model on a microcontroller or an edge accelerator, where the choice between per-tensor and per-channel scales, or between post-training quantization and quantization-aware training, decides whether the model still works. And every paper you read on efficient inference assumes this vocabulary.
بصفتك طالب دكتوراه تحتاج هذا في ثلاثة مواضع. اختبار منتصف الفصل يطلب منك أن تحسب يدويًا الـscalesوالأخطاء ونقاط القص (clip points) ومخرجات XNOR، وأن تشرح لماذا تتفوق طريقة على أخرى. ومشروعك البحثي يكاد يكون مؤكدًا أنه ينشر نموذجًا على متحكم دقيق (microcontroller) أو مسرّع طرفي (edge accelerator)، حيث يحدد الاختيار بين scales من نوع per-tensor وper-channel، أو بين التكميم بعد التدريب (post-training quantization) والتدريب الواعي بالتكميم (quantization-aware training)، ما إذا كان النموذج سيظل يعمل. وكل ورقة بحثية تقرؤها عن الاستدلال الكفء (efficient inference) تفترض أنك تعرف هذه المصطلحات.
The path has seven stops. Post-training quantization first decides how many values share one scale (per-tensor, per-channel, group), then how to set the range of activations (EMA, calibration with MSE or KL, OCTAV), then which way to round each weight (AdaRound). When that is not enough, quantization-aware training puts the rounding inside the training loop and gets gradients through it with the straight-through estimator. Then the lecture pushes to the extremes, binary weights with XNOR and popcount and ternary weights with a zero level, and ends by letting every layer choose its own bit width with HAQ.
للمسار سبع محطات. يقرر التكميم بعد التدريب (PTQ) أولًا كم قيمة تتشارك scale واحدًا (per-tensor، per-channel، group)، ثم كيف يُضبط مدى التنشيطات (activations) (EMA، أو المعايرة بـMSE أو KL، أو OCTAV)، ثم في أي اتجاه يُقرَّب كل وزن (AdaRound). وعندما لا يكفي ذلك، يضع التدريب الواعي بالتكميم (QAT) عملية التقريب داخل حلقة التدريب ويمرر التدرجات عبرها باستخدام straight-through estimator. بعد ذلك تذهب المحاضرة إلى الحدود القصوى: أوزان ثنائية (binary) مع XNOR وpopcount، وأوزان ثلاثية (ternary) مع مستوى صفري، وتنتهي بترك كل طبقة تختار عرض البتات الخاص بها باستخدام HAQ.
Success looks likeعلامات النجاح
- Quantize a small weight matrix per-tensor and per-channel, compute both Frobenius errors, and explain why the scale must sit on the output channel.أن تكمّم مصفوفة أوزان صغيرة بطريقة per-tensor وper-channel، وتحسب خطأ Frobenius في الحالتين، وتشرح لماذا يجب أن يكون الـscale على قناة الخرج (output channel).
- Compute the effective bit width of VS-Quant and the MX formats, for example 4 + 4/16 = 4.25 bits.أن تحسب عرض البتات الفعلي (effective bit width) لـVS-Quant ولصيغ MX، مثلًا 4 + 4/16 = 4.25 بت.
- Run an EMA range update, split quantization error into clipping and rounding, and quote the Laplace clip points 2.83b, 3.89b and 5.03b.أن تنفذ تحديث المدى بـEMA، وتقسم خطأ التكميم إلى خطأ قص (clipping) وخطأ تقريب (rounding)، وتذكر نقاط القص لتوزيع Laplace: 2.83b و3.89b و5.03b.
- Write the AdaRound objective and explain why minimizing layer output error beats rounding each weight to nearest.أن تكتب دالة الهدف لـAdaRound وتشرح لماذا يتفوق تقليل خطأ خرج الطبقة على تقريب كل وزن إلى أقرب قيمة (round to nearest).
- Trace fake quantization through a layer and show why the true gradient of rounding is zero and how the straight-through estimator fixes it.أن تتتبع التكميم الزائف (fake quantization) عبر طبقة، وتبيّن لماذا يكون التدرج الحقيقي لعملية التقريب صفرًا، وكيف يعالج straight-through estimator ذلك.
- Binarize and ternarize a matrix with the BWN scale and the TWN threshold, and compute a binary dot product with y = −n + (popcount(W xnor x) ≪ 1).أن تحوّل مصفوفة إلى ثنائية (binarize) وثلاثية (ternarize) باستخدام scale الخاص بـBWN والعتبة الخاصة بـTWN، وتحسب ضربًا نقطيًا ثنائيًا بالعلاقة y = −n + (popcount(W xnor x) ≪ 1).
- Explain how HAQ searches per-layer bit widths with hardware feedback, and why edge and cloud policies differ.أن تشرح كيف يبحث HAQ عن عرض البتات لكل طبقة باستخدام تغذية راجعة من العتاد، ولماذا تختلف سياسات الأجهزة الطرفية (edge) عن سياسات السحابة (cloud).
How to study this lectureكيف تذاكر هذه المحاضرة
- Choose your route. Read the full guide in one sitting for the big picture, or work through one part at a time when you want depth. Parts one to four are post-training quantization and belong together.اختر طريقك. اقرأ الدليل الكامل في جلسة واحدة لتأخذ الصورة الكبيرة، أو اعمل على جزء واحد في كل مرة عندما تريد العمق. الأجزاء من الأول إلى الرابع كلها عن التكميم بعد التدريب (PTQ) وتُقرأ معًا.
- Redo every worked example on paper before you read its result. The running 4 × 4 weight matrix comes back in several parts, so the numbers you compute early pay off later.أعد حل كل مثال محلول على الورق قبل أن تقرأ نتيجته. مصفوفة الأوزان 4 × 4 المستمرة تتكرر في عدة أجزاء، فالأرقام التي تحسبها مبكرًا تفيدك لاحقًا.
- Answer every recall prompt in your head before revealing it, and take each quiz, reading the explanation even when you are right.أجب عن كل سؤال استرجاع في ذهنك قبل كشف الإجابة، وحل كل اختبار قصير، واقرأ الشرح حتى عندما تكون إجابتك صحيحة.
- Play with the simulators: change the bit width, the clip point or the rounding choice and watch the error move. Predict the change before you make it.جرّب المحاكيات: غيّر عرض البتات أو نقطة القص أو خيار التقريب وراقب كيف يتحرك الخطأ. توقّع التغيير قبل أن تجريه.
- Keep the reference sheet open for formulas, result tables and slide errata when you review or solve problems.أبقِ ورقة المرجع مفتوحة للمعادلات وجداول النتائج وتصحيحات الشرائح عندما تراجع أو تحل المسائل.
- Come back after a few days and retry the recall prompts and quizzes cold. Spaced practice builds the memory the midterm needs.عد بعد بضعة أيام وأعد محاولة أسئلة الاسترجاع والاختبارات القصيرة دون تحضير. التدرب المتباعد يبني الذاكرة التي يحتاجها اختبار منتصف الفصل.
Sourcesالمصادر
- Quantizing deep convolutional networks for efficient inference: A whitepaperPaperarXiv:1806.08342, 2018 (Krishnamoorthi)Per-channel scales, EMA ranges, fake quantization, the straight-through estimator and the INT8 PTQ and QAT tablesالـ scales لكل قناة (per-channel)، ومدى EMA، والتكميم الزائف (fake quantization)، والـ straight-through estimator، وجداول PTQ وQAT بدقة INT8(opens in a new tab)(يفتح في تبويب جديد)
- A White Paper on Neural Network QuantizationPaperarXiv:2106.08295, 2021 (Nagel, Fournarakis, Amjad, Bondarenko, van Baalen, Blankevoort)Granularity, range setting with MSE, AdaRound and the standard PTQ and QAT pipelinesدرجة التفصيل (granularity)، وضبط المدى باستخدام MSE، وAdaRound، ومسارات العمل القياسية لـ PTQ وQAT(opens in a new tab)(يفتح في تبويب جديد)
BThe 9 partsالأجزاء الـ9
- 01Quantization granularity: per-tensor vs per-channel scalesدقة التكميم (Granularity): مقاييس لكل موتر مقابل لكل قناةPost-training quantization asks how to choose S and Z. The first knob is granularity: one scale for the whole weight tensor fails when output channels have wildly different ranges, so per-channel quantization gives each output channel its own scale and cuts reconstruction error, shown on a full 2-bit worked example.التكميم بعد التدريب (PTQ) يسأل كيف نختار S وZ. أول خيار هو الدقة (granularity): مقياس واحد لموتر الأوزان كله يفشل عندما تكون لقنوات المخرج مديات مختلفة جدًا، لذا يعطي التكميم لكل قناة (per-channel) كل قناة مخرج مقياسها الخاص ويقلل خطأ إعادة البناء، كما يظهر في مثال محلول كامل بـ2 بت.5 concepts5 مفاهيمSlides 1-13الشرائح 1-1330 min30 دقيقة
- 1.1Post-training quantization: three questions about S and Zالتكميم بعد التدريب: ثلاثة أسئلة عن S وZ
- 1.2Granularity: how many weights share one scaleالـ granularity: كم وزنًا يتشارك scale واحدًا
- 1.3Symmetric weight quantization and the outlier channelتكميم الأوزان المتماثل وقناة القيم الشاذة
- 1.4Worked example: 2-bit per-tensor quantizationمثال محلول: تكميم per-tensor بـ 2 bit
- 1.5Worked example: per-channel scales and why only output channelsمثال محلول: مقاييس per-channel ولماذا قنوات الخرج فقط
- 02Group quantization: VS-Quant and shared micro-exponent formatsالتكميم بالمجموعات: VS-Quant وصيغ الأس الدقيق المشترك (MX)Going finer than a channel: give small groups of elements their own scale. VS-Quant uses a cheap integer per-vector scale under a floating-point per-tensor or per-channel scale, and the MX formats share tiny exponents across 2 and 16 elements; the cost is counted as effective bit width.الذهاب إلى ما هو أدق من القناة: إعطاء مجموعات صغيرة من العناصر مقياسها الخاص. يستخدم VS-Quant مقياسًا صحيحًا رخيصًا لكل متجه تحت مقياس عائم لكل موتر أو لكل قناة، وتشارك صيغ MX أسسًا صغيرة عبر 2 و16 عنصرًا؛ وتُحسب الكلفة بوصفها عرض بت فعّالًا.4 concepts4 مفاهيمSlides 14-21الشرائح 14-2124 min24 دقيقة
- 2.1Why go finer than a channel: accuracy and hardware at 4 bitsلماذا ننزل إلى أنعم من القناة: الدقة والعتاد عند 4 بت
- 2.2VS-Quant: an integer scale per vector under a floating-point scaleVS-Quant: مقياس عدد صحيح لكل متجه تحت مقياس فاصلة عائمة
- 2.3Multi-level scaling and the effective bit widthالتحجيم متعدد المستويات وعرض البت الفعلي
- 2.4Shared micro-exponents: MX4, MX6 and MX9الأسس الدقيقة المشتركة: MX4 وMX6 وMX9
- 03Dynamic range clipping for activations: EMA, calibration, MSE and KLقص المدى الديناميكي للتنشيطات: EMA والمعايرة وMSE وKLActivations change with every input, so their range must be estimated before deployment, either with an exponential moving average during training or by running calibration batches. Clipping outliers trades clipping error for finer resolution, and the clip point is chosen by minimizing MSE (analytically for Laplace, or with OCTAV's Newton-Raphson) or KL divergence.تتغير التنشيطات مع كل مدخل، لذا يجب تقدير مداها قبل النشر، إما بمتوسط متحرك أسي (EMA) أثناء التدريب أو بتشغيل دفعات معايرة (calibration). قص القيم الشاذة يقايض خطأ القص بدقة تمثيل أنعم، وتُختار نقطة القص بتقليل MSE (تحليليًا لتوزيع Laplace، أو بطريقة Newton-Raphson في OCTAV) أو تباعد KL.6 concepts6 مفاهيمSlides 22-31الشرائح 22-3136 min36 دقيقة
- 3.1Why activation ranges must be measured before deploymentلماذا يجب قياس مدى التنشيطات قبل النشر
- 3.2Type 1: tracking the range with an EMA during trainingالنوع الأول: تتبّع المدى بمتوسط متحرك أُسّي (EMA) أثناء التدريب
- 3.3Type 2: calibration batches and the price of outliersالنوع الثاني: دفعات المعايرة وثمن القيم الشاذة
- 3.4Choosing the clip by minimizing MSE: the Laplace tableاختيار حد القص بتقليل MSE: جدول لابلاس
- 3.5Choosing the clip by minimizing KL divergenceاختيار حد القص بتقليل تباعد KL
- 3.6Clipping on the fly: OCTAV and Newton-Raphsonالقص أثناء التشغيل: OCTAV وطريقة نيوتن-رافسون
- 04AdaRound and what post-training INT8 achievesAdaRound وما يحققه INT8 بعد التدريبRounding each weight to nearest is not optimal for the layer output, so AdaRound learns whether each weight rounds up or down to reconstruct activations. The section closes the PTQ story with the summary of zero point, granularity, range and rounding choices and real INT8 PTQ results, where small models like MobileNet lose too much.تقريب كل وزن إلى الأقرب ليس الأمثل لمخرج الطبقة، لذا يتعلم AdaRound ما إذا كان كل وزن يُقرَّب للأعلى أو للأسفل لإعادة بناء التنشيطات. ويختتم القسم قصة PTQ بملخص خيارات نقطة الصفر والدقة (granularity) والمدى والتقريب، ونتائج INT8 PTQ حقيقية، حيث تفقد النماذج الصغيرة مثل MobileNet الكثير من الدقة.4 concepts4 مفاهيمSlides 32-38الشرائح 32-3824 min24 دقيقة
- 4.1Why rounding each weight to nearest is not optimalلماذا لا يكون تقريب كل وزن إلى أقرب قيمة هو الأمثل
- 4.2AdaRound: learning floor or ceil to reconstruct the layer outputAdaRound: تعلّم اختيار الأرضية أو السقف لإعادة بناء مخرج الطبقة
- 4.3The four post-training knobs and what each approach stores and computesمفاتيح التكميم بعد التدريب الأربعة، وما يخزّنه كل أسلوب وكيف يحسب
- 4.4What post-training INT8 achieves, and why small models breakما يحققه تكميم INT8 بعد التدريب، ولماذا تنهار النماذج الصغيرة
- 05Quantization-aware training: fake quantization and the straight-through estimatorالتدريب الواعي بالتكميم (QAT): التكميم الزائف والمقدّر المباشر (STE)QAT fine-tunes the network with quantization simulated in the forward pass while a full-precision weight copy accumulates small gradient updates. Because rounding has zero gradient almost everywhere, the straight-through estimator passes gradients through as if quantization were the identity, and QAT recovers most of the INT8 accuracy that PTQ loses on MobileNets.يضبط QAT الشبكة ضبطًا دقيقًا مع محاكاة التكميم في التمرير الأمامي، بينما تراكم نسخة كاملة الدقة من الأوزان تحديثات تدرج صغيرة. ولأن للتقريب تدرجًا صفريًا في كل مكان تقريبًا، يمرر المقدّر المباشر (straight-through estimator) التدرجات كأن التكميم دالة هوية، ويستعيد QAT معظم دقة INT8 التي يفقدها PTQ على نماذج MobileNet.4 concepts4 مفاهيمSlides 39-48الشرائح 39-4824 min24 دقيقة
- 5.1Why train with quantization: fine-tuning K-means centroidsلماذا ندرّب مع الـ quantization: الـ fine-tuning لـ centroids الـ K-means
- 5.2Fake quantization and the full-precision weight copyالـ fake quantization ونسخة الأوزان بالدقة الكاملة
- 5.3The straight-through estimator: gradients through a staircaseالـ straight-through estimator: الـ gradients عبر الدرَج
- 5.4What QAT buys at INT8, and what comes after integersما يكسبه الـ QAT عند INT8، وما الذي يأتي بعد الأعداد الصحيحة
- 06Binary weights: sign, stochastic binarization and the BWN scaleالأوزان الثنائية: sign والتثنيث العشوائي ومقياس BWNPushing to 1 bit: if weights are only +1 or -1, a dot product needs only additions and subtractions, storage drops about 32x. Weights can be binarized deterministically with sign or stochastically with a hard sigmoid, and a single per-tensor scale alpha = mean |W| shrinks the error and nearly closes the accuracy gap.الوصول إلى بت واحد: إذا كانت الأوزان +1 أو -1 فقط، فإن الضرب النقطي يحتاج فقط إلى جمع وطرح، وينخفض التخزين نحو 32x. يمكن تثنيث الأوزان حتميًا بدالة sign أو عشوائيًا بدالة hard sigmoid، ومقياس واحد لكل موتر alpha = mean |W| يقلل الخطأ ويكاد يسد فجوة الدقة.4 concepts4 مفاهيمSlides 49-54الشرائح 49-5424 min24 دقيقة
- 6.1Pushing quantization to one bitدفع التكميم إلى بت واحد
- 6.2Binary weights turn multiply-accumulate into add and subtractالأوزان الثنائية تحوّل الضرب والتجميع إلى جمع وطرح
- 6.3Deterministic sign versus stochastic hard-sigmoid binarizationالتثنئة الحتمية بالإشارة مقابل التثنئة العشوائية بالـ hard sigmoid
- 6.4The BWN scale: alpha = mean |W| minimizes the binarization errorمعامل المقياس في BWN: القيمة alpha = mean |W| تجعل خطأ التثنئة أصغر ما يمكن
- 07Binary weights and activations: XNOR and popcountالأوزان والتنشيطات الثنائية: XNOR وpopcountWhen activations are binarized too, each multiply of +1/-1 values becomes an XNOR on bits, and the sum becomes a popcount. The identity y = -n + 2 * popcount(W xnor x) turns a dot product into two cheap bit operations, giving about 32x less memory and about 58x less computation.عندما تُثنَّث التنشيطات أيضًا، يصبح كل ضرب لقيم +1/-1 عملية XNOR على البتات، ويصبح المجموع popcount. المتطابقة y = -n + 2 * popcount(W xnor x) تحوّل الضرب النقطي إلى عمليتي بت رخيصتين، مما يعطي ذاكرة أقل بنحو 32x وحسابًا أقل بنحو 58x.4 concepts4 مفاهيمSlides 55-60الشرائح 55-6024 min24 دقيقة
- 7.1When weights and activations are both ±1عندما تكون الأوزان والـ activations كلاهما ±1
- 7.2Encoding signs as bits: XNOR is the product, but the sum is offترميز الإشارات كبتات: XNOR هي حاصل الضرب، لكن المجموع خاطئ
- 7.3Recovering the dot product: y = -n + 2 · popcountاستعادة الـ dot product: y = -n + 2 · popcount
- 7.4The hardware form and what it saves: shift, popcount, 32x and 58xالصيغة العتادية وما توفّره: shift وpopcount و32x و58x
- 08Accuracy cost of binarization and ternary quantizationكلفة التثنيث على الدقة والتكميم الثلاثيBinarizing activations as well as weights costs a lot of accuracy, though scale factors help. Adding a zero level gives ternary weights: TWN thresholds at 0.7 times the mean magnitude with one fixed scale, and TTQ learns separate positive and negative scales, closing more of the gap to full precision.تثنيث التنشيطات مع الأوزان يكلّف كثيرًا من الدقة، وإن كانت معاملات القياس تساعد. إضافة مستوى صفري تعطي أوزانًا ثلاثية: يضع TWN العتبة عند 0.7 من متوسط المقدار مع مقياس ثابت واحد، ويتعلم TTQ مقياسين منفصلين للموجب والسالب، فيسد جزءًا أكبر من الفجوة مع الدقة الكاملة.4 concepts4 مفاهيمSlides 61-64الشرائح 61-6424 min24 دقيقة
- 8.1What binarization costs: scale factors and activationsكلفة التحويل الثنائي: معاملات المقياس والتنشيطات
- 8.2Ternary weight networks: a dead zone and one shared scaleشبكات الأوزان الثلاثية TWN: منطقة ميتة ومقياس مشترك واحد
- 8.3Trained ternary quantization: two learned scalesالتكميم الثلاثي المدرَّب TTQ: مقياسان متعلَّمان
- 8.4Three quantization families: storage versus arithmeticثلاث عائلات للتكميم: التخزين مقابل العمليات الحسابية
- 09Mixed-precision quantization and HAQالتكميم بدقة مختلطة وHAQDifferent layers tolerate different bit widths, but choosing weight and activation bits per layer gives a design space of 64^n. HAQ automates the choice with an actor-critic reinforcement-learning agent that gets latency and energy feedback directly from the target hardware, beating uniform quantization and producing different policies for edge and cloud.تتحمل الطبقات المختلفة عروض بت مختلفة، لكن اختيار بتات الأوزان والتنشيطات لكل طبقة يعطي فضاء تصميم حجمه 64^n. يؤتمت HAQ هذا الاختيار بوكيل تعلم معزز من نوع actor-critic يتلقى تغذية راجعة عن زمن الاستجابة والطاقة مباشرة من العتاد المستهدف، فيتفوق على التكميم المنتظم وينتج سياسات مختلفة للحافة (edge) والسحابة.6 concepts6 مفاهيمSlides 65-76الشرائح 65-7636 min36 دقيقة
- 9.1Uniform versus mixed precision: one bit width per layerالدقة الموحّدة مقابل المختلطة: عرض بتات خاص بكل طبقة
- 9.2Why the mixed-precision design space is too big to search by handلماذا فضاء تصميم الدقة المختلطة أكبر من أن يُبحث يدويًا
- 9.3HAQ: an actor-critic agent with the accelerator in the loopHAQ: وكيل actor-critic مع المسرّع داخل الحلقة
- 9.4What HAQ buys: accuracy at a fixed latency, size or energy budgetماذا تكسب HAQ: دقة أعلى عند ميزانية ثابتة لزمن الاستجابة أو الحجم أو الطاقة
- 9.5Edge versus cloud policies: memory bound depthwise, compute bound pointwiseسياسات الحافة مقابل السحابة: depthwise محدودة بالذاكرة و pointwise محدودة بالحساب
- 9.6The whole quantization toolbox in one mapصندوق أدوات التكميم كاملًا في خريطة واحدة
CGlossary and referenceالمصطلحات والمرجع
- GlossaryالمصطلحاتEvery term from the lecture, defined once, with links back to the slides that use it.كل مصطلح في المحاضرة معرّف مرة واحدة، مع روابط تعيدك إلى الشرائح التي تستخدمه.
- Reference sheetالورقة المرجعيةThe lecture on one printable page, for revision before a quiz or exam.المحاضرة كاملة في صفحة واحدة قابلة للطباعة، للمراجعة قبل الاختبار القصير أو الامتحان.