b11714 릴리스 노트
요약
llama.cpp의 릴리스 노트에는 사용자 인터페이스(UI) 개선 사항이 집중되어 있습니다. HF Hub에서 모델 검색 및 다운로드 기능 추가, 마크다운에 안전화된 HTML 지원, 그리고 'Discover' 컴포넌트 도입을 통해 모델 탐색 경험이 대폭 향상되었습니다. 또한, 일시 중지된 모델 다운로드를 재개하고 관리하는 기능도 강화되었습니다.
핵심 포인트
- HF Hub 통합으로 모델 검색 및 다운로드 기능 추가
- 마크다운에 안전화된 원본 HTML 렌더링 지원
- 새로운 'Discover' 컴포넌트로 모델 탐색 경험 개선
- 일시 중지된 모델 다운로드를 재개하고 관리하는 기능 구현
ui : HF Hub에서 모델 검색 및 다운로드 기능 추가 (#29584)
- common : resolve - 태그 다운로드 및 캐시된 사이드카 목록화
A Q4_0-mtp 스타일 태그는 모델 파일과 일치하는 것이 없을 때 사이드카 파일을 해결하므로, 단독 드래프트 또는 mmproj 다운로드가 실제로 해당 파일을 가져옵니다. 캐시된 사이드카 파일은 자체 항목으로 나열되어 재시작 후에도 상태가 유지되며, 이러한 태그를 제거하면 사이드카만 삭제됩니다.
Assisted-by: pi:zai-org/GLM-5.3
- ui : 마크다운에 선택적 안전화된 원본 HTML 추가
MarkdownContent에 allowHtml 속성을 추가하여, markdown에서 발견된 raw HTML이 이스케이프 처리되는 대신 DOMPurify 안전화를 거쳐 렌더링됩니다. 기본값은 여전히 이스케이프 처리됩니다.
Assisted-by: pi:GLM-5.3-Flash
- ui : 모델 검색(discover) 컴포넌트 추가
Discover surface는 다음과 같습니다: 검색 기능과 스켈레톤이 포함된 curated-catalog 목록, readme, 메타데이터, Hub 통계 및 다운로드 옵션이 있는 상세 패널, 그리고 일반적인 진행 표시줄을 대체하는 독립형 다운로드 진행률 표시줄. 양자화(quant) 다운로드 버튼은 새로운 xs 트리거를 사용하여 선택기(select)의 크기를 조정하며, 이로 인해 선택기는 해당 크기와 muted box 모양을 갖게 됩니다. 저장소(repo)가 실패하면 스토어는 불완전한 상태로 유지되며, 다음 마운트 시 재시도합니다.
Assisted-by: pi:llama.cpp/DeepSeek-V4.1-Flash
- ui : 모델 관리자에서 검색(discover) 보기 추가
관리자 대화 상자에 두 번째 뷰가 생깁니다: Discover Models 호출 버튼이 테이블을 사라지게 하고, 제목을 나침반 표시와 함께 슬라이드하며, discover surface를 나타냅니다. 화살표 버튼은 다시 테이블로 돌아갑니다.
Assisted-by: pi:llama.cpp/DeepSeek-V4.1-Flash
Conflicts:
tools/ui/src/lib/components/ui/button/button.svelte
- ui : Discover Models 활성화 설정 추가
이 플래그는 HuggingFace GGUF 모델의 탐색 및 다운로드를 제어하므로, discover 레이어에 선언됩니다. 상위 관리자 레이어의 repo-tree 조회 기능은 여기서 이를 읽습니다.
Assisted-by: pi:llama.cpp/DeepSeek-V4.1-Flash
- ui : 일시 중지 지점부터 모델 다운로드 재개
다운로드가 중지되면 파일을 삭제하는 대신 부분 파일이 유지되므로, 해당 태그를 다시 게시하면 디스크에서 재개됩니다. 이제 첫 번째 진행 기록에는 재개 오프셋(resume offset)이 포함되며, 일시 중지된 스냅샷은 재개된 항목에 남아 있고, 일시 중지는 요청되는 즉시 확정됩니다.
Assisted-by: pi
- ui : 다운로드 목록에서 발견 기능 우선 배치
'Discover' 사이드바는 제안된 모델 위에 실행 중인 다운로드를 나열하며, 쿼리가 활성화되면 옆으로 비켜갑니다. 일시 중지된 다운로드는 관리자 테이블에 남아 있다가 재개되거나 삭제됩니다.
Assisted-by: pi
- ui : 일시 중지된 다운로드 재개 기능 구현
일시 중지된 다운로드의 태그를 다시 게시하면, 일시 중지된 다운로드가 다음 리로드까지 DOWNLOADED 상태로 항목을 유지하기 때문에 라우터의 '이미 존재함(already exists)' 검사를 통과합니다. 이제 실행되지 않는 다운로드 항목은 대체되고 재개됩니다. UI는 요청이 여전히 실패하더라도 일시 중지된 행을 유지하여, 단순히 사라지고 완료되었다고 표시하는 것을 방지합니다.
Assisted-by: pi
- ui : 미완료 모델 다운로드 기억하기
부분 파일은 콘텐츠 해시(content hash)를 이름으로 사용하므로, 라우터가 재시작되면 디스크의 어떤 것도 해당 모델에 속하는지 알 수 없습니다. 이제 라우터는 시작한 다운로드를 태그로 유지하고, 다운로드가 완료되거나 삭제될 때 태그를 지우며, 아무것도 시작하지 않고도 아직 다운로드 중인 항목을 나열합니다. UI는 모든 목록 가져오기(list fetch)에서 이러한 태그들을 일시 중지된 상태로 채택하므로, 새로고침하거나 처음 열어도 불완전한 다운로드를 보여주고 디스크에 이미 있는 파일로부터 재개할 수 있습니다.
Assisted-by: pi
- ui : 일시 중지된 다운로드의 상태를 칩으로 표시하기
일시 중지된 양자화(quant) 칩은 정지 상태에서 일시 중지된 것으로 읽히고, 실행 중인 칩이 스피너를 보여주는 것처럼 보이며, 마우스를 올리면 재개 액션을 제공합니다. 선택기(selector)의 다운로드 행에는 취소 버튼 옆에 'Discover에서 보기(View in Discover)' 액션이 추가됩니다.
Assisted-by: pi
- ui : 기본적으로 다운로드 옵션 접기
복사 가능한 다운로드 명령어는 접힌 상태로 시작하여, 옵션 행들이 우선순위를 차지하고; 펼치더라도 한 번의 클릭만 거리에 있습니다.
Assisted-by: pi
- ui : 허브 목록에서 의사결정 모델 제외
의사결정 모델은 텍스트 대신 보정된 확률로 답변하기 때문에 llama-ui에서는 실행할 수 없습니다. 따라서 허브 데이터 계층(hub data layer)은 이들을 카탈로그와 결정 모델 태그 또는 텍스트 분류 파이프라인을 키로 하는 모든 검색에서 제외합니다.
Assisted-by: pi
- ui : 다운로드 태그를 양자화(quant) 및 사이드카(sidecar)로 읽기
<repo>:<quant>-<sidecar> 태그가 이제 하나의 불투명한 양자화 토큰 대신 그 양자화와 사이드카로 구문 분석되며, ModelsService.draftSidecarsByRepo는 라우터 목록의 사이드카 전용 항목들을 리포지토리별로 수집하여 모델 스토어 내 인라인 복사본을 대체합니다.
Assisted-by: pi
- ui : 클러스터 드래프트 다운로드 그룹화
추적된 다운로드(Tracked downloads)는 리포지토리별로 그룹화됩니다. 메인 가중치(main weights)가 선두에 서고, 드래프트 사이드카(draft sidecars)들이 그 항목 내부에 압축된 하위 라인으로 포함되어 선택기(selector), 디스커버 목록(discover list), 관리자 테이블(manager table)에서 볼 수 있습니다. 메인 모델의 제어 기능은 전체 클러스터를 일시 중지(pause), 재개(resume), 취소(cancel)하며, 관리자의 다운로드 행들은 구성 패널로 선택됩니다.
Assisted-by: pi
- ui : 테이블 행에서 추적된 다운로드 제어
테이블은 자신의 클러스터의 드래프트 하위 라인들을 모델 행으로 전달합니다. 한 행의 액션은 일시 중지 및 재개를 연쇄적으로 발생시키고, 진행 중인(in-flight) 행은 '다운로드 취소(Cancel download)'를 제공하며, 일시 중지된 행은 '디스크에서 삭제(Delete from disk)'를 유지하고, 확인 대화 상자의 복사본은 상태를 따릅니다.
Assisted-by: pi
- ui : 다운로드에 자체 구성 패널 제공
추적된 다운로드를 선택하면 '다운로드 모드(download mode)'의 패널이 열립니다. 이 모드는 라이브 진행률과 일시 중지, 재개, 취소 기능을 제공하며, 파일이 없는 모델에서 제공할 수 있는 메타데이터 및 로드 액션 대신 '디스커버에서 보기(See in Discover)'를 제공합니다.
Assisted-by: pi
- ui : 디스커버 상세 정보의 자체 가져오기 및 반응성 개선
ModelsDiscoverDetailsContainer가 상세 정보, 트리, README 가져오기를 소유하여 디스커버 뷰 외부 호스트에서도 패널을 렌더링할 수 있게 하며, 상세 레이아웃은 뷰포트 브레이크포인트 대신 컨테이너 쿼리(container queries)를 사용하여 좁은 패널에 적응합니다.
Assisted-by: pi
- ui : 메인 모델과 일치하는 초안 다운로드
이제 메인 릴리스가 배포되는 가장 선호되는 종류의 양자화된(quant-matched) 초안을 자동으로 가져옵니다 (MTP보다 DFlash 우선). 이 기능은 '방치하고 잊기' 방식이므로, 추측 디코딩(speculative decoding)이 메인 모델이 도착할 때 준비됩니다. 수동 초안 파일은 계속 사용할 수 있으며, 화면 폭이 좁을 때는 옵션 행도 한 열로 접힙니다.
Assisted-by: pi
- ui : 'Discover'를 기본값으로 비활성화하고 허브 설정과 연동
'Discover Models'는 체크 해제된 상태로 시작합니다. 이를 활성화하면 Hugging Face Hub 설정을 켜고, 비활성화하면 다시 끕니다. 따라서 이 체크박스는 거짓말을 하지 않습니다. 'Discover'가 꺼져 있으면 허브 설정은 표시 데이터에 대해 독립적으로 사용할 수 있습니다. 저장 및 재설정 상태는 로드 시 동일한 방식으로 수정됩니다.
Assisted-by: pi
- ui : 관리자 뷰에서 'Manage Models' 대화 상자 열기
이제 이 대화 상자는 이전 보기로 돌아가는 대신 관리자 화면에서 열립니다. 또한, 설정이 허용하는 한 Discover 항목은 여전히 Discover 뷰에 표시되며, Discover 표면(surfaces)은 해당 설정의 상태를 따릅니다.
Assisted-by: pi
- ui : 'Discover' 검색 공간에 포커스 링 제공
스티키 검색 바가 패널 가장자리에서 안으로 들어와서 포커스 링이 스크롤 컨테이너 안에 머무르게 하고, 행은 그 위를 지나가는 것이 아니라 불투명한 막대 뒤로 스크롤됩니다.
Assisted-by: pi
- common: 목록에 사이드카 이름 정리 및 미완성 부분 삭제
접두사 또는 후행 사이드카 토큰은 모호합니다. 초안 헤드는 이를 사용하며 (Model-MTP-BF16.gguf), 임베딩된 헤드를 가진 전체 모델도 사용합니다 (Model-Q8D-MTP.gguf). 이러한 이름은 같은 계열의 토큰이 없는 메인 가중치 옆에만 사이드카가 될 수 있으며, 이름 어디에든 mmproj나 imatrix가 있거나 선행 토큰이 있으면 단독으로 결정됩니다 (mmproj_f16.gguf).
양자화 태그는 항상 비트 수를 포함하므로, 양자화된 것과 관련 없는 사이드카 이름(mtp-Model-it.gguf)은 기본 태그를 받습니다: 목록, 계획 및 모든 사용을 제거합니다. imatrix 태그는 자체적인 계획 슬롯으로 해결되어 다운로드되지만 파라미터에 연결되지는 않습니다.
remove는 다운로드 방식과 동일하게 태그를 해제하고, 계획된 모든 블롭의 부분 파일을 삭제하여, 실행 중인 다운로드를 취소하거나 이전 실행에서 미완료로 남겨진 다운로드를 드롭해도 디스크에 아무것도 남지 않게 합니다. 라우터는 호출 주변에서 토큰을 전달하고 잠금을 해제하며, 미완료된 다운로드 기록을 원자적 쓰기(atomic write)로 기록합니다.
llama는 sidecar 전용 플랜에서도 다운로드에 성공하며 경로를 출력합니다.
- ui: 대화 상자 뷰 및 초안 상태를 열거형(enums)과 상수(constants)로 이동
모델 대화 상자의 뷰는 ModelsDialogView 열거형이 되고, 초안 서브라인의 상태는 ModelRowDownloadState에 합류하며, 뷰 페이드와 복사 피드백 리셋은 ui 상수(ui constants)로 이동하고, 대화 상자의 나침반 표시(compass marks)는 DISCOVER_ICON에서 가져옵니다.
Assisted-by: pi
- ui: 사용하지 않는 discover 서피스 제거
죽은 openDiscoverModels twin, 주석 처리된 명령어 구분선, 상세 정보 창의 사용되지 않는 onClose 및 헤더의 닫기 버튼, 그리고 중복 타입 캐스트가 사라집니다. 명령의 복사 피드백은 공유 리셋 상수(shared reset constant)에 합류합니다.
Assisted-by: pi
- ui: 다운로드 옵션 주석 정리 및 채팅 템플릿 강조 표시
옵션 패널과 그 칩들이 가지고 있던 주석의 상세함이 불분명한 이유(non-obvious why)로 줄어들고, 채팅 템플릿 대화 상자는 일반 pre 블록 대신 jinja를 통해 SyntaxHighlightedCode로 렌더링됩니다.
Assisted-by: pi
- common: sidecar는 .gguf 파일만 가능하며 mmproj/imatrix는 전체 단어로 처리
sidecar처럼 이름 붙여진 비(非)GGUF 파일(quantization-mmproj-Q8_0.json)이 mmproj로 선택되고, 모델 이름의 더 긴 단어 안에 있는 sidecar 단어(Phi-2-OmniMatrix.i1-Q4_K_M.gguf)는 모델을 제거합니다.
- ui: 퀀트별 초안 sidecar 배지 중복 제거
초안 sidecar 배지는 퀀트를 제외하고 종류와 저장소(repo)별로 중복이 제거되어, 두 개의 퀀트로 캐시된 초안의 경우 하나의 배지만 남아있었고, 다른 주 퀀트를 삭제했을 때 그 sidecar를 제거할 배지를 찾지 못했습니다. 또한 clusters 메서드가 위에 위치하게 되면서 손실되었던 getDownloadEntries 문서를 복원합니다.
Assisted-by: pi (zai-org/GLM-5.3-Flash)
- ui: 불완전한 다운로드 상태를 채택하고 일시 중지된 ID 레지스트리 제거
스토어는 자신이 로컬 상태를 가지고 있지 않은 다운로드 항목에서 미완료된 다운로드를 추론했고, 이는 다른 탭에서 실행되는 다운로드를 일시 중지된 것으로 잘못 읽어 서버가 거부하는 재개(resume)를 제공했습니다. 이제 목록은 '불완전(incomplete)' 상태를 가지므로, 채택 로직이 이를 직접 사용합니다.
일시 중지된 ID는 더 이상 localStorage에 존재할 필요가 없습니다. 서버가 재시작을 거쳐도 이들을 기억하며, 진행률 스냅샷은 새로고침 후 어차피 오래되었기 때문입니다. 따라서 오래된 localStorage 키를 제거했습니다.
Assisted-by: pi (zai-org/GLM-5.3-Flash)
- ui: 일시 중지 및 취소 캐스케이드 양자 매칭(quant-match)
이전에는 복사본 저장소(repo)의 모든 초안 사이드카(draft sidecar)에 대해 일시 중지, 재개, 취소가 순차적으로 적용되는 반면, 삭제는 양자 매칭된 것들만 처리했습니다. 따라서 Q4_0 다운로드를 취소하는 것이 다른 양자의 메인에 속한 Q8_0 초안까지 제거하는 문제가 있었습니다. 이제 모든 캐스케이드는 양자 매칭된 초안에 대해 작동하며, 이는 삭제가 가져가는 것과 일치합니다.
Assisted-by: pi (zai-org/GLM-5.3-Flash)
- ui: 중복된 초안 서브라인 마크업 축소
다운로드되고 진행 중인 브랜치가 동일한 커넥터, 레이블 및 배지 마크업을 반복했습니다. 조건부 꼬리(conditional tail)를 가진 하나의 블록이 두 상태를 동기화하도록 유지합니다.
Assisted-by: pi (zai-org/GLM-5.3-Flash)
- ui: 정리된 모델 카드 HTML에서 위치 지정 스타일 제거
스타일 속성은 KaTeX 출력에 대해서는 계속 허용되어, 제3자가 앱 위에 고정 오버레이를 그릴 수 있게 했습니다. sanitize 훅은 position:fixed 및 position:absolute 값을 삭제하고 KaTeX 레이아웃 스타일은 그대로 유지합니다.
Assisted-by: pi (zai-org/GLM-5.3-Flash)
- ui: 디스커버 마운트 가져오기(discover mount fetch)를 한 번 실행하고 공유 repoOf 헬퍼 재사용
fetch()는 마운트(mount) 효과 내부에서 로딩 플래그를 동기적으로 토글하여, 매번 토글할 때마다 fetch를 재실행하고 실패한 카탈로그 리포지토리(catalog repos)를 끝없이 재시도했습니다. 이제 이 효과가 해당 호출을 추적하지 않습니다. local repoOf 복사본과 중복된 서비스 임포트(duplicate services import)는 공유 헬퍼(shared helpers)로 대체되었습니다.
Assisted-by: pi (zai-org/GLM-5.3-Flash)
- ui: spec-type 맵을 draft sidecars로 축소
SPEC_TYPE은 aux sidecars에 대해 빈 항목(empty entries)을 가지고 있어 인덱싱되지 않았습니다. 이제 맵과 명령어 컴포넌트(command component)는 cast 대신 draftBadgeOf 헬퍼를 통해 해당 배지를 draft sidecar로 지정합니다.
Assisted-by: pi (zai-org/GLM-5.3-Flash)
- ui: decision-model 태그와 markdown 캐시 키 이름 지정
decision-model 허브 태그(hub tag)와 파이프라인 태그(pipeline tag)가 다른 파이프라인 태그 옆의 huggingface 상수(constants)로 이동했으며, markdown 변환 캐시 접두사(markdown transform cache prefixes)는 단순한 한 글자 토큰 대신 이름을 갖게 되었습니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 llama.cpp Releases의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기