Ultralytics YOLO27:
Ultralytics YOLO

Ultralytics가 가장 선호하는 칩에서 YOLO 모델을 더 빠르게 만드는 방법

Ultralytics가 CPU, GPU 및 엣지 디바이스에서 YOLO 모델의 속도를 최적화하는 방법을 알아보세요. 칩, 메모리, 양자화·fusion·pruning과 같은 스마트 기법을 설명합니다.

FRFrancesco Mattioli23 min read
CPU, GPU 및 엣지 칩 전반에서 YOLO 모델 최적화하기

Ultralytics에서는 컴퓨터 비전 모델을 만듭니다. 기본적으로 컴퓨터가 볼 수 있도록 가르치는 일입니다! 이러한 모델을 거대한 수학 레시피라고 생각해 보십시오. 모델은 연산(이를 레이어라고 부릅니다)과 가중치라고 부르는 방대한 숫자 집합으로 구성됩니다.

Ultralytics YOLO 모델은 이미지를 본질 그대로, 즉 숫자 배열로 처리합니다! 각 픽셀은 이미지를 구성하는 모든 지점의 색상 값, 즉 Red, Green, Blue의 양(RGB)일 뿐입니다. 이러한 숫자 배열을 "텐서"라고 부릅니다. "다차원 행렬"보다 훨씬 멋지게 들리고, "숫자 위에 쌓인 숫자 위에 쌓인 숫자"보다도 훨씬 멋지게 들리기 때문입니다.

이미지를 모델에 입력하면 네트워크를 통과하는 장대한 여정을 시작합니다. 텐서가 레이어를 차례로 통과하며 변환되고, 컨볼루션되고, 가능한 한 아름다운 방식으로 수학적으로 뒤섞이는 모습을 상상해 보십시오. 숫자들이 서로 섞이고 어울리며 고양이를 고양이답게, 자동차를 자동차답게 만드는 본질을 추출하는 댄스파티와 같습니다. 이 과정을 feature extraction이라고 부릅니다.

반대편에서 나오는 것은 무엇일까요? 더 많은 숫자입니다! 의미 있는 숫자입니다. 탐지 작업에서는 이미지 속 사물이 정확히 어디에 있는지, 그리고 그 사물이 무엇일 가능성이 높은지를 알려 줍니다. "이 좌표 (x, y)에 있는 것은 개일 확률이 95%입니다!" 이 마법 같은 과정을 inference라고 부릅니다.

이제 모델이 마법을 부리려면 먼저 학교에 가야 합니다. 즉, training을 받아야 합니다. training 단계에서는 작업이 매우 집중적으로 진행됩니다.

training 중 네트워크에 이미지를 보여 줄 때마다 단순히 답만 얻는 것이 아닙니다. 두 가지 매우 중요한 작업을 추가로 수행합니다. 첫째, 네트워크가 얼마나 틀렸는지 계산합니다(이를 loss라고 하며, 기본적으로 과녁의 중심에서 얼마나 벗어났는지를 의미합니다). 둘째, 이것이 핵심인데, 해당 loss를 바탕으로 네트워크의 모든 숫자(또는 가중치)를 업데이트합니다. 매번 네트워크의 정확도를 높이도록 계산된 조정값으로 수천 개의 작은 다이얼을 한꺼번에 맞추는 것과 같습니다.

기본적으로 네트워크를 교정을 통해 training합니다. 모든 실수가 네트워크에 하지 말아야 할 일을 가르치고, 비슷한 이미지를 다시 보았을 때 올바른 답에 더 가까워지도록 모든 가중치를 조정합니다. 즉, 네트워크는 실수를 하나씩 수정하며 올바른 방향으로 조금씩 조정되는 과정을 통해 예측을 정확하게 수행하기 시작할 때까지 학습합니다.

몇 개의 숫자를 다루는 것일까요? 귀여운 소형 YOLO11n에는 수백만 개의 parameter가 있습니다. 하지만 YOLO11x는 어떨까요? 이 모델에는 무려 5천만 개가 넘는 parameter가 있습니다! Parameter가 많을수록 더 많은 세부 정보를 인코딩할 수 있습니다. 크레용으로 그림을 그리는 것과 완전한 화가용 팔레트를 사용하는 것의 차이와 같습니다.

inference 중에는 이 parameter 수가 매우 중요해집니다. 3백만 parameter 네트워크를 실행하는 것은 동네 한 바퀴를 조깅하는 것과 같습니다. 5천만 parameter 네트워크를 실행하는 것은 불타는 횃불을 저글링하며 마라톤을 뛰는 것에 더 가깝습니다.

그렇다면 computation이 정확히 무엇일까요? 이 모든 숫자 연산은 실제로 어떻게 이루어질까요? 어떻게 더 빠르게 만들 수 있을까요? 그리고 "computation 최적화"란 대체 무엇을 의미할까요?

칩은 실제로 어떻게 수학 연산을 수행할까요#

Computation은 칩으로 수행됩니다. 이 작은 실리콘 정사각형은 기본적으로 우주에서 가장 체계적인 모래성입니다. 컴퓨터가 수행하는 모든 연산, 모든 덧셈과 비교, 모든 "이것이면 저것"은 실리콘에 물리적으로 새겨져 있습니다. 칩의 특정 영역에는 숫자를 더하기 위한 실제 물리 회로가 있고, 논리 연산을 위한 회로도 따로 있습니다. 서로 다른 동네가 서로 다른 유형의 수학을 전문으로 하는 작은 도시와 같습니다.

컴퓨터 과학자라 하더라도 이것이 이상하게 들릴 수 있습니다. 지난 40년 동안 기술적 라자냐처럼 추상화 계층을 층층이 쌓아 올려 이제는 가장 아래 접시조차 보이지 않을 정도로 높아졌기 때문입니다. 우리는 작업을 매우 단순화하여 오늘날 대부분의 프로그래머는 실리콘에서 computation이 실제로 어떻게 이루어지는지 알지 못합니다. 프로그래머의 잘못이 아니라 설계에 따른 결과입니다!

이제 이러한 계층을 벗겨 보겠습니다. 다음과 같이 아주 간단한 Python 코드를 예로 들어 보겠습니다.

x = 1
if x == 1:
    y = x + 1

변수 x를 만들고 1로 설정한 다음, x가 1과 같으면(스포일러: 실제로 같습니다) x에 1을 더한 값을 갖는 y를 만듭니다. 세 줄입니다. 간단합니다.

