콘텐츠로 이동

벤치마킹

사이드바 시스템 그룹의 벤치마크 페이지는 모델을 측정하는 곳으로, 이 컴퓨터에서 모델이 얼마나 빠른지 확인하거나, 더 빠른 설정을 찾거나, 측정 결과를 비교하거나, llama-bench 원시 수치를 볼 때 사용합니다. 측정, 모델 비교, 고급 측정, 기록 네 탭으로 이루어져 있습니다.

측정 결과를 모델 설정으로 이어 가는 설정 맞추기는 측정 탭에서 열립니다(설정 맞추기 참고). 설정 > 성능에는 같은 모델 목록과, 컴퓨터를 사용하지 않는 동안 설정을 맞추는 설정 자동 맞춤이 있습니다(설정 참고). 두 곳은 같은 측정 서비스와 같은 기록을 사용하기 때문에 어느 쪽에서 측정해도 양쪽에 모두 나타나죠. 페이지 위쪽의 성능 설정을 누르면 해당 탭이 열리고, 대화에 느릴 수 있는 결과에는 이 컴퓨터에서 설정을 맞출 수 있는 모델(GGUF 모델과 Apple Silicon Mac의 MLX 모델)이면 설정 맞추기로 가는 링크가 나옵니다.

측정

측정에는 로컬 GGUF 모델과 MLX 모델이 모두 나오고, 모델마다 결과가 한 줄로 표시됩니다. 예를 들면 다음과 같습니다.

답변 45 tok/s · 첫 응답 0.3초 · 대화에 충분 · 10월 2일

줄 끝에 엔진 바뀜이나 설정 바뀜이 붙기도 하는데, 측정 뒤에 엔진이 업데이트되었거나 그 뒤로 모델 설정을 바꿨다는 뜻입니다. 한 번도 측정하지 않은 모델은 아직 측정하지 않음으로 표시됩니다. 오른쪽 위 ⋯ > 프로바이더 모델 표시를 켜면 클라우드 모델도 목록에 나오는데, 측정할 때마다 해당 프로바이더에 요청 비용이 들기 때문에 기본값은 꺼짐이며 설정의 옵션과 같은 값을 사용합니다.

빠른 측정은 모델을 약 15초 만에 측정합니다. 약 300토큰짜리 프롬프트로 최대 128토큰까지 답하게 하는 짧은 요청을 한 번 보내고, 다음 값을 기록합니다.

  • 답변 속도: 모델이 답을 쓰는 속도이며, 초당 토큰 수로 나타냅니다.
  • 첫 응답: 첫 단어가 나오기까지 걸리는 시간입니다.
  • 프롬프트 처리 속도: 모델이 입력을 읽는 속도로, 긴 문서를 넣었을 때 답변이 시작되기까지의 시간을 좌우합니다.

로컬 모델은 엔진에 직접 요청해서 측정하고, 엔진이 자체 시간 정보를 알려 주면(llama.cpp는 알려 줍니다) 해당 값을 사용합니다. 프로바이더 모델은 라우터를 거쳐 측정하며, 이때는 앱이 스트리밍으로 받은 답변의 시간을 직접 잽니다. 요청마다 맨 앞에 고유한 한 줄을 넣기 때문에 캐시된 프롬프트 때문에 모델이 실제보다 빠르게 측정되는 일은 없습니다. 측정은 한 번에 하나만 할 수 있습니다. 설정 맞추기, 모델 비교, 고급 측정, 다른 빠른 측정이 진행 중이면 이 창에서 시작했든 같은 서버의 다른 클라이언트에서 시작했든 측정이 시작되지 않고, 버튼에 다른 측정이 끝나면 할 수 있습니다.가 표시됩니다.

실행 중이 아닌 로컬 모델은 먼저 물어봅니다. 이 모델을 실행하고 측정할까요?에는 측정할 모델과, 다른 모델이 실행 중이면 실행 중인 모델이 나오고, 실행 중인 모델을 어떻게 할지 고르게 됩니다. 잠시 내리기(처음에 선택되어 있으며, 정확하게 측정되고 끝나면 다시 실행됩니다)와 그대로 두기(측정과 메모리를 함께 사용하므로 수치가 낮게 나올 수 있습니다) 중 하나를 고르고 측정 시작을 누르면 되죠. 고른 쪽은 앱을 다시 켤 때까지 다음 측정에도 그대로 선택됩니다. 어느 쪽이든 모델은 저장된 설정으로 측정하는 동안만 실행되고 측정이 끝나면 다시 멈추며, 측정 때문에 내린 모델이 다시 실행되지 못하면 결과 알림에 해당 모델이 나옵니다. 취소를 누르면 아무것도 측정하지 않습니다. 대화상자가 열려 있는 동안 실행 중인 모델이 바뀌면 바뀐 목록과 함께 바뀌었다고 알려 주고, 로딩 중인 모델이 있으면 묻지 않고 버튼에 로딩 중인 모델이 있습니다. 로딩이 끝나면 다시 시도하세요.가 표시됩니다. 설정 > 성능, 모델 상세, 느려짐 알림에서도 같은 대화상자가 열립니다.

