FIM 코드 완성 (fill-in-the-middle)

FIM 코드 완성 (fill-in-the-middle)

CodeGemma의 핵심 기능 중 하나가 fill-in-the-middle(FIM) 코드 완성이에요. 코드의 앞(프리픽스)과 뒤(서픽스)가 주어졌을 때 그 사이의 중간 부분을 채우는 방식이라, 커서 위치에서 자연스러운 완성을 만들어요.

왜 FIM인가

일반 코드 완성은 프리픽스만 보고 다음 토큰을 예측해요. 반면 FIM은 커서 앞뒤를 모두 고려하기 때문에, 함수 중간이나 조건문 안에서도 맥락에 맞는 코드를 완성할 수 있어요. 특히 2B 프리트레인 변형은 이 FIM 태스크에 최적화되어 최대 2배 빠른 완성을 제공해요.

활용 방식

FIM 완성은 코드 편집기의 자동 완성 기능과 자연스럽게 결합돼요. 줄 단위, 함수 단위, 때로는 코드 블록 전체까지 완성할 수 있어서 반복적인 보일러플레이트 작성을 줄여줘요.

지시 따르기와의 차이

CodeGemma 7B 인스트럭트 변형은 자연어로 된 지시를 받아 코드를 생성하는 데 특화돼 있어요. "이 정렬 알고리즘을 파이썬으로 구현해줘" 같은 요청을 처리하죠. 반면 FIM 중심의 프리트레인 변형은 편집기 안에서의 자동 완성 흐름에 더 적합해요.

더 알아보기