하지만 흥미로운 부분은 여기서 시작됩니다. 이 무해한 세 줄과 실리콘을 실제로 흐르는 전자 사이에는 최소 네 개의 거대한 번역 계층이 존재합니다(실제로는 더 많지만, Digital Content Manager가 이미 제 단어 수 때문에 불안해하고 있다고 합니다). 이 놀라운 여정을 설명해 보겠습니다.

Layer 1: Python → Bytecode 먼저 Python이 코드를 읽고 bytecode라는 것으로 컴파일합니다. 이는 컴퓨터가 더 쉽게 이해할 수 있는 중간 언어이지만, 읽으려고 하면 눈물이 날 수 있습니다.

Layer 2: Bytecode → Machine Code Python 인터프리터(CPython 등)는 해당 bytecode를 프로세서가 이해하는 실제 명령어인 machine code로 번역합니다. 여기서 우아한 "if x == 1"이 "LOAD register, COMPARE register, JUMP if zero flag set"과 같은 형태가 됩니다.

Layer 3: Machine Code → Microcode 반전입니다! 최신 프로세서는 machine code를 직접 실행하지도 않습니다. machine code를 칩의 내부 구성 요소가 처리할 수 있는 더 작은 연산인 microcode로 다시 분해합니다. 하나의 "ADD" 명령이 여러 micro-operation으로 바뀔 수 있습니다.

Layer 4: Microcode → Physical Electronics 마지막으로 실리콘에 도달합니다. 이러한 micro-operation이 트랜지스터를 흐르는 실제 전기 신호를 발생시킵니다. 수십억 개의 작은 스위치가 켜지고 꺼지며, 전자가 정교하게 설계된 경로를 따라 움직이고, 어떻게든 마법처럼 1 + 1이 2가 됩니다.

각 계층은 바로 아래 계층의 엄청난 복잡성을 숨기기 위해 존재합니다. 러시아 인형과 같지만, 각 인형이 완전히 다른 언어를 사용하고 가장 작은 인형은 말 그대로 모래 속에 가둔 번개로 만들어져 있습니다.

아이러니한 점은 무엇일까요? Python 세 줄이 수백만 개의 트랜지스터 스위치를 작동시킬 수 있습니다. 하지만 이러한 추상화 덕분에 우리는 그 모든 것을 생각할 필요가 없습니다. 그저 "y = x + 1"을 작성하고 실리콘 깊은 곳 어딘가에서 마법이 일어나리라 믿으면 됩니다.

아키텍처#

모든 연산은 실리콘에 물리적으로 구현되며, 칩에서 연산이 일어나는 위치는 전적으로 칩의 topology에 따라 달라집니다. 전자를 위한 도시 계획과 같습니다. 가산기는 여기에 있고 곱셈기는 저기에 있으며, 모두 효율적으로 서로 통신해야 합니다.

시장에는 수백 가지의 서로 다른 칩이 있으며, 각각 다른 목적에 맞게 설계되었습니다. 이들 사이에서 달라지는 것은 무엇일까요? 연산이 물리적 영역에서 배치되고 구현되는 방식인 topology입니다. 이를 architecture라고 부르며, 정말 다양한 architecture가 있습니다.

  • x86 (Intel 및 AMD) - 복잡하지만 강력한 데스크톱 컴퓨팅의 시조
  • ARM - 휴대폰을 구동하며 노트북에서도 점점 더 많이 사용되고, 효율성을 위해 설계됨
  • RISC-V - 어디서나 영향력을 넓혀 가는 오픈 소스 반항아
  • PowerPC - 여전히 게임 콘솔과 서버에서 실행되는 IBM의 강자
  • MIPS - 단순하고 우아한 학계의 선호 아키텍처
  • SPARC - 고성능 컴퓨팅에 대한 Sun Microsystems(현재는 Oracle)의 기여
  • GPU architectures (NVIDIA의 CUDA 코어, AMD의 RDNA) - 병렬 처리 괴물

각 architecture는 트랜지스터를 서로 다르게 배치할 뿐만 아니라 서로 다른 언어를 사용합니다. 이러한 머신에 명령을 전달하는 데 사용하는 추상화도 완전히 다릅니다. 상대방의 자동차에 따라 프랑스어, 중국어 또는 표현 춤으로 여행 안내를 작성해야 하는 것과 같습니다.

실리콘의 심장박동#

칩의 연료는 전자, 즉 칩으로 흘러 들어가 computation에 필요한 에너지를 제공하는 전기입니다. 하지만 에너지만으로는 충분하지 않습니다. 칩이 실제로 작동하고 복잡한 topology를 통해 데이터를 이동하려면 한 가지 핵심 구성 요소인 clock이 모든 것을 좌우합니다. clock이 전자를 특정 시간에 특정 경로로 흐르게 합니다. clock이 없다면 전원만 공급된 실리콘이 아무 일도 하지 않게 됩니다.

수십억 개의 구성 요소가 완벽하게 동기화되어 움직여야 하는 대규모 공연을 조율한다고 상상해 보십시오. 박자가 없다면 혼란에 빠질 것입니다. 이것이 바로 clock이 프로세서에서 하는 역할입니다. clock은 매우 일정한 속도로 진동하는 수정으로, 초당 수십억 번 전기 펄스를 내보냅니다.

"3.5 GHz 프로세서"라는 말을 들을 때 GHz(gigahertz)는 clock speed, 즉 초당 35억 번의 박자를 의미합니다. 각각의 박자를 clock cycle이라고 하며, 이는 computing에서 기본 시간 단위입니다.

clock cycle 사이에는 아무 일도 일어나지 않습니다. 전체 컴퓨터가 다음 박자를 기다리며 멈춥니다. 우주에서 가장 극단적인 빨간불·초록불 게임과 같습니다. 각 "초록불"(clock pulse)에서는 다음이 일어납니다.

  • 구성 요소 간 데이터 이동
  • 계산 실행
  • 논리적 의사 결정 수행
  • 메모리 읽기 또는 쓰기

일부 연산은 한 cycle(간단한 덧셈)만 걸리지만, 다른 연산은 여러 cycle(나눗셈 또는 RAM에서 데이터 가져오기)이 걸립니다. 수십억 개의 구성 요소가 특정 연산을 수행하며, 이 끊임없는 박자에 맞춰 모두 동기화되는 정밀한 안무입니다.