측정이 끝나거나 모델 이름을 선택하면 그 행 아래에 결과가 열립니다. 수치(답변 속도, 읽는 속도 대비, 첫 응답, A4 3장 문서의 첫 응답) 아래에 대화에 충분한지와 해당 모델의 직전 빠른 측정과 비교한 결과가 한 문장으로 나오죠. 예를 들어 대화에 충분합니다. 10월 2일 측정보다 15% 빠릅니다. llama.cpp 업데이트의 영향일 수 있습니다.처럼 나옵니다. 차이가 10% 안쪽이면 비슷하다고 말하고, 차이가 있을 때만 엔진 업데이트나 바뀐 설정을 원인으로 짚어 줍니다. 대화에 느릴 수 있으면 다음에 할 일이 문장 끝에 붙는데, 이 컴퓨터에서 설정을 맞출 수 있고 아직 적용한 설정이 없는 모델은 설정 맞추기로 더 빠른 설정을 찾아보세요., 그 밖의 모델은 더 가벼운 모델을 사용해 보세요.가 나옵니다. 직전 측정보다 10% 넘게 느려졌으면 차이 보기가 붙어 기록에서 두 측정을 비교할 수 있습니다. 알림 센터에도 속도 확인 항목이 남는데, 여기서 결과 보기를 누르면 이 페이지의 결과가 다시 열립니다. 설정에서 시작한 측정은 설정의 모델 화면이 대신 열립니다.

수치 읽는 법

고급 측정 밖에서 원래 수치 그대로 보여 주는 값은 답변 속도 하나뿐이고, 이 값은 읽는 속도와 비교해서 보여 줍니다. 같은 글도 언어마다 토큰 수가 달라서, 읽는 속도(초당 토큰 수)는 인터페이스 언어별로 하나씩 사용합니다. 앱이 추천하는 모델 세 개(Gemma 4, Qwen 3.5, Ministral 3)의 토크나이저로 위키백과와 뉴스 글을 세고, 발표된 묵독 속도와 곱해 구한 값입니다.

인터페이스 언어 읽는 속도 (초당 토큰) A4 한 장 (토큰)
한국어 10 1,000
영어 5.5 650
독일어 7.0 720
스페인어 6.4 720
프랑스어 5.5 760
일본어 5.9 850
중국어(간체) 4.6 1,200
중국어(번체) 5.0 1,300

이 값은 추정입니다. 일본어와 중국어의 읽는 속도는 근거가 되는 연구가 적고, 쪽 크기는 Word(한국어는 한글)의 기본 A4 서식을 가정합니다. 이 값은 "읽는 속도의 약 5배" 같은 문장에만 영향을 주고, 아래 판정은 이 값과 무관하게 모든 언어에서 같습니다.

답변 속도 판정
15 tok/s 이상 대화에 충분
7.5~15 tok/s 대화는 느릴 수 있음
7.5 tok/s 미만 대화에 느림

첫 응답은 초 단위로 표시됩니다. 프롬프트 처리 속도를 알고 있으면 결과에 A4 세 장 분량의 문서를 넣었을 때 답변이 시작되기까지 걸리는 시간도 함께 나옵니다. 문서 길이는 위 표의 쪽 크기를 따릅니다.

설정 맞추기

