스몰도클링: 소량의 효율적인 문서 처리를 위한 시각적 언어 모델

최신 AI 리소스게시됨 6 개월 전 AI 공유 서클
10.2K 00

일반 소개

스몰도클링은 ds4sd 팀이 IBM과 협력하여 개발한 시각 언어 모델(VLM)로, 스몰VLM-256M을 기반으로 하며 허깅 페이스 플랫폼에서 호스팅됩니다. 이 모델은 매개변수가 256M에 불과한 세계에서 가장 작은 VLM으로, 핵심 기능은 이미지에서 텍스트를 추출하고 레이아웃, 코드, 수식 및 다이어그램을 인식하여 DocTags 형식의 구조화된 문서를 생성하는 것입니다. smolDocling은 일반 기기에서 높은 효율성과 낮은 리소스 소비로 실행할 수 있습니다. 개발팀은 더 많은 사람들이 문서 작업을 처리할 수 있도록 이 모델을 오픈소스를 통해 공유하고 있습니다. 문서 변환에 중점을 둔 SmolVLM 제품군의 일부로, 복잡한 문서를 빠르게 처리해야 하는 사용자에게 적합합니다.

SmolDocling:小体积高效处理文档的视觉语言模型

 

SmolDocling:小体积高效处理文档的视觉语言模型

 

기능 목록

  • 텍스트 추출(OCR)이미지에서 텍스트를 인식 및 추출하고 다국어를 지원합니다.
  • 레이아웃 식별: 그림에서 문서의 구조(예: 제목, 단락, 표의 위치)를 분석합니다.
  • 코드 인식코드 블록을 추출하고 들여쓰기와 서식을 유지합니다.
  • 공식 인식수학 공식을 감지하고 편집 가능한 텍스트로 변환합니다.
  • 차트 인식: 이미지의 차트 내용을 구문 분석하여 데이터를 추출합니다.
  • 양식 처리표의 구조를 식별하고 행과 열 정보를 유지합니다.
  • 문서 태그 출력나중에 쉽게 사용할 수 있도록 처리 결과를 균일한 라벨링 형식으로 변환합니다.
  • 고해상도 이미지 처리고해상도 이미지 입력을 지원하여 인식 정확도를 향상시킵니다.

 

도움말 사용

스몰도클링의 사용은 설치와 운영의 두 부분으로 나뉩니다. 다음은 사용자가 빠르게 시작할 수 있도록 도와주는 자세한 단계입니다.

설치 프로세스

  1. 환경 준비하기
    • 컴퓨터에 Python 3.8 이상이 설치되어 있는지 확인하세요.
    • 터미널에 다음 명령을 입력하여 종속성 라이브러리를 설치합니다:
      pip install torch transformers docling_core
      
    • GPU가 있는 경우 더 빠르게 실행하려면 CUDA를 지원하는 PyTorch를 설치하는 것이 좋습니다. 방법론을 확인하세요:
      import torch
      print("GPU可用:" if torch.cuda.is_available() else "使用CPU")
      
  2. 모델 로드
    • 스몰도클링은 수동으로 다운로드할 필요가 없으며, 코드를 통해 허깅페이스에서 바로 사용할 수 있습니다.
    • 네트워크가 열려 있고 처음 실행할 때 모델 파일이 자동으로 다운로드되는지 확인합니다.

