Aider currently uses 3 different editing formats. The SEARCH/REPLACE blocks ("diff") that look like merge conflict resolutions, unified diffs ("udiff") and whole file ("whole") where the model has to return an updated copy of the entire file.
Only the weakest models like GPT-3.5 and Sonnet currently rely on the "whole" editing format. Most local LLMs struggle even with the whole format, although some do ok (but far worse than GPT-3.5/Sonnet).
The original gpt-4-0613 uses the search/replace "diff" format. The new Opus model works best with this format too.
The GPT-4 Turbo models work best with the unified diff "udiff" format. This format was created because it discourages GPT-4 Turbo from being "lazy" when coding.
Being able to handle diff or udiff is a big advantage -- they save a lot of tokens, money and time. I don't think it would be wise to use whole with any model than can handle one of the diff formats.
All that said, Opus' score climbs from 68.4->70.7% if you switch from diff->whole. I don't think that gain is worth the pragmatic downsides of the whole edit format. But you're welcome to run aider with `--edit-format whole` if you'd like!
Only the weakest models like GPT-3.5 and Sonnet currently rely on the "whole" editing format. Most local LLMs struggle even with the whole format, although some do ok (but far worse than GPT-3.5/Sonnet).
The original gpt-4-0613 uses the search/replace "diff" format. The new Opus model works best with this format too.
The GPT-4 Turbo models work best with the unified diff "udiff" format. This format was created because it discourages GPT-4 Turbo from being "lazy" when coding.
Being able to handle diff or udiff is a big advantage -- they save a lot of tokens, money and time. I don't think it would be wise to use whole with any model than can handle one of the diff formats.
All that said, Opus' score climbs from 68.4->70.7% if you switch from diff->whole. I don't think that gain is worth the pragmatic downsides of the whole edit format. But you're welcome to run aider with `--edit-format whole` if you'd like!