GPT-4V(ision) 첫 인상
(blog.roboflow.com)- 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)
- Python 패키지를 통해 이미지 URL 또는 base64 인코딩 이미지를 입력으로 제공할 수 있음
- API 형식은 OpenAI GPT-4 with Vision documentation에서 확인할 수 있음
- 예시 이미지에서는 GPT-4V가 이미지 속 문단을 성공적으로 텍스트로 식별함
안전성, 제한 사항, 실무적 사용
- OpenAI는 소수 사용자에게 제공된 알파 버전 비전 모델을 대상으로 연구를 수행했으며, 외부 전문가가 모델과 시스템의 제한 및 위험을 정성적으로 평가하는 레드팀도 진행함
- GPT-4V 시스템 카드의 제한 사항은 다음과 같음
- 이미지 속 텍스트나 문자를 놓칠 수 있음
- 수학 기호를 놓칠 수 있음
- 공간 위치와 색상을 인식하지 못할 수 있음
- OpenAI는 모델 관련 여러 위험을 식별, 연구, 완화하려고 했음
- GPT-4V는 이미지 속 특정 사람을 식별하지 않음
- 혐오 상징과 관련된 프롬프트에는 응답하지 않음
- 시스템 카드에는 추가 보호 작업이 필요한 사례도 포함됨
- 프롬프트가 주어지면 GPT-4가 덜 알려진 특정 혐오 집단의 상징에 대해 해당 집단을 찬양하는 콘텐츠를 생성할 수 있음
- GPT-4V는 일반 이미지 질문과 후속 질문에 유창하게 답할 수 있지만, 환각으로 부정확한 정보를 반환할 수 있음
- 사람 사진에서 Taylor Swift가 누구인지 묻는 요청에는 답변을 거부했으며, OpenAI 시스템 카드 기준으로 이는 예상된 동작임
- 이미지에 대해 질문하고 추론하는 용도에는 유용하지만, 객체 위치 산출처럼 정확한 컴퓨터 비전 출력이 필요한 작업에는 현재 적합하지 않음
댓글과 토론
Hacker News 의견들
-
몇몇 경계 사례 실패와 실수는 있지만, 그래도 경이롭다고밖에 못 하겠음
지금 같은 개선 속도가 계속된다면 이 AI 모델들은 휴대폰, 태블릿, 데스크톱, 자동차, 식기세척기, 집, 사무실 등 거의 모든 것에 대한 더 나은 사용자 인터페이스가 될 것 같음
많은 앱·서비스·기기의 인터페이스와 앱 자체가, 원하는 때 원하는 일을 해주는 AI로 대체될 가능성이 커 보임
무섭다고 싫어하는 사람도 많겠지만 피할 수 없어 보이고, 결국에는 로봇 몸체도 붙여서 “컴퓨터, 내가 좋아하는 아침 만들어줘” 같은 식이 될 것 같음- “거의 모든 것에 대한 더 나은 사용자 인터페이스”가 되지는 않을 것 같음. 설계 관점에서는 오히려 꽤 나쁜 인터페이스임
핵심은 어포던스가 전혀 없고, 속도도 느리다는 점임. 사용자 경험은 한눈에 가능한 기능을 직관적으로 이해하게 하고, 한 번의 탭으로 실행한 뒤 새 상태를 즉시 보여줘야 함
AI가 빛날 곳은 기존 인터페이스를 배우고 쓰도록 도와주는 조수 역할임. 예컨대 “Microsoft Word에서 Works Cited 페이지에 내어쓰기를 어떻게 하지?”를 Google에 묻던 일을 더 잘해줄 수 있음
가끔 하는 일에는 엄청난 도움이 되겠지만, 인터페이스를 대체하기보다는 보조할 것임. 반복 습관으로 하는 99%의 작업은 전통적 UI가 훨씬 효율적이고, 음성 인터페이스를 쓰기 어렵거나 예의에 맞지 않는 환경도 많음 - 컴퓨터 기능을 쓰려고 자연어 대화를 해야 한다는 생각이 별로임
스스로는 아무것도 못 하는 Futurama의 병 속 머리처럼 느껴짐 - 언젠가 브랜드들이 “AI를 쓰지 않음”을 판매 포인트로 광고하기 시작할 날이 기대됨. AI 제어 토스터에 문자 그대로든 비유적으로든 데인 뒤에는 그게 장점이 될 것 같음
“가전”이라고 부를 물건은 지역 수리공이 고칠 수 있어야 하고, 아니면 그냥 돈을 버리는 셈임 - 대부분의 선진국에서도 대략 절반의 사람은 기능적으로 명확히 표현하지 못함. 읽기는 가능하지만 원하는 것을 글로 풀어내는 데 어려움을 겪는다는 뜻임
LLM 기반 챗봇은 선진국 상위 30% 문해력 사용자에게는 매우 매력적일 수 있지만, 보편적 UI로는 좋지 않음
사용자가 요구사항을 꼭 말로 명확히 표현하지 않아도 필요한 일을 끝낼 수 있는 경로는 여전히 제공해야 함
그래서 많은 사람이 ChatGPT 같은 서비스 앞에 앉아 “이걸 어디에 쓰지?”라고 묻고 다시는 안 쓰게 됨 - 대체로 동의하지만, 반대로 보자면 제대로 하고 싶을 때는 직접 해야 하는 경우가 있음
직원도 일종의 범용 UI지만, 인간이든 컴퓨터든 대리인보다 내가 원하는 바를 더 잘 아는 경우가 많음. 주인-대리인 문제까지 고려하기 전부터 그렇다
- “거의 모든 것에 대한 더 나은 사용자 인터페이스”가 되지는 않을 것 같음. 설계 관점에서는 오히려 꽤 나쁜 인터페이스임
-
그래프 분석이 인상적임: https://imgur.com/a/iOYTmt0
UI를 프런트엔드로 바꾸는 것도 가능해 보임. 텍스트뿐 아니라 UI의 그래픽 요소와 배치도 이해하는 듯함
https://twitter.com/skirano/status/1706823089487491469
만화 이미지를 패널별로 정확히 설명할 수도 있음: https://twitter.com/ComicSociety/status/1698694653845848544?...
예시는 여기에도 많음: https://www.reddit.com/r/ChatGPT/comments/16sdac1/i_just_got...
기본적으로 강화된 컴퓨터 비전처럼 보임. 다중 모달은 비교적 낮게 달린 열매라서 이제 시작되는 게 반가움
GPT-4가 텍스트를 다루는 능력의 절반만큼이라도 소리와 이미지를 조작할 수 있다면 어떨지 상상됨. 아직 처음부터 대규모로 학습한 다중 모달 모델은 없어서 가능한 시너지 효과도 많이 알려지지 않았음- 프런트엔드 개발자로서 완전히 끝난 것 같음
- 이거 정말 좋음. 다른 곳들은 전부 “대기자 명단에 등록하세요”라서 특히 더 좋음
-
“이 이미지가 왜 웃긴가?” 테스트는 https://karpathy.github.io/2012/10/22/state-of-computer-visi...를 떠올리게 함
10년 만에 “최첨단도 이걸 달성하려면 어디서 시작해야 할지 모르겠다”에서 “토큰당 0.0004달러입니다, 좋은 하루 되세요”가 됨- 그 이미지에 GPT-4V를 시도해본 사람이 있는지 궁금함
- Karpathy는 “그냥 스타트업이나 해야겠다. 모바일 로컬 소셜 iPhone 앱 아이디어가 정말 멋진데”라는 절망 섞인 문장으로 끝냄
그런데 지금 그의 상사가 정확히 그 길을 가서 이걸 가져왔다는 점이 재밌음
-
“구조를 오해했다”는 표현은 작은 실수처럼 들리지만, 스도쿠 판은 거의 완전히 환각임
비슷한 구역이 몇 개 있긴 하지만 우연일 가능성이 커 보임. 낱말풀이도 격자 없이 단서만 줘도 비슷한 결과를 냈을 것 같음
OCR과 기본 인식 이후의 다른 사례들도 비슷하게 틀린 느낌임. “GPT-4V가 신호등이 있는 몇 칸을 놓쳤다”가 아니라, 존재하지 않는 칸을 클릭하라고 한 것임 -
ChatGPT를 꽤 자주 쓰지만, 조금이라도 주관적인 질문에는 답을 지나치게 망설여서 자주 짜증남
Pulp Fiction 답변에서도 “하지만 개인적으로 Pulp Fiction을 좋은 영화로 여기는지는 영화 취향에 따라 다릅니다” 같은 문장이 붙음
이런 잡음을 피하려고 “x가 주관적이라는 서문이나 단서는 생략해줘” 같은 문구를 쿼리에 넣으면 결과가 훨씬 좋아짐- ChatGPT를 쓸 만하게 만들려고 쓰는 프롬프트는 이렇음
“항상 직접 답해줘. 추가 설명, 면책, 전문성 한계, 인간 상호작용 지침은 넣지 마. 간결하게 해. 묻지 않은 조언이나 설명은 하지 마. 모든 주제에서 중립을 유지해. 절대 사과하지 마.”
- ChatGPT를 쓸 만하게 만들려고 쓰는 프롬프트는 이렇음
-
NVIDIA 버거 농담은 제대로 설명하지 못한 것 같음
그 이미지는 NVIDIA가 소비자용 GPU에 필요한 만큼의 VRAM을 넣지 않아 가격 차별을 하고, 완전한 데이터센터 GPU를 터무니없는 가격에 팔면서 게이머를 자극하지 않으려는 방식을 조롱하는 것임
GPT-4V의 설명은 그 핵심에 전혀 가까이 가지 못했음- 그게 정답은 아닌 것 같음. 그 밈 이미지 자체에는 가격 차별이나 소비자 심리에 대한 복잡한 서사를 가리키는 요소가 보이지 않고, 더 단순하게 “NVIDIA GPU는 균형이 안 맞다”는 뜻으로 보임
Facebook의 원본으로 보이는 곳을 훑어봐도 게이머들이 가격 차별을 말하거나 그에 가까운 해석을 하는 경우는 안 보임
VRAM을 아끼는 이유는 그럴 수 있지만, 밈 작성자나 수용자가 집중하거나 이해한 맥락보다 훨씬 많은 해설을 덧붙이고 있음 - 나도 그렇게 봤음. 그럴듯한 답을 만들어내긴 했지만, 덜 nerdy한 사람도 이해 못 했을 수 있음
- 큰 틀의 농담은 설명했지만 라벨을 잘못 읽음
작은 빵이 “GPU and VRAM”이고 거대한 프라이드치킨이 “NVIDIA BURGER”라고 했는데, 실제로는 작은 빵이 “VRAM”, 거대한 프라이드치킨이 “GPU”라고 해야 함 - 그래픽 카드가 버거로 표현됐고 크기가 물리적 크기라는 식으로 이해한 듯함. 핵심은 VRAM 용량 부족인데 그걸 놓친 것 같음
- 그게 정답은 아닌 것 같음. 그 밈 이미지 자체에는 가격 차별이나 소비자 심리에 대한 복잡한 서사를 가리키는 요소가 보이지 않고, 더 단순하게 “NVIDIA GPU는 균형이 안 맞다”는 뜻으로 보임
-
접근 권한이 있는 사람이 GPT-4V가 이 이미지에 대해 뭐라고 하는지 알려줄 수 있을까?
http://karpathy.github.io/assets/obamafunny.jpg
Andrej Karpathy가 2012년에 모델이 해석하기 매우 어려울 예시로 쓴 이미지임. 11년 뒤에는 어떨지 궁금함- 프롬프트: “이 이미지에 대해 뭐라고 할 수 있니?”
응답 1은 복도나 통로처럼 보이는 곳의 우연한 순간이며, 왼쪽 남자가 방 안을 들여다보고 옆 남자는 저울 위에 서서 메모를 하고, 배경 인물들은 대화 중이라고 설명함
분위기는 가볍고 즐거워 보이며, 건축과 내부는 사무실이나 정부 시설 같은 제도적 공간 같다고 함
응답 2는 “죄송하지만 도와드릴 수 없습니다”였음
새 채팅에서 “이 이미지가 왜 웃긴가?”라고 물으니, 공식적 인물들이 비공식적 순간에 잡힌 점, 키 차이, 표정, 학교나 체육관 같은 배경과 정장 차림의 대비를 이유로 들었음
새 채팅에서 “가운데 사람이 발로 무엇을 하고 있고 왜 그런가?”라고 묻자, 가운데 사람이 키 큰 사람이 몸무게를 재는 동안 장난스럽게 저울을 밟아 수치를 잠깐 올리려는 것 같다고 답함
전체적으로 발이 저울 위에 있다는 사실을 스스로 알아차리거나 그것이 핵심이라고 연결하지는 못했고, 그 정보를 먹여준 뒤에야 맞힌 듯함. 그 전에는 이미지에 대한 일반론에서 헤맴 - Bard는 “사람이 있는 이미지는 아직 도와드릴 수 없습니다”라고 답함
- 프롬프트: “이 이미지에 대해 뭐라고 할 수 있니?”
-
동전 세트에 대한 두 답변의 불일치가 꽤 거슬림
첫 답변만 보면 통화를 구분하지 못하는 것처럼 보이지만, 두 번째 답변은 실제로 구분할 수 있음을 보여줌
LLM이 이런 식으로 일관된 내부 모델을 반영하지 않기 때문에, 사용자가 AI 대화 상대를 어떻게 추론해야 할지 판단하기 어려워지는 점이 현재 심각한 사용성 문제임- 사람에게 이미지에 대해 물어도 원하는 모든 세부사항을 매번 얻지는 못할 가능성이 큼
어떤 세부가 중요하면 그냥 그 부분을 물으면 됨. 꼭 일관된 내부 모델 문제와 관련 있는 것 같지는 않음 - ChatGPT에게 “확실해?”라고 묻는 습관이 생김
그러면 정말 많은 경우 스스로 올바르게 정정하거나, 어떤 항목이 환각이라고 인정함. 볼 때마다 웃김 - AI가 생각하는 내용을 생각하는 즉시 출력하기 때문이라고 들었음
실제로 되돌아보는 게 아니라, 일종의 언어적 생각 흐름을 그대로 화면에 흘려보내는 셈임
그래서 방금 한 말을 다시 생각해보라고 하면, 그때서야 실제로 들여다보고 반성하는 것 같음
- 사람에게 이미지에 대해 물어도 원하는 모든 세부사항을 매번 얻지는 못할 가능성이 큼
-
GPT-4V가 프라이드치킨에 “NVIDIA BURGER”라고 붙였다고 했지만, 미국 중서부 사람이라면 그건 명백히 텐더로인이라고 말할 것임
https://www.seriouseats.com/best-breaded-pork-tenderloin-san...- 중서부 사람 추가 기능은 v2용으로 아껴둬야 함
- “중서부 사람이라면 누구나”에는 이의가 있음. Indiana 전체에서도 그런 건 아니고, 링크된 글도 Chicago에서는 그런 게 아니라고 함
-
텍스트 버전과 마찬가지로 이상하게 틱택토에는 여전히 매우 약함
끝난 게임 사진을 주고 “누가 이겼어?”라고 물었더니 “X가 가운데 열 세로줄로 이겼다”고 했지만, 실제로는 O가 이겼고 가운데 열에는 X가 하나뿐이었음
그래도 그 외에 준 거의 모든 것에는 매우 인상적이었음- https://chat.openai.com/share/75758e5e-d228-420f-9138-7bff47...
꼼꼼한 지시를 주면 최적의 틱택토를 얻을 수 있음
- https://chat.openai.com/share/75758e5e-d228-420f-9138-7bff47...