Practical insights
- 1000published
- 25in review
- 8topic families
Results
- Assert prediction and target shapes right before every loss call
A regression network returns predictions of shape (N, 1) while the target tensor is (N,), for example predicted load factor per flight-day.
easydocumented fact - Test that examples in a batch cannot influence each other's predictions
You wrote custom reshaping, pooling or attention code with view, transpose or reductions over several axes.
mediumpractitioner heuristic - Count parameters by hand before training and compare with your number of rows
You size a multilayer perceptron for a tabular problem such as predicting final bookings from 20 booking-curve features.
easydocumented fact - Check how many parameters your embedding tables hold before adding ID features
You add learned embeddings for high-cardinality identifiers such as customer, store or SKU IDs to a neural model.
mediumpractitioner heuristic - Feed raw logits to CrossEntropyLoss, never softmax outputs
A multi-class model ends in nn.Softmax and its output goes straight into nn.CrossEntropyLoss.
easydocumented fact - Use BCEWithLogitsLoss instead of a sigmoid followed by BCELoss
A binary model, such as a no-show or fraud classifier, ends in a sigmoid layer and is trained with BCELoss.
easydocumented fact - Pick softmax or independent sigmoids by asking whether labels can co-occur
You classify flight disruption reports into causes (weather, crew, technical, ATC) and some reports cite several causes.
mediumdocumented fact - Leave regression outputs linear and choose the loss for the statistic you need
A network predicts a non-negative quantity such as daily energy load or claim cost, and someone adds a ReLU on the output.
mediumpractitioner heuristic - Check that the first loss value equals what chance predicts
You start a new classifier training run, for example a 5-class complaint router.
easypractitioner heuristic - Calibrate a neural classifier before using its softmax output as a probability
A network's predicted probability will drive a cost-based decision, such as how much overbooking risk to accept or when to route a claim to manual review.
mediumempirical finding - Match weight initialization to the activation function
A deep MLP or CNN with ReLU activations trains very slowly, or a tanh network's loss does not move for many steps.
mediumdocumented fact - Run a learning-rate range test before tuning anything else
You start training a new architecture or dataset and are about to grid-search learning rate together with other hyperparameters.
mediumpractitioner heuristic - Use Adam to iterate fast, but test SGD with momentum before final training
Your model trained with Adam is close to final and the remaining question is test accuracy, not speed of iteration.
mediumempirical finding - Make sure BatchNorm uses running statistics when you evaluate and serve
Validation accuracy differs between two scoring scripts, or a model scores the same image differently in a batch of one and in a full batch.
easydocumented fact - Turn dropout off at inference unless you are deliberately sampling
A deployed demand model returns slightly different predictions for the same request, and nobody changed the code.
easydocumented fact - Treat Monte Carlo dropout uncertainty as a signal to validate, not a calibrated interval
Stakeholders want an uncertainty band around a neural demand forecast and you consider keeping dropout on at inference and averaging many passes.
hardpractitioner heuristic - Early-stop neural training on the decision metric and restore the best checkpoint
A churn network uses early stopping on validation loss with default patience, and the final weights are whatever the last epoch produced.
mediumpractitioner heuristic - Overfit a tiny batch before launching full training
A new model or data pipeline is ready and you are about to start a multi-hour training run.
easypractitioner heuristic - Triage a NaN loss in a fixed order, starting with the data
The loss of a fraud model becomes NaN in epoch 3, and the team starts changing the architecture.
mediumpractitioner heuristic - Split by source item before augmenting, never after
You multiply a small labelled image set, such as photos of damaged baggage or defect images, with crops and flips, then split the enlarged set randomly.
mediumpractitioner heuristic - Compute input normalization statistics on the training split only
You standardize tabular inputs for a neural net with a mean and standard deviation computed on the full dataset before splitting.
easydocumented fact - Beat a tuned gradient-boosting baseline before shipping a neural net on tabular data
A team proposes a deep model for a tabular problem, such as predicting final bookings per flight from booking-curve, fare and calendar features.
easyempirical finding - Give the baseline and the neural model the same tuning budget
A comparison report shows a neural model beating logistic regression and boosting on a churn dataset.
mediumpractitioner heuristic - Report results over several seeds before claiming a neural improvement
A fine-tuned text classifier scores 1.2 points higher than the current one on a single run.
mediumempirical finding - Switch on deterministic GPU mode while bisecting a training regression
After a refactor, validation accuracy of a credit-risk network drops by half a point, and you want to find the commit responsible.
mediumdocumented fact - Watch the flatten-to-dense layer, not the convolutions, for parameter blow-up
A small CNN for shelf images or X-ray triage has far more parameters than expected and overfits quickly.
mediumdocumented fact - Start transfer learning with a linear probe, then fine-tune if it pays
You have a few thousand labelled examples and a pretrained backbone, and must decide whether to freeze it or fine-tune it.
mediumempirical finding - Do not expect a plain RNN to carry information across hundreds of steps
You model long sequences, such as months of daily meter readings or long support transcripts, with a vanilla RNN.
mediumdocumented fact - Compare a sequence model of booking curves against lag features in a GBM
You want an LSTM or Transformer to forecast final bookings from the sequence of booking-curve snapshots per flight.
mediumpractitioner heuristic - Use causal masking when the prediction must not see later tokens or events
You use a bidirectional encoder or an unmasked Transformer over a customer's event stream to predict their next action in real time.
mediumdocumented fact - Do not present attention heatmaps as the reason for a prediction
A stakeholder asks why the model flagged a loan application or complaint, and the team shows an attention heatmap over the input words.
mediumempirical finding - Start text classification with TF-IDF and a linear model
You need to route airline customer complaints into 8 queues and the first idea is to fine-tune a Transformer.
easyempirical finding - Fit the vectorizer vocabulary and IDF weights on training text only
A notebook calls TfidfVectorizer().fittransform(alltexts) and then splits the matrix into train and test.
easydocumented fact - Deduplicate near-identical texts across splits before trusting a text score
A complaint or FAQ dataset contains forwarded emails, copy-pasted templates and resubmitted tickets, and you split it randomly.
mediumempirical finding - Check whether a text model learned the template instead of the content
A ticket classifier scores very high, and many tickets come from web forms, partner systems or agents with their own boilerplate.
mediumpractitioner heuristic - Compare tokenizer fertility before choosing a multilingual encoder for a non-English task
You must classify Turkish customer complaints and are choosing between a multilingual encoder and a model pretrained mainly on Turkish text.
mediumempirical finding - Inspect how the tokenizer splits your domain codes and numbers
Inputs contain flight numbers, fare-class codes, booking references, part numbers or ICD codes, and a pretrained model handles them poorly.
mediumpractitioner heuristic - Check where the label evidence sits before truncating long texts
Insurance claim narratives or incident reports often exceed the encoder's maximum length and are cut at the limit.
mediumpractitioner heuristic - Prefer loss weighting to duplicating rare texts when classes are imbalanced
In a ticket classifier, safety-related complaints are 0.5% of messages and the model rarely predicts them.
mediumpractitioner heuristic - Report per-class recall and macro averages for long-tail intent classifiers
A banking chatbot intent model reports 94% accuracy over 60 intents, and most traffic falls into five intents.
easypractitioner heuristic - Audit test-set labels before ranking models that differ by a point or two
Two text classifiers differ by 1.5 points on a test set labelled quickly by several annotators.
mediumempirical finding - Expect large networks to memorize noisy training labels and plan for it
Training labels come from agents' quick tags and you train a large model for many epochs until training accuracy nears 100%.
mediumempirical finding - Do not reuse a cosine-similarity threshold across embedding models
A duplicate-ticket detector flags pairs above cosine 0.8, and the team swaps in a new embedding model without changing the threshold.
mediumpractitioner heuristic - Watch for vocabulary drift in embedding-based models and adapt the encoder only when it pays
A complaint-topic clustering or classification model built on general-purpose sentence embeddings degrades after a new loyalty programme and new fare products introduce unfamiliar jargon.
hardempirical finding - Judge custom-trained embeddings by downstream lift, not by nearest-neighbour anecdotes
You trained product or route embeddings from co-purchase or co-search sequences and the team validates them by listing the nearest neighbours of a few favourite items.
mediumpractitioner heuristic - Do not treat a t-SNE or UMAP picture of embeddings as evidence of separation
A slide shows customer-message embeddings in 2D with neat colored clusters and claims the model separates segments.
easydocumented fact - Use contextual embeddings when word sense changes the label
You classify short airline messages with averaged static word vectors, and words like "hold" (baggage hold, on hold, hold a seat) carry the meaning.
mediumempirical finding - Route low-confidence predictions to people, but validate the confidence signal first
A claims-intake text classifier will auto-route confident predictions and send uncertain ones to human agents.
mediumempirical finding - Fix the total step budget before you choose a decaying learning-rate schedule
You pick a cosine or linear decay for a run and later decide to train "a few more epochs" because validation is still improving.
mediumpractitioner heuristic - Do not place dropout directly before a BatchNorm layer
A convolutional or dense network has a dropout layer immediately followed by BatchNorm and validation accuracy is slightly worse in evaluation mode than the training curve suggests.
mediumempirical finding - When you add mixup, treat the targets as soft and change the metrics accordingly
You add mixup to an image or tabular network that overfits a few thousand labelled rows, and keep the old accuracy and threshold code.
mediumempirical finding - Look at a labelled grid of augmented samples before you train on them
You add random crops, flips, jitter or noise to a training pipeline and plan to judge the result only by validation accuracy.
easypractitioner heuristic - Recalibrate after adopting focal loss for an imbalanced classifier
A rare-event network (for example, a synthetic no-show flag at 2 percent prevalence) is trained with focal loss and its scores are fed into a cost-based threshold.
mediumempirical finding - Put the task losses on one scale before adding them in a multi-task network
A shared network predicts a revenue amount in euros and a cancellation probability, and the total loss is the plain sum of a squared error and a cross-entropy.
mediumempirical finding - Rank training examples by out-of-fold loss to find labels worth re-checking
A classifier plateaus below what the data seems to allow, and the labels come from a rule, a vendor or a stressed annotation team.
mediumempirical finding - Do not quote one expected-calibration-error number without its binning and a reliability diagram
A report compares two networks by a single ECE value computed with ten equal-width bins on a test set of 800 rows.
mediumempirical finding - Prefer a small deep ensemble over MC dropout when uncertainty must hold up
A neural classifier's confidence will gate automated decisions, and you can afford several times the training and inference compute.
mediumempirical finding - Re-check calibration on shifted data, because a temperature fitted in distribution may not travel
A temperature-scaled network is deployed to a new region, season or device mix and its probabilities feed a threshold chosen on the old validation split.
hardempirical finding - Average the weights of late checkpoints, then recompute BatchNorm statistics
Validation loss of a small network fluctuates by a few percent between neighbouring epochs and you must pick one checkpoint to ship.
mediumempirical finding - Vary the initialisation seed and the data-order seed separately to see which one moves the metric
Two runs of the same configuration differ by half a point and you do not know whether to blame initialisation, shuffling, augmentation or hardware.
mediumempirical finding - Write a run manifest that lets a stranger repeat the experiment
A model that scored well three weeks ago cannot be rebuilt: the notebook, the library versions and the data extract have all changed.
easypractitioner heuristic - Shuffle the training labels once and confirm the validation score collapses to chance
A network scores surprisingly high on a new dataset, and the pipeline joins several tables and applies preprocessing before the split.
mediumpractitioner heuristic - Train once with the inputs zeroed to prove the model uses its features
A network reaches a decent score, but its loss curve looks similar to what a constant prediction would give.
easypractitioner heuristic - Quote an error bar that reflects the size of a small test set before comparing networks
You compare two neural classifiers on a hold-out of 120 rows and one is ahead by four points.
easyempirical finding - Include Adam's epsilon in the search space before ranking optimizers
A comparison of SGD with momentum and Adam is run with default settings, and Adam loses by a point on a tabular-style network.
hardempirical finding - Get a model that overfits the full training set before you add regularisation
A new network underperforms and you immediately add dropout, weight decay and augmentation to it all at once.
easypractitioner heuristic - Shuffle the training loader explicitly, because the default does not
A DataLoader is built from rows exported sorted by route, date or label, and training loss is jagged with a repeating pattern of the same length as the epoch.
easydocumented fact - Embed numerical features before the MLP when a tabular network trails gradient boosting
A plain MLP on raw standardised numerical features of a tabular problem (fare, days to departure, load factor) underperforms a gradient-boosted model by a clear margin.
hardempirical finding - Fit a learning curve over training-set size before buying more labels or a larger model
A team plans to triple labelling spend because validation error is still above target, without knowing how error has moved with data so far.
mediumempirical finding - Do not stop at the first rise in validation loss without checking a longer horizon
An over-parameterised network's validation error rises in mid-training, then, with patience set to five epochs, training halts and a smaller model is chosen instead.
hardempirical finding - Test character n-grams before building a stemmer for agglutinative Turkish text
A Turkish complaint classifier uses word-level TF-IDF, and one stem shows up in many surface forms because suffixes stack onto it.
mediumpractitioner heuristic - Normalise Unicode text to one form before tokenising, hashing or deduplicating
Turkish messages arrive from several apps and keyboards, and the same letter with a cedilla or breve is sometimes one precomposed character and sometimes a base letter plus a combining mark.
easydocumented fact - Measure how much Turkish text is typed without diacritics before trusting a clean benchmark score
A model trained on correctly accented Turkish complaints will read chat and mobile messages where people type c, s, g, i, o, u for the letters with diacritics.
mediumpractitioner heuristic - Print what a stock stop-word list removes before applying it to complaint or sentiment text
A pipeline strips the packaged English stop-word list before TF-IDF on airline complaints because the tutorial did.
easyempirical finding - Use feature hashing when the vocabulary keeps growing, and accept what it gives up
A ticket classifier is refit nightly and a fitted vocabulary keeps meeting new product names, flight codes and typos, while the vocabulary dictionary grows in memory.
mediumdocumented fact - Centre or whiten sentence embeddings before nearest-neighbour search and compare with the raw vectors
Scores between unrelated texts from a BERT-based encoder are all high, and every query seems to retrieve similar neighbours.
hardpractitioner heuristic - Count how often each item shows up in top-k lists to catch hub documents in embedding search
In a vector search over support articles, the same handful of articles appears in the top 10 for many unrelated queries.
hardpractitioner heuristic - Measure pretrained word-vector coverage on your own tokens, by slice, before relying on static embeddings
GloVe or word2vec vectors feed a complaint classifier, and the text is full of flight codes, brand names and inflected Turkish forms.
easypractitioner heuristic - Build a contrast set before letting embedding similarity merge texts automatically
A duplicate-ticket merger links two tickets whenever the cosine similarity of their embeddings passes a threshold chosen on random pairs.
mediumpractitioner heuristic - Remove the common component before averaging static word vectors into text features
Short texts are represented by the plain mean of GloVe or word2vec vectors for a classifier or nearest-neighbour search.
mediumempirical finding - Do not use raw BERT [CLS] or mean-pooled outputs as sentence embeddings for similarity
A prototype embeds sentences with a base BERT checkpoint, takes the [CLS] vector or the mean of the last layer, and ranks by cosine.
easyempirical finding - Evaluate zero-shot cross-lingual transfer on labelled Turkish data before launching in Turkish
A multilingual encoder is fine-tuned on English tickets and expected to work on Turkish tickets with no Turkish labels.
mediumempirical finding - Report metrics per detected language when messages mix Turkish and English
Customer messages for an airline are Turkish, English and mixed, and one classifier reports a single accuracy.
mediumpractitioner heuristic - Compare frozen features and fine-tuning at several training sizes before committing
A team has 600 labelled Turkish complaints and argues about frozen embeddings with a linear head versus fine-tuning.
mediumempirical finding - Count selection data as part of the budget when you only own a few dozen labels
A few-shot text classifier is reported at a score tuned on prompts and learning rates using a large extra validation set, though production will have only 60 labels.
hardempirical finding - Keep per-item annotator votes and test soft labels before collapsing them to a majority
Three annotators label each tone or intent example, the pipeline keeps the majority label, and a third of the items were split 2 to 1.
hardempirical finding - Hold out annotators, not only items, when a few people produced most of the labels or texts
A tone classifier is trained on labels from five agents, two of whom labelled 70 percent of the rows, and the test split is random.
mediumempirical finding - Run a partial-input baseline to expose annotation artifacts before celebrating a text score
A text-pair or template-labelled dataset scores high and you suspect the label writers left stylistic traces.
mediumempirical finding - Split text data by thread or customer so quoted replies and personal style cannot cross the boundary
Support emails are split by message at random, though each thread has several messages that quote earlier ones and come from the same customer.
mediumempirical finding - Exclude text written after the outcome, such as resolution notes and closing remarks
You predict at ticket creation whether a complaint will be escalated, using a text column that holds the full conversation including later agent notes.
mediumdocumented fact - Reweight to the production class prior when labelling effort was split evenly across intents
A labelling budget was split equally over six intents so each has the same count, while production traffic has one dominant intent and several rare ones.
harddocumented fact - Keep invariance and directional tests for a text classifier next to its accuracy report
A complaint-priority classifier passes its test set and then fails on trivial rewrites in the first demo.
mediumpractitioner heuristic - Set padding_idx on embeddings and still mask the pool, or padding length leaks into the features
A text model uses nn.Embedding with pad id 0 and mean-pools token vectors over the padded length.
easydocumented fact - Read the last real time step of a padded RNN batch, not position minus one
An LSTM classifier over right-padded batches uses output[:, -1] as the sequence summary.
mediumpractitioner heuristic - Detach the hidden state between truncated-BPTT chunks and treat chunk length as the learnable dependency horizon
You train an RNN on one long stream by carrying the hidden state across consecutive chunks.
harddocumented fact - Use a 1-D CNN with max-pooling as a fast pattern-detector baseline for long sequences
A label depends on short local patterns in long event or text sequences, and recurrent models are slow to train.
mediumpractitioner heuristic - Do not assume a CNN uses its full theoretical receptive field
You size a CNN on paper so its theoretical receptive field covers the whole image or sensor window and conclude the context is covered.
hardempirical finding - Probe a CNN with texture and capture shifts before moving it to a new camera or catalogue
A product-image or defect CNN trained under one camera and lighting setup is moved to another source, such as customer photos instead of catalogue shots.
mediumempirical finding - Tune the look-back window of a neural forecaster and check it against a linear model on the same windows
A Transformer forecaster is given a much longer history in the hope of better accuracy.
mediumempirical finding - Ensemble neural forecasters over seeds, look-back windows and losses instead of trusting one run
A neural forecaster's backtest error changes visibly from one random seed to the next.
mediumempirical finding - Backtest sequence models in free-running mode, not with teacher-forced inputs
A recurrent forecaster predicts the next 14 days of bookings, and validation loss is computed by feeding the true previous values as inputs.
mediumempirical finding - Exclude duplicate positives from a batch when training a retriever with in-batch negatives
A bi-encoder is fine-tuned on question and answer pairs with in-batch negatives, and several questions share the same answer or the same question appears twice.
mediumpractitioner heuristic