수정을 더 빠르게 진동시켜 프로세서를 overclock할 수 있습니다. 모든 작업이 더 빨라지지만 열이 더 많이 발생하고 안정성은 떨어집니다. 너무 멀리 밀어붙이면 전자가 박자를 따라가지 못해 컴퓨터가 충돌합니다.

예전에는 이러한 연산이 방 하나 크기의 기계로 구현되었습니다. 하지만 이 모든 computation을 수행하는 구성 요소는 놀라울 정도로 단순합니다. 바로 스위치입니다. 켜짐 또는 꺼짐 스위치입니다.

이러한 스위치를 올바른 패턴으로 충분히 연결하면 computation을 얻을 수 있습니다. 전체 디지털 혁명은 정교한 스위치 배열로 귀결됩니다.

이처럼 단순하기 때문에 스위치가 있다면 어떤 스위치로든 컴퓨터를 만들 수 있습니다. 사람들은 수도관과 밸브, 도미노, LEGO 블록, 구슬, 심지어 Minecraft의 레드스톤으로도 작동하는 컴퓨터를 만들었습니다.

원리는 1940년대 이후 변하지 않았습니다. 단지 스위치를 극도로 작게 만드는 기술이 놀라울 정도로 발전했을 뿐입니다. 휴대폰은 인류를 달에 보낸 모든 컴퓨터를 합친 것보다 더 큰 computational power를 갖추고도 주머니에 들어갑니다. 원자 규모로 스위치를 만드는 방법을 알아냈기 때문입니다.

수백만 개의 parameter를 가진 neural network를 실행할 때 우리는 이 작은 스위치를 초당 수십억 번 전환하며, 모두 수정의 심장박동에 완벽하게 동기화합니다. 모든 weight update, 모든 matrix multiplication, 모든 activation function이 clock의 박자에 맞춰 움직입니다.

모델 training 때문에 컴퓨터가 마치 이륙하려는 것처럼 소리를 내는 것도 당연합니다!

Neural Network를 부릉부릉 빠르게 만들기#

좋습니다. 수정의 박자에 맞춰 수십억 개의 스위치가 춤추는 칩이 있고, 그 위에서 수백만 개의 parameter를 가진 neural network를 실행하려고 합니다. 쉽겠죠? 숫자를 칩에 던져 넣고 마음껏 실행하면 됩니다!

neural network를 빠르게 실행하는 것은 냉장고가 세 블록 떨어져 있고, 팬은 하나뿐이며, 모든 재료의 무게가 500파운드인 주방에서 5코스 요리를 하려는 것과 같습니다. 수학 자체가 가장 큰 문제는 아닙니다. 그 밖의 모든 것이 문제입니다.

Architecture 불일치#

대부분의 칩은 neural network가 아니라 Microsoft Word를 실행하도록 설계되었습니다. CPU는 if 문, loop, 그리고 가끔 세금 계산을 하며 평생을 보낼 것이라고 가정하고 만들어졌습니다(초능력자도 감정적으로 지치는 유일한 computation입니다). CPU는 순차 연산, 즉 이것을 한 다음 저것을 하고 그다음 다른 것을 하는 방식에 최적화되어 있습니다.

하지만 neural network는 완전히 다릅니다. neural network는 모든 작업을 동시에 수행하기를 원합니다. training 중에는 예측이 얼마나 틀렸는지를 바탕으로 수백만 개의 weight를 업데이트합니다. inference(훈련된 모델을 실제로 사용하는 과정) 중에는 수백만 개의 계산을 동시에 수행하며 데이터를 전달합니다. 백만 개의 숫자 각각에 다른 백만 개의 숫자를 곱해야 한다고 상상해 보십시오. CPU는 매우 빠르지만 아주 꼼꼼한 회계사처럼 한 번에 하나씩 처리하려고 합니다.

이것이 GPU가 AI computing의 backbone이 된 이유입니다. GPU는 수백만 픽셀의 색상을 동시에 계산해야 하는 video game을 위해 설계되었습니다. 알고 보니 픽셀 색상을 계산하는 일과 neural network 수학 연산은 놀라울 정도로 비슷합니다. 둘 다 방대한 양의 데이터에 동일한 연산을 병렬로 수행하기 때문입니다.

하지만 GPU도 neural network에 완벽하지는 않습니다. 그래서 기업들은 이제 특수한 AI 칩(TPU, NPU 및 PU로 끝나는 다른 모든 acronym)을 만들고 있습니다. 이러한 칩은 한 가지 목적, 즉 neural network를 빠르게 실행하는 일을 위해 처음부터 설계되었습니다. 한 가지 요리만 할 줄 알지만 초인적인 속도로 요리하는 셰프를 고용하는 것과 같습니다. CPU가 matrix operation을 순차적으로 처리하느라 고전하고 GPU가 병렬로 꽤 잘 처리하는 동안, 이러한 특수 칩은 아침, 점심, 저녁으로 matrix를 먹어 치웁니다.

메모리 장벽(또는 수학보다 Bits 이동이 어려운 이유)#

현대 neural network computation에서는 데이터를 실제로 COMPUTE하는 시간보다 데이터를 MOVING하는 데 더 많은 시간과 에너지를 사용합니다.

컴퓨터 칩을 매우 빠르게 일하는 뛰어난 수학자라고 생각해 보십시오. 하지만 참고 서적은 도시 곳곳의 서로 다른 건물에 보관되어 있습니다. 어떤 방정식이든 즉시 풀 수 있지만, 먼저 숫자를 가져와야 하며 그 여정에는 영원히 시간이 걸립니다.

칩은 한 clock cycle(초당 수십억 번의 박자 중 하나) 안에 두 숫자를 곱할 수 있습니다. 놀라울 정도로 빠릅니다! 하지만 memory에서 칩으로 그 숫자를 가져오는 데는 수백 cycle이 걸릴 수 있습니다. 수학자가 1초 만에 문제를 풀지만 도서관까지 걸어갔다가 돌아오는 데 5분이 걸리는 것과 같습니다.

