HyperAI초신경
Back to Headlines

Qwen 2.5 VL을 활용해 수기 필기체 텍스트 추출 성능 향상

18일 전

이 기사에서는 시각적 대형 언어 모델(visual large language models, 이하 vLLMs)을 사용하여 문서 이해 능력을 향상시키는 방법에 대해 설명합니다. 특히 Qwen 2.5 VL 7B 모델을 노르웨이의 현상학 데이터셋으로 미세 조정하는 과정을 다룹니다. 이 프로젝트는 Findable에서 수행되었으며, 현상학 데이터를 분석하여 기후 연구에 활용할 수 있도록 하기 위해 수행되었습니다. 개요 현대의 기계 학습 분야에서 vLLMs는 데이터 과학자와 ML 엔지니어들이 작업하고 성취하는 방식을 혁신적으로 변화시켰습니다. 이 기사에서는 다음과 같은 주제들을 다룰 것입니다: - 데이터셋 소개 - 데이터셋 검토 및 주석 달기 - Qwen 2.5 VL 모델의 미세 조정 - 결과 및 플롯 이 기사의 코드는 GitHub 리포지토리에서 확인할 수 있으며, 모든 데이터는 HuggingFace에서 제공되고 있습니다. 특히 노르웨이의 현상학 데이터 추출 결과는 이 Excel 시트에서 직접 확인할 수 있습니다. 동기와 목표 이 기사의 주요 목표는 특정 작업에 최적화된 vLLM 모델을 미세 조정하는 방법을 보여주는 것입니다. 여기서 다루는 작업은 이미지에서 손글씨 텍스트를 추출하는 것입니다. 이 작업은 노르웨이의 현상학 데이터셋을 기반으로 하며, 이 데이터셋의 자세한 정보는 GitHub 리포지토리의 README 파일에서 확인할 수 있습니다. 이 데이터셋은 이미지에서 정보를 추출하여 기후 연구에 활용할 수 있는 중요한 자료입니다. 예를 들어, 식물이 개화하는 시기의 장기 변화를 분석하거나, 동부 펜실베이니아 현상학 프로젝트에서와 같이 사용될 수 있습니다. 이 기사에서는 이 이미지들에서 텍스트를 추출하기 위해 Qwen 2.5 VL을 사용합니다. 이 이미지는 표에서 추출된 셀들로, 이미지 처리 기술을 통해 얻어졌습니다. 이 기술에 대한 자세한 내용은 별도의 기사에서 다룰 예정입니다. 미세 조정한 모델은 모든 이미지에서 텍스트를 추출할 수 있으며, 이 데이터는 표로 변환되어 아래 이미지와 같이 플롯할 수 있습니다. 이 플롯은 노르웨이 지도 위에 추출된 나무 선 넘버를 나타냅니다. 더 차가운 색상의 육각형은 해안 가까운 지역이나 북쪽으로 갈수록 낮은 나무 선을 의미하며, 더 따뜻한 색상은 내륙으로 갈수록 높은 나무 선을 나타냅니다. VLMs 사용의 필요성 이미지를 보고 OCR(Optical Character Recognition)을 적용해야 할 것 같다고 생각할 수 있습니다. 이전에는 Tesseract, DocTR, EasyOCR 등의 엔진이 OCR을 주도했습니다. 그러나 최근의 대형 언어 모델, 특히 시각적인 요소를 결합한 모델(vision-language models, 이하 VLMs 또는 VLLMs)은 전통적인 OCR 엔진보다 더 우수한 성능을 보입니다. 아래 이미지는 VLMs를 사용해야 하는 이유를 잘 보여줍니다. 첫 번째 열은 데이터셋의 이미지 예시를, 두 번째와 세 번째 열은 EasyOCR와 미세 조정한 Qwen 모델의 추출 결과를 비교합니다. 첫 번째 이미지에서 "2"가 희미하게 쓰여 있어 EasyOCR가 인식하지 못했으며, 셀 경계를 "1"로 오인하는 등의 중요한 오류를 범했습니다. 두 번째 이미지는 이미지 처리 과정에서 생긴 점들이 많아 EasyOCR가 텍스트를 추출하지 못했습니다. 세 번째 이미지에서는 EasyOCR가 "1"을 "7"로 오인하였으며, 다시 경계를 "1"로 오인하는 등의 오류를 범했습니다. VLMs의 장점 VLMs를 사용할 때 여러 가지 장점이 있습니다. 먼저, VLMs의 출력 품질이 전통적인 OCR 엔진보다 우수합니다. 또한 VLMs에는 작업 수행 방법에 대한 지시를 제공할 수 있다는 장점이 있습니다. 이러한 지시는 전통적인 OCR 엔진에서 불가능합니다. 주요 장점은 다음과 같습니다: 1. VLMs는 OCR, 특히 손글씨를 잘 읽습니다. 2. 모델에 지시를 제공할 수 있습니다. VLMs는 OCR 작업을 수행하는 데 필요한 데이터에 대해 학습한 경험이 있기 때문에 OCR에서 우수한 성능을 보입니다. 예를 들어, Qwen 2.5 VL 기술 보고서의 2.2.1 섹션에서는 OCR 데이터셋이 사전 학습 데이터에 포함되어 있음을 언급합니다. 손글씨 추출의 어려움 손글씨 추출은 과거와 현재 모두 큰 도전 과제입니다. 그 이유는 손글씨가 표준화되지 않았기 때문입니다. 표준화되지 않은 글자는 사람마다 크게 다르게 생깁니다. 예를 들어, 컴퓨터로 작성된 글자는 어떤 컴퓨터에서든 매우 비슷하게 생깁니다. 이는 OCR 엔진이 해당 글자를 인식하는 데 도움이 됩니다. 그러나 손글씨는 각 사람이 다르게 쓰기 때문에 OCR 엔진이 해당 글자를 인식하는 데 어려움이 있습니다. 특히, "1"과 "7"을 구분하는 것이 어렵습니다. 아래 이미지를 보면 "1"과 "7"을 구분하는 데 있어 맥락이 중요함을 알 수 있습니다. VLMs는 이러한 맥락을 고려하여 더 정확한 인식을 합니다. 지시 제공의 중요성 VLMs를 사용할 때 또 다른 중요한 장점은 모델에 지시를 제공할 수 있다는 점입니다. 예를 들어, Qwen 2.5 VL에 다음과 같은 시스템 프롬프트를 제공하여 모델이 어떻게 동작해야 하는지 알려줄 수 있습니다. ```SYSTEM_PROMPT = """ 아래는 작업을 설명하는 지침입니다. 요청대로 적절한 응답을 작성하세요. 당신은 손글씨 표 항목을 읽는 전문가입니다. 표의 일부를 제공하면, 그 부분의 텍스트를 문자열로 반환합니다. 텍스트는 다음과 같을 수 있습니다: 1) 1~3자리 숫자만 2) 일반 괄호 안에 있는 숫자 3) 대괄호 안에 있는 숫자 4) 'e', 's', 'k' 중 하나 5) 퍼센트 부호 '%' 6) 이미지에 텍스트가 없음 (빈 이미지) 지침: 일반 규칙: - 텍스트를 문자열로 반환합니다. - 이미지에 텍스트가 없는 경우 "unknown"을 반환합니다. - '7'은 항상 가운데에 수평선이 있는 것을 기준으로 판단합니다. 수평선이 없으면 '1'이라도 '7'로 오인할 수 있습니다. - 흑색 경계는 무시합니다. 특히 '1'을 경계의 일부로 오인하지 않도록 주의해야 합니다. - 경계 외부의 모든 것을 무시합니다. - 응답에 코드 포맷, 백틱, 또는 마크다운을 사용하지 않습니다. 단순히 원시 텍스트만 출력합니다. - 오직 문자열만 응답하세요. 설명이나 이유를 제공하지 않습니다. """ ``` 데이터셋 Greg Brockman(현재 기사 작성 시 OpenAI의 회장)은 데이터셋의 검토와 주석 달기가 기계 학습 프로젝트에서 가장 중요한 작업 중 하나임을 강조했습니다. Findable에서 시작할 때 저는 데이터 주석 달기부터 시작하여, 라벨링 팀을 관리하고 이제는 데이터 과학자로 일하고 있습니다. 이 경험을 통해 데이터셋을 검토하고 이해하는 것이 얼마나 중요한지를 깨달았습니다. 데이터셋은 약 82,000개의 이미지로 구성되어 있으며, 셀의 너비는 81~93픽셀, 높이는 48~57픽셀입니다. 이는 매우 작은 이미지를 다루고 있다는 것을 의미합니다. 프로젝트를 시작할 때, 저는 다양한 이미지를 살펴보며 데이터셋의 변동성과 VLM이 텍스트를 추출하는 데 직면한 도전 과제를 이해했습니다. 주요 도전 과제는 다음과 같습니다: 1. "1"과 "7"이 비슷해 보입니다. 2. 일부 이미지에는 배경에 점이 있습니다. 3. 셀 경계가 문자로 오인될 수 있습니다. 4. 괄호와 대괄호가 혼동됩니다. 5. 일부 이미지의 텍스트가 희미합니다. 주석 달기 및 미세 조정 데이터셋을 제대로 검토한 후, 주석 달기와 미세 조정 작업을 수행합니다. 주석 달기는 각 이미지에 라벨을 설정하는 과정이고, 미세 조정은 이 라벨을 사용하여 모델의 성능을 개선하는 것입니다. 라벨링 데이터셋을 효율적으로 생성하는 것이 주요 목표입니다. 이를 위해 다음과 같은 세 가지 단계로 프로세스를 나누었습니다: 1. 예측: 기본 모델을 사용하여 몇백 개의 샘플에서 텍스트를 추출합니다. 2. 검토 및 수정: 예측 결과를 검토하고 오류를 수정합니다. 3. 재학습: 수정된 라벨을 사용하여 모델을 재학습합니다. 이 프로세스는 모델이 이미 작업을 잘 수행할 때 효과적입니다. 예를 들어, Qwen 2.5 VL 7B 모델은 이미지에서 텍스트를 추출하는 데 있어 95% 이상의 정확도를 보입니다. 이 프로세스를 반복하여 모델 성능이 수렴할 때까지 진행합니다. SFT 기술 세부사항 SFT(Supervised Fine-Tuning)는 제공된 데이터셋에서 더 나은 성능을 내도록 모델의 가중치를 업데이트하는 과정입니다. Qwen 2.5 VL 모델은 이미 OCR 작업을 잘 수행하기 때문에, 이 프로세스는 모델의 성능을 조금 더 개선시키는 방향으로 진행됩니다. 라벨링 정확도는 매우 중요합니다. 단 몇 개의 라벨링 오류도 모델 성능에重大影響을 줄 수 있습니다. 예를 들어, 모델이 괄호를 대괄호로 잘못 인식하는 문제를 발견했습니다. 이는 라벨링 과정에서 일부 이미지에 대한 라벨이 잘못 설정되었기 때문입니다. 저는 1,000개의 라벨 중 약 0.5%만이 잘못된 것으로 확인되었지만, 이로 인해 모델의 성능이 저하되었습니다. 또한, 빈 이미지의 비율을 조절하여 데이터셋을 균형 있게 만드는 것이 중요합니다. 약 70%의 셀이 빈 이미지인 경우, 이들을 너무 많이 사용하여 미세 조정하는 것은 피해야 합니다. 따라서, 미세 조정에 사용되는 데이터 중 빈 이미지가 30%를 초과하지 않도록 합니다. 하이퍼파라미터 탐색 모델을 미세 조정하기 위해 하이퍼파라미터 탐색을 수행했습니다. 그러나 대형 언어 모델의 일부 학습 과정은 며칠이 걸릴 수 있으므로, 모든 상황에서 하이퍼파라미터 탐색을 수행할 수는 없습니다. 이 프로젝트에서는 A100 80GB GPU를 사용할 수 있었고, 이미지 크기가 작으며 7B 모델을 사용했기 때문에 학습 시간이 10~20분으로 짧아, 하이퍼파라미터 탐색을 한밤중에 이루어낼 수 있었습니다. 결과 및 플롯 모델을 계속 미세 조정하면서 라벨링 데이터를 더 생성하고 재학습을 반복한 결과, 고성능의 미세 조정된 모델을 만들었습니다. 아래 표는 EasyOCR, Qwen 기본 모델, 미세 조정된 Qwen 모델의 성능을 비교한 결과입니다. | 테스트셋 | EasyOCR | Qwen 기본 모델 | 미세 조정된 Qwen 모델 | |----------|---------|----------------|----------------------| | 테스트셋 1 | 30% | 93% | 98% | | 테스트셋 2 | 25% | 95% | 99% | | 테스트셋 3 | 28% | 94% | 99% | | 테스트셋 4 | 32% | 99% | 99% | EasyOCR의 성능은 매우 저조하여 신뢰할 수 없습니다. Qwen 기본 모델은 93~99%의 정확도를 보였지만, 미세 조정된 Qwen 모델은 모든 테스트셋에서 성능이 향상되었습니다. 추출된 데이터는 HuggingFace의 parquet 파일에서 확인할 수 있으며, 이를 이용하여 여러 플롯을 만들 수 있습니다. 예를 들어, 나무 선 데이터를 노르웨이 지도 위에 플롯하여, 기후 변화에 대한 중요한 통찰력을 얻을 수 있습니다. 결론 이 기사에서는 노르웨이의 현상학 데이터셋으로 구성된 작은 이미지에서 손글씨 텍스트를 효과적으로 추출하는 방법을 설명했습니다. 먼저 데이터셋을 검토하여 데이터의 형태와 변동성, VLM가 텍스트를 추출하는 데 직면한 도전 과제를 이해했습니다. 그런 다음, 라벨링 데이터 생성 및 모델 미세 조정을 위한 세 가지 단계 프로세스를 소개했으며, 최종적으로 미세 조정된 Qwen 모델의 성능 향상을 확인했습니다. 이 작업은 Eivind Kjosbakken과 Lars Aurdal이 수행했습니다. 현대의 VLMs는 데이터셋의 특성을 충분히 이해하고 적절한 지시를 제공할 수 있는 경우, 특정 작업에 최적화된 고성능 모델을 미세 조정하는 데 매우 효과적입니다. 이 프로젝트는 기후 연구에 큰 기여를 할 수 있는 중요한 데이터셋을 디지털화하고 공유하는 데 도움이 되었습니다.

Related Links