Author here.
FIM is a term of art in LLM research for a style of tokens used to implement code completion. In particular, it refers to training an LLM with the extra non-printing tokens:
<|fim_prefix|>
<|fim_middle|>
<|fim_suffix|>
You would then take code like this:
func add(a, b int) int {
return <cursor>
}
and convert it to:
<|fim_prefix|>func add(a, b int) int {
return<|fim_suffix|>
}<|fim_middle|>
and have the LLM predict the next token.
It is, in effect, an encoding scheme for getting the prefix and suffix into the LLM context while positioning the next token to be where the cursor is.
(There are several variants of this scheme.)