그 이유는 거리(와 공간)입니다. 전기는 빠르게 이동하지만 무한히 빠르지는 않습니다. 데이터가 칩 위에서 더 멀리 이동해야 할수록 더 오래 걸립니다. 컴퓨터 설계자들은 서로 다른 거리에 여러 저장 위치를 두는 것과 같은 memory hierarchy를 만들어 이 문제를 해결했습니다.

  • Registers (compute unit에 직접 내장): 수학자의 책상입니다. 즉시 액세스할 수 있습니다! 하지만 매우 작아서 약 32개의 숫자만 저장할 수 있습니다. 바로 앞에 sticky note를 두는 것과 같습니다.
  • L1 Cache (몇 마이크로미터 거리): 사무실의 책장입니다. 무언가를 가져오는 데 3~4 cycle이 걸립니다. 수천 개의 숫자를 저장할 수 있습니다.
  • L2 Cache (몇 밀리미터 거리): 복도 아래의 서류 캐비닛입니다. 10~15 cycle이 걸리며 수백만 개의 숫자를 저장할 수 있습니다.
  • L3 Cache (칩 반대편): 아래층의 storage room입니다. 30~50 cycle이 걸리며 수천만 개의 숫자를 저장합니다.
  • RAM (완전히 다른 칩에 있음): 도시 건너편의 창고입니다. 100~300 cycle이 걸립니다. 수십억 개의 숫자가 이곳에 저장됩니다.
  • SSD/Hard Drive (케이블로 연결): 완전히 다른 도시입니다. 수백만 cycle이 걸립니다. 저장 용량은 방대하지만 속도는 빙하처럼 느립니다.

정확한 구조는 다양합니다. 휴대폰의 칩에는 L3 Cache가 없을 수도 있고, 서버 CPU에는 L3 Cache가 대용량으로 있을 수도 있습니다. 그러나 원칙은 동일합니다. 가까운 memory는 더 빠르지만 더 작습니다.

이제 neural network에서 고통스러운 부분이 나타납니다. Ultralytics YOLO 모델에 5천만 개의 parameter가 있다고 상상해 보십시오(ChatGPT에는 수십억 개가 있습니다). 이는 memory에서 compute unit으로 이동했다가 다시 돌아와야 하는 5천만 개의 숫자입니다. 각 숫자가 4 bytes에 불과하더라도 시스템을 통해 이동해야 하는 데이터는 200 megabytes입니다.

칩은 각 숫자를 단일 cycle에 처리할 수 있지만, RAM에서 해당 숫자를 가져오는 데 100 cycle이 걸린다면 시간의 99%를 배달을 기다리는 데 쓰게 됩니다. 교통 체증에 갇힌 Formula 1 경주용 자동차와 같습니다. 그 모든 computational power가 데이터가 도착하기를 기다리며 멈춰 있습니다.

핵심 통찰은 다음과 같습니다. 이것이 현대 computing의 병목 현상입니다. 이를 von Neumann bottleneck이라고 합니다. 수학 연산을 더 빠르게 수행하도록 칩을 만드는 것은 비교적 쉽습니다. memory를 더 빠르게 만드는 일은 물리적 한계에 부딪히고 있습니다. 이것이 AI의 거의 모든 performance optimization이 memory level에서 이루어지는 이유입니다. 엔지니어가 neural network를 빠르게 만들 때 수학 연산 자체를 더 빠르게 만드는 경우는 드뭅니다. 대신 데이터를 덜 이동하고, 더 효율적으로 cache하며, 더 영리하게 액세스하는 방법을 찾습니다.

최신 AI 칩은 compute speed에만 집중하지 않고 memory bandwidth와 data movement strategy에 집착합니다. 데이터를 pre-fetch하고, cache에 이미 있는 값을 재사용하며, memory access를 최소화하도록 computation을 구성합니다. AI hardware 경쟁의 승자는 가장 빠른 계산기를 가진 기업이 아니라, 계산기에 데이터를 계속 공급하는 방법을 알아낸 기업입니다. 모든 것은 memory access pattern 최적화에 달려 있습니다.

데이터를 조금이라도 이동할 때마다 에너지가 소모됩니다. 많지는 않고 picojoules 단위이지만, 초당 terabytes를 이동하면 빠르게 누적됩니다. 실제로 칩에서 데이터를 1mm 이동하는 데 드는 에너지가 실제 computation을 수행하는 것보다 더 많습니다!

이것이 neural network를 training할 때 노트북이 제트 엔진처럼 소리 내는 이유입니다. 열을 발생시키는 것은 수학 연산이 아니라 data movement입니다. 모든 parameter update, 모든 gradient calculation, 모든 forward pass가 말 그대로 방을 뜨겁게 만듭니다.

최신 AI accelerator는 기본적으로 열역학을 적용하는 실험입니다. 칩이 녹기 전에 얼마나 많은 computation을 담을 수 있을까요? 열을 얼마나 빠르게 제거할 수 있을까요? overclocking과 같지만 clock은 항상 11에 맞춰져 있고, 우리는 그저 불이 나지 않기를 바랄 뿐입니다.

해결책은 무엇일까요? Architecture-aware design입니다.#

가장 빠른 neural network가 반드시 가장 똑똑한 것은 아닙니다. 칩을 고려해 설계된 neural network가 가장 빠릅니다. 이러한 neural network는 다음과 같은 특징을 가집니다.

  • 데이터를 가능한 한 로컬에 유지합니다.
  • 계산을 집요하게 재사용합니다.
  • hardware capability에 완벽하게 맞춥니다.
  • 어떤 대가를 치르더라도 memory movement를 최소화합니다.

"동네 grocery store에서 재료를 사용하라"고 하는 레시피와 티베트에서 향신료를, 프랑스에서 치즈를, 남극에서 물을 수입해야 하는 레시피의 차이와 같습니다. 둘 다 맛있을 수 있지만, 하나가 분명 더 실용적입니다.

이것이 neural network를 빠르게 만드는 일이 예술인 이유입니다. 좋은 수학만으로는 충분하지 않습니다. hardware를 이해하고, memory hierarchy를 존중하며, architecture와 완벽하게 호흡해야 합니다.

computer science와 physics, engineering, 순수한 마법이 만나는 세계에 오신 것을 환영합니다. 숫자 하나를 이동하는 비용이 그 숫자로 computation을 수행하는 비용보다 큰 세계입니다. parallel은 빠르지만 synchronization은 치명적인 세계입니다. 가장 큰 적이 complexity가 아니라 distance인 세계입니다.

YOLO를 더 빠르게 만드는 방법#

