최근 아이가 GeoGuessr에 빠져 있습니다.
생성형 AI (Generative AI)에게 GeoGuessr를 시키면, 어느 정도나 맞출 수 있을까?
라는 생각이 들어서 시도해 보기로 했습니다.
GeoGuessr는 스트리트 뷰 (Street View) 이미지를 보고 장소를 추측하는 게임입니다.
인간의 경우,
- 전봇대의 모양
- 도로 표지판
- 차선
- 건물
- 간판의 글자
등을 단서로 국가나 지역을 추측합니다.
실제로 GeoGuessr의 이미지를 ChatGPT에 입력하여,
- 어느 정도 장소를 맞출 수 있는지
- 무엇을 근거로 추측하고 있는지
- 어떻게 이미지를 이해하고 있는지
를 조사해 보았습니다.
GeoGuessr의 화면 캡처를 ChatGPT에 입력해 보겠습니다.
언뜻 보기에는 아무런 단서도 없어 보입니다만..
AI의 해답을 바탕으로 핀을 찍어본 결과, 의외로 정답에 가까웠습니다 (국가는 맞았습니다).
더욱 단서가 없어 보입니다.
대략적인 장소를 특정해 주었지만, 첫 번째 문제만큼 구체적인 근거는 제시되지 않았습니다.
이유도 그럴싸하게 생성형 AI (Generative AI)는 이미지를 이해하고 있는 것처럼 보였습니다.
애초에 생성형 AI는 어떤 메커니즘으로 이미지를 다루고 있는지 잘 모르기 때문에, 조금 조사해 보았습니다.
조사해 보니, 현재의 멀티모달 LLM (Multimodal LLM)은 대체로 다음과 같은 구성으로 되어 있는 듯합니다. (시각 언어 모델 (Vision-Language Model)의 메커니즘)
이미지를 이해하고 있는 것은 Vision Encoder라는 별도의 메커니즘이며, LLM이 그 결과를 받아 문장을 생성하고 있는 듯합니다.
Vision Encoder란,
"이미지를 AI가 다루기 쉬운 수치 데이터로 변환하는 메커니즘"
인 듯합니다.
"이미지를 특징 벡터 (Feature Vector)로 변환한다"
"이미지의 의미를 표현하는 특징 표현 (Feature Representation)을 생성한다"
라는 설명이 나옵니다.
PixelBank라는 페이지의 해설 (https://pixelbank.dev/vlm-study-plan/chapter/2)에는,
Vision Encoder는 생(raw) 픽셀 데이터를 이미지의 의미를 표현하는 특징 벡터로 변환하는 역할을 가진다
라는 취지의 내용이 기재되어 있었습니다.
인간이 이미지를 보고
라고 인식하는 것처럼, AI도 이미지 속의 특징을 추출하고 있다는 것으로 이해했습니다.
Vision Encoder에 대해 조사하다 보니,
Vision Transformer (ViT)
라는 기술을 몇 번인가 눈에 띄었습니다.
현재 이미지 인식에서 널리 사용되고 있는 기술이라고 합니다.
ViT는 이미지를 작은 영역으로 분할하여, 각각의 영역을 입력으로 처리하는 메커니즘이라고 합니다.
┌─┬─┬─┐
│A│B│C│
├─┼─┼─┤
...
↑와 같이 이미지를 작은 영역으로 분할하고, 각각의 영역 정보를 사용하여 이미지를 인식하는 메커니즘인 듯합니다.
이미지 전체를 한 번에 보는 것이 아니라, 분할된 영역을 바탕으로 처리하고 있는 것 같습니다.
GeoGuessr와 같은 이미지라면,
와 같은 특징을 포착한 뒤, 최종적으로 장소를 추측하고 있는 것일지도 모릅니다.
이번에,
- LLM은 주로 언어를 다루는 모델이라는 점
- 이미지 이해에는 Vision Encoder라는 메커니즘이 사용된다는 점
- ViT (Vision Transformer)가 현재의 대표적인 기술이라는 점
을 알게 되었습니다.
생성형 AI가 이미지를 이해하기 위한 메커니즘에 대해 아주 조금이지만 알 수 있어서 좋았습니다.