| --- |
| license: apache-2.0 |
| --- |
| |
| [Run `diff-apply` on |
| Synthetic!](https://synthetic.new/hf/syntheticlab/diff-apply) |
|
|
| `diff-apply` is a small, fast model to apply search-and-replace style diffs to |
| code. Many coding agents use search-and-replace as the default first-line edit |
| format; however, for larger diffs, it's common for even fairly good coding |
| models to produce slightly inaccurate search strings, i.e. with spacing |
| slightly off or with other minor differences. |
|
|
| Typically, coding agents will do the following to handle those errors: |
|
|
| 1. Hardcode heuristics to attempt to apply certain classes of incorrect diffs |
| 2. If that fails, retry calling the original model, which can be expensive and |
| slow, and also can confuse the original model as to what the current file |
| state is. |
|
|
| `diff-apply` is trained to fix those diffs, allowing coding agents to typically |
| skip (expensive, slow, model-confusing) retries, much more robustly than |
| hardcoded heuristics. It's a Llama 3.1 8b LoRA, which means you can run it |
| cheaply on inference providers like |
| [Synthetic](https://synthetic.new/hf/syntheticlab/diff-apply). |
|
|
| The model expects prompts in the following format: |
|
|
| ``` |
| This edit is invalid; please fix it. The search string does not match perfectly with the file contents. |
| Respond only with JSON, and only with the edit JSON, not the original file. |
| If the edit is ambiguous, respond with null. |
| { |
| "file": "the-underlying-file", |
| "edit": { |
| "type": "diff", |
| "search": "the-search-string", |
| "replace": "the-replace-string", |
| } |
| } |
| ``` |
|
|
| It will respond with the fixed edit in JSON. |
|
|
| ## Training details |
|
|
| Trained on a single H100 NVL for 9 hours using Axolotl. |
|
|