설정 맞추기는 llama-bench로 사용 목적에 맞는 더 빠른 설정을 찾습니다. 측정 탭에서 목록 대신 열리며, 대화에 느릴 수 있는 결과, 모델 설정의 하드웨어 탭에 있는 자동으로 찾기, 설정 맞추기 알림에서 열 수 있습니다. 대화, 긴 문서, 에이전트 가운데 하나를 고르면 걸리는 시간과 측정하는 동안 멈추는 모델(끝나면 다시 실행됨)이 나오고, 맞추기 시작을 누르면 먼저 지금 설정을 측정한 다음 단계별로 찾아 나가는데, 단계마다 가장 빠른 값을 정한 뒤 다음 단계로 넘어갑니다. 단계는 CPU/GPU 나누기(모델이 GPU 메모리에 들어가지 않을 때만), 프롬프트 처리 배치, 스레드(CPU가 일을 나눠 맡을 때만), 긴 대화의 Flash Attention(대화용만: 대화가 약 4,000토큰 쌓였을 때의 답변 속도를 지금 실행 설정과 켠 상태로 비교), 추측 디코딩(드래프터가 있을 때, 또는 대화용이면 드래프터 없는 n-gram 추측이며, 엔진이 초안을 채택하고 답변이 빨라질 때만 유지), 동시 슬롯(에이전트용만) 순서이고, 건너뛰는 단계에는 이유가 함께 나오죠. 대화용 설정 맞추기가 대화에서 거의 기다리지 않는 프롬프트 처리만 바꿀 수 있을 때(모든 MLX 모델, 또는 Flash Attention이 이미 켜져 있고 추측할 방법이 없으며 모든 레이어가 GPU에 있는 GGUF 모델)는 맞추기 시작 대신 대화용으로는 맞출 설정이 없다고 알려 주고, 벤치마크 페이지도 설정 맞추기 대신 더 가벼운 모델을 권합니다. 몇 분이 걸리고 길어도 10분 안에 끝납니다. 측정하는 동안에는 모델을 실행할 수 없고, 화면을 떠나도 측정은 계속됩니다. 측정 중단은 확인을 받고, 설정은 바꾸지 않으며 기록에는 중단됨으로 남습니다.

설정 맞추기는 측정하는 동안 실행 중인 로컬 모델을 맞추는 모델까지 모두 멈추는데, 서버에서는 해당 모델이 다른 사용자의 모델일 수도 있어서 실행 중인 모델이 있으면 맞추기 시작은 먼저 확인을 받습니다. 실행 중인 모델 멈추기 대화상자에 멈출 모델과 설정 맞추기가 끝나면 다시 실행된다는 안내가 나오고, 멈추고 맞추기 시작을 눌러야 시작됩니다. 그사이 모델이 새로 실행되거나 멈췄다면 대화상자에 실행 중인 모델이 바뀌었습니다.와 함께 새 목록이 나오고, 새 목록도 확인해야 시작되죠. 실패한 설정 맞추기의 다시 시도도 같은 방식으로 확인을 받습니다. 실행 중인 모델이 없으면 확인 없이 바로 시작되고, 로딩 중인 모델이 있으면 시작되지 않으니 로딩이 끝난 뒤 다시 시도하세요.

결과 화면은 지금 설정과 찾은 설정을 나란히 보여 주고, 바뀌는 설정을 하드웨어 탭과 컨텍스트 탭의 이름 그대로 나열합니다. 적용을 누르면 해당 설정을 모델 설정에 저장하고 모델이 실행 중이면 다시 실행하며(다시 실행하지 못하면 배너가 알려 줍니다), 적용 안 함을 누르면 결과를 프로필로 저장만 해 둡니다. 원시 수치 보기는 벤치마크 페이지의 기록에서 해당 측정 기록을 엽니다. 1.1배 이상 빨라지는 설정이 없으면 더 빠른 설정을 찾지 못했다고 알려 주고, 확인한 설정을 나열하며, 아무것도 바꾸지 않습니다. 대화용에서는 긴 대화의 답변이 1.1배 이상 빨라지는 설정도 해당되며, 이때 결과는 긴 대화에서 답변이 얼마나 빨라지는지 알려 줍니다. 제목 위의 측정을 누르면 해당 모델이 열린 측정 탭으로 돌아가고, 적용했다면 되돌리기가 있는 안내가 나옵니다. 사용 목적별 프로필은 설정 > 성능의 모델 상세에 남습니다(설정 참고). 적용과 되돌리기는 모델을 다시 실행하기 때문에 다른 측정이 진행 중이면 누를 수 없습니다. 헤드리스 서버에는 llama-bench가 없어 빠른 측정만 할 수 있습니다.