YOLO 모델을 training하면 training 환경에서 훌륭하게 작동하는 neural network를 얻습니다. 하지만 gaming GPU, iPhone, 보안 카메라의 작은 칩은 완전히 다른 언어를 사용합니다. 각기 다른 강점과 약점이 있으며, 데이터를 처리하는 방식에 대한 관점도 매우 다릅니다.

다음과 같이 생각해 보십시오. GPU에는 동시에 작업할 수 있는 수천 개의 core가 있어 parallel processing에 적합합니다. 반면 mobile chip에는 AI operation을 위해 특별히 설계된 회로가 있을 수 있지만, 처리할 수 있는 수학 유형은 제한적입니다. 그리고 초인종 카메라의 edge device는 LED 전구보다도 작은 power budget으로 AI를 실행하려고 합니다.

Ultralytics에서는 12개가 넘는 서로 다른 export format을 지원합니다. 각각이 서로 다른 hardware에 최적화되어 있기 때문입니다. 이는 option이 너무 많아서가 아닙니다. YOUR specific needs에 맞는 올바른 option을 제공하기 위해서입니다.

연산 fusion: 더 적은 자원으로 더 많은 작업 수행#

원래 YOLO 모델에서는 많은 연산이 순차적으로 수행됩니다. 예를 들어 convolution을 수행한 다음 결과를 normalize하고 activation function을 적용할 수 있습니다. 이는 각각 별도의 memory read와 write가 필요한 세 단계입니다.

하지만 여기에는 영리한 방법이 있습니다. 이러한 연산을 하나의 단계로 결합할 수 있습니다. YOLO를 deployment용으로 export할 때 이러한 연산을 서로 fuse합니다. 다음과 같이 수행하는 대신:

  1. convolution 계산 → memory에 저장
  2. memory에서 로드 → normalize → memory에 저장
  3. memory에서 로드 → activation 적용 → memory에 저장

다음과 같이 수행합니다.

  1. convolution + normalization + activation 계산 → memory에 저장

640×640 이미지를 처리하는 일반적인 YOLO 모델에서는 이 간단한 방법으로 불필요한 memory transfer를 gigabytes 단위로 줄일 수 있습니다. mobile phone에서는 이것이 원활한 real-time detection과 답답한 lag의 차이를 만듭니다.

더 작은 숫자 사용: quantization의 마법#

YOLO는 객체를 정확하게 감지하기 위해 실제로 매우 정밀한 숫자가 필요하지 않습니다. 학습 중에는 각 weight를 표현하는 데 32비트를 사용합니다. 이는 샌드위치 재료를 계량하는 데 공학용 계산기를 사용하는 것과 같습니다. 실제 배포에서는 8비트로도 충분합니다.

이를 양자화라고 하며, 가장 강력한 최적화 기법 중 하나입니다. 더 작은 숫자를 사용하면 다음과 같은 효과가 있습니다.

  • 모델 크기가 75% 줄어듭니다(Ultralytics YOLO11x의 경우 200MB에서 50MB로 감소).
  • 대부분의 디바이스에서 2~4배 더 빠르게 실행됩니다.
  • 전력 사용량이 크게 줄어듭니다(휴대폰 배터리가 고마워할 일입니다).

YOLO의 모든 레이어가 이러한 축소에 동일하게 민감한 것은 아닙니다. 기본적인 에지와 형태를 감지하는 초기 레이어는 어떨까요? 이러한 레이어는 견고하므로 8비트 숫자를 사용해도 문제가 없습니다. "이것이 고양이인가, 개인가?"를 판단하는 최종 detection 레이어에는 조금 더 높은 정밀도가 필요합니다. 따라서 정확도를 유지하면서 속도를 극대화할 수 있도록 레이어별로 정밀도를 조정해 필요한 만큼의 비트만 사용합니다.

신중한 양자화를 적용하면 Ultralytics YOLO가 원래 정확도의 99.5%를 유지하면서 휴대폰에서 3배 더 빠르게 실행된다는 사실을 확인했습니다. 이것이 연구용 모델과 실제 환경에서 사용할 수 있는 모델의 차이입니다.

최적의 알고리즘 선택#

동일한 수학 연산을 수행하는 방법은 수십 가지가 있습니다. 간단한 convolution(YOLO의 핵심 연산)도 완전히 다른 알고리즘을 사용해 계산할 수 있으며, 최적의 선택은 특정 하드웨어와 입력 크기에 따라 달라집니다.

YOLO를 export할 때 당사의 최적화 프레임워크는 실제로 다양한 알고리즘을 테스트하고 특정 상황에 가장 빠른 알고리즘을 선택합니다. 이는 동일한 목적지로 가는 여러 경로 중 현재 교통 상황에 따라 하나를 선택하는 것과 같습니다. GPU에서는 많은 픽셀을 동시에 처리하는 알고리즘을 사용할 수 있습니다. CPU에서는 순차 처리에 최적화된 알고리즘을 사용할 수 있습니다. 수학은 동일하지만 실행 전략은 완전히 다릅니다.

메모리: 숨겨진 병목 현상#

현대 컴퓨팅에서 메모리가 실제 병목이라는 점에 대해 이야기했던 것을 기억하시나요? 이는 YOLO에서 특히 중요합니다. 모델에 5천만 개의 parameter가 있을 수 있으며, inference 중에는 기가바이트 단위의 중간 결과가 생성됩니다. 이 모든 데이터를 이동하는 작업이 실제 연산보다 느린 경우가 많습니다.

메모리 이동을 최소화하기 위해 여러 기법을 사용합니다.

스마트 스케줄링: 빠른 cache 메모리에 데이터가 남아 있을 때 즉시 사용되도록 연산을 배치합니다. YOLO의 feature pyramid network에서는 이를 통해 메모리 트래픽을 40% 줄일 수 있습니다.

타일링: 전체 이미지를 한 번에 처리하는 대신 cache에 들어갈 수 있는 더 작은 타일로 나눕니다. 이를 통해 프로세서는 느린 메인 메모리에서 계속 데이터를 가져오는 대신 빠른 로컬 메모리를 사용할 수 있습니다.

버퍼 재사용: 중간 결과를 위해 새 메모리를 계속 생성하는 대신 동일한 메모리 buffer를 재사용합니다. 이는 매우 효율적이며, YOLO의 전체 backbone을 재사용 가능한 buffer 몇 개만으로 실행할 수 있습니다.

가지치기: 적을수록 많습니다#

