Concepts / Instruction Fine-Tuning Workflow

Instruction Fine-Tuning Workflow

The Alpaca dataset is an openly shared instruction dataset of 52,002 entries, roughly fifty times larger than the earlier instruction file, with generally longer entries.

  • Programming

What Changes When the Data Gets Bigger

Up to this point, instruction fine-tuning has relied on a small file of instruction examples. This article asks what changes when the same workflow is pointed at a far larger body of instruction data. The example used here is the Alpaca dataset.

Before reading on, think about what could go wrong when a training run becomes much bigger. There are three likely problems: the time the run takes, the memory it needs, and how you will know whether the result is any good. The rest of this article answers those questions in order, following the path the workflow actually takes from data to judgment.

The Alpaca Dataset at a Glance

Definition

The Alpaca dataset is an openly shared instruction dataset of 52,002 entries. It is roughly fifty times larger than the earlier instruction file, and its entries are generally longer.

The dataset is openly available at https://mng.bz/NBnE. It is offered as an option you can substitute for the smaller instruction file used earlier in the chapter. This substitution is the key idea: the workflow you already know stays the same while the data changes. What changes is the scale of the work the hardware must do and the care you need in judging the results.

PropertyEarlier instruction fileAlpaca dataset
Number of entriesFar fewer52,002
Relative sizeBaselineRoughly fifty times larger
Typical entry lengthShorterGenerally longer
WorkflowThree stagesThe same three stages

The Alpaca dataset changes the scale of the work, not the overall plan.

Tracing the Three Stages

Instruction fine-tuning on the Alpaca dataset follows the same overall plan as the smaller exercise, organized into three stages. Each stage depends on the output of the one before it, so the workflow reads like a chain of hand-offs. Follow the diagram from left to right and watch what each stage hands to the next.

Prepare dataInstruction examples readyfor trainingFine-tune modelPretrained model trained onthe instruction examplesEvaluate on test setScored responses to unseeninputsprepared training datatrained model
What happens first, what happens next, and what artifact does each stage hand to the next one?
  1. 1
    Stage 1, prepare the data: the instruction examples are readied for training. Its output is the prepared instruction data.
  2. 2
    Stage 2, fine-tune the model: a pretrained model is loaded and trained on the instruction examples. Its output is a trained model.
  3. 3
    Stage 3, evaluate the result: the trained model is asked for answers to inputs it has not seen during training. This stage does not train anything. It contains three steps: extracting the responses, evaluating them qualitatively, and scoring them.

Notice the difference between the first two stages and the third. The first two end with a trained model. The third takes that trained model and examines what it does with new instructions. So the workflow moves from building a model, to measuring what the model can do.

Why the Test Set Stays Separate

The model in the first two stages is trained on the training portion of the instruction dataset. The evaluation stage uses a different portion, the held-out test set, which the training process never used. Keeping the two portions separate is what makes evaluation informative.

Think of the training portion as the material the model studies and the held-out test set as questions it has never seen. A model judged only on examples it has already learned from tells you very little about whether it can handle new instructions. Its score would mostly reflect what it memorized, not what it can do.

Following a Test Prompt Through Evaluation

Evaluation has two parts, and together they move from raw output to a measured judgment. First, the model-generated response is extracted for each input in the test dataset, and those responses are collected so they can be analyzed by hand. Second, the model's responses are compared with the correct responses in the test set, so that their quality can be judged and scored.

Held-out testinputsInputs never used intrainingFine-tuned modelProduces a response foreach inputExtracted responsesCollected for hand analysisScored comparisonQuality judged and scoredCorrect testresponsesReference answers in thetest settest promptgenerated responsecompared withreference answer
How do test prompts move through the fine-tuned model, and where do the responses get collected and compared?

Trace one test prompt through the diagram. It enters the fine-tuned model, which produces a response. That response is extracted and stored with the other collected responses. Meanwhile the correct response for the same test item is available from the test set. The two are brought together in the comparison, where quality is judged and scored. Nothing in this path touches the training portion of the data.

Hardware and Memory Settings for Large Data

A dataset with 52,002 entries takes much more work to process than a small file. The source gives two practical recommendations. The first is about hardware. Because the dataset is large and its entries are longer on average, training is best done on a GPU, which accelerates the fine-tuning process.

