Closed ytyt-yt closed 6 months ago
We sugges that you should format the indent spaces for the autocomplete suggestions for lines.
我也遇到了同样的问题,并不只是indent space的原因,请仔细查看@ytyt-yt 的例子。
专注在left =<fim_suffix>
和left = <fim_suffix>
的例子上,模型都会给出两个空格的output如left = [x for x in arr if x < pivot]
。
这会使得模型在做autocomplete的时候让user觉得麻烦,每次还要手动回去把多余空格去掉。
这是模型预训练导致的特性?有办法修复吗?
另外一个例子:
Prompt: <fim_prefix>def quicksort(arr):
if len(arr) <= 1:
return arr
pivot = [len(arr) // 2]
le<fim_suffix>
middle = [x for x in arr if x == pivot]
right = [x for x in arr if x > pivot]
return quicksort(left) + middle + quicksort(right)<fim_middle>
Generated text: ` ft = [x for x in arr if x < pivot]`
Code:
<fim_prefix>def quicksort(arr):
if len(arr) <= 1:
return arr
pivot = [len(arr) // 2]
le ft = [x for x in arr if x < pivot]
middle = [x for x in arr if x == pivot]
right = [x for x in arr if x > pivot]
return quicksort(left) + middle + quicksort(right)<fim_middle>
le|ft
补全被断开成了le ft
了
感觉FIM的时候经常会出现开头多余一个空格的情况。比如:
会输出:
输入
会输出
输入
会输出