Diffusion Language Models
디퓨전 언어 모델이 반복적인 디노이징을 통해 텍스트를 생성하고 편집하는 방법을 알아보고 Transformer, 애플리케이션, 이점 및 한계를 살펴보세요.
확산 언어 모델은 각 토큰을 엄격하게 왼쪽에서 오른쪽으로 생성하는 대신 반복적인 디노이징을 통해 텍스트를 생성하거나 편집하는 생성 모델입니다. 확산 언어 모델은 일반적으로 마스킹되었거나 대체되었거나 불확실한 토큰이 포함된 손상된 시퀀스로 시작하여 텍스트가 일관성을 갖출 때까지 여러 위치를 반복적으로 개선합니다. 이 접근 방식은 언어 모델링과 확산 모델의 아이디어를 결합하여 기존의 다음 토큰 생성 방식에 대한 대안을 제공합니다.
확산 언어 모델의 작동 방식#
텍스트는 먼저 토큰화를 통해 단어, 서브워드, 문자 또는 기타 이산 단위로 나뉩니다. 학습 중에는 순방향 손상 프로세스가 토큰 시퀀스에서 정보를 점진적으로 제거합니다. 구현 방식에 따라 토큰은 마스크 기호, 샘플링된 대체 토큰 또는 임베딩이라고 하는 노이즈가 포함된 연속 표현으로 대체될 수 있습니다.
모델은 손상된 시퀀스에서 더 정제된 버전을 예측하는 역방향 프로세스를 학습합니다. 추론 시에는 마스킹이 많이 적용되었거나 노이즈가 포함된 블록으로 시작하여 여러 단계의 개선을 수행합니다. 초기 단계에서는 전반적인 의미와 구조를 설정하고, 이후 단계에서는 어휘, 문법, 서식 및 국소적 일관성을 수정합니다.
많은 확산 언어 모델은 시퀀스를 처리하기 위해 Transformer를 사용합니다. Transformer는 어텐션 메커니즘을 통해 각 토큰과 주변 컨텍스트 간의 관계를 파악할 수 있으므로 이 작업에 적합합니다. PyTorch Transformer 문서는 이 기본 아키텍처에 대한 유용한 개요를 제공합니다.
고정된 빈칸 채우기 시스템과 달리 확산 생성은 예측을 반복적으로 재검토할 수 있습니다. 한 단계에서 선택된 토큰이 반드시 영구적으로 유지되는 것은 아니며, 이후 반복 단계에서 시퀀스의 나머지 부분이 더 나은 컨텍스트를 제공하면 해당 토큰이 수정될 수 있습니다. Google DeepMind의 텍스트 확산 개요는 이러한 블록 수준의 반복적 생성 패턴을 보여줍니다.
확산 모델과 관련 개념 비교#
서로 밀접하게 관련된 여러 용어는 서로 다른 목표 또는 아키텍처를 설명합니다.
- **자기회귀 대규모 언어 모델**은 토큰을 순차적으로 생성하며, 각 예측은 이전 출력에 조건화됩니다. 이 인과적 프로세스는 TensorFlow의 자기회귀 텍스트 생성 튜토리얼에서 확인할 수 있습니다. 확산 모델은 대신 각 개선 단계에서 여러 위치를 업데이트할 수 있습니다.
- 마스크드 언어 모델은 양쪽 컨텍스트를 사용하여 의도적으로 숨겨진 토큰을 예측합니다. Keras 마스크드 언어 모델링 예제는 이 학습 목표를 보여줍니다. 확산 언어 모델은 여러 손상 수준과 디노이징 반복 단계를 포함하는 완전한 생성 프로세스로 이 아이디어를 확장합니다.
- **Stable Diffusion**은 대규모 언어 모델이 아닌 이미지 생성 시스템입니다. Stability AI의 Stable Diffusion 이미지 서비스는 시각적 콘텐츠를 생성하고 편집하는 반면, 확산 언어 모델은 텍스트 토큰 또는 그 표현을 처리합니다.
- **Diffusion Transformers**는 일반적으로 이미지 또는 동영상 생성을 위해 확산 시스템 내부에서 Transformer를 사용하는 방식을 의미합니다. 확산 언어 모델은 신경망 아키텍처만으로 정의되는 것이 아니라 텍스트 생성 목표에 따라 정의됩니다.
실제 적용 사례#
구체적인 애플리케이션 중 하나는 문서 및 코드 편집입니다. 확산 언어 모델은 커서 뒤에 텍스트를 덧붙이는 대신 전체 초안이나 선택한 구간을 개선할 수 있습니다. 예를 들어 블록 전체에서 변수 이름, import 및 주석을 수정하면서 누락된 함수를 재구성할 수 있습니다. 앞뒤 컨텍스트를 모두 사용할 수 있는 기능은 한 위치의 수정이 다른 위치에 영향을 미칠 때 유용합니다.
두 번째 애플리케이션은 멀티모달 분석입니다. 비전 시스템은 이미지에서 사실 정보를 추출할 수 있으며, 이후 확산 언어 모델은 해당 관찰 결과를 기반으로 보고서, 캡션 또는 응답을 반복적으로 구성할 수 있습니다. 예를 들어 객체 검출을 통해 교통 장면에서 차량과 사람을 식별한 후 언어 컴포넌트가 사고 요약을 작성할 수 있습니다.
다음 워크플로는 Ultralytics YOLO26을 사용하여 후속 언어 생성을 위한 구조화된 시각적 컨텍스트를 생성합니다.
from ultralytics import YOLO
# Run object detection on a sample image
model = YOLO("yolo26n.pt")
results = model("https://ultralytics.com/images/bus.jpg")
result = results[0]
# Convert detections into compact language-model context
detections = result.summary()
object_names = sorted({item["name"] for item in detections})
visual_context = ", ".join(object_names)
print(visual_context)YOLO 예측 워크플로는 구조화된 출력을 반환하며, Results.summary() 메서드는 검출 결과를 언어 파이프라인에 전달하기 쉬운 딕셔너리로 변환합니다. 이러한 분리를 통해 비전 모델은 근거가 있는 관찰 결과를 제공하고 언어 모델은 반복적인 구성을 처리할 수 있습니다.
이점, 제한 사항 및 실용적인 지침#
확산 언어 모델은 여러 토큰을 병렬로 제안하고, 이전 선택을 수정하며, 인필링 또는 제약된 편집을 자연스럽게 지원할 수 있습니다. 그러나 병렬 예측이 종단 간 지연 시간 단축을 보장하는 것은 아닙니다. 생성에는 여전히 여러 디노이징 단계가 필요하며, 속도는 시퀀스 길이, 모델 크기, 하드웨어 및 샘플링 전략에 따라 달라집니다.
또한 텍스트는 이산적이므로 연속적인 이미지 픽셀에 노이즈를 추가하는 것보다 점진적인 손상이 자연스럽지 않습니다. 잘못 구성된 시스템은 반복을 생성하거나, 필요한 세부 정보를 누락하거나, 올바른 텍스트를 불필요하게 변경하거나, 출력 길이를 결정하는 데 어려움을 겪을 수 있습니다.
팀은 대표적인 프롬프트를 사용하여 작업 정확도, 사실성, 편집 안정성, 지연 시간 및 리소스 사용량을 평가해야 합니다. 생성형 AI 평가에 대한 Google Cloud 지침은 언어 품질이 컨텍스트에 따라 달라지므로 자동화된 지표와 사람의 평가를 결합할 것을 권장합니다. 영향이 큰 배포에서는 NIST AI 위험 관리 프레임워크와 같은 구조화된 프로세스도 따라야 합니다.
시각 애플리케이션의 경우 Ultralytics Platform은 데이터셋 어노테이션, 모델 학습, 배포 및 모니터링을 지원하여 팀이 후속 확산 기반 언어 워크플로를 뒷받침할 수 있는 인식 컴포넌트를 구축하도록 돕습니다.






