본문 바로가기
AI 논문 분석

[AI 논문] 코알라: '달리'보다 5배 빠른 ETRI의 이미지 생성 모델

by James AI Explorer 2024. 1. 30.

목차

    728x90

    안녕하세요! 오늘은 최근 뉴스에 보도된 우리나라 ETRI 연구소에서 개발한 KOALA라는 이미지 생성 모델에 대해서 알아보겠습니다. 기존 이미지 생성 모델인 오픈 AI의 '달리 2'와 '달리 3' 보다 빠른 이미지 생성속도를 구현한 KOALA 모델은 SDXL 잠재 확산 모델(Latent Diffusion Models, LDM)의 Self-Attention을 활용한 지식 증류(Knowledge Distillation)를 통해 메모리 효율성과 빠른 이미지 생성이 가능한 새로운 방법론을 제시하였습니다. 이 블로그에서는 KOALA 모델의 기반이 되는 잠재 확산 모델, Self-Attention 메커니즘, 지식 증류 기술, DEMO 실행결과 등에 대해서 확인하실 수 있습니다. 

     

    https://www.aitimes.com/news/articleView.html?idxno=156801

     

    ETRI, '달리'보다 5배 빠른 이미지 생성 모델 공개 - AI타임스

    한국전자통신연구원(ETRI)은 프롬프트 입력 후 이미지를 만드는데 걸리는 시간이 기존 모델 대비 최대 5배 빠른 ‘코알라(KOALA)’ 3종 모델과 이미지나 영상을 불러와 질의응답을 할 수 있는 대화

    www.aitimes.com

    "ETRI 연구진은 코알라 3종 모델을 허깅페이스에 공개하고 총 9개 모델과 비교할 수 있는 사이트 및 모델 제공 사이트를 공개했다. 프롬프트로 이미지를 생성하는 데 ▲코알라는 1.6초 ▲카카오브레인의 '칼로'는 3.8초▲오픈 AI의 '달리 2'는 12.3초▲'달리 3'는 13.7초가 걸린 것을 확인했다. "

    "이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."

    논문 개요 목적

    • 논문 제목: KOALA: Self-Attention Matters in Knowledge Distillation of Latent Diffusion Models for Memory-Efficient and Fast Image Synthesis 
    • 논문 저자: Youngwan Lee, Kwanyong Park 외
    • 논문 게재 사이트: https://arxiv.org/abs/2312.04005
    • 논문 게재일: 2023.12

    KOALA: Self-Attention Matters in Knowledge Distillation of Latent Diffusion Models for Memory-Efficient and Fast Image Synthesis - 논문발췌

     

    이 논문의 목적은 Stable Diffusion XL (SDXL)이라는 잠재 확산 이미지 생성 모델에서 얻은 지식을 활용하여 더 효율적이고 빠른 텍스트에서 이미지로의 합성 모델을 개발하는 것입니다. SDXL은 고해상도 및 큰 모델 크기와 함께 성능 향상을 이루어낸 모델이지만, 높은 계산 비용과 모델 크기로 사용자에게 높은 하드웨어 비용을 요구합니다.

     

    논문은 이러한 문제를 해결하기 위하여 잠재 확산 모델(Latent Diffusion Models, LDM)의 Self-Attention을 활용한 지식 증류(Knowledge Distillation)를 통해 메모리 효율성과 빠른 이미지 생성이 가능한 새로운 방법론을 제시합니다.  

    반응형

    논문의 연구내용 및 결과

    이 논문에서는 잠재 확산 모델(Latent Diffusion Models, LDM)에 Self-Attention을 적용한 KOALA 모델을 소개합니다. 더불어, 이 모델의 지식 증류 방법론과 SDXL 모델의 Transformer block을 활용한 효과적인 Self-Attention의 적용 방법을 상세하게 제시합니다. 아래 더보기를 클릭하시면 Transformer block에 대해 알아보실 수 있습니다. 

    더보기

    Transformer block은 Transformer 아키텍처의 기본 구성 요소 중 하나입니다. Transformer는 주로 자연어 처리 작업에서 탁월한 성능을 보이며, 이 구조는 어텐션 메커니즘을 중심으로 구성되어 있습니다. Transformer block은 입력 데이터를 처리하고 특성을 추출하는 역할을 수행합니다. Transformer block은 크게 두 가지 하위 모듈로 구성됩니다: 1. Multi-Head Self-Attention Mechanism (Multi-Head Attention): 이 부분에서는 입력 시퀀스의 각 요소 간의 상호 작용을 학습합니다. Self-Attention 메커니즘을 여러 개의 헤드로 나누어 병렬로 계산하고, 각 헤드의 출력을 결합하여 높은 수준의 표현을 얻습니다.

    2. Feedforward Neural Network: Self-Attention의 출력을 기반으로 한 전방향 신경망이며, 주어진 입력에 대한 비선형 변환을 수행합니다. 이러한 두 하위 모듈은 Residual Connection과 Layer Normalization이라는 기술들과 결합되어 하나의 Transformer block을 형성합니다. Residual Connection은 입력 데이터를 신경망의 출력에 직접 더함으로써 그래디언트의 효율적인 전파를 돕습니다. Layer Normalization은 각 레이어의 입력을 정규화하여 학습의 안정성을 증가시킵니다. Transformer block은 반복적으로 쌓아 모델을 형성하며, 이 구조는 언어 모델링, 기계 번역 및 다양한 시퀀스 기반 작업에 적용됩니다.

    잠재 확산 모델(Latent Diffusion Models, LDM)

    잠재 확산 모델은 이미지 생성 및 변환 작업에 사용되는 확률적인 생성 모델 중 하나입니다. LDM은 이미지의 픽셀 간 상호 작용을 나타내는 동적인 확산 프로세스를 기반으로 합니다. 이 모델은 이미지를 점진적으로 생성하는 방식으로 작동합니다. 초기에는 이미지가 낮은 화질로 시작하며, 시간이 지남에 따라 픽셀 간의 상호 작용을 통해 이미지가 점차적으로 개선됩니다.

    • 개요: 잠재 확산 모델(Latent Diffusion Models, LDM)은 확률적 이미지 생성 및 합성을 위한 생성 모델의 한 유형입니다. 이 모델은 이미지의 픽셀 간 의존성을 활용하여 고화질 및 고해상도의 이미지를 생성하는 데 주로 사용되며, 확률적 디코더를 사용하여 이미지를 점진적으로 생성하며, 잠재 변수의 변이를 통해 다양한 이미지를 생성할 수 있습니다. 
    • 확률적 디코더: LDM은 일반적으로 확률적 디코더를 사용합니다. 디코더는 이미지의 각 픽셀을 독립적으로 생성하는 것이 아니라, 픽셀 간의 의존성을 고려하는 방식으로 이루어지게 하고, 이미지의 전역적인 의미를 캡처하여 이미지 전체에 걸쳐 일관된 의미나 구조를 갖게하는 데 도움을 줍니다. 
    • 잠재 변수와 디퓨전 프로세스: LDM은 잠재 변수를 사용하여 이미지의 특징을 잠재 공간에 표현합니다. 디코더는 이 잠재 변수를 활용하여 이미지를 생성합니다. 이미지 생성은 디퓨전 프로세스(Diffusion Process)를 통해 이루어집니다. 디퓨전은 이미지가 초기 노이즈로부터 시작하여 점차적으로 더 정교한 형태로 발전하는 과정을 나타냅니다. 
    • 지식증류: LDM에서는 지식 증류(Knowledge Distillation)가 중요한 역할을 합니다. 이는 미리 학습된 모델로부터 얻은 지식을 새로운 모델에 효과적으로 증류하여 빠른 학습과 뛰어난 성능을 이끌어내는 방식입니다. KOALA 모델에서는 Self-Attention 기반의 LDM에서 얻은 지식이 다른 모델에 전달되어 이미지 생성 작업에서 효율적으로 활용됩니다. 

    LDM은 이미지 합성, 생성 및 편집 작업 등 다양한 컴퓨터 비전 작업에서 활용됩니다. 특히, 불확실성이나 다양성이 필요한 작업에 적합하며, 고해상도 이미지 생성과 같은 고도의 복잡한 작업에도 효과적으로 사용될 수 있습니다.

    자기 주의 메커니즘(Self-Attention)

    Self-Attention은 딥러닝 모델에서 특정 위치의 입력에 더 많은 주의를 기울이는 메커니즘으로, 특히 자연어 처리 및 이미지 생성과 같은 작업에서 효과적으로 사용됩니다. Transformer 아키텍처에서 처음 도입되었으며, 현재까지 다양한 작업에서 좋은 성능을 보여주고 있습니다. Self-Attention의 핵심 개념은 다음과 같습니다. 

    • 입력 시퀀스와 가중치 계산: Self-Attention은 입력 시퀀스의 각 원소에 대해 가중치를 계산합니다. 이 가중치는 해당 위치의 원소가 다른 위치의 원소에 얼마나 주의를 기울이는지를 나타냅니다.
    • 가중합을 통한 출력 생성: 각 항목에 대한 가중치를 곱한 후 그 결과를 모두 더하여 출력을 생성합니다. 이렇게 함으로써 입력 시퀀스의 각 위치가 다른 위치와 얼마나 상호작용하는지를 나타내는 새로운 표현이 만들어집니다.
    • 특정 위치 간의 상호작용 파악: Self-Attention은 입력 시퀀스 내에서 특정 위치 간의 상대적인 중요도를 동적으로 계산합니다. 이는 문장에서 각 단어가 문맥 내에서 어떤 단어에 주의를 기울이는지를 판단하는 데 사용됩니다.
    • 모델 내의 전역적 상호작용: Self-Attention은 전역적인 문맥을 파악할 수 있는 능력이 있어, 모델이 전체 시퀀스를 고려하여 정보를 추출하고 상호작용할 수 있도록 합니다.

    Self-Attention의 동작 원리는 다음과 같습니다.

    • 1. Query, Key, Value 생성: 입력 시퀀스의 각 원소에 대해 Query, Key, Value 세 가지 벡터를 생성합니다. 이 벡터들은 가중치 계산에 사용됩니다.
    • 2. Attention Score 계산: Query 벡터와 Key 벡터 간의 내적을 계산하고, 이를 특정 위치의 원소에 대한 중요도를 나타내는 가중치로 사용합니다.
    • 3. Softmax 적용: 계산된 Attention Score에 Softmax 함수를 적용하여 확률 값으로 정규화합니다. 이로써 중요도를 나타내는 가중치가 0과 1 사이의 값으로 변환됩니다.
    • 4. 가중합으로 출력 계산: 정규화된 Attention Score를 사용하여 각 항목에 대한 가중치를 곱한 후 그 결과를 모두 더하는 가중합을 적용하여 최종 출력을 생성합니다.
    • 5. 모든 위치에 대해 반복: 위 과정을 모든 입력 위치에 대해 반복하여 새로운 표현을 얻습니다. Self-Attention은 특히 Transformer 모델에서 주요 구성 요소로 사용되어 문장 내 단어 간의 관계를 강력하게 모델링하고, 최근에는 이미지 생성과 같은 다양한 작업에도 성공적으로 적용되고 있습니다.

    Self-Attention은 특히 Transformer 모델에서 주요 구성 요소로 사용되어 문장 내 단어 간의 관계를 강력하게 모델링하고, 최근에는 이미지 생성과 같은 다양한 작업에도 성공적으로 적용되고 있습니다.

     

     

    지식 증류(Knowledge Distillation)

    Knowledge Distillation(지식 증류)은 주로 크고 복잡한 모델(선생 모델)로부터 작고 간소화된 모델(학생 모델)로 지식을 전달하는 기술입니다. 이는 작은 모델이 큰 모델의 성능과 일부 특성을 효과적으로 학습할 수 있도록 돕는 방법 중 하나입니다. 주로 딥러닝에서 사용되며, 다양한 분야에서 적용되고 있습니다. 다음은 Knowledge Distillation의 주요 개념과 특징입니다:

    • 선생 모델(Teacher Model): 지식 증류의 출발점이 되는 모델로, 일반적으로 크고 높은 성능을 가지는 모델을 가리킵니다. 이 모델은 학생 모델이 학습하려는 작업에 대해 잘 학습된 상태여야 합니다.
    • 학생 모델(Student Model): 작고 단순한 모델로, 선생 모델로부터 증류된 지식을 학습하는 역할을 합니다. 주로 실제 운영 및 배포에 사용되는 모델이며, 경량화된 구조를 가지고 있습니다.
    • Soft Labels 및 Hard Labels: 선생 모델의 출력을 "soft labels" 또는 "logits"라고 부르며, 이는 확률 분포 형태로 표현됩니다. 이와 대조적으로 "hard labels"는 각 클래스에 대한 단일 예측값을 가리킵니다.
    • Loss Function: 학습 시, 선생 모델의 출력과 학생 모델의 출력 간의 차이를 측정하는 손실 함수를 정의합니다. 이 손실 함수는 선생 모델의 soft labels과 학생 모델의 출력 간의 거리를 최소화하도록 학습됩니다.
    • Distillation Temperature: 학습 시 선생 모델의 출력을 조절하는 하이퍼파라미터로, 일반적으로 높은 온도는 더 부드러운 확률 분포를 생성하고, 낮은 온도는 더 경직된 분포를 생성합니다.

    Self-attention 기반 지식 증류에서는 특정 위치의 입력과의 관련성을 계산하고 가중치를 부여하고 특히 텍스트 또는 이미지에서 중요한 부분에 주의를 기울이는 Self-attention 메커니즘을 사용하여 선생 모델이 어떻게 특정 객체 또는 속성에 주의를 기울이고 그것을 표현하는지에 대한 지식을 학생 모델에게 전달합니다.

     

    KOALA에서 선생 모델은 Stable Diffusion XL (SDXL)입니다. SDXL은 텍스트에서 이미지로의 변환 작업에서 우수한 성능을 보이는 대규모 딥러닝 모델 중 하나입니다. SDXL은 Stable Diffusion 모델의 후속 모델로, 고해상도(1024 × 1024) 및 더 큰 모델 크기를 갖추어 성능을 크게 향상시켰습니다. KOALA는 이러한 SDXL의 지식을 효과적으로 학습하는 학생 모델입니다. 즉, KOALA는 SDXL로부터 텍스트에서 이미지로의 변환 작업에 필요한 핵심 지식을 얻어, 더 작고 경량화된 구조로 구성된 효율적인 텍스트에서 이미지로의 변환 모델을 형성하는 데 사용됩니다. 이를 통해 KOALA는 SDXL의 성능을 유지하면서 모델 크기를 줄이고, 더 빠른 추론 속도를 제공합니다.

    U-Net 아키텍처

    U-Net은 주로 이미지 세그멘테이션(분할) 작업을 위해 설계된 신경망 아키텍처 중 하나입니다. 이 아키텍처는 이름 그대로 U자 형태를 띠고 있어서 U-Net이라 불립니다. U-Net은 이미지 입력을 받아 해당 이미지의 각 픽셀을 특정 클래스 또는 물체에 속하는지 여부로 분류하는 작업에 적합하게 설계되었습니다. U-Net 아키텍처는 크게 두 부분으로 나뉩니다.

    • 인코더(Encoder): U자의 왼쪽 부분에 해당하는 인코더는 입력 이미지를 다운샘플링하여 추상화된 특징을 추출합니다. Convolutional Neural Network (CNN) 레이어를 사용하여 이미지의 공간적인 특징을 인코딩합니다.
    • 디코더(Decoder): U자의 오른쪽 부분에 해당하는 디코더는 추출된 특징을 이용하여 원본 이미지와 동일한 차원으로 업샘플링합니다. 이 과정에서 세그멘테이션 맵이 생성되며, 각 픽셀이 특정 클래스에 속하는지 예측됩니다.

    U-Net의 특징은 다음과 같습니다. 

    • 스킵 연결(Skip Connections): 인코더와 디코더 간에는 스킵 연결이 있어, 인코딩된 특징 맵이 디코딩 과정에서 직접 사용될 수 있습니다. 이는 모델이 상세한 이미지 정보를 보다 효과적으로 보존할 수 있도록 도와줍니다. 
    • U자 형태 구조: U-Net은 U자 형태를 띠고 있어서, 이미지의 고해상도 정보를 잘 보존하면서도 추상화된 특징을 학습할 수 있습니다. U-Net은 주로 의료 영상 분야에서 세포나 조직 같은 물체의 세그멘테이션에 사용되지만, 다양한 이미지 분야에서 활용될 수 있습니다.

    이 논문에서는 SDXL의 U-Net 모델 조사를 기반으로 간단하면서도 효율적인 U-Net 아키텍처를 제안하고 있습니다. SDXL의 U-Net은 각 단계에서 서로 다른 수의 트랜스포머 블록을 가지고 있기 때문에, 이러한 다양성은 U-Net의 복잡성과 모델 크기를 증가시키는 요인 중 하나일 수 있습니다. 논문에서는 SDXL의 U-Net을 효과적으로 축소하기 위해서는 단순한 블록 수준의 제거만으로는 충분하지 않다고 설명하고 있습니다.

     

    이에 대한 대안으로, 이 연구에서는 SDXL에 더 적합한 압축된 U-Net을 개발하였습니다. 구체적으로, 연구에서는 SDXL의 U-Net을 위해 두 가지 유형의 압축된 U-Net을 제안하고 있습니다. 이 중 KOALA-1B 모델은 1.16B 매개변수로 SDXL보다 두 배 더 작아졌으며, KOALA-700M 모델은 782M 매개변수로 SDM-v2.0 (865M)과 비교 가능한 크기입니다. KOALA-700M은 SDXL보다 거의 두 배 빠른 추론 속도를 달성하고 있습니다.

    "이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."

    KOALA 모델 특징 성능 평가

    KOALA  모델은 이미지 합성 분야에서 성능과 효율성을 향상시키기 위해 Self-Attention을 기반으로 하는 Latent Diffusion Models(LDM)의 지식을 효율적으로 전달하고, 이미지 생성 작업에서 뛰어난 결과를 얻을 수 있도록 설계되었습니다. 

    SDXL 기반의 잠재 확산 모델에서의 지식 증류 개요 및 KOALA 아키텍처

     

    KOALA가 SDXL의 성능을 유지하면서 모델 크기를 줄이고 빠른 추론 속도를 제공하는 핵심적인 요소는 다양한 측면에서 발견됩니다. 각 요소에 대해 자세히 살펴보겠습니다:

    • 효율적인 U-Net 아키텍처 설계: KOALA에서는 SDXL의 U-Net을 대체하기 위해 두 가지 효율적인 U-Net 아키텍처( KOALA-1B 모델, 700M 모델)를 디자인했습니다. 압축된 U-Net은 주로 각 단계에서의 마지막 또는 중간에 위치한 Residual-transformer 블록 쌍을 제거하는 방식과, 이미지의 세부적인 정보 특성에서 트랜스포머 블록의 깊이를 줄이는 방식입니다. 이를 통해 SDXL의 U-Net을 효율적으로 압축하고 빠른 추론 속도를 달성할 수 있게 됩니다. 
    • 지식 증류 (Knowledge Distillation): KOALA는 SDXL의 모델을 학습시키기 위한 효과적인 지식 증류 전략을 사용합니다. 이는 SDXL의 중요한 특성을 적절하게 전달하면서도 모델 크기를 줄이는 데 기여합니다. Self-attention 기반 지식 증류는 선생님 모델로부터 학습한 내용을 학생 모델에 전달하여 모델을 경량화하고 메모리 사용을 최적화합니다.
    • 추론 속도 향상: 새로운 U-Net 아키텍처와 효과적인 지식 증류는 KOALA가 빠른 추론 속도를 달성하는 데 기여합니다. 모델이 더 작고 경량화되면 메모리에 더 적은 부담이 생기므로, KOALA는 소비자급 GPU와 같이 제한된 자원에서도 효율적으로 실행될 수 있습니다.
    • 시스템적인 분석: 논문은 다양한 GPU에서의 추론 분석을 통해 KOALA가 경제적인 GPU(8GB 메모리)에서도 실행될 수 있음을 입증합니다. 이는 KOALA가 실제 메모리 제약이 있는 환경에서 사용 가능하다는 것을 보여줍니다.

    이러한 다양한 설계 선택과 전략이 결합되어 KOALA가 SDXL의 성능을 유지하면서 높은 효율성을 제공할 수 있게 합니다.

     

    KOALA는 여러 시나리오에서 높은 시각적 미학적 품질을 보여주며, 특히 다양한 시드에 대해 안정적인 결과를 보입니다. 모델의 뛰어난 성능은 복잡한 시각적 요소 및 다양한 환경에서도 탁월한 합성 능력을 보여줍니다. 또한, 모델 크기에 따른 성능 차이를 분석하여 KOALA-700M이 KOALA-1B에 비해 빠른 추론 시간을 제공하면서도 뛰어난 성과를 유지한다는 점이 강조됩니다. 

    HPSv2를 사용한 시각적 미학 평가 (왼쪽) 및 T2I-CompBench를 사용한 이미지-텍스트 일치 평가 (오른쪽)

    • 시각적 미학 평가 (HPSv2): KOALA-700M 및 KOALA-1B 모델은 BK의 모델(BK-SDXL-1B/700M)보다 더 높은 HPS 평균 점수를 달성합니다. DALLE-2 모델도 KOALA 모델보다 높은 품질 점수를 달성하지 못합니다.
    • 이미지-텍스트 일치 평가 (T2I-CompBench): KOALA 모델은 이미지와 텍스트 간의 일치에서 BK의 모델보다 우수한 성과를 보입니다. DALLE-2는 일부 측면에서 KOALA에 뒤쳐지지만, 객체 간의 관계에서는 뛰어난 성과를 보입니다. 

    제안된 Self-attention 기반 지식 증류는 시각적 미학과 이미지-텍스트 일치에서 BK의 증류방식보다 우수한 결과를 제공합니다. KOALA 모델은 DALLE-2보다 더 나은 성능을 보이며, 특히 GPU 환경에서 효율적이고 빠른 추론을 제공합니다.

    위 그래프에서 8GB GPU에서는 SDXL이 작동할수 없지만, 다른 모델은 FP16 정밀도에서 실행될 수 있으며, 특히, KOALA-700M은 더 높은 해상도의 이미지를 생성하면서 SDM-v2.0과 유사한 추론 속도를 제공한다고 설명하고 있습니다. 11GB GPU에서는 SDXL이 FP16 정밀도에서 실행될 수 있으며, 24GB GPU에서는 FP16 및 FP32 정밀도에서 각각 9.66초 및 3.3초의 속도로 실행될 수 있다고 명시되어 있습니다. 한편, KOALA-700M은 3.94초 및 1.42초로, SDXL보다 2배 더 빠른 속도를 제공한다고 언급하며, 자원이 제한된 GPU 환경에서 SDM-v2.0 및 SDXL을 대체할 수 있는 최상의 대안임을 강조하고 있습니다.

    "이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."

    DEMO 실행

    KOALA 모델의 텍스트-이미지 생성 DEMO를 실행해 보기 위해서는 가상환경이 활성화된 상태에서 다음과 같은 라이브러리 설치 단계를 거쳐야 합니다. 주요 라이브러리에 대해 간략한 설명은 다음과 같습니다. 

    • PyTorch: 딥러닝 연구 및 개발을 위한 오픈 소스 머신러닝 프레임워크입니다. 동적 계산 그래프, 자동 미분, GPU 가속, 강력한 커뮤니티 지원 등이 있습니다. 파이썬 기반으로 개발되어 사용자 친화적입니다.
    • torchvision: PyTorch에서 제공하는 이미지 및 비디오 처리를 위한 라이브러리입니다. 다양한 이미지 변환 및 데이터셋 기능, 사전 훈련된 모델, 객체 감지 등의 기능을 제공하여 컴퓨터 비전 작업을 간편하게 수행할 수 있습니다.
    • torchaudio: PyTorch의 일부로 제공되는 오디오 처리를 위한 라이브러리입니다. 음성 및 오디오 신호 처리를 위한 다양한 기능을 제공하며, 오디오 데이터를 효과적으로 다룰 수 있도록 도와줍니다.
    • CUDA Toolkit: GPU 가속을 위한 NVIDIA에서 제공하는 툴킷입니다. CUDA 기반의 딥러닝 모델을 가속화하고 최적화하기 위한 라이브러리와 도구를 제공합니다. GPU를 사용하여 병렬 처리를 수행하여 딥러닝 모델의 훈련과 추론 속도를 향상시킵니다. 이 명령어는 PyTorch 기반의 딥러닝 프로젝트를 시작하기 위해 필수적인 라이브러리들을 설치하는 데 사용됩니다.
    • cuDNN: NVIDIA에서 개발한 딥러닝을 위한 CUDA 기반 라이브러리입니다. 딥러닝 모델의 합성곱 신경망(Convolutional Neural Network, CNN)과 같은 연산을 가속화하기 위해 설계되었습니다. GPU에서 딥러닝 작업을 효율적으로 처리할 수 있도록 도와주며, 딥러닝 모델의 훈련 및 추론 속도를 크게 향상시킵니다.

    pytorch 라이브러리의 설치를 위한 명령어는 "conda install pytorch torchvision torchaudio cudatoolkit=11.8 -c pytorch"이며, GPU 드라이버 설치, CUDA, pytorch, cuDNN의 설치방법은 아래 링크를 참고해 주시기 바랍니다. 최종적으로 torch를 import 하고 'torch.cuda.is_available()'을 실행했을 때 "True"가 나오면 GPU 가속 환경구축 완료입니다.

    이밖에도 diffusers, transformers, accelerate, safetensors와 같은 종속성 설치가 필요할 수 있습니다. 

    https://qlsenddl-lab.tistory.com/59

     

    Pytorch(GPU)를 위한 Python 환경 구축 - conda 외 가상환경

    이 페이지에서는 Python도 설치되어 있지 않은 상태에서부터 GPU(cuda)를 사용할 수 있는 pytorch 개발을 위한 환경 구축 방법을 정리한다. 버전 관리를 위해 가상 환경을 만들지만 anaconda가 아닌 기본

    qlsenddl-lab.tistory.com

    conda install pytorch torchvision torchaudio cudatoolkit=11.8 -c pytorch
    CUDA 설치화면
    torch.cuda.is_available() 실행결과 "True"

    아래 화면은 KOALA 모델의 이미지 생성 데모 코드와 실행결과 화면입니다. 

    import torch
    from PIL import Image
    from diffusers import StableDiffusionXLPipeline
    
    # You can replace the checkpoint id with several koala models as below:
    # "etri-vilab/koala-700m"
    # "etri-vilab/koala-1b"
    # "etri-vilab/koala-1b-llava-cap"
    
    pipe = StableDiffusionXLPipeline.from_pretrained("etri-vilab/koala-700m-llava-cap", torch_dtype=torch.float16, use_safetensors=True, variant="fp16")
    pipe = pipe.to('cuda')
    
    
    prompt = "Albert Einstein in a surrealist Cyberpunk 2077 world, hyperrealistic"
    result_image = pipe(prompt, num_inference_steps=25, guidance_scale=7.5).images[0]
    result_image.save("./example.png")
    
    # If you use negative prompt, you could get more stable and accurate generated images.
    
    negative_prompt = '(deformed iris, deformed pupils, deformed nose, deformed mouse), worst  quality, low quality, ugly, duplicate, morbid,  mutilated, extra fingers, mutated hands, poorly drawn hands, poorly  drawn face, mutation, deformed, blurry, dehydrated, bad anatomy, bad  proportions, extra limbs, cloned face, disfigured, gross proportions,  malformed limbs, missing arms, missing legs'
    
    result_negative_image = pipe(prompt, negative_prompt=negative_prompt, num_inference_steps=25, guidance_scale=7.5).images[0]
    result_negative_image.save("./example_negative.png")

    데모 코드의 실행결과 화면

    CPU i9-13900H, 16GB RAM, GPU RTX 4060 8GB 컴퓨터 사양에서 데모코드 실행결과 이미지 1장의 생성에는 약 20~30초가 소요되었으며, 인물의 손가락과 눈동자, 팔의 비율 등은 부자연스럽게 생성되는 경우가 많았습니다. 

    girl, looking at camera, blond, t-shirts, blue jeans, beach, sunrise, 4k

    논문의 결론

    KOALA 모델은 사실적이거나 3D 아트 이미지를 생성함에 있어서 높은 미적 품질을 나타내지만 특정한 한계가 있습니다. 긴 텍스트를 렌더링 하는 데 어려움이 있어 모델이 의도하지 않은 또는 알아보기 어려운 문자를 생성하거나 여러 속성을 포함하는 복잡한 프롬프트를 처리할 때 모델은 의도한 설명을 완벽하게 따르지 못할 수 있으며 특정 속성이 예상대로 적용되지 않는 경우가 있습니다. 또한 인간의 손을 정확하게 묘사하는 것도 해결해야 할 과제입니다. 

     

    이 연구에서는 KOALA라는 효율적인 텍스트에서 이미지로의 합성 모델을 제안했습니다. 이 모델은 자원이 제한된 환경에서 SDM-v2.0과 SDXL 간의 흥미로운 대안을 제공합니다. 이를 위해 SDXL에 존재하는 주요 병목구간을 효과적으로 압축하여 더 간결한 U-Net을 고안했습니다. 이렇게 함으로써 Self-Attention 기반 지식 증류가 생성된 이미지의 품질을 향상시키는 데 있어 가장 중요한 구성 요소 중 하나임을 입증했습니다. 이러한 연구 결과로 KOALA-700M 모델은 SDXL의 모델 크기를 상당히 감소시키면서(69%↓), 지연 시간을 줄이고(60%↓) 양호한 미학적 생성 품질을 보여주었습니다.

     

    오늘은 간결한 U-Net과 지식 증류 기술을 활용해서 SDXL의 성능과 특성을 학습한 KOALA 모델에 대해서 알아보았습니다. 우리나라의 생성형 AI 모델이 세계적인 수준으로 계속 발전해 나가기를 기대하면서 저는 다음 시간에 더 유익한 자료를 가지고 다시 찾아뵙겠습니다. 감사합니다. 

     

     

    2024.01.25 - [AI 논문 분석] - AlphaGeometry: 국제 수학 올림피아드 수준 기하학 정리 증명 AI

     

    AlphaGeometry: 국제 수학 올림피아드 수준 기하학 정리 증명 AI

    안녕하세요. 오늘은 구글 딥마인드에서 개발한 기하학 문제 해결 AI 모델인 AlphaGeometry에 대해서 알아보겠습니다. AlphaGeometry는 합성된 데이터와 기계 학습을 활용하여 기하학적 문제를 해결하고,

    fornewchallenge.tistory.com

    반응형