b11454: 모델에 K2 Horizon Dense 및 MoVA 지원 추가 (#29535)
요약
본 기사는 K2 Horizon 모델의 GGUF 변환 코드와 관련 개선 사항을 다룹니다. 특히, 유니코드 처리 및 정규식(regex) 오류를 수정하고, Dense 및 MoVA 지원을 추가하여 모델의 안정성과 기능을 향상시킨 내용을 포함합니다. 또한, 추론 과정에서 JSON 스키마 강제 적용 등 다양한 고급 기능이 구현되었습니다.
핵심 포인트
- K2-Horizon GGUF 변환 코드 업데이트로 호환성 개선
- 유니코드 정규식 오류 수정 및 ZWNJ/ZWJ 처리 강화
- Dense 및 MoVA 지원 추가로 모델 활용 범위 확장
- 추론 단계에서 JSON 스키마 강제 적용 등 기능 구현
-
model: K2 Horizon gguf 변환 코드
-
model: k2-horizon.cpp에서 hparams 및 텐서 로딩
-
model: K2 Horizon 계산 그래프
-
model: K2 Horizon 계산 그래프 조정 및 토크나이저 등록
-
model: K2 Horizon 채팅 템플릿 및 safetensors 명명 규칙 수용
-
unicode: K2-Horizon 사전 토크나이저 분할기 추가
The K2-Horizon 정규식(regex)은 unicode_regex_split_custom에서 arm을 가지지 못하고 일반 std::regex 폴백으로 넘어가는데, 이는 두 가지 방식으로 실패합니다.
MSVC의 std::regex는 \p{...}를 거부하므로, Windows에서는 K2-Horizon GGUF가 전혀 로드되지 않습니다: llama-quantize, llama-imatrix 및 llama-perplexity 모두 토큰이 생성되기 전에 regex_error(error_escape)로 중단됩니다.
폴백이 컴파일되는 경우에도 여전히 잘못되었습니다. unicode_regex_split은 각 코드포인트(codepoint)를 단일 바이트로 축소하여 유니코드 카테고리 이름을 붙인 후 매칭하며, U+200C/U+200D는 Control 카테고리에 속하는데, 이는 k_ucat_cpt에 항목이 없으므로 둘 다 0xD0 폴백 바이트가 됩니다. 그러면 K2의 정규식에 있는 리터럴 및 대안은 절대 매칭될 수 없고, 모든 ZWNJ 또는 ZWJ는 문자열 구(letter run)를 끝냅니다.
이 분할기는 기존 llama3의 것을 확장한 것이며, K2의 정규식이 llama3와 다른 점은 문자열 구가 마크(marks), ZWNJ 및 ZWJ도 포함한다는 것입니다.
tests/test-unicode.cpp에 이 케이스를 위한 테스트가 추가되었습니다: 변경 전에는 [Amy] [ZWNJ khaham]에서 실패했지만, 이후에는 구가 온전하게 유지되면서 통과합니다.
-
tests: K2 Horizon 유니코드 분할기 커버리지 확장
-
unicode: K2 Horizon 케이스 폴딩 및 빈 입력 처리
Assisted-by: Codex
- jinja : selectattr 및 rejectattr에서 시퀀스 인덱스 지원
Assisted-by: Codex
- model : K2 Horizon Dense 및 MoVA 지원 추가
ifm-ai/llama.cpp의 컨버터, 텐서 병렬(tensor-parallel) 및 모델 저장/재로드 수정 사항을 포함하는 K2 Horizon 구현이 포함되었습니다.
Assisted-by: Codex
- chat : K2 Horizon 추론 및 도구 호출 지원
Assisted-by: Codex
- conversion: 사용되지 않는 K2 Aurora 별칭 제거
Assisted-by: Codex
- k2-horizon: 응답 스키마 강제 적용 및 YaRN betas 로드
추론 후 최종 JSON 제약, 유연한 JSON 도구 래퍼 수용, XML 방언 강제 적용, 반복되거나 대체되는 사고 마커 처리 기능 추가.
기본값 유지 대신 YaRN beta 메타데이터를 로드합니다.
스키마, 스트리밍(streaming), 연속성(continuation), 모델 재로드 회귀 테스트 추가. CUDA 및 CPU 빌드와 0.9B, 4B, 그리고 MoVA 대화/도구 왕복(round trips)을 검증합니다.
Assisted-by: Codex
-
템플릿 피처(template fixture) 이름 변경
-
cisc 후속 조치 처리
-
파서 비정형화/aldehir 코멘트 처리
-
test-chat 정리
-
폴백 제거: 모델이 주로 high에서 훈련됨
-
k2 attn_v_exp tn 분할 및 metal fusion baseline 수정
-
k2-horizon: 합계 전에 포워드 확장 뷰(forward expand views) 추가
-
k2-horizon: TP를 수정하기 위해 그룹 정규화(group norm) 전에 임베딩 복사
-
텐서 병렬 처리 비활성화
AI 자동 생성 콘텐츠
본 콘텐츠는 llama.cpp Releases의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기