본문으로 건너뛰기

© 2026 Molayo

Reddit요약2026. 05. 04. 17:17

Gemma 4 채팅 템플릿 툴 관련 버그 발견 및 수정

요약

Gemma 4 모델이 커스텀 도구(tool)를 호출하는 과정에서 채팅 템플릿의 버그가 발견되었습니다. 기존 Gemma의 기본 채팅 템플릿은 `anyOf: [$ref, null]`과 같이 최상위 레벨에 명시적인 `type` 필드가 없는 JSON 스키마 구조를 올바르게 처리하지 못하고, 유용한 스키마 정보를 빈 `type: ""`으로 변환하는 문제가 있었습니다. 작성자는 Jinja 템플릿을 수정하여 `$ref`, `anyOf`, `oneOf`, `$defs` 등 중요한 JSON 스키마 키워드를 보존함으로써 이 문제를 해결했습니다.

핵심 포인트

  • Gemma 4의 기본 채팅 템플릿은 특정 JSON 스키마 패턴(예: nullable refs)을 처리할 때 유용한 정보를 손실시킵니다.
  • 문제는 모델 자체의 추론 능력보다는, 도구 파라미터를 프롬프트로 변환하는 채팅 템플릿(Jinja)에 있었습니다.
  • 작성자는 Jinja 템플릿을 수정하여 `$ref`, `anyOf`, `oneOf`, `$defs` 등 복잡한 JSON 스키마 구조를 정확하게 보존하도록 개선했습니다.
  • 이 수정 사항은 Gemma 4가 커스텀 도구를 완벽하게 호출할 수 있도록 하는 핵심적인 업데이트입니다.

요약 (TLDR): 일반적인 JSON 스키마 패턴 anyOf: [$ref, null] 을 사용하는 툴 파라미터가 프롬프트로 렌더링될 때 빈 type 필드로 변환됩니다. 이는 모델이 이를 볼 전까지 유용한 스키마 정보를 제거합니다.


상세 버전 (Long version):

Gemma 4 는 >3 개의 추론 엔진에서 내 커스텀 MCP 툴을 호출할 때 문제가 발생했습니다. 반면 Qwen3.5 와 gpt-oss-20b 는 정상적으로 작동했습니다.

저는 이것이 채팅 템플릿 문제이거나 추론 라이브러리의 에지 케이스 (edge case) 문제일 것이라고 추측하고, 많은 사람들이 Gemma 4 를 에이전트로 사용하길 좋아한다고 생각하여 시간이 해결될 것이라 믿었습니다.

하지만 최소 2 주가 지났고, 저는 스스로 조사할 수밖에 없었습니다.

내가 한 작업:

  1. macbook pro 에서 Qwen3.5-27B-Q4_K_M 와 gemma-4-31B-it-Q4_K_S 를 동일한 프롬프트/툴로 실행하며 llama-server 를 통해 상세 로그 파일을 생성했습니다.
  2. codex CLI 의 GPT-5.5-high 에 로그를 읽게 하여 문제를 진단하게 했습니다.
  3. 몇 분 만에 문제를 찾았습니다: 기본 Gemma 채팅 템플릿은 툴 파라미터가 직접적인 type 필드를 가진다고 가정합니다. 이는 top-level type 이 없는 JSON 스키마 형태 (예: nullable refs) 와 호환되지 않습니다:

{"anyOf": [{"$ref": "#/$defs/SomeObject"}, {"type": "null"}]}

유용한 구조는 anyOf 와 $defs 내부에 있습니다. 템플릿은 anyOf, $ref, $defs 를 제거한 후 type: "" 로 렌더링합니다.

  1. 채팅 템플릿 jinja 의 작은 변경으로 수정되었습니다. 이제 Gemma 는 내 툴을 완벽하게 호출합니다!

어쨌든 저는 HF 에 PR 을 만들었습니다. google/gemma-4-31B-it.

<업데이트>

제가 해결한 것은 직접적인 top-level type 을 통해 의미를 노출하지 않는 JSON 스키마 형태의 여러 문제 중 하나일 뿐입니다. 제가 jinja 를 업데이트하여 다음과 같은 문제를 해결했습니다:

이제 jinja 는 다음을 보존합니다:

  • $ref
  • anyOf
  • oneOf
  • allOf
  • $defs
  • enum
  • const
  • type: ["string", "null"]
  • 배열 또는 객체를 포함하는 type 배열에 대한 items / properties
  • null 값을 null 로

수정된 jinja:
https://pastebin.com/tBAHN6FV

AI 자동 생성 콘텐츠

본 콘텐츠는 Reddit AI Engineering의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.

원문 바로가기
1

댓글

0