에이전트와 개발

llama.cpp, 임베딩 추출 때 LM 헤드 생략해 불필요한 연산 제거

llama.cpp 빌드 b11597이 풀링 임베딩을 추출하는 컨텍스트에서 LM 헤드 계산을 건너뛰도록 바꿨다. 직후 나온 b11598은 laguna 모델의 YaRN 메타데이터를 읽는 수정을 담았다.

루카스 ·

llama.cpp 프로젝트가 2026년 10월 14일 빌드 b11597을 내놓았다. 문장 임베딩처럼 시퀀스당 벡터 하나만 뽑는 풀링 임베딩 컨텍스트에서 언어 모델(LM) 헤드 계산을 건너뛰도록 한 변경(#30445)이 들어갔다.1

약 20분 뒤 나온 b11598에는 laguna 모델용 YaRN 베타 메타데이터를 불러오는 수정(#30331)이 담겼다. 두 빌드 모두 macOS, Linux, Windows, Android, iOS용 바이너리가 함께 올라왔다.1,2

임베딩 추출에서 로짓 계산 제거

풀링 임베딩을 추출하는 컨텍스트는 시퀀스마다 벡터 하나를 출력한다. 그런데 기존에는 모든 모델이 LM 헤드를 그래프에 넣어, 토큰마다 어휘 크기(n_vocab)만큼의 로짓을 계산했고 컨텍스트는 이 값을 담을 호스트 버퍼도 유지했다. 이번 변경으로 풀링 임베딩 컨텍스트는 토큰마다 어휘 크기만큼 로짓을 계산하지 않는다. 연산량이나 속도를 비교한 측정치는 공개되지 않았다.

풀링 임베딩 컨텍스트에서는 로짓 계산을 그래프에 넣지 않는다. 임베딩을 추출하더라도 풀링 유형이 NONE이면 기존처럼 로짓을 계산한다. 풀링 컨텍스트에서는 이 설정을 바꾸면 그래프 모양이 달라지므로, 설정을 바꿀 때 그래프 자원을 다시 예약하도록 했다.

최종 구조에서는 LM 헤드를 그래프에 넣는 전용 함수 build_logits()를 새로 두었고, set_outputs()는 출력을 다시 표시하는 일만 맡는다.

build_sampling()이 t_logits를 읽기 때문에 build_logits()를 먼저 호출한다. 풀링 컨텍스트는 로짓이 없어 샘플링 계층을 만들지 않는다.1

laguna 모델 YaRN 메타데이터

b11598은 laguna 모델을 로드할 때 YaRN 베타 메타데이터를 읽도록 했다. laguna 모델이 무엇인지, 이 수정으로 동작이 어떻게 달라지는지는 릴리스 설명에 나와 있지 않다.2

댓글

기사에 대한 의견이나 틀린 내용 제보를 남겨 주세요.

댓글을 불러오고 있습니다.