0. Introduction
Ollama 에서 공식적으로 Llama 3.2 Vision 모델에 대한 지원을 발표했다. 공식 지원에 맞춰서 1B, 9B 정도의 파라미터로 나눠 제공한다. 이번 포스팅에서는 해당 모델의 성능을 검토하고, 실제 모델을 활용할 수 있는 예시 사례를 검토해보도록 하겠다.
단, 현재까지 영어에 특화되어 지원되고 있으며 한국어 공식 지원은 어렵다. 영어로 받은 답변을 json 형태로 받아서, 한글로 번역하여 활용할 수 있을 것으로 보인다.
[조건 설정]
- Ollama
- OpenWebUi 활용
- Llama3.2-vision 1B 모델 활용
- 가급적 영어 콘텐츠/텍스트 위주로 진행
1. 간단한 성능 검토
1) 교과서 표지 : '교과서 표지' 중 가장 귀엽다고 생각하는 미래엔 교과서를 활용해서 진행하고자 한다.
2) 검토 항목 :
(1) 영어 텍스트 추출 여부
(2) 일러스트 설명 여부
(3) 색감/구성 설명 여부
(4) 종합적으로 해당 이미지 목적 구분 여부
3) Prompt :
"Review the image.
(1) Read the English text
(2) Illustration description
(3) Color/Composition Explained
(4) Its Image's Objective and Overall Evaluation
"""
4) 결과 / 답변 : 35초 소요
5) 번역 및 내용
이미지 리뷰
(1) 영어 텍스트 읽기:
표지의 영어 텍스트는 이미지 상단 중앙에 큰 글자로 된 "영어 1"입니다.
>> Middle School 은 못 찾아낼까?
(2) 그림 설명:
이 그림에는 고개를 들고 위쪽을 바라보는 바다표범이 그려져 있습니다. 바다표범의 몸은 별과 구름이 있는 밤하늘로 묘사되어 있습니다. 작은 소녀가 바다표범의 등에 앉아 책을 들고 책을 읽고 있습니다. 그림의 배경은 하늘색입니다.
>> 화질이 상당히 안 좋은 이미지 크기였음에도 불구하고, 육안으로 보아도 어려운 묘사를 해내는 것을 볼 수 있다.
(3) 색상/성분 설명:
일러스트레이션에 사용된 주요 색상은 파란색, 흰색, 회색 음영입니다. 이미지의 구성은 간단하며 Seal이 주요 초점입니다. Seal 주위에 Negative 공간을 사용하면 깊이감을 느낄 수 있고 디자인에 시각적 흥미를 더할 수 있습니다.
>> 개인적으로 굉장히 놀라운 부분. 디자인 적으로 '물개'가 좀 더 돋보이면 디자이너의 의도가 더 잘보이지 않을까 했는데...
>> 물개가 밤하늘을 배경으로 하고 있는 것을 알고 있는건지... 여기에 심도를 넣는 생각을 하다니. 상당히 뛰어난 인사이트라고 생각한다.
(4) 이미지의 객관적이고 전반적인 평가:
이미지의 목적은 중학생을 위한 영어 교과서를 홍보하는 것으로 보입니다. 일러스트레이션은 호기심과 호기심을 효과적으로 전달하여 젊은 독자들에게 어필할 수 있을 것 같습니다. 물개를 주인공으로 사용하여 디자인에 변덕스럽고 장난기가 더합니다. 전반적으로 이미지는 시각적으로 매력적이며 메시지를 효과적으로 전달합니다.
>> 대단함. 중학생을 위한 영어 교과서임을 깨달았다는 것은 결국 Middle School / English 1 만으로 문맥을 이해한 것으로 보임.
총평 : 트레이닝 받은 이미지의 종류가 어떨지는 모르겠지만, 자주 보지 못한 종류의 이미지일텐데도 불구하고, 텍스트를 잘 잡아내고. 거기에다가 자신만의 인사이트 그리고 이미지의 디자인 목적까지 인간보다 더 낫게 정리해서 말해주는 것을 볼 수 있다.
2. 이미지 내 유사한 일러스트 구분 여부
1) 4분할된 이미지
내부에서 개발된 교재 중 일부를 컷으로 갖고 왔다. 이미지를 보면 알 수 있듯이 '머리숱이 이미 풍성한 아이'가 4개의 감정을 좌측 '텍스트'에 맞춰서 보여주고 있다.
과연 모델이 해당 이미지를 '구분'하고 과제를 해결할 수 있을지 단계별로 검토해보자.
2) 검토 항목 :
(1) 일러스트와 텍스트 구분 여부
(2) 일러스트 구분하여 설명 여부
(3) 텍스트와 연결성 설명 여부
(4) 일러스트 우측 빈칸에 정답 확인 여부
3) Prompt :
"Check this Image and answer me following question.
(1) What are the components of the image?
(2) What are the differences between the four illustrations?
(3) What is the relationship between the texts on the left and the illustrations on the right?
(4) What is the correct answer to each square on the right?
"""
4) 결과 / 답변 : 55초 소요
5) 번역 및 내용
답변:
(1) 이미지의 구성 요소:
이미지는 "a", "b", "c", "d"라는 네 가지 옵션이 있는 객관식 질문으로 구성됩니다. 각 옵션은 다른 그림에 해당합니다.
(2) 일러스트레이션 간의 차이점:
각 그림은 다른 상태의 어린이를 묘사합니다:
* 옵션 "a"는 배가 부른 아이를 나타냅니다.
* 옵션 "b"는 배고픈 아이를 나타냅니다.
* 옵션 "c"는 졸린 아이를 나타냅니다.
* 옵션 "d"는 행복한 아이를 나타냅니다.
(3) 텍스트와 일러스트레이션의 관계:
왼쪽의 텍스트는 여러 주(배고픈, 배고픈, 졸린, 행복한)를 설명하고, 오른쪽의 그림은 해당 주에 있는 어린이를 묘사합니다.
(4) 정답:
설명에 따르면 정답은 다음과 같습니다:
* 옵션 "a"는 배부른 어린이에 해당합니다.
* 옵션 "b"는 배고픈 어린이에 해당합니다.
* 옵션 "c"는 졸린 어린이에 해당합니다.
* 옵션 "d"는 행복한 아이에 해당합니다.
>> 자, 여기까지는 'Text Extraction' 역할을 훌륭히 해낸 것을 볼 수 있다.
>> 하지만, 아래 좌측 텍스트와 우측 이미지를 어떻게 연결하는지 확인하면...
따라서 오른쪽의 각 사각형에 대한 정답은 다음과 같습니다:
* 정사각형 1: "a"
* 정사각형 2: "b"
* 정사각형 3: "c"
* 정사각형 4: "d"
>> 이는 결국 디테일한 이미지의 구분을 하기에는 좀 어려운 부분이 아직 있는 것으로 보인다.
>> Image 별로 디테일한 설명을 해주고 나서, 올바른 정답을 보여준다.
3. 워크시트 문제풀이
1) 영어 빈칸 워크시트 : 'What are we going to do ___?' 라는 질문을 기반으로 주어진 단어와 문장을 영작하는 워크시트로서, 텍스트의 위치 별로 역할이 구분된다. 특히 색깔과 그 크기에 따라 구분되는 경우인데, 과연 이 워크시트를 구분할 수 있을지.
2) 검토 항목 :
(1) 이미지의 목적 확인
(2) 별색 텍스트의 역할
(3) 영작 가능 여부
3) Prompt :
"Check this Image and answer me following question.
(1) the purpose of an image
(2) Role of Colorful(each colors) Text
(3) Fill in the blanks
"""
4) 결과 / 답변 : 80초 소요
5) 번역 및 내용
답변:
(1) 이미지의 목적:
이미지의 목적은 어린이들에게 요일을 한국어로 쓰는 방법을 가르치는 것입니다.
(2) 다채로운 텍스트의 역할:
각 줄의 오른쪽에 있는 다채로운 텍스트는 학습에 시각적 도움을 제공하여 어린 학습자가 한국어로 요일별 맞춤법을 더 쉽게 인식하고 기억할 수 있도록 도와줍니다.
>> 여기까지는 정상적으로 이미지의 목적과 텍스트의 역할을 구분지어 설명하는 것을 볼 수 있다.
(3) 빈칸을 채웁니다:
1행: 월요일
라인 2: 화요일
라인 3: 수요일
라인 4: 목요일
라인 5: 금요일
이 이미지는 어린이들이 한국어로 요일을 재미있고 인터랙티브하게 배울 수 있는 방법을 제공하며, 다채로운 텍스트와 일러스트로 매력적이고 이해하기 쉽습니다.
>> 여기서는 각 이미지의 라인이 어떤 의미를 갖는지 못 잡고 있다. 또한 단어들을 단순하게 그냥 상상해서 만들어 낸 것을 볼 수 있다.
>> 혹시나해서 추가적인 정보를 제공하고, 문장을 완성하도록 후속 질문을 제공했다.
>> 그럼에도 불구하고 주목할만한 부분은 '검정색/굵은 글씨'라는 공통점을 가진 단어들을 찾아냈다는 점이고,
>> 아쉬운 부분은 여전히 이 워크시트의 역할이나 아랫줄에 붙어있는 한글해석을 활용할 수는 없었다.
4. 결론 및 활용 사례 도출 (영어 기준)
[결론]
(1) OCR, 또는 시중 텍스트 추출기보다 훨씬 높은 성능을 보여준다.
(2) 빈칸을 스스로 채울 수 있다. 연관 정보와 해당 이미지 내 텍스트를 제공하면 훨씬 더 좋은 답변을 보여준다.
(3) 구성 요소를 설명할 수 있다. 관계성을 도출할 수 있다.
[기술 선도 사례]
(1) RAG 기능 활용시, OCR 적용되지 않는 교재 전처리 진행. 진행시 텍스트 정확도 상승.
(2) ChromaDB 구축시, 이미지 별도 폴더/콜렉션 생성 가능. 이미지로 질문 가능.
[활용사례]
(1) 학생 시험지 이미지로 업로드하여, 질문/답변 구분하여 저장 및 답변 별도 채점 가능.
(2) IB 교육처럼, 정답의 구분 값이 오픈된 경우 해당 답안의 적절성 한큐에 채점 가능.
(3) AI Writing 봇 구축시, Handwriting 구분 가능 검토 후 적용.
결론적으로, 당장 적용은 어렵지만 상당히 흥미로운 모델임이 분명하다.
따라서, 앞으로 내부 언어모델 개발시에 정제된 데이터나 콘텐츠를 주요 자원으로 활용하는 경우가 많았는데
해당 소스가 조금 더 다듬어지고 성능이나 속도가 빨라질 수 있다면,
일반 구성원들이 가지고 있는 비정제형 데이터 또는 이미지 기반의 스캔 문서를 주로 활용하는 현장에서 특히 활용도가 매우 높을 것으로 보인다. 단, 단점으로 지적되고 있는 '자동 완성 문장' 기능이 문제로 지적된다. 이는 학생이 혹시라도 잘 못 작성한 '어법 오류 문장', '어휘가 틀린 문장', '미완성 문장' 등에서 실수라고 판단한 모델이 이를 고쳐서 '자체 수정' 할 수 있는 것이다.
이 부분까지 고려하여, 이후 모델에서는 개선된 모델 성능과 제한할 수 있는 프롬프트를 설정하는 방법에 대해서 다뤄보아야 겠다.
5. Ollama 활용하기
1) Ollama 설치
!curl -fsSL https://ollama.com/install.sh | sh
or 사이트 방문하여 직접 다운로드 : https://ollama.com/
2) Ollama 시작하기
import osget_ipython().system
= os.system
!ollama serve &
3) Ollama 내 3.2Vision 다운로드하기
!ollama pull llama3.2-vision
혹시라도 구체적인 활용 사례가 필요하다면, 이는 별도 포스트로 올리도록 하겠다.
'업무_인공지능 활용 예시' 카테고리의 다른 글
[Colab] 구글 코랩을 이용한 PDF 페이지 번호 기준 분할하기 (파이썬도 가능) (4) | 2024.10.08 |
---|---|
[Excel/VBA] Excel VBA로 여러 시트 합치기: 코드 분석과 설명 (0) | 2024.10.08 |
[GPT/크롤링] 주요 포털 사이트에서 크롤링이 필요한 정보를, GPT에게 시켜서 자동화하기 (3) | 2024.09.24 |
[chatGPT/API] 영어 단어 또는 문장의 음원(mp3) 파일을 TTS 모델을 활용해서 제작하기 (2) | 2024.09.23 |