Apple Silicon Mac에서는 MLX 모델도 설정 맞추기를 할 수 있고, 단계는 일곱 개가 아니라 네 개입니다. MLX에는 llama-bench가 없기 때문에 값 하나를 잴 때마다 번들된 mlxcel-server를 해당 값으로 띄우고 빠른 측정과 같은 요청을 보낸 다음 다시 멈추는데요, 단계는 KV 캐시(FP16 또는 INT8, 긴 문서용에만 해당하고 Turbo 모드나 K/V 캐시 형식을 직접 지정했다면 건너뜀), 프리필 청크(512, 1024, 2048 토큰을 긴 프롬프트로 측정), 디코딩 배치(에이전트용에만 해당)입니다. mlxcel은 함께 디코딩하는 요청 수만큼 컨텍스트를 나누기 때문에, 디코딩 배치는 저장된 컨텍스트를 나눠도 요청마다 16K가 남을 때만 시도하고 그렇지 않으면 배치를 늘리면 컨텍스트가 나뉜다고 알려 주죠. 결과 화면, 적용, 되돌리기, 프로필, 10분 제한, 중단, 실행 중인 모델을 멈추기 전의 확인은 GGUF 모델과 똑같이 동작하며, Apple Silicon이 아닌 컴퓨터에서는 MLX 모델의 설정 맞추기에 GGUF 모델과 Apple Silicon의 MLX 모델에서 할 수 있다는 안내가 나옵니다.

모델 비교

모델 비교는 내 모델 가운데 어느 것이 해당 사용 목적에 가장 빠른지 알려 줍니다. 사용 목적(대화, 긴 문서, 에이전트)을 고르고 모델을 칩으로 2~4개 고르면 되는데, 다섯 번째를 고르면 최대 4개까지라는 안내가 나오고 선택되지 않습니다. 비교 시작 옆에 걸리는 시간이 나오고, 비교 시작을 누르면 모델마다 차례로 저장된 설정으로 실행하고, 사용 목적에 맞는 프롬프트 길이로 빠른 측정을 한 다음 다시 멈춥니다. 비교 전에 실행 중이던 로컬 모델은 비교하는 동안 멈췄다가 끝나면 다시 실행됩니다.

해당 모델이 서버에서는 다른 사용자의 모델일 수도 있기 때문에, 실행 중인 로컬 모델이 있으면 비교 시작은 먼저 확인을 받습니다. 실행 중인 모델 멈추기 대화상자에 멈출 모델과 비교가 끝나면 다시 실행된다는 안내가 나오고, 멈추고 비교 시작을 눌러야 비교가 시작됩니다. 그사이 모델이 새로 실행되거나 멈췄다면 대화상자에 실행 중인 모델이 바뀌었습니다.와 함께 새 목록이 나오고, 새 목록도 확인해야 시작됩니다. 실행 중인 모델이 없으면 확인 없이 바로 시작됩니다. 로딩 중인 모델이 있으면 비교가 시작되지 않으니, 로딩이 끝난 뒤 시작하세요.

모든 모델을 HTTP로 같은 빠른 측정을 하기 때문에 GGUF, MLX, 프로바이더 모델을 나란히 비교할 수 있고, 헤드리스 서버에서도 이 탭을 사용할 수 있습니다. 프로바이더 모델은 ⋯ > 프로바이더 모델 표시가 켜져 있을 때만 칩으로 나오고, 고르면 요청 비용이 든다는 안내가 함께 표시되죠.

비교하는 동안에는 모델 비교 중 대화상자에 모델이 하나씩 채워집니다. 측정 중인 모델에는 도는 표시가, 끝난 모델에는 체크와 수치가, 실패한 모델에는 이유가 나오고, 사용 목적 옆에 진행 개수가 붙죠. 중단을 누르면 비교가 끝나고(측정한 행은 남음), 닫기는 대화상자만 닫으므로 비교는 계속되며, 시작 버튼 옆 진행 보기로 다시 열 수 있습니다. 비교가 끝나면 화면이 결과로 넘어갑니다. 제목에는 해당 사용 목적에 가장 빠른 모델과 답변 속도, 첫 응답이 크게 나오고 그 아래 기본 모델로 사용이 있으며, 중단한 비교는 중단했다고 알려 줍니다. 다른 모델로 비교나 뒤로 가기를 누르면 양식으로 돌아오고, 가장 최근 비교 결과는 나중에 오른쪽 위 ⋯ > 최근 비교 결과 보기로 다시 열 수 있습니다.

아래 순위는 해당 사용 목적의 한 번 주고받는 시간, 곧 첫 응답에 128토큰 답변을 더한 시간 순서로 매겨지기 때문에, 답변은 빠르지만 첫 응답이 느린 모델이 무조건 앞서지는 않습니다. 각 행은 측정 탭의 한 줄과 같은 형태에 사용 목적별 판정이 붙습니다. 대화는 대화에 충분이나 대화에 느림 같은 판정이, 긴 문서는 10쪽 문서의 첫 응답을 기준으로 긴 문서도 빠름이나 긴 문서는 느림이 붙고, 에이전트는 빠른 측정이 요청 4개를 동시에 보내지 않기 때문에 판정이 붙지 않습니다. 측정에 실패한 모델에는 실패와 이유가 나옵니다. 목록 아래 막대 그래프는 모델마다 답변 속도, 첫 응답, 프롬프트 처리를 각자의 눈금으로 보여 주는데, 세 막대 모두 길수록 빠릅니다.

