TL;DR
작성자는 DFlash 2를 지원하지 않는 fine-tuned model에서 DFlash 1을 사용하기 위해 Qwen BPE 토크나이저 파일을 내려받고 DFlash draft model을 GGUF로 변환하는 절차를 정리했습니다. 변환한 파일은 llama.cpp의 model-draft와 spec-draft-n-max 설정에 연결하며, deprecated 인자 대신 새 플래그를 사용합니다. R9700과 Q8_0, 64K context 조합에서 75 tokens/sec와 간결한 출력을 얻었다고 했지만, 절차 자체는 직접 테스트하지 않았고 성능 측정 조건도 제한적으로 제시됐습니다.
합의점 vs 논쟁점
논쟁점
- DFlash 1 연결 절차가 단계별 명령으로 정리되어 있지만 작성자가 직접 테스트하지 않았기 때문에 변환 및 서버 실행 성공 여부는 본문만으로 확정하기 어렵습니다.
- 64K context에서 75 tokens/sec라는 성능 수치는 구체적이지만 측정 조건과 반복 횟수가 제시되지 않아 일반적인 성능으로 확대하기 어렵습니다.
실용적 조언
- 먼저 DFlash 모델 디렉터리에 tokenizer.json, tokenizer_config.json, vocab.json, merges.txt를 내려받은 뒤 convert_hf_to_gguf.py의 --target-model-dir가 해당 디렉터리를 가리키는지 확인해야 합니다. 변환 결과는 Qwen3.5-9B-DFlash-Clean.gguf라는 별도 파일로 저장하고, 이후 model-draft 또는 --model-draft 경로가 그 파일과 일치하는지 점검해야 합니다. 글 자체가 절차를 미테스트 상태로 제공하므로 실행 전 deprecated 인자와 경로를 환경에 맞게 확인해야 합니다.
섹션별 상세
cd /opt/llama-cpp/models/z-lab-Qwen3.5-9B-DFlash
wget https://huggingface.co/Qwen/Qwen2.5-7B-Instruct/raw/main/tokenizer.json -O tokenizer.json
wget https://huggingface.co/Qwen/Qwen2.5-7B-Instruct/raw/main/tokenizer_config.json -O tokenizer_config.json
wget https://huggingface.co/Qwen/Qwen2.5-7B-Instruct/raw/main/vocab.json -O vocab.json
wget https://huggingface.co/Qwen/Qwen2.5-7B-Instruct/raw/main/merges.txt -O merges.txtDFlash 모델 원본 디렉터리에 Qwen BPE 토크나이저 파일을 내려받습니다.
python3 /home/keith/src/github.com/ggml-org/llama.cpp/convert_hf_to_gguf.py \
/opt/llama-cpp/models/z-lab-Qwen3.5-9B-DFlash \
--target-model-dir /opt/llama-cpp/models/z-lab-Qwen3.5-9B-DFlash \
--outfile /opt/llama-cpp/models/Qwen3.5-9B-DFlash-Clean.gguf토크나이저 파일이 있는 DFlash 디렉터리를 변환 대상으로 지정해 GGUF 파일을 생성합니다.
[Qwen3.5-9B (Fast)]
model = /opt/llama-cpp/models/Qwen3.5-9B-The-Defiant-Fable-Uncnr-Heretic-NEO-MAX-Q8_0.gguf
model-draft = /opt/llama-cpp/models/Qwen3.5-9B-DFlash-Clean.gguf
spec-draft-n-max = 4
dev = Vulkan0
reasoning-budget = -1
temp = 0.6
top-p = 0.95
min-p = 0.05
reasoning-format = deepseek
ctx-size = 65536주 모델과 DFlash draft model을 연결하고 추론 및 컨텍스트 설정을 지정합니다.
/opt/llama-cpp/bin/llama-server \
--host 0.0.0.0 \
--port 8083 \
-m /opt/llama-cpp/models/Qwen3.5-9B-The-Defiant-Fable-Uncnr-Heretic-NEO-MAX-Q8_0.gguf \
--model-draft /opt/llama-cpp/models/Qwen3.5-9B-DFlash-Clean.gguf \
--spec-draft-n-max 4 \
--ctx-size 2048 \
-dev Vulkan0systemd 없이 llama-server를 직접 실행해 주 모델과 DFlash draft model의 연결을 시험합니다.
용어 해설
- BPE 토크나이저(BPE Tokenizer)
- — 텍스트를 모델이 처리할 토큰 단위로 나누는 구성 요소입니다. 이 글에서는 Qwen BPE 파일인 tokenizer.json, vocab.json, merges.txt 등을 DFlash 모델 디렉터리에 내려받아 GGUF 변환 과정에서 병합 규칙과 어휘를 읽도록 구성합니다.
- GGUF
- — 이 글에서 Hugging Face 형식의 DFlash draft model을 llama.cpp가 읽을 수 있는 파일로 변환한 결과물입니다. 변환 스크립트가 tokenizer 파일을 참조한 뒤 Qwen3.5-9B-DFlash-Clean.gguf를 생성하고, llama-server의 draft 모델 경로에 연결합니다.
- 초안 모델(Draft Model)
- — 주 모델의 추론 과정에 함께 연결되는 보조 모델입니다. 글에서는 DFlash 1을 GGUF로 변환한 뒤 model-draft 또는 --model-draft 인자로 지정하고, spec-draft-n-max 값을 4로 설정해 빠른 실행 구성을 만듭니다.
언급된 도구
convert_hf_to_gguf.py로 DFlash 모델을 GGUF로 변환하고 llama-server로 주 모델과 draft model을 실행합니다.
언급된 리소스
AI 요약 · 북마크 · 개인 피드 설정 — 무료
출처 · 인용 안내
인용 시 "요약 출처: AI Trends (aitrends.kr)"를 표기하고, 사실 확인은 원문 보기 기준으로 진행해 주세요. 자세한 기준은 운영 정책을 참고해 주세요.