TECHNOLOGY

Devstral 2 vs Small 2 for multi-file code changes

In this article
THE QUICK TAKE

Devstral 2 and Small 2 should be compared on complete linked changes rather than one isolated generated function.

Devstral 2 and Devstral Small 2 are two released coding models for software engineering work. Their practical comparison should use a change that crosses file boundaries rather than a single generated function.

Identify the two artifacts

The larger model card identifies Devstral 2 123B Instruct 2512. The Small 2 card identifies the 24B counterpart. The selected cards describe FP8 instruction artifacts, so a different community conversion would create another comparison condition.

The release announcement introduces both models and discusses their coding evaluation. Its reported results remain tied to the publisher’s harnesses. They do not establish which model will complete a particular internal change.

Use a linked interface migration

Consider a fictional library where a function starts returning an explicit result object instead of an ambiguous empty value. The change affects the function, callers, tests and an example.

A correct implementation must update all relevant access paths. A model that creates the result object but leaves callers checking the old empty value has not completed the migration. A model that changes unrelated public behavior also fails the intended requirement.

Define a cross-file acceptance map

File roleRequired change or invariant
Function definitionProduce the new result representation
CallerHandle success and failure explicitly
TestsCover both branches without weakening old guarantees
ExampleUse the accepted interface correctly
Unrelated moduleRemain unchanged unless a dependency requires it

Give both models the same starting tree and file contents. Use a valid format for each checkpoint rather than forcing an incorrect identical prompt serialization.

Diagnose apparent success

A patch can apply cleanly and still miss one caller. Run a source search or type check suited to the fictional interface before behavioral tests. A final explanation saying all callers were updated is not evidence that they actually were.

If a generated diff touches additional files, inspect whether those changes are necessary for the migration. Extra edits can enlarge review scope without improving acceptance. Distinguish an unfinished patch from a completed but inconsistent one.

Choose by complete engineering outcomes

Record checkpoint revisions, artifact format, requirements, available source and the final diff. Compare accepted migrations, missed dependencies, regressions and incomplete attempts separately. Keep the actual test observations with each result.

A useful conclusion can favor the smaller or larger variant for this bounded workflow, or show no meaningful difference on the selected cases. It cannot establish universal parameter efficiency, guaranteed local hardware fit or an invariant winner across programming languages. The released model names are candidates; the accepted multi-file change supplies the selection evidence.

← All articles