비교가 끝나면 가장 빠른 모델 아래의 기본 모델로 사용으로 해당 모델을 기본 모델로 지정할 수 있고, 순위에서 측정한 다른 행에도 같은 버튼이 있습니다. 대화나 긴 문서 비교는 채팅 기본 모델을(긴 문서도 채팅에서 읽기 때문입니다), 에이전트 비교는 에이전트 기본 모델을 바꿉니다. 새 설정이 아니라 설정 > 모델 > 기본 모델의 설정입니다. 이미 해당 기본 모델인 행에는 버튼 대신 설정 이름이 표시됩니다. 채팅 기본 모델을 바꾸면 새 대화가 해당 모델로 시작하고, 열려 있는 대화는 지금 모델을 그대로 사용합니다. 바꾸고 나면 어떤 설정을 바꿨는지와 원래 모델이 안내되고, 되돌리기를 누르면 원래 모델로 돌아갑니다. 원래 기본 모델이 없었다면 설정을 비웁니다. 새 대화가 시작하던 모델도 함께 돌아가지만, 그사이 대화에서 다른 모델을 골랐다면 고른 모델을 그대로 둡니다. 측정한 뒤 엔진 빌드가 바뀐 행이 있는 결과는 날짜 뒤에 이전 엔진이 붙습니다.

런처도 결과를 사용합니다. 런처의 채팅 탭에서는 가장 최근의 대화 비교가 14일 안에 끝났고, 모델을 2개 이상 측정했고, 측정한 뒤 엔진 빌드가 바뀐 모델이 없으면, 입력창 아래에 가장 빠른 모델 이름과 최근 비교에서 가장 빨랐습니다가 한 줄로 표시됩니다. 이 모델 사용을 누르면 모델 선택기에서 직접 고른 것과 똑같이 해당 모델이 선택되고(멈춰 있는 로컬 모델은 실행됩니다), 닫기를 누르면 앱을 다시 시작할 때까지 해당 비교에 대한 줄이 나오지 않습니다. 모델 선택기에 이미 해당 모델이 선택되어 있거나, 모델이 더 이상 설치되어 있지 않거나, 처음 실행 속도 확인 줄이 표시되는 동안에는 나오지 않습니다. 나중에 긴 문서나 에이전트 비교를 해도 이 줄은 바뀌지 않습니다.

중단은 확인을 받지 않습니다. 한 행이 15초짜리 측정이고 이미 측정한 행은 남기 때문이죠. 중단한 비교는 가장 빠른 모델 대신 몇 개를 측정했는지 알려 주고, 측정하지 못한 행에는 측정하지 않음이 표시됩니다. 비교하는 동안에는 다른 곳에서 모델을 실행할 수 없고, 다른 측정도 시작할 수 없습니다. 상태 표시줄에는 모델 비교 ⅔이 나오고, 알림 센터에는 비교 전체에 대한 항목 하나가 남습니다. 각 행은 종류가 모델 비교인 기록으로 저장되기 때문에 기록에서 볼 수 있고, 아무 두 행이나 차이 보기로 비교할 수 있습니다.

고급 측정

고급 측정은 GGUF 모델에서 llama-bench를 직접 실행합니다. 결과는 기록에 남고 설정은 바뀌지 않습니다. llama-bench는 GGUF 파일만 측정하기 때문에 MLX 모델은 목록에 나오지 않으며, 양식에 빠진 MLX 모델의 개수가 표시됩니다.

먼저 무엇을 측정할까요?에서 세 가지 중 하나를 고르면, 양식에는 해당 목적에 쓰는 줄만 나옵니다.

  • 길이별 속도: 프롬프트·답변 길이, 대화 깊이, 반복을 고릅니다. 128, 512, 2048 토큰 프롬프트와 128 토큰 답변으로 시작합니다.
  • 하드웨어 조합: GPU 레이어, 스레드, 플래시 어텐션, 반복을 고르고, 512 토큰 프롬프트와 128 토큰 답변으로 측정합니다. 스레드 1, 2, 4, 8과 모든 GPU 레이어 칩, 플래시 어텐션 켜기와 끄기의 조합에 반복 2회로 시작하며(이 컴퓨터의 코어 수보다 많은 스레드는 빠짐), 결과에서 가장 빠른 설정 적용으로 이어집니다. 모든 조합을 그대로 비교하는 대신 사용 목적에 맞춰 자동으로 찾으려면 안내 문구의 설정 맞추기를 누르세요.
  • 직접 구성: 모든 줄이 나오고, 양식에 있던 값에서 시작합니다.

