Downloads · 30 days
22
52% of all-time downloads
wish418/carbix-v7
carbix-v7 is a machine learning model from wish418. Use it for the machine learning task on the model card, and read the license before you ship it in a product. The card lists the license as other.
한국 탄소배출 증빙 문서(전기요금 청구서 · 도시가스 청구서 · 화물 운송증)에서 구조화 JSON을 추출하는 Qwen3-VL-4B LoRA 파인튜닝 모델.
Downloads · 30 days
22
52% of all-time downloads
All-time downloads
42
Public
Repo size
5.3 GB
Likes
0
Public
Click a slice to open those files.
.gguf5.1 GB · 97%
From the Hugging Face model README
한국 탄소배출 증빙 문서(전기요금 청구서 · 도시가스 청구서 · 화물 운송증)에서 구조화 JSON을 추출하는 Qwen3-VL-4B LoRA 파인튜닝 모델.
v6와 마찬가지로 카테고리 힌트 없이 문서 종류를 스스로 판별한다. v7은 가스 사용열량의 소수점을 보존하는 것이 핵심 변경이다.
| 파일 | 크기 | 설명 |
|---|---|---|
carbix-v7-q8.gguf | 4.28GB | llama.cpp 서빙용 가중치 (q8_0) |
carbix-v7-mmproj.gguf | 836MB | 비전 프로젝터 (f16) |
lora_adapter_v7/ | 132MB | PEFT 어댑터 (merge 전) |
내부 빌드명은
v7b다. 1차 학습본(v7)에 SKe&s 단위 오류 교정을 이어 학습한 것이 이 어댑터이며, 1차 학습본은 배포된 적이 없다.
실물 고지서는 사용열량 802.940 MJ처럼 소수점까지 인쇄된다. 그런데 v6까지의 합성
학습셋은 MJ 단위 가스 샘플 9,013건이 전부 정수였다(반례 0건). 그 결과 v6는 소수점을
지워 802940을 출력했다 — 1,000배 오차이고 배출량 계산이 그대로 망가진다.
원인을 프롬프트·이미지 해상도·GGUF 양자화 순으로 배제한 끝에 학습 데이터 분포로 특정했다. 증강 생성기를 고쳐 학습셋의 소수 비율을 **0% → 75.6%**로 올렸고, 자릿수가 고르게 분포한다.
| 소수 자릿수 | 0 | 1 | 2 | 3 | 4 |
|---|---|---|---|---|---|
| 학습 샘플 | 2,192 | 1,824 | 1,859 | 1,718 | 1,398 |
측정 결과 자릿수와 무관하게 98% 이상이며, 소수점을 잘못 찍은 사례는 0건이다.
| 자릿수 | 0 | 1 | 2 | 3 | 4 | 합계 |
|---|---|---|---|---|---|---|
| 사용열량 정확도 | 99.1% | 100% | 99.0% | 98.0% | 98.8% | 99.0% |
베이스 Qwen/Qwen3-VL-4B-Instruct
LoRA r=16, alpha=32, dropout=0.05
q/k/v/o_proj, gate/up/down_proj
배치 1 × grad_accum 4 (effective 4)
1단계 19,708건 · 4,927스텝 · 1 epoch · AdamW LR 2e-4 · 16시간 38분 (L4 24GB)
loss train 0.009272 / eval 0.00197
2단계 1,706건 · 427스텝 · 1 epoch · LR 5e-5 · 1시간 20분
(SKe&s 교정) loss train 0.002889 / eval 0.001518
데이터 19,708건 — 가스 10,697 · 전기 4,500 · 운송 4,511
2단계는 1단계 어댑터에서 이어 학습했다. 교정 대상 SKe&s 806건만 돌리면 그 서식에 과적합돼 나머지가 무너지므로(catastrophic forgetting), 나머지에서 카테고리 비율대로 뽑은 리플레이 900건(가스 471 · 전기 214 · 운송 215)을 섞었다. 전체 재학습 대비 1/12 시간이다.
| 카테고리 | 문서 | 정확도 | ANLS | Token-F1 |
|---|---|---|---|---|
| 전기 | 50 | 100.0% | 1.0000 | 1.0000 |
| 가스 | 590 | 99.8% | 0.9992 | 0.9985 |
| 운송 | 50 | 98.4% | 0.9977 | 0.9919 |
| 전체 (필드 가중) | 690 | 99.50% | 0.9989 | 0.9970 |
| 전체 (문서 가중) | 690 | 99.74% |
분류 정확도 690/690 = 100.0% (오분류 0건, 파싱 실패 0건).
필드 가중과 문서 가중이 갈리는 이유는 문서마다 채점 필드 수가 달라서다. 운송은
transport_details 27키라 **문서의 7%인데 필드의 23%**를 차지한다. 카테고리별 수치를
보는 것이 가장 정확하고, 단일 숫자가 필요하면 문서 가중이 공정하다.
llama-server -m carbix-v7-q8.gguf --mmproj carbix-v7-mmproj.gguf \
--host 127.0.0.1 --port 8001 -ngl 99 -c 32768 \
--parallel 4 --image-min-tokens 1024 --jinja
-c는 반드시 슬롯 수 × 8192 이상으로 잡을 것. 슬롯당 컨텍스트가 모자라면
failed to process mtmd chunk로 비전 처리가 조용히 실패한다. 2슬롯이면 -c 16384,
4슬롯이면 -c 32768이다. 통합 메모리 16GB 기기는 2슬롯이 상한이다.
max_tokens는 768 이상 권장 — 운송 25키 출력이 경유지 3개일 때 461 토큰까지 나온다.