놀라운 사실이 있습니다. YOLO 모델은 종종 과도하게 설계되어 있습니다. 많은 레이어에서 정확도에 거의 영향을 주지 않고 channel의 30%를 제거할 수 있습니다. 이는 단순히 모델을 작게 만드는 것이 아니라, 수행해야 할 연산 자체가 줄어들기 때문에 모델을 더 빠르게 만드는 작업입니다.

이 과정은 정교합니다. 네트워크에서 최종 detection 결과에 가장 적게 기여하는 부분을 분석하고 제거한 다음, 이를 보완하도록 모델을 fine-tuning합니다. 가지치기된 YOLO11m 모델은 원래 정확도의 99%를 유지하면서 30% 더 빨라질 수 있습니다. 배터리로 작동하는 디바이스에서는 이러한 효율성 향상이 몇 시간의 추가 작동 시간으로 이어질 수 있습니다.

하드웨어 가속: 각 칩의 강점 활용#

프로세서마다 잘하는 작업이 다르며, 성능 차이는 매우 큽니다. 동일한 YOLO11n 모델의 처리 시간은 다음과 같습니다.

  • 최신 Intel CPU에서 프레임당 45밀리초
  • NVIDIA RTX GPU에서 4밀리초
  • 고급형 휴대폰 프로세서에서 22밀리초
  • Google Coral 엣지 TPU에서 15밀리초

이는 단순히 clock rate에 따른 속도 차이가 아니라 근본적인 아키텍처 차이를 반영합니다. GPU에는 병렬로 작동하는 수천 개의 코어가 있어 YOLO의 convolution에 적합합니다. 모바일 NPU에는 neural network를 위해 특별히 설계된 특수 회로가 있습니다. CPU는 다재다능하고 유연하지만 특화되지는 않은 범용 프로세서입니다.

최적화의 핵심은 YOLO의 연산을 각 칩이 가장 잘 수행하는 작업에 맞추는 것입니다. GPU는 많은 데이터에 동일한 연산을 동시에 수행하는 데 강합니다. 모바일 NPU는 지원하는 연산이 제한적일 수 있지만, 지원하는 연산은 매우 효율적으로 실행합니다. 엣지 TPU는 8비트 정수만 처리하지만, 이러한 제약 안에서 놀라운 속도를 달성합니다.

컴파일의 마법#

YOLO 모델을 export하면 보이지 않는 곳에서 놀라운 일이 일어납니다. 단순히 파일 형식만 변환하는 것이 아니라, 대상 하드웨어에 맞춰 모델을 실제로 compile합니다. 이는 Google Translate와 원어민의 차이와 같습니다. 컴파일 과정은 다음과 같습니다.

  1. 모델을 분석하여 구조와 요구 사항을 파악합니다.
  2. 하드웨어의 capabilities를 고려하여 하드웨어가 잘하는 작업과 어려워하는 작업을 파악합니다.
  3. 최적화된 code를 생성하여 하드웨어의 native language로 동작하도록 합니다.

컴파일러는 프로세서의 cache를 더 잘 활용하도록 연산을 재구성하거나, 칩이 지원하는 특수 명령어를 선택하거나, machine learning을 사용해 최적의 최적화 전략을 찾을 수도 있습니다. 그렇습니다. AI를 사용해 AI를 최적화하고 있습니다. 미래가 이미 시작되었습니다!

이 컴파일 단계는 성능을 10배까지 향상할 수 있습니다. 동일한 YOLO 모델도 범용 code를 사용하면 매우 느리게 실행될 수 있지만, 적절히 최적화된 명령어를 사용하면 빠르게 실행됩니다.

실제 환경의 엣지 배포#

YOLO가 실제 환경, 특히 까다로운 엣지 디바이스 환경에서 작동할 때 어떤 일이 일어나는지 살펴보겠습니다. 객체 detection을 위해 YOLO를 24시간 내내 실행해야 하는 security camera를 상상해 보십시오. 이러한 환경은 극심한 제약에 직면합니다.

  • 메모리: 전체 RAM이 512MB~2GB에 불과할 수 있습니다.
  • 전력: 보통 2~5와트에 불과합니다(휴대폰 충전기보다 적은 수준).
  • 냉각: 팬 없이 passive heat dissipation만 사용합니다.
  • 신뢰성: 충돌 없이 지속적으로 실행되어야 합니다.

최적화가 실제로 달성하는 결과는 다음과 같습니다. YOLO11s를 실행하는 security camera의 경우:

  • 원본 모델: 15와트, 85°C로 뜨겁게 작동, 20 FPS 달성
  • 양자화 및 가지치기 적용: 3와트, 쾌적한 45°C, 25 FPS 달성

전력 소비를 80% 줄이면서 실제로 성능까지 향상했습니다! 이는 과열되고 배터리를 소모하는 디바이스와 수년간 안정적으로 작동하는 디바이스의 차이입니다.

핵심은 적절한 trade-off를 선택하는 것입니다. 엣지 디바이스에서는 다음과 같은 방식을 자주 사용합니다.

  • INT8 양자화를 사용합니다(정밀도는 낮아지지만 전력도 크게 줄어듭니다).
  • 활동량이 적을 때 처리하는 프레임 수를 줄입니다.
  • 발열을 관리하기 위해 여러 프로세서에 작업을 분산합니다.
  • 모델이 빠른 메모리에 전부 들어갈 수 있을 만큼 작게 유지합니다.

최적화 프로세스#

Ultralytics에서는 최적화를 위해 체계적인 접근 방식을 따릅니다. 먼저 모델을 profile하여 실제로 시간이 어디에 사용되는지 파악합니다. 병목은 예상과 다른 곳에 있는 경우가 많습니다. 몇 개의 레이어에서 전체 시간의 80%가 사용되거나, 메모리 전송이 연산 시간을 지배할 수도 있습니다.

그다음 최적화를 반복적으로 적용합니다.

  1. 가장 큰 병목부터 시작합니다.
  2. 한 번에 하나의 최적화만 적용합니다.
  3. 속도 향상과 정확도 영향을 모두 측정합니다.
  4. 좋은 trade-off를 제공하는 최적화를 유지합니다.
  5. 목표를 달성할 때까지 반복합니다.

