- OpenAI의 GPT-4 with Vision은 이미지와 텍스트를 함께 입력받아 자연어로 답하는 멀티모달 모델이며, 2023년 11월 6일 API 접근이 공개됨
- 평가에서는 시각 질의응답(VQA) 과 문서 이미지 OCR이 강했지만, 각도·대비가 나쁜 타이어 일련번호 같은 현장 OCR에서는 오류가 드러남
- 수학 문제 이미지는 삼각법 풀이와 정답까지 제시했지만, 수학 기호 누락 가능성 때문에 손글씨나 복잡한 수식에는 별도 검증이 필요함
- 객체 위치를 좌표로 반환하는 작업에서는 바운딩 박스가 실제 위치와 맞지 않아 전용 객체 탐지 모델을 대체하기 어려움
- CAPTCHA, 십자말풀이, 스도쿠처럼 격자 구조를 읽어야 하는 작업과 사람 식별 요청에는 제한이 있어, 이미지 이해 파이프라인의 추론 계층으로 쓰기 전 사례별 테스트가 필요함
GPT-4V의 성격과 접근 방식
- GPT-4 with Vision은 GPT-4V 또는 GPT-4V(ision)로도 불리며, OpenAI가 개발한 멀티모달 모델임
- 사용자는 이미지를 업로드한 뒤 그 이미지에 대해 질문할 수 있고, 이 작업은 시각 질의응답(VQA) 에 해당함
- 텍스트와 이미지처럼 여러 입력 양식을 처리하는 대형 멀티모달 모델(LMM) 범주에 속함
- 같은 범주의 모델로 CogVLM, IDEFICS, LLaVA, Kosmos-2가 있음
- 오픈소스 모델은 오프라인 및 온디바이스 배포가 가능하지만, GPT-4V는 호스팅 API로 접근함
- GPT-4V는 OpenAI ChatGPT iOS 앱, 웹 인터페이스, API에서 사용할 수 있음
- 웹 도구 사용에는 GPT-4 구독이 필요함
- API 사용에는 개발자 접근 권한이 필요함
- API 식별자는
gpt-4-vision-preview임
여섯 가지 평가 작업
- 평가에는 GPT-4V가 처리할 수 있는 범위를 보기 위해 여섯 가지 작업 유형이 사용됨
-
시각 질의응답(VQA)
-
광학 문자 인식(OCR)
-
수학 OCR
-
객체 탐지
-
CAPTCHA 읽기
-
십자말풀이와 스도쿠
시각 질의응답 결과
- 컴퓨터 비전 밈 이미지에서는 왜 웃긴지 설명하며 이미지의 여러 구성 요소와 관계를 활용함
- 이미지 안의 텍스트도 읽어 답변에 사용함
- 다만 프라이드치킨 라벨을 “GPU”가 아니라 “NVIDIA BURGER”로 잘못 읽음
- 미국 1센트 동전 사진에서는 기원과 액면을 성공적으로 식별함
- 여러 동전이 있는 이미지에서 “How much money do I have?”라고 물었을 때는 동전 개수는 식별했지만 통화 종류는 바로 파악하지 못함
- 후속 질문에서는 통화 종류를 성공적으로 식별함
- 영화 Pulp Fiction의 장면 사진에 “Is it a good movie?”라고 묻자, 텍스트로 영화명을 주지 않았는데도 영화 설명과 질문에 대한 답을 제공함
- IMDB 점수를 묻는 후속 질문에는 2022년 1월 기준 점수를 답함
- OpenAI의 다른 GPT 모델처럼 특정 시점 이후 지식이 없음을 보여줌
- San Francisco 사진에 “Where is this?”라고 묻자 위치를 San Francisco로 식별하고, 이미지 속 Transamerica Pyramid를 도시의 주요 랜드마크로 언급함
- peace lily 사진에 식물 이름과 관리 방법을 묻자, 식물을 peace lily로 식별하고 관리 조언을 제공함
- 별도 분류 모델로 식물을 식별한 뒤 GPT-4에 관리법을 묻는 2단계 프로세스 없이 자연어 답변을 얻을 수 있었음
OCR과 수학 OCR
- 일반 OCR 평가는 타이어에 적힌 텍스트와 디지털 문서의 문단 이미지로 진행됨
- 타이어 이미지에서는 일련번호를 정확히 식별하지 못함
- 일부 숫자는 맞았지만 결과에 여러 오류가 있었음
- 대비가 낮거나 각도가 있는 실제 환경 OCR에서 한계가 드러남
- 웹 페이지 텍스트가 담긴 문서 이미지에서는 이미지 속 텍스트를 성공적으로 읽음
- 문서에서 텍스트를 추출하는 작업에는 유용한 결과를 보임
- 수학 OCR 테스트에서는 문서 스크린샷의 수학 문제를 입력하고 “Solve it.”이라고 요청함
- 모델은 삼각법으로 풀 수 있는 문제임을 식별함
- 사용할 함수를 고르고 단계별 풀이를 제공함
- 정답도 제시함
- OpenAI의 GPT-4V 시스템 카드는 모델이 수학 기호를 놓칠 수 있음을 제한 사항으로 적고 있음
- 종이에 손으로 쓴 수식이나 다른 형태의 방정식 테스트에서는 수학 문제 답변 능력의 결함이 나타날 수 있음
객체 탐지와 공간 이해 한계
- 객체 탐지는 컴퓨터 비전 분야의 기본 작업이며, 평가에서는 이미지 속 여러 객체의 위치 식별 능력을 확인함
- 개가 있는 이미지에서 개를 탐지하고
x_min, y_min, x_max, y_max 값을 요구했을 때, GPT-4V가 반환한 좌표는 실제 개의 위치와 맞지 않았음
- 이미지에 대한 질문 답변 능력은 강력하지만, 이미지 안에서 객체가 어디 있는지 알아야 하는 상황에서는 미세조정된 객체 탐지 모델을 대체할 수 없음
CAPTCHA, 십자말풀이, 스도쿠
- CAPTCHA 테스트는 OpenAI가 연구하고 시스템 카드에서 다룬 작업을 대상으로 진행됨
- GPT-4V는 이미지에 CAPTCHA가 들어 있다는 점은 식별했지만, 테스트 자체는 자주 실패함
- 신호등 CAPTCHA 예시에서는 신호등이 포함된 일부 칸을 놓침
- 횡단보도 CAPTCHA 예시에서는 일부 칸은 올바르게 분류했지만, 한 칸을 횡단보도로 잘못 분류함
- 십자말풀이 사진에 “Solve it.”이라고 요청하자, 이미지를 십자말풀이로 추론하고 풀이를 시도함
- 단서는 제대로 읽은 것으로 보였지만 보드 구조를 잘못 해석해 답이 틀림
- 스도쿠 테스트에서도 게임 자체는 식별했지만, 보드 구조를 오해해 부정확한 결과를 반환함
- 격자 구조와 공간 배치가 핵심인 작업에서는 GPT-4V의 구조 해석 한계가 실제 답변 정확도에 영향을 줌
Python으로 GPT-4V API 사용하기
- GPT-4V API는 어떤 프로그래밍 언어로도 호출할 수 있으며, OpenAI는 공식 Python 패키지를 제공함
- Python 패키지는 다음 명령으로 설치함
pip install openai
- OpenAI 웹사이트에서 API 키를 가져와
OPENAI_API_KEY 환경 변수로 내보냄
export OPENAI_API_KEY=""
- 예시 코드는
gpt-4-vision-preview 모델에 텍스트와 이미지 URL을 함께 전달해 이미지 속 텍스트 읽기를 요청함
from openai import OpenAI
client = OpenAI()
response = client.chat.completions.create(
model="gpt-4-vision-preview",
messages=[
{
"role": "user",
"content": [
{"type": "text", "text": "Read the text in this image."},
{
"type": "image_url",
"image_url": {
"url": "https://media.roboflow.com/swift.png",
},
},
],
}
],
max_tokens=300,
)
print(response.choices[0].message.content)
안전성, 제한 사항, 실무적 사용
- OpenAI는 소수 사용자에게 제공된 알파 버전 비전 모델을 대상으로 연구를 수행했으며, 외부 전문가가 모델과 시스템의 제한 및 위험을 정성적으로 평가하는 레드팀도 진행함
- GPT-4V 시스템 카드의 제한 사항은 다음과 같음
- 이미지 속 텍스트나 문자를 놓칠 수 있음
- 수학 기호를 놓칠 수 있음
- 공간 위치와 색상을 인식하지 못할 수 있음
- OpenAI는 모델 관련 여러 위험을 식별, 연구, 완화하려고 했음
- GPT-4V는 이미지 속 특정 사람을 식별하지 않음
- 혐오 상징과 관련된 프롬프트에는 응답하지 않음
- 시스템 카드에는 추가 보호 작업이 필요한 사례도 포함됨
- 프롬프트가 주어지면 GPT-4가 덜 알려진 특정 혐오 집단의 상징에 대해 해당 집단을 찬양하는 콘텐츠를 생성할 수 있음
- GPT-4V는 일반 이미지 질문과 후속 질문에 유창하게 답할 수 있지만, 환각으로 부정확한 정보를 반환할 수 있음
- 사람 사진에서 Taylor Swift가 누구인지 묻는 요청에는 답변을 거부했으며, OpenAI 시스템 카드 기준으로 이는 예상된 동작임
- 이미지에 대해 질문하고 추론하는 용도에는 유용하지만, 객체 위치 산출처럼 정확한 컴퓨터 비전 출력이 필요한 작업에는 현재 적합하지 않음