Ollama 0.40.16, 긴 입력의 자동 잘림과 빈 모델 목록 수정
긴 입력을 처리하는 기본값이 달라졌습니다
한국시간 11월 10일 공개된 Ollama 0.40.16은 OpenAI 호환 API에서 입력을 자르는 방식과 빈 모델 목록의 응답 형식을 수정했습니다. 새 모델 지원도 포함됐지만, 기존 애플리케이션을 운영하는 개발자에게는 요청과 응답의 의미가 일관되게 전달되는지가 중요한 변화입니다. 이번 글은 공식 릴리스와 병합된 수정 코드를 대조한 내용이며, 실제 모델을 실행해 측정한 결과는 아닙니다.
생략과 자동 자르기를 구분합니다
Responses API 요청을 변환하는 기존 코드에는 truncation 값을 내부 채팅 요청으로 전달하는 처리가 빠져 있었습니다. 그 결과 사용자가 자르기를 끄거나 옵션을 생략해도 내부 기본 동작에 따라 긴 입력이 잘릴 수 있었습니다. 문서나 대화 기록을 길게 넣는 프로그램에서는 전달했다고 생각한 정보와 모델이 실제로 받은 정보가 달라질 여지가 있었습니다.
수정된 코드에서는 disabled와 옵션 생략을 모두 자르기 비활성화로 연결하고, auto일 때만 활성화합니다. 알 수 없는 문자열은 오류로 처리합니다. 따라서 업데이트 뒤에는 이전에 조용히 잘라 처리하던 초과 입력이 오류로 드러날 수 있습니다. 이를 곧바로 모델 성능 저하로 판단하기보다, 입력 크기와 요청 옵션부터 확인하는 편이 좋습니다. 이 변경이 모델의 문맥 길이를 늘려 주는 것은 아닙니다.
모델이 없을 때도 목록은 배열입니다
다른 수정은 /v1/models의 빈 응답입니다. 설치된 모델이 없으면 기존에는 data에 null이 들어갔지만, 이제는 빈 배열이 반환됩니다. 배열을 기대하는 엄격한 타입의 클라이언트에서는 이 차이 때문에 응답 역직렬화가 실패할 수 있습니다. 서버가 정상적으로 응답했는데도 초기 설정 화면이나 모델 선택 목록을 표시하지 못하는 상황과 연결되는 문제입니다.
수정 코드는 모델을 담을 슬라이스를 빈 배열로 초기화하며, 모델이 있는 경우의 목록은 그대로 유지합니다. 개발자는 예외 처리로 모든 실패를 숨기기보다, '설치된 모델 없음'과 '서버 연결 실패'를 UI에서 구별할 수 있습니다. 다만 이 수정은 모델 목록에 관한 것이므로 다른 API의 빈 응답 형식까지 모두 바뀌었다고 확대해서 이해하면 안 됩니다.
업데이트 후 확인할 세 가지
먼저 동일한 긴 입력으로 truncation 생략, disabled, auto 요청을 나누어 비교해 보세요. 오류 여부뿐 아니라 잘라도 되는 자료인지 판단해야 합니다. 계약 조건이나 앞부분 지시가 중요한 작업에 auto를 일괄 적용하면 정보 손실을 허용하는 셈이 됩니다. 필요한 구간을 선별하거나 입력을 나누는 처리는 애플리케이션에서 별도로 설계해야 합니다.
다음으로 별도의 테스트 환경에서 모델이 없는 상태와 있는 상태의 목록 응답을 확인하세요. 운영 모델을 지우며 시험할 필요는 없습니다. 마지막으로 사용 중인 SDK가 반환값과 오류를 올바르게 처리하는지 점검하세요. Ollama의 OpenAI 호환성은 API 일부에 대한 지원이므로, 이번 두 수정만으로 모든 OpenAI 기능과 동작이 같아졌다고 볼 수는 없습니다.
미로


댓글
이 글에 대한 생각을 남겨 주세요.