예를 들어 휴대폰에서 YOLO11m을 배포하는 경우는 다음과 같습니다.

  • Baseline: 프레임당 200ms, 200MB 모델
  • 양자화 후: 프레임당 80ms, 50MB 모델
  • 가지치기 후: 프레임당 60ms, 35MB 모델
  • 연산 fusion 후: 프레임당 45ms, 35MB 모델

각 단계는 원래 정확도의 99% 이상을 유지하면서 성능을 향상합니다. 그 결과는 무엇일까요? 주머니에 들어갈 만큼 작은 디바이스에서 실시간 객체 detection이 가능해집니다.

미래: heterogeneous computing#

현대의 디바이스는 여러 프로세서를 함께 사용하는 방식이 점점 더 지능화되고 있습니다. 휴대폰에는 프로세서가 하나만 있는 것이 아니라 여러 개가 있으며, 각각 다른 작업에 특화되어 있습니다.

  • 카메라 센서에는 preprocessing을 담당하는 ISP가 있습니다.
  • NPU는 YOLO inference를 실행합니다.
  • CPU는 복잡한 로직과 coordination을 처리합니다.
  • GPU는 화면에 결과를 render합니다.

YOLO 최적화의 미래는 이러한 프로세서에 모델을 지능적으로 분할하는 것입니다. NPU가 주요 convolution을 처리하고, CPU가 최종 detection 로직을 수행하며, GPU가 결과를 시각화할 수 있습니다. 각 프로세서가 가장 잘하는 작업을 수행하므로, 단일 프로세서로는 달성할 수 없는 더욱 효율적인 pipeline이 만들어집니다.

당사는 사용 가능한 프로세서 전반에 YOLO를 분할하는 최적의 방법을 자동으로 파악하는 smart partitioning algorithm을 개발하고 있습니다. 이때 각 프로세서의 capabilities뿐만 아니라 프로세서 간 데이터 이동 비용도 고려합니다.

핵심 요약#

YOLO 모델 최적화는 단순히 파일 형식을 변환하는 작업이 아니라, 최첨단 AI를 실제 환경에서 작동하는 형태로 전환하는 작업입니다. 양자화(더 작은 숫자 사용), 가지치기(불필요한 부분 제거), 연산 fusion(단계 결합), smart memory management와 같은 기법을 통해 정확도를 유지하면서 10~100배의 성능 향상을 달성합니다.

놀라운 점은 무엇일까요? 모든 상황에 적용되는 보편적인 "최고의" 최적화는 없습니다. 무제한 전력을 사용할 수 있는 cloud server에는 배터리로 작동하는 drone과 다른 최적화가 필요합니다. 전용 AI chip이 있는 휴대폰에는 Raspberry Pi와 다른 방식이 필요합니다. 이것이 Ultralytics가 다양한 export option을 제공하는 이유입니다. 각 option은 서로 다른 시나리오에 맞게 최적화되어 있습니다.

지금까지 살펴본 모든 최적화는 computer vision을 어디서나 사용할 수 있도록 만드는 하나의 목표를 향합니다. smart doorbell, drone application 또는 대규모 cloud service를 구축하든, YOLO가 제약 조건 내에서 작동하도록 지원하는 도구를 제공합니다.

Ultralytics로 YOLO 모델을 export할 때 단순히 파일을 저장하는 것이 아닙니다. neural network를 실용적으로 만드는 데 필요한 수년간의 연구 성과를 활용하는 것입니다. state-of-the-art AI 모델을 실제 하드웨어에서 실제 제약 조건하에 실행되어 실제 문제를 해결할 수 있는 형태로 전환하는 것입니다.

이것이 Ultralytics가 하는 일입니다. AI research와 practical deployment 사이의 간극을 연결합니다. AI의 미래는 단순히 최고의 모델을 보유하는 데 있는 것이 아니라, 그러한 모델을 실제 환경에서 유용하게 만드는 데 있기 때문에 computer vision이 어디서나 작동하도록 합니다.

Explore solutions

항공 이미지를 위한 컴퓨터 비전

항공 이미지를 위한 컴퓨터 비전

Ultralytics YOLO을 활용하여 드론 및 항공 이미지를 농업, 수산업, 환경 모니터링, 자연 보호, 지리 공간 분석을 위한 실시간 인사이트로 변환합니다.
자세히 알아보기
항공우주 분야의 컴퓨터 비전

항공우주 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 항공 모니터링에 비전 AI를 도입하세요. 컴퓨터 비전 솔루션으로 드론, 항공우주 워크플로, 환경 보전 및 지리 공간 산업을 지원합니다.
자세히 알아보기

Ultralytics YOLO 모델로 모든 사이트를 보호하세요. 비전 AI는 경계 모니터링, 위협 탐지, 번호판 인식 및 작업장 안전을 지원합니다.
자세히 알아보기
로보틱스 컴퓨터 비전

로보틱스 컴퓨터 비전

Ultralytics YOLO 모델로 더 스마트한 기계의 성능을 구현하세요. 로보틱스의 Vision AI는 자율 주행, 인식, 객체 추적 및 실시간 제어를 지원합니다.
자세히 알아보기
물류 컴퓨터 비전

물류 컴퓨터 비전

Ultralytics YOLO 모델로 물류를 효율화하세요. Vision AI는 패키지 검사, 분류, 차량 추적 및 창고의 실시간 안전 모니터링을 지원합니다.
자세히 알아보기
소매 컴퓨터 비전

소매 컴퓨터 비전

Ultralytics YOLO 모델로 소매업을 새롭게 혁신하세요. Vision AI는 재고 추적, 선반 모니터링, 대기열 관리 및 더 스마트한 고객 인사이트를 지원합니다.
자세히 알아보기
헬스케어 분야의 컴퓨터 비전

헬스케어 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 헬스케어 솔루션을 구축하십시오. 헬스케어 분야의 Vision AI는 더 빠른 의료 영상 처리, 더욱 스마트한 진단, 환자 모니터링을 지원합니다.
자세히 알아보기
제조 분야의 컴퓨터 비전

제조 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 제조를 최적화하십시오. Vision AI는 품질 관리, 결함 탐지, PPE 준수, 조립 라인 자동화를 지원합니다.
자세히 알아보기
자동차 산업의 컴퓨터 비전

자동차 산업의 컴퓨터 비전

Ultralytics YOLO 모델을 활용해 자동차 산업에 컴퓨터 비전을 적용합니다. 비전 AI는 도로 안전, 운전자 보조, 차량 자동화를 향상해 더 스마트한 도로를 구현합니다.
자세히 알아보기
농업의 컴퓨터 비전