고른 목적에서 숨겨진 줄은 llama-bench가 정합니다.

조건마다 칩이 한 줄로 놓여 있고, 칩은 여러 개를 함께 누를 수 있습니다. 줄 끝의 직접 입력을 누르면 칩에 없는 값을 쉼표로 구분해 넣는 입력란이 열리는데, 입력한 값은 누른 칩에 더해지고 직접 입력이 켜져 있는 동안에만 측정에 들어갑니다. 아무것도 선택하지 않은 줄에는 대신 무엇이 실행되는지 나오죠. 설정 항목은 llama-bench가 정하고, 비워 둔 프롬프트 길이와 답변 길이는 각각 512 토큰과 128 토큰으로 측정하며, 비워 둔 대화 깊이는 빈 대화입니다. 길이에 0을 입력하면 해당 종류의 테스트를 건너뜁니다.

항목 칩 설정하는 값
프롬프트 길이 (토큰) 128~4096 처리할 프롬프트 크기입니다(-p).
답변 길이 (토큰) 64, 128, 256 생성할 답변 크기입니다(-n).
대화 깊이 (토큰) 0, 1024, 4096, 16384 측정 전에 이미 쌓여 있는 컨텍스트입니다(-d). 0은 빈 대화입니다.
반복 1, 2, 3, 5 테스트마다 실행할 횟수로, 하나만 고릅니다(-r).
GPU 레이어 0%~100% GPU로 보낼 레이어입니다(-ngl). 칩마다 50% · 18층처럼 모델의 실제 레이어 수가 붙고, 100% · 전체는 모든 레이어를 보냅니다. 모델의 레이어 수를 알 수 없으면 0%와 100%만 고를 수 있습니다.
스레드 1, 2, 4, 8, 16 CPU 스레드 수입니다(-t). 칩은 이 컴퓨터의 코어 수에서 끝나고, 코어 수가 10처럼 칩 사이에 있으면 해당 코어 수가 마지막 칩이 됩니다.
배치 크기 256~2048 논리 배치 크기입니다(-b).
물리 배치 256~2048 물리 배치 크기입니다(-ub).
플래시 어텐션 자동, 켜기, 끄기 둘 이상 켜면 서로 비교합니다. 끄기는 -fa 0을 전달합니다.
KV 캐시 K/V f16, q80, q40 캐시 형식입니다(-ctk, -ctv). K와 V에 같은 목록을 사용하고, 직접 입력에는 llama-bench가 아는 다른 형식을 넣을 수 있습니다.

값이 둘 이상인 항목은 축이 되고, llama-bench가 모든 조합을 한 프로세스에서 실행하는데, 이것이 사용자 지정 스윕입니다. 양식 아래 줄에는 테스트 수와 모델 크기로 계산한 예상 시간이 테스트 48개 × 반복 3회 · 약 6분처럼 나오고, 테스트가 400개를 넘거나 약 30분을 넘으면 실행 대신 테스트가 너무 많습니다. 값을 줄이세요.가 표시되어 시작할 수 없습니다. CLI로 보내도 서버가 같은 기준으로 거부하죠.

