실력 부족(Skill issue): 비전 언어 모델을 직접 배포하지 말고 Skills로 활용하세요 — Merve Noyan, Hugging Face
AAI Engineer
Computing/SoftwareSmall Business/Startups
Transcript
00:00:00안녕하세요. '스킬 이슈'에 관한 발표에 오신 것을 환영합니다. 이제는 더 이상 스킬 이슈가 아닙니다. 이 강연이
00:00:22끝날 때쯤이면 아직 비전 모델을 활용하지 않던 분들도 이를 통해 많은 것을 만드실 수 있을 겁니다.
00:00:27제 소개를 간단히 하자면, 저는 Merve입니다. LLaVA 시절부터 컴퓨터 비전을 연구해 왔고, 최근에는 온디바이스 및 에이전트에 매료되어 비전 언어 모델(VLM)을 너무 사랑한 나머지 관련 책까지 집필했습니다. 하지만 저는 개발자들이 비전 언어 모델을 직접 사용하는 것을 넘어서, 모든 개발자가 비전 애플리케이션을 엔드투엔드로 직접 구축하기를 바랍니다. 그리고 이 강연이 그 훌륭한 출발점이 되어줄 것입니다. 개발자들에게서 흔히 보이는 행동은 비전 언어 모델을 모든 곳에 쓰려고 한다는 점입니다. 하지만 실시간 처리는 절대 불가능하죠. 여기서 실시간이란 토스터 같은 기기에서도
00:00:54엔드투엔드 비전 애플리케이션을 구축하기 위한 좋은 기준을 제공하고자 합니다. 제가 개발자들에게서 흔히 보는 행동은 비전 언어 모델을 모든 것에 사용하려고 한다는 점인데, 그러면 절대 실시간 성능을 얻을 수 없습니다. 여기서 실시간이란 토스터기 같은 장치에서도
00:01:18이미지 분류든 인스턴스 세그멘테이션이든 상관없이 30~40 fps 정도를 얻는 것을 의미합니다.
00:01:28첫 발표에서 Joseph이 소개한 RF-DETR 같은 모델을 직접 훈련시킨다면
00:01:39언제나 비전 언어 모델보다 뛰어난 성능을 발휘할 것이며, 오늘 이를 직접 증명해 보이겠습니다.
00:01:47오른쪽 화면에서 제가 RF-DETR로 작업하는 모습을 보실 수 있습니다.
00:01:52또 다른 문제는 라이선스를 읽지 않는다는 점입니다. 제가 객체 탐지 관련 게시물을 올릴 때마다 사람들은 항상 YOLO에 대해 묻곤 합니다. YOLO는 훌륭한 모델이지만 GPL 3.0 라이선스를 적용받는 것으로 알고 있습니다.
00:02:07맹세하건대, 비용을 지불해야 한다는 사실조차 모른 채
00:02:12배포하고 있는 개발자들이 분명 있을 겁니다. 그래서 여러분이 오늘 Apache 2.0 라이선스 모델로 전환하시길 바랍니다.
00:02:23이를 위해 저는 'vibe vision'이라는 프로젝트를 구축했으며, 이는 Maziar의 게시물에서 영감을 받았습니다.
00:02:30그는 SAM 3.1 모델을 Gemma 4가 호출할 수 있는 도구로 제공했는데, 매우
00:02:39인상적이었습니다. 그래서 오늘 더 많은 기능을 수행할 수 있는 툴킷을 만들었습니다.
00:02:49제 노하우를 정제해서 담아냈는데요, 우선 이 툴킷에는 제가 가장 좋아하는 모델들이 도구로 포함되어 있습니다.
00:02:57코딩 에이전트에 이를 제공할 수 있죠. 여러분의 코딩 에이전트는 컴퓨터 비전 분야에 대해서는 다소 감을 못 잡는 편이니까요.
00:03:03제가 모델을 선택할 때 고려하는 기준은 다음과 같습니다.
00:03:09첫째, 라이선스가 가장 최우선 순위입니다. Apache 2.0이나 MIT 등 상업적 이용이 가능한 라이선스여야 합니다.
00:03:16둘째, 모델 크기나 아키텍처 선택 대비 성능이 대등해야 합니다.
00:03:24그래서 컴퓨터 비전 학회에서 새로운 모델이 나올 때마다 벤치마크를 확인합니다.
00:03:31셋째는 당연히 직관적인 느낌(vibe)이고요. 이 툴킷에는 두 번째 파트가 있는데, 일종의 '바이브 트레이닝' 파트입니다.
00:03:41가장 흥미로운 부분이라 먼저 다뤄보겠습니다. 비전 애플리케이션을 만드는 개발자 입장에서 생각해 봅시다.
00:03:47라벨링된 이미지가 있다면 모델을 훈련시키거나
00:03:55컴퓨터 비전 에이전트에 튜토리얼을 제공해 작업을 진행할 수 있습니다. 이미 오픈소스와 자료가 충분하니까요.
00:04:02트랜스포머 같은 모델도 준비되어 있습니다. 하지만 라벨 없는 이미지뿐이라면 주석을 달고 평가한 뒤
00:04:11모델을 학습시켜야 합니다. 이걸 대규모로 처리하려면 어떻게 해야 할까요? 비전 언어 모델을 라벨러로 쓰고,
00:04:17또 다른 비전 언어 모델을 평가자(Judge)로 활용한 뒤 원하는 모델을 훈련시키면 됩니다.
00:04:24이 파이프라인의 구조를 살펴보면, 제가 구축한 시스템은 라벨링용 VLM과
00:04:35평가용 VLM, 그리고 훈련 과정으로 구성되어 있습니다. 코딩 에이전트에겐 긴 호흡이 필요한 작업이며,
00:04:42다양한 인프라 지원을 갖추고 있습니다. 로컬이나 원격으로 모두 실행 가능하며,
00:04:48Hugging Face 인프라 위에서 돌아갑니다. 단발성 배치 처리나 훈련을 위한 Job 기능도 지원합니다.
00:04:54또한 다양한 제공자를 활용할 수 있는 서버리스 라우팅 시스템 '추론 제공자(Inference Providers)'도 있으며,
00:05:00데이터셋 및 모델 리포지토리 위에 중간 데이터를 저장할 수 있는 버킷도 준비되어 있습니다.
00:05:07이 작업을 가능하게 한 핵심 요소는 먼저 제가 가장 좋아하는 모델인 RF-DETR과 RF-DETR 세그멘테이션입니다. 현재 세그멘테이션 작업을 진행 중입니다.
00:05:17또한 라벨링이나 훈련 프로세스를 계속 모니터링해야 하는
00:05:24장기 작업에 더 적합한 에이전트들이 등장했습니다.
00:05:32더 작으면서도 성능이 뛰어난 비전 모델 덕분에 매우 저렴하게 라벨링을 진행할 수 있게 되었습니다.
00:05:40Transformers 라이브러리도 v5 리팩토링 등을 거치면서 현재 비전 모델 실행 성능이 훨씬 좋아졌습니다.
00:05:47실제 파이프라인 작동 방식은 다음과 같습니다. 먼저 데이터셋 라벨링을 진행합니다.
00:05:54임의의 이미지 데이터셋을 가져와 Qwen 2.5-VL 72B 모델로 라벨을 지정합니다.
00:06:02그리고 라벨링된 데이터셋을 두 개의 평가 모델에 전달합니다. 첫 번째는 8B 규모의 Gemma 3 4B/12B 모델 계열 평가자이고,
00:06:10두 번째는 약 2B 크기로 상대적으로 작은 LFM 2.5 VL 모델입니다. 연구에 따르면
00:06:18작은 평가자 모델 여러 개를 앙상블하는 것이 더 효과적입니다. 그 후 평가 결과를 통합합니다.
00:06:26관련 연구들을 검토해보면, 대부분 VLM이나 LLM에 점수를 부여하도록 요청하지만
00:06:34서로 다른 크기의 평가자 모델을 사용할 때 이러한 점수는 거의 작동하지 않습니다.
00:06:40이후 RF-DETR Medium 또는 Large 모델 훈련으로 넘깁니다. Roboflow 팀과 논의했을 때 이 방식을 권장했고,
00:06:47실제로 아주 잘 작동합니다. 잠시 후에 직접 보여드리겠습니다. 동작 방식을 설명하자면,
00:06:55리포지토리를 가져와 Hub에 있는 이 데이터셋으로 훈련해 달라고 요청하기만 하면 됩니다.
00:07:04데이터셋에 이미 라벨이 있다면 바로 훈련에 들어갈 수 있고,
00:07:11라벨이 없다면 주석 작업부터 시작하면 됩니다. 여기서 활용한 핵심 비결은
00:07:19이미지 위에 바운딩 박스를 겹쳐서 평가자 모델에 전달하는 것입니다. Qwen은 기술적으로 바운딩 박스를 토큰으로 출력하는데,
00:07:27토큰을 그대로 넘기지 않고 바운딩 박스가 시각적으로 표시된 이미지를 만듭니다.
00:07:33그리고 라벨 및 라벨 설명과 함께 이미지를 제시한 뒤, “해당 라벨 설명에 맞는 바운딩 박스가
00:07:40제대로 표시되었는지 승인 여부를 알려 달라”고 요청합니다. 그 다음 평가자들의 판정을 통합하는데,
00:07:49만장일치가 아닌 '최소 동의' 방식을 적용했습니다. 왜 이런 방식을 썼는지는 뒤에서 설명해 드리겠습니다.
00:07:56라벨 설명 역시 코딩 에이전트가 생성하며, 사람은 이를 검토하고 승인하기만 하면 됩니다.
00:08:03파이프라인에 사용된 모델들은 모두 Apache 2.0 라이선스입니다.
00:08:10LFM 모델만 예외적으로 특정 매출 기준을 초과할 때
00:08:19비용을 지불하는 라이선스 형태지만, 편하게 사용할 수 있는 훌륭한 모델입니다. 전체 파이프라인을 관리하는 코딩 에이전트의 경우
00:08:26처음에는 Opus 3.5로 구축한 뒤 GLM-4로 워크플로를 실행했습니다.
00:08:35GLM은 솔직히 장기 호흡의 작업들을 아주 훌륭하게 수행해 냅니다. 인프라 측면에서는 제가 Hugging Face에서 일하고 있어서
00:08:42컴퓨팅 크레딧이 넉넉하고 성격도 급한 편이라,
00:08:50실험에 고성능 하드웨어를 꽤 많이 사용했습니다. 하지만 벤치마크를 진행해 보니
00:08:58모델 훈련을 위해 이 전체 파이프라인을 실행하는 데 약 3~4달러밖에 들지 않았습니다. 대단한 결과죠. 처음에 Qwen 2.5 모델에는
00:09:05편리하고 비용도 매우 저렴해 서버리스 방식을 사용했습니다. DeepInfra를 활용했는데
00:09:12비용이 엄청나게 저렴합니다. Together AI 등을 사용한다면 Job을 통한 배치 처리가 더 유리합니다.
00:09:19평가 단계에는 비용이 덜 드는 Hugging Face Jobs를 사용했고, 훈련 역시 L4 GPU를 이용했습니다.
00:09:27RF-DETR 모델 자체가 워낙 가벼워서 다른 환경을 쓰셔도 무방하며,
00:09:33원하신다면 로컬에서도 구동 가능합니다. 저는 빠른 처리와 큰 배치 사이즈를 원했을 뿐입니다. 두 가지 문제에 대해 테스트를 진행했습니다.
00:09:42첫째는 도로 표지판 탐지, 둘째는 문서 파싱입니다. 도로 표지판 탐지의 경우
00:09:48이미 라벨이 확보되어 있어 실제 정답(Ground Truth) 주석과 파이프라인의 결과를 비교할 수 있었습니다.
00:09:54반면 문서 파싱은 DocVQA 데이터셋을 사용했기에 정답 비교가 불가능했습니다.
00:10:02이미지, 표, 서명 등을 추출하는 새로운 작업이었기에
00:10:08RF-DETR이 이를 잘 학습할 수 있는지 확인하고 싶었습니다. 첫 번째 결과는 성공적이었습니다.
00:10:19mAP50 성능이 훌륭하게 나왔습니다. 성능 비교는 테스트 세트를 가져와
00:10:29Qwen을 통과시킨 뒤 의사 라벨(Pseudo-annotation)을 생성하고,
00:10:35해당 테스트 세트의 실제 정답 주석과 비교했습니다. 약간의 격차는 있었지만
00:10:42Qwen으로부터 학습된 결과라는 점을 감안하면 예상 범위 내였습니다. ROC-AUC 수치도 유스케이스 대비 상당히 훌륭했습니다.
00:10:50문서 파싱의 경우 놀랍게도 모델이 실제 일반화 능력을 보여주었습니다.
00:10:58훈련된 모델의 출력 결과에서 서명을 정확히 감지한 것을 볼 수 있습니다. 반면 Qwen이 해당 테스트 세트에 남긴 주석은
00:11:06서명을 놓쳤었죠. 따라서 이 파이프라인이 일반화 성능 또한 매우 뛰어나다고 말씀드릴 수 있습니다.
00:11:12이는 백본 모델로서 RF-DETR이 가진 뛰어난 성능 덕분이기도 합니다.
00:11:21이미지 요소를 완벽하게 포착해 내는 모습을 확인할 수 있습니다. 이 시스템을 구축하면서
00:11:30제가 비전 에이전트를 다루는 데 있어 놓치고 있던 부분들을 깨닫게 되었고, 몇 가지 시사점을 정리해보았습니다.
00:11:37첫째, 평가 결과의 불균형이 큽니다. 문제에 따라 LFM은 거부율이 매우 높은 편입니다.
00:11:44그 때문에 만장일치 방식을 택할 수 없었습니다. LFM과 Gemma가 동시에 삭제에 동의한 데이터만 제외한다면
00:11:50남는 예시 데이터가 너무 적어져서
00:11:58모델의 일반화 성능이 심각하게 떨어지기 때문입니다. 그래서 둘 중 하나라도 '승인'하면 해당 예시를 채택하는 방식을 취했고,
00:12:04결과는 훌륭했습니다. 하지만 대용량 데이터셋이 있고 재현율(Recall)이 중요하다면
00:12:09만장일치 방식을 쓰거나 신중히 관찰하는 것을 권장합니다. 문서 파싱의 경우 판정 격차가 그리 크지 않았습니다.
00:12:17둘째, 프롬프트 생성 작업이 다소 까다롭습니다. 이 부분이야말로 사람의 직접적인 검토와 승인이
00:12:28필요한 유일한 단계입니다. 모델이 평가용 프롬프트를 생성하면
00:12:35사람이 이를 확인하고 승인해야 합니다. 데이터셋을 직접 어느 정도 검토하는 과정은
00:12:42피할 수 없습니다. 셋째로 가장 흥미로운 점은,
00:12:52아무리 뛰어난 성능의 코딩 에이전트(예: Opus 3.5)를 사용하더라도
00:12:59컴퓨터 비전 엔지니어로서의 지식과 상식이 부족하다는 사실입니다.
00:13:06예를 들어 교통 표지판 이미지에 좌우 반전을 적용하거나 신호등에 색상 지터링을 적용하는 식인데,
00:13:14이는 데이터셋을 손상시키고 학습을 망치는 행위입니다. 그래서 나중에 증강 여부를 직접 선택할 수 있도록 패치했습니다.
00:13:21이제 코딩 에이전트가 그 설정을 바탕으로 적절히 보조해 줄 것입니다.
00:13:30그리고 마지막으로, 이 툴킷의 두 번째 부분은 제가 선호하는 도구로서의 모델들입니다.
00:13:35이 저장소는 깊이 추정부터 제로샷 세그멘테이션에 이르기까지 제가 가장 좋아하는 모델들을 다룹니다.
00:13:42그리고 이는 부분적으로 몇 달 전 출시한 Hugging Face 벤치마크 기반으로 작동합니다.
00:13:48기본적으로 벤치마크 리더보드가 있어서, 거기서
00:13:55오픈 모델과 그 평가 결과를 확인하고 다양한 크기의 모델을 비교할 수 있습니다.
00:14:02최신 상태로 유지하고 있지만, 컴퓨터 비전 학회 논문을 읽는 것을 좋아하는 제 덕분이기도 합니다.
00:14:13그래서 이 모델을 언급하고 싶은데,
00:14:20많은 사람들이 잘 모르기 때문입니다. SAM은 개방형 지시 세그멘테이션을 하지 못합니다.
00:14:26예를 들어 “이 빨간 차를 분할해 줘”라고 하면 수행하지만, “파란 차 옆,
00:14:33주황색 차 옆에 있는 빨간 차”라고 하면 수행하지 못합니다. 반면 Falcon Perception은
00:14:39TII에서 만든 모델로 실제로 이를 수행할 수 있으며, Apache 2.0 라이선스에 6억 개의 파라미터에 불과합니다.
00:14:47그래서 이 모델이 저를 위해 제로샷 세그멘테이션을 수행해 줍니다.
00:14:51그리고 이건 완벽한 리스트는 아닙니다. 포징에는 Sapiens 계열이 있고
00:14:58사람 중심 작업에서 사람의 키포인트 검출이나 사람의
00:15:04깊이 추정 등을 수행해야 할 때 사용합니다. 제로샷 검출에는 moondream3와 MM-Grounding-DINO가 있습니다.
00:15:13이 모델도 Apache 2.0 라이선스이며 매우 훌륭합니다. moondream에 비해 매우 가벼우며,
00:15:20하드웨어에 따라 선택할 수 있도록 다양한 크기의 여러 모델을 제공합니다.
00:15:25빠르게 처리하고 싶다면 가장 작은 대안을 선택하세요. OCR의 경우 olmOCR 벤치마크에서
00:15:34다양한 크기로 가져왔고, 깊이 추정의 경우 대형 모델은
00:15:40비상업적 라이선스가 아니라는 점을 발견했습니다. 나머지 모델은 사용 가능하므로 실제로 활용할 수 있습니다.
00:15:45Apache 2.0 라이선스이며 supervision 및 트래커 지원도 포함되어 있습니다.
00:15:51둘 다 Roboflow의 라이브러리로, 인스턴스, 바운딩 박스 등을 추적할 수 있게 해줍니다.
00:16:00향후 계획에 대해 말씀드리면, 먼저 여러분이 “이건 실제 산업 현장 사례에는
00:16:06절대 작동하지 않을 것이다”라고 말하는 소리가 들리는 듯합니다. 산업 사례에는 다양한 부품이 있고,
00:16:13언어로 설명하기 어려운 부품이 많아 자연어가 좋은 접근 방식이 아니기 때문입니다. 그런 의미에서
00:16:21이미지 기반 검출이 도움이 될 수 있습니다. 이미지 기반 검출을 잘 모르신다면, 기본적으로
00:16:27여기 예시로 든 Huggy 이미지처럼 특정 이미지 인스턴스를 제공한 뒤 모델에게 “이 이미지에서 해당 물체를 검출해 줘”라고 요청하는 방식입니다.
00:16:36모든 이미지에 걸쳐서요. 자연어로 설명하기 어려운
00:16:41산업 사용 사례에서 어느 정도 도움이 될 수 있다고 생각합니다. 또한 IoU(Intersection over Union)
00:16:52병합 방식도 시도해보고 싶습니다. 기본적으로 레이블이 지정된 박스와 판정 모델의 박스가 있을 때, 판정 모델에게
00:17:00거부하거나 수락하도록 요청하는 대신 실제로 박스를 생성하도록 한 뒤 IoU를 취하는 방식입니다.
00:17:06현재 세그멘테이션 지원 작업을 진행 중입니다. 들어주셔서 감사합니다. 더 자세히
00:17:14알아보고 싶으시다면, 저에게 소형 비전 저장소가 있습니다. 거기에는
00:17:20모델 파인튜닝, 양자화, 멀티모달 모델 등 비전과 관련된 모든 내용이 담겨 있으며,
00:17:27트랜스포머 작업 가이드도 지속적으로 업데이트하고 있고 다양한 튜토리얼이 있습니다. 또한 Hugging Face Skills에는
00:17:36컴퓨터 비전 전용 스킬과 인프라 스킬이 있어서, 프롬프트 하나로
00:17:43다시 학습을 진행할 수도 있습니다. 이것은 제 트위터 프로필이고, 이 저장소는 GitHub의
00:17:51mervenoyan/vision-intern에 있습니다. 질문 하나를 받을 시간이 있는 것 같네요. 정말 감사드립니다.
00:18:04네, 자기 개선 방식처럼 VLM 자체를 직접 학습시킬 계획이 있는지 물어보셨는데요.
00:18:16매우 흥미롭겠지만, 우선 개발자들이 특정 작업용 모델을 학습시키고
00:18:22엣지 기기에 배포하는 문제부터 해결하고 싶습니다. 그 이후에 진행할 수도 있을 것 같네요. 질문 하나 더 있으신가요?
00:18:34딱히 그렇지는 않습니다. 코딩 에이전트가 이미 문맥을 가지고 있어서
00:18:44프롬프트를 생성해주길 원했기 때문입니다. 하나 더 받을까요? 네, 정말 감사합니다.
00:19:04감사합니다.
Community Posts
No posts yet. Be the first to write about this video!
Write about this video