농업의 컴퓨터 비전

Ultralytics YOLO 모델로 스마트 농업에 비전 AI를 도입합니다. 작물 모니터링, 가축 추적, 정밀 농업을 강화해 더 높은 수확량을 스마트하게 실현합니다.
자세히 알아보기
항공 이미지를 위한 컴퓨터 비전

항공 이미지를 위한 컴퓨터 비전

Ultralytics YOLO을 활용하여 드론 및 항공 이미지를 농업, 수산업, 환경 모니터링, 자연 보호, 지리 공간 분석을 위한 실시간 인사이트로 변환합니다.
자세히 알아보기
항공우주 분야의 컴퓨터 비전

항공우주 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 항공 모니터링에 비전 AI를 도입하세요. 컴퓨터 비전 솔루션으로 드론, 항공우주 워크플로, 환경 보전 및 지리 공간 산업을 지원합니다.
자세히 알아보기

Ultralytics YOLO 모델로 모든 사이트를 보호하세요. 비전 AI는 경계 모니터링, 위협 탐지, 번호판 인식 및 작업장 안전을 지원합니다.
자세히 알아보기
로보틱스 컴퓨터 비전

로보틱스 컴퓨터 비전

Ultralytics YOLO 모델로 더 스마트한 기계의 성능을 구현하세요. 로보틱스의 Vision AI는 자율 주행, 인식, 객체 추적 및 실시간 제어를 지원합니다.
자세히 알아보기
물류 컴퓨터 비전

물류 컴퓨터 비전

Ultralytics YOLO 모델로 물류를 효율화하세요. Vision AI는 패키지 검사, 분류, 차량 추적 및 창고의 실시간 안전 모니터링을 지원합니다.
자세히 알아보기
소매 컴퓨터 비전

소매 컴퓨터 비전

Ultralytics YOLO 모델로 소매업을 새롭게 혁신하세요. Vision AI는 재고 추적, 선반 모니터링, 대기열 관리 및 더 스마트한 고객 인사이트를 지원합니다.
자세히 알아보기
헬스케어 분야의 컴퓨터 비전

헬스케어 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 헬스케어 솔루션을 구축하십시오. 헬스케어 분야의 Vision AI는 더 빠른 의료 영상 처리, 더욱 스마트한 진단, 환자 모니터링을 지원합니다.
자세히 알아보기
제조 분야의 컴퓨터 비전

제조 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 제조를 최적화하십시오. Vision AI는 품질 관리, 결함 탐지, PPE 준수, 조립 라인 자동화를 지원합니다.
자세히 알아보기
자동차 산업의 컴퓨터 비전

자동차 산업의 컴퓨터 비전

Ultralytics YOLO 모델을 활용해 자동차 산업에 컴퓨터 비전을 적용합니다. 비전 AI는 도로 안전, 운전자 보조, 차량 자동화를 향상해 더 스마트한 도로를 구현합니다.
자세히 알아보기
농업의 컴퓨터 비전

농업의 컴퓨터 비전

Ultralytics YOLO 모델로 스마트 농업에 비전 AI를 도입합니다. 작물 모니터링, 가축 추적, 정밀 농업을 강화해 더 높은 수확량을 스마트하게 실현합니다.
자세히 알아보기
항공 이미지를 위한 컴퓨터 비전

항공 이미지를 위한 컴퓨터 비전

Ultralytics YOLO을 활용하여 드론 및 항공 이미지를 농업, 수산업, 환경 모니터링, 자연 보호, 지리 공간 분석을 위한 실시간 인사이트로 변환합니다.
자세히 알아보기
항공우주 분야의 컴퓨터 비전

항공우주 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 항공 모니터링에 비전 AI를 도입하세요. 컴퓨터 비전 솔루션으로 드론, 항공우주 워크플로, 환경 보전 및 지리 공간 산업을 지원합니다.
자세히 알아보기

Ultralytics YOLO 모델로 모든 사이트를 보호하세요. 비전 AI는 경계 모니터링, 위협 탐지, 번호판 인식 및 작업장 안전을 지원합니다.
자세히 알아보기
로보틱스 컴퓨터 비전

로보틱스 컴퓨터 비전

Ultralytics YOLO 모델로 더 스마트한 기계의 성능을 구현하세요. 로보틱스의 Vision AI는 자율 주행, 인식, 객체 추적 및 실시간 제어를 지원합니다.
자세히 알아보기
물류 컴퓨터 비전

물류 컴퓨터 비전

Ultralytics YOLO 모델로 물류를 효율화하세요. Vision AI는 패키지 검사, 분류, 차량 추적 및 창고의 실시간 안전 모니터링을 지원합니다.
자세히 알아보기
소매 컴퓨터 비전

소매 컴퓨터 비전

Ultralytics YOLO 모델로 소매업을 새롭게 혁신하세요. Vision AI는 재고 추적, 선반 모니터링, 대기열 관리 및 더 스마트한 고객 인사이트를 지원합니다.
자세히 알아보기
헬스케어 분야의 컴퓨터 비전

헬스케어 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 헬스케어 솔루션을 구축하십시오. 헬스케어 분야의 Vision AI는 더 빠른 의료 영상 처리, 더욱 스마트한 진단, 환자 모니터링을 지원합니다.
자세히 알아보기
제조 분야의 컴퓨터 비전

제조 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 제조를 최적화하십시오. Vision AI는 품질 관리, 결함 탐지, PPE 준수, 조립 라인 자동화를 지원합니다.
자세히 알아보기
자동차 산업의 컴퓨터 비전

자동차 산업의 컴퓨터 비전

Ultralytics YOLO 모델을 활용해 자동차 산업에 컴퓨터 비전을 적용합니다. 비전 AI는 도로 안전, 운전자 보조, 차량 자동화를 향상해 더 스마트한 도로를 구현합니다.
자세히 알아보기
농업의 컴퓨터 비전

농업의 컴퓨터 비전

Ultralytics YOLO 모델로 스마트 농업에 비전 AI를 도입합니다. 작물 모니터링, 가축 추적, 정밀 농업을 강화해 더 높은 수확량을 스마트하게 실현합니다.
자세히 알아보기

AI의 미래를 함께 만들어가세요!

머신러닝의 미래와 함께 여정을 시작하세요