사용 단계

  1. 사진 준비
    • 스캔한 문서나 스크린샷 등 텍스트가 포함된 이미지를 찾습니다.
    • 코드와 함께 이미지를 로드합니다:
      from transformers.image_utils import load_image
      image = load_image("你的图片路径.jpg")
      
  2. 모델 및 프로세서 초기화하기
    • 스몰도클링의 프로세서와 모델을 로드합니다:
      from transformers import AutoProcessor, AutoModelForVision2Seq
      DEVICE = "cuda" if torch.cuda.is_available() else "cpu"
      processor = AutoProcessor.from_pretrained("ds4sd/SmolDocling-256M-preview")
      model = AutoModelForVision2Seq.from_pretrained(
      "ds4sd/SmolDocling-256M-preview",
      torch_dtype=torch.bfloat16
      ).to(DEVICE)
      
  3. 문서 태그 생성
    • 입력을 설정하고 모델을 실행합니다:
      messages = [{"role": "user", "content": [{"type": "image"}, {"type": "text", "text": "Convert this page to docling."}]}]
      prompt = processor.apply_chat_template(messages, add_generation_prompt=True)
      inputs = processor(text=prompt, images=[image], return_tensors="pt").to(DEVICE)
      generated_ids = model.generate(**inputs, max_new_tokens=8192)
      doctags = processor.batch_decode(generated_ids[:, inputs.input_ids.shape[1]:], skip_special_tokens=False)[0].lstrip()
      print(doctags)
      
  4. 공통 포맷으로 변환
    • 문서 태그를 마크다운 또는 다른 형식으로 변환합니다:
      from docling_core.types.doc import DoclingDocument
      doc = DoclingDocument(name="我的文档")
      doc.load_from_doctags(doctags)
      print(doc.export_to_markdown())
      
  5. 고급 사용법(선택 사항)
    • 여러 페이지로 구성된 문서 처리여러 이미지를 반복해서 처리한 다음 문서 태그를 병합합니다.
    • 성능 최적화: 설정 torch_dtype=torch.bfloat16 메모리 절약, GPU 사용자는 다음을 활성화할 수 있습니다. flash_attention_2 가속:
      model = AutoModelForVision2Seq.from_pretrained(
      "ds4sd/SmolDocling-256M-preview",
      torch_dtype=torch.bfloat16,
      _attn_implementation="flash_attention_2" if DEVICE == "cuda" else "eager"
      ).to(DEVICE)
      

운영 기술

  • 사진 요구 사항이미지가 선명하고 텍스트를 읽을 수 있어야 하며 해상도가 높을수록 좋습니다.
  • 조정 매개변수결과가 불완전한 경우 다음을 추가합니다. max_new_tokens(기본값 8192).
  • 배치 파일여러 이미지를 목록으로 전달할 수 있습니다. images=[image1, image2].
  • 시운전 방법출력 중간 결과 확인(예: 인쇄) inputs 입력이 올바른지 확인합니다.

주의

  • 처음 실행할 때는 인터넷 액세스가 필요하며, 그 이후에는 오프라인에서 사용할 수 있습니다.
  • 너무 큰 사진은 메모리 부족을 초래할 수 있으므로 잘라서 처리하는 것이 좋습니다.
  • 오류가 발생하면 Python 버전과 종속 라이브러리가 올바르게 설치되었는지 확인하세요.

위의 단계를 통해 사용자는 SmolDocling으로 이미지를 구조화된 문서로 변환할 수 있습니다. 전체 프로세스는 간단하며 초보자와 전문 사용자에게 적합합니다.

 

애플리케이션 시나리오

  1. 학술 연구
    스캔한 문서를 텍스트로 변환하고 수식과 표를 추출하여 쉽게 편집하고 인용할 수 있습니다.
  2. 프로그래밍 문서
    코드가 포함된 수동 이미지를 마크다운으로 변환하여 개발자를 위해 코드 서식을 보존합니다.
  3. 사무 자동화
    계약서, 보고서 등의 스캔 사본을 처리하고 레이아웃과 내용을 인식하여 효율성을 개선하세요.
  4. 교육 지원
    교과서 이미지를 편집 가능한 문서로 전환하여 교사와 학생이 노트를 정리할 수 있도록 도와주세요.

 

QA

  1. 스몰도클링과 스몰VLM의 차이점은 무엇인가요?
    스몰도클링은 문서 처리와 문서 태그 형식 출력에 중점을 둔 최적화된 버전의 스몰VLM-256M을 기반으로 하는 반면, 스몰VLM은 보다 일반적이며 이미지 설명과 같은 작업을 지원합니다.
  2. 어떤 운영 체제가 지원되나요?
    Windows, Mac, Linux가 지원되며 Python 및 종속 라이브러리가 설치된 상태에서 실행할 수 있습니다.
  3. 처리가 빠른가요?
    이미지 처리에는 일반 컴퓨터에서는 몇 초밖에 걸리지 않으며, GPU 사용자의 경우 일반적으로 1초 미만으로 더 빠릅니다.
  4. 손으로 쓴 텍스트를 처리할 수 있나요?
    예. 그러나 결과는 필기의 선명도에 따라 달라지며 최상의 결과를 얻으려면 인쇄된 텍스트 이미지를 사용하는 것이 좋습니다.
© 저작권 정책

관련 문서

댓글 없음

댓글에 참여하려면 로그인해야 합니다!
지금 로그인
없음
댓글 없음...