결과 표에는 테스트마다 한 행씩, 행마다 다른 설정의 열과 프롬프트 처리 (pp) 속도, 답변 생성 (tg) 속도, 반복 사이의 편차가 나오고, 표시 중인 지표에서 가장 빠른 행에 가장 빠름이 붙는데, 하드웨어 프로필이라면 스레드, GPU 레이어, 플래시 어텐션 중 가장 빠른 조합이 해당 행입니다. 모든 레이어를 GPU로 보낸 행은 GPU 레이어 열에 전체로 나옵니다. 스윕이면 표 위에 꺾은선 그래프가 나오는데, 고른 지표를 한 설정(축)에 따라 그리고 두 번째로 바뀌는 설정이 있으면 해당 값마다 선을 하나씩 긋고, 그래프 아래 범례에 선마다 이름과 단위(tok/s)를 보여 줍니다. 표시로 답변 생성과 프롬프트 처리를 오갈 수 있습니다. GGUF 모델의 결과라면 표 아래의 바뀌는 설정 줄이 가장 빠름 행의 설정 가운데 지금 모델 설정과 다른 것을 하드웨어 탭과 컨텍스트 탭의 이름으로 보여 주고, 가장 빠른 설정 적용을 누르면 해당 설정을 모델의 대화용 프로필로 적용하며, 모델이 실행 중이면 다시 실행합니다. 바뀌는 설정을 줄에서 이미 보여 주기 때문에 먼저 묻지 않고, 적용한 뒤 나오는 알림의 되돌리기가 적용 전 설정으로 되돌리기 전에 확인을 받죠. 측정에서 바꿔 본 설정이나 직접 지정한 설정(GPU 레이어, CPU로 보낼 전문가 레이어, 스레드, 배치 크기, 플래시 어텐션이며 자동은 저장된 값을 지움)만 적용하고 KV 캐시 종류는 바꾸지 않으며, 모든 레이어가 GPU에서 실행되면 스레드도 그대로 둡니다. 가장 빠른 설정이 이미 적용되어 있으면 바꿀 것이 없다고 알려 주고 버튼은 나오지 않습니다. 몇 초 넘게 걸리는 측정은 알림 센터와 상태 표시줄에 나타나기 때문에 측정하는 동안 다른 화면으로 옮겨 가도 되고, 결과 보기를 누르면 이 탭으로 돌아옵니다. 측정 중단은 먼저 확인을 받고, 중단한 측정은 중단됨으로 기록됩니다. 측정은 한 번에 하나만 할 수 있어서 설정 맞추기, 모델 비교, 빠른 측정이 진행 중이면 실행을 누를 수 없고, 설정 맞추기, 모델 비교, 빠른 측정 중에는 서버도 실행을 거부합니다. 고급 측정 기록은 기록에서 종류를 고급 측정으로 걸러 내보낼 수 있습니다.

기록

기록에는 모든 측정이 최신순으로 나오고, 모델, 종류(빠른 측정, 설정 맞추기, 모델 비교, 고급 측정), 엔진 빌드, 설정이 함께 표시됩니다. 상태는 완료, 중단됨, 실패 중 하나입니다. 모델이나 종류로 걸러 볼 수 있고, 기록을 펼치면 설정과 하드웨어, llama-bench 원시 결과가 나옵니다.

  • 두 기록에서 비교에 추가를 누른 뒤 차이 보기를 누르면 목록 자리에 두 기록이 나란히 표시됩니다. 엔진과 서로 다른 설정(바뀜으로 표시), 답변 속도와 첫 응답의 차이를 볼 수 있고, 두 기록의 모델이나 컴퓨터가 다르면 표 위에 그 사실을 알려 줍니다. 위쪽의 기록을 누르면 목록으로 돌아갑니다.
  • ⋯ > 차이 보기 (이전 기록과)는 같은 모델의 바로 이전 기록과 비교합니다.
  • ⋯ > 기준으로 사용은 예전 기록을 모델 카드, 실행 대화상자, 설정이 보여 주는 기준으로 바꿉니다.
  • ⋯ > 삭제는 지우기 전에 확인을 받습니다. 기준 기록을 지우면 해당 모델에는 기준이 없어집니다.
  • 내보내기는 걸러진 기록을 CSV, JSON, Markdown 중 하나로 저장합니다.

설정 자동 맞춤이 스스로 실행한 설정 맞추기에는 자동이 붙고, 세부 정보에 측정한 단계와, 중간에 멈췄다면 멈춘 이유가 나옵니다.

설정 > 성능에서 정한 보관 기간(기본값 90일)이 지난 기록은 하루에 한 번 지워지는데, 기준 기록은 기간과 관계없이 남습니다.

헤드리스 서버와 CLI

헤드리스 서버(aigo-server)에는 llama-bench가 없어서 페이지에 고급 측정 탭이 나오지 않습니다. 빠른 측정과 기록, 기준, 내보내기는 HTTP로 모두 사용할 수 있고, aigo CLI로도 같은 일을 할 수 있습니다.

aigo bench quick --model qwen3-8b          # 모델 측정 (실행 중이 아니면 실행할지 물어봄)
aigo bench quick --model gemma-3-12b --load --keep-running   # 다른 모델을 그대로 두고 실행해서 측정
aigo bench baselines                       # 모델별 기준과 기준이 오래되었는지 여부
aigo bench history --model qwen3-8b -n 20
aigo bench show <record-id>
aigo bench baseline <record-id>            # 기록을 기준으로 사용
aigo bench export --format csv
aigo bench cleanup                         # 보관 기간을 지금 적용
aigo bench run --model-path ~/models/qwen3-8b.gguf --model qwen3-8b \
  --prompt-tokens 512,2048 --gen-tokens 128 --flash-attention off   # 데스크톱 전용