The second recommendation is about what to adjust when memory runs out. Two settings control how much work the hardware must hold at one time. The batch_size setting controls how many examples are processed together. The allowed_max_length setting caps how long each input may be. If training fails with out-of-memory errors, lowering batch_size eases the problem first, and then allowed_max_length can be lowered as well.

batch_size 8Examples processed togetherbatch_size 4, then 2or 1Fewer examples held at onceallowed_max_length1,024Longest allowed inputallowed_max_length512, then 256Shorter inputs held at oncelower if out of memorylower if still out of memory
How does lowering batch_size or allowed_max_length change how much memory a training batch occupies, and how do the adjustments trade off?
Worked example

Recovering a Run That Runs Out of Memory

A fine-tuning run on the large dataset fails with out-of-memory errors using batch_size 8 and allowed_max_length 1,024. What adjustments can get it running?

  1. 1
    Lower batch_size first

    Change batch_size from 8 to 4 and rerun. Fewer examples are processed together, so less work must be held at once.

  2. 2
    Lower batch_size again if needed

    If errors continue, lower batch_size to 2, or even to 1.

  3. 3
    Lower allowed_max_length next

    If the run still fails, lower allowed_max_length from 1,024 to 512, or to 256, to cap how long each input may be.

  4. 4
    Keep the workflow unchanged

    The three stages, and the held-out test set used for evaluation, stay the same. Only the memory settings change.

Result

The run is eased by lowering batch_size first and allowed_max_length afterward, without changing the three-stage workflow or the evaluation plan.

Mistakes to Avoid When Scaling Up

  • Common mistake

    Evaluating the model on examples it trained on

    What it looks like

    Scoring the model using the training portion of the dataset and reporting that as its performance.

    Why it fails

    The model has already learned those examples, so the score says little about how it handles new instructions.

    Do this instead

    Judge the model only on the held-out test set, which the training process never used.

  • Common mistake

    Assuming a bigger dataset needs a different workflow

    What it looks like

    Abandoning the three-stage plan when the Alpaca dataset is used in place of the smaller file.

    Why it fails

    The source presents the Alpaca dataset as a substitute that keeps the same overall plan.

    Do this instead

    Keep the three stages and change only what the scale requires, such as hardware and memory settings.

  • Common mistake

    Stopping at the raw responses

    What it looks like

    Looking at a few extracted responses and declaring the model good.

    Why it fails

    Evaluation moves from raw output to a measured judgment, which means comparing responses with the correct ones and scoring them.

    Do this instead

    Compare the collected responses with the correct test responses and judge them with a score.

  • Common mistake

    Lowering the wrong setting first

    What it looks like

    Cutting allowed_max_length to 256 immediately when batch_size could have been lowered first.

    Why it fails

    The source suggests easing out-of-memory errors by lowering batch_size first and then allowed_max_length.

    Do this instead

    Lower batch_size step by step, then lower allowed_max_length if needed.

Predicting the First Adjustment

What do you think happens?

A run fails with out-of-memory errors at batch_size 8 and allowed_max_length 1,024. Which setting does the workflow suggest lowering first?

  • batch_size

  • allowed_max_length

  • The size of the held-out test set

Reveal answer
Answer:

batch_size

Lower batch_size first, from 8 to 4, then to 2 or 1. Only after that is allowed_max_length lowered, from 1,024 to 512, then 256.

MEDIUM

A colleague says that because the dataset is 52,002 entries, the best fix for a memory error is to skip the held-out test set and evaluate on the training data instead, since that gives more examples to score. Explain what is wrong with this plan, and describe the correct order of adjustments and evaluation steps.

Hints
  • Ask what the evaluation stage is supposed to measure: new instructions or examples the model already learned from.
  • Recall which two settings control memory and which one is lowered first.
  • The three stages still apply; only the memory settings change.

Key Takeaways

  • The Alpaca dataset is an openly shared instruction dataset of 52,002 entries, roughly fifty times larger than the earlier instruction file, with generally longer entries, and it can replace that file while the workflow stays the same.
  • Instruction fine-tuning has three stages: preparing the data, fine-tuning a pretrained model on the instruction examples to produce a trained model, and evaluating that model on a held-out test set.
  • For a large dataset, a GPU is strongly recommended. If out-of-memory errors occur, lower batch_size first, then allowed_max_length.
  • Evaluation extracts the model's response for each test input, collects the responses for analysis, and compares them with the correct responses so they can be judged and scored.

Related concepts

More concepts starting with I