common : 샘플러 이름 매칭 완화 ([#23744](https://github.com/ggml-org/llama.cpp/pull/23744
요약
llama.cpp의 샘플러 이름 매칭 로직을 개선하여 표준 이름과 대체 이름(alias) 간의 호환성을 높였습니다. 대소문자 구분 없이 샘플러 이름을 인식하도록 수정하여 llama-server UI에서의 설정 오류 문제를 해결했습니다.
핵심 포인트
- 샘플러 이름 매칭 시 대소문자 구분 제거
- top_k, min_p 등 표준 이름과 대체 이름 간의 유연한 매칭 지원
- llama-server UI에서 샘플러 설정 인식 문제 해결
- 코드 구조 개선을 통한 샘플러 이름 매핑 통합
common : 샘플러 이름 매칭 완화 (#23744)
- common : 샘플러 이름 매칭 완화
현재 일부 경우에서, 샘플러의 대체 이름들(예: 표준 이름인 top_k 및 min_p 대신 top-k 및 min-p 사용)이 common/sampling.cpp에 있는 common_sampler_types_from_names 함수에 의해 항상 인식되지는 않습니다.
이 PR(Pull Request)은 해당 함수의 시그니처(signature)를 변경하여 bool allow_alt_names 플래그를 제거하고, 호출부(call sites)에서 해당 플래그의 모든 발생 지점을 제거합니다. 따라서 이제 이 함수는 알려진 모든 이름을 항상 매칭하게 됩니다.
또한, 제공된 샘플러 이름들을 표준 이름과 대체 이름 모두에 대해 무조건적으로 확인하고, 대소문자를 구분하지 않도록(case-insensitive) 함수의 로직을 변경했습니다.
이는 llama-server UI에서 지정된 샘플러가 대체 이름을 사용할 때 유효한 것으로 인식되지 않던 문제를 해결합니다.
-
더 많은 대체 이름 추가
-
수정 지속
-
정확성을 위해 unsigned char로 캐스팅 (cast)
-
common : 샘플러 이름 매핑 통합
-
@CISC의 요청에 따라 표준 이름 대 대체 샘플러 이름 매핑 주석 추가
-
common/sampling.cpp 업데이트
Co-authored-by: Sigbjørn Skjæret sigbjorn.skjaeret@scala.com
-
common : @ngxson의 요청에 따라 샘플러 이름 별칭(alias) 자동 생성
-
매칭을 위해 병합된 맵(merged map) 사용
-
반복문 대신
.merge사용 -
nit: 주석 단순화
-
nit: 인덱스 할당 대신 모든 곳에서 insert 사용
Co-authored-by: Sigbjørn Skjæret sigbjorn.skjaeret@scala.com
macOS/iOS:
macOS/iOS:
- macOS Apple Silicon (arm64)
- macOS Apple Silicon (arm64, KleidiAI enabled) DISABLED
- macOS Intel (x64)
- iOS XCFramework
Linux:
- Ubuntu x64 (CPU)
- Ubuntu arm64 (CPU)
- Ubuntu s390x (CPU)
- Ubuntu x64 (Vulkan)
- Ubuntu arm64 (Vulkan)
- Ubuntu x64 (ROCm 7.2)
- Ubuntu x64 (OpenVINO)
- Ubuntu x64 (SYCL FP32) DISABLED
Android:
Windows:
Windows:
- Windows x64 (CPU)
- Windows arm64 (CPU)
- Windows x64 (CUDA 12) - CUDA 12.4 DLLs
- Windows x64 (CUDA 13) - CUDA 13.3 DLLs
- Windows x64 (Vulkan)
- Windows x64 (SYCL) DISABLED
- Windows x64 (HIP)
openEuler:
- DISABLED
- openEuler x86 (310p)
- openEuler x86 (910b, ACL Graph)
- openEuler aarch64 (310p)
- openEuler aarch64 (910b, ACL Graph)
UI:
AI 자동 생성 콘텐츠
본 콘텐츠는 llama.cpp Releases의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기