aigo bench compare-models qwen3-8b gemma-3-12b --use long-documents --stop-running
aigo bench compare-models-state --use chat   # 가장 최근의 대화 비교, 엔진이 바뀐 행은 engineChanged
aigo bench tune --model qwen3-8b --use chat --stop-running   # GGUF는 데스크톱 전용, MLX는 Apple Silicon, 위의 설정 맞추기 참고
aigo bench profiles --model qwen3-8b
aigo bench apply --model qwen3-8b --use chat
aigo bench undo --model qwen3-8b --use chat
aigo bench apply-fastest <record-id> --metric tg --preview   # 고급 측정의 가장 빠른 행이 바꿀 설정
aigo bench apply-fastest <record-id> --metric tg             # 대화용 프로필로 적용 (bench undo로 되돌림)
aigo bench power                               # 호스트가 배터리로 동작하는지 여부

헤드리스 서버에서 aigo bench run을 실행하면 서버 빌드에 llama-bench가 없다고 알려 주고 aigo bench quick을 사용하도록 안내합니다. 실행 중이 아닌 모델에 aigo bench quick을 실행하면 측정하는 동안 실행할지, 다른 모델이 실행 중이면 해당 모델을 내릴지 그대로 둘지를 터미널에서 묻습니다. --load를 붙이면 묻지 않고 실행하고, 다른 모델은 --stop-running이나 --keep-running에 따라 처리하며, 터미널도 플래그도 없으면 목록을 보여 주며 실패합니다. REST 클라이언트는 POST /api/v1/benchmarks/quick에 load를 넣고, 다른 모델이 실행 중이면 stopSessionIds나 keepRunning을 함께 보냅니다. load 없이 보내면 PERFORMANCE_MODEL_NOT_RUNNING 뒤에 모델 이름과 실행 중인 모델을 JSON으로 붙여 응답하고, 목록이 바뀐 stopSessionIds에는 PERFORMANCE_MEASUREMENT_STOPS_MODELS와 새 목록으로 응답하죠. 응답은 모델 실행과 복원까지 포함한 측정 전체가 끝난 뒤에 옵니다. aigo bench compare-models와 aigo bench tune은 측정하는 동안 멈출 실행 중인 모델(설정 맞추기라면 맞추는 모델까지)을 보여 주고 터미널에서 확인을 받습니다. --stop-running을 붙이면 확인 없이 멈추고, 터미널도 플래그도 없으면 목록을 보여 주며 실패합니다. REST 클라이언트도 같은 방식으로 시작합니다. POST /api/v1/benchmarks/model-comparison과 POST /api/v1/benchmarks/tune은 PERFORMANCE_MEASUREMENT_STOPS_MODELS 뒤에 목록을 JSON으로 붙여 응답하고, stopSessionIds에 목록의 세션을 빠짐없이 넣어 보내면 시작됩니다. GET /api/v1/benchmarks/model-comparison?use=chat은 런처의 추천 줄이 읽는 것과 같이 사용 목적 하나의 가장 최근 비교를 돌려주며, 측정한 뒤 엔진 빌드가 바뀐 행에는 engineChanged가 붙습니다. POST /api/v1/benchmarks/sweep/apply에 runId, metric(tg 또는 pp), preview를 보내면 같은 적용을 하는데, 가장 빠른 행은 서버가 직접 고르고 changes(바꿀 것이 없으면 비어 있음)로 응답하며, preview가 false이면 되돌리기 정보가 담긴 프로필 적용 응답을 applied에 함께 돌려줍니다. GGUF 모델의 완료된 고급 측정이 아닌 기록과, 측정한 뒤 모델 파일이 바뀐 기록은 거부하죠.

정책으로 숨기기

엔터프라이즈 정책에서 hiddenPages에 /benchmark 페이지 id를 적으면 이 페이지와 설정 > 성능이 함께 숨겨지고, 서버도 벤치마크 경로와 명령을 거부합니다. hiddenSettingsTabs에 performance를 적으면 설정 탭과 그 탭에 딸린 모델 카드의 한 줄, 개요 그룹, 실행 대화상자의 한 줄, 첫 실행 측정만 숨겨지고 이 페이지는 그대로 남습니다. 자세한 내용은 정책 스키마 참조를 보세요.