Document AI Workbench - 커스텀 문서 추출기

1. 소개

Document AI는 문서, 이메일 등과 같은 구조화되지 않은 데이터를 가져와 데이터의 이해, 분석, 사용을 쉽게 만들어 주는 문서 이해 솔루션입니다.

Document AI Workbench를 사용하면 자체 학습 데이터를 사용한 완전 맞춤형 모델을 생성하여 문서 처리 정확도 향상시킬 수 있습니다.

이 실습에서는 커스텀 문서 추출기 만들기, 데이터 세트를 가져오기, 예시 문서 라벨 지정, 프로세서 학습을 수행합니다.

이 실습에서 사용되는 문서 데이터 세트는 Kaggle의 Fake W-2(US Tax Form) 데이터 세트(CC0: 공개 도메인 라이선스)에서 가져왔습니다.

기본 요건

이 Codelab은 다른 Document AI Codelabs에서 다룬 콘텐츠를 기반으로 합니다.

다음 Codelab을 먼저 완료한 후에 진행하는 것이 좋습니다.

학습할 내용

  • 커스텀 문서 추출기 프로세서 만들기
  • 주석 도구를 사용하여 Document AI 학습 데이터 라벨 지정
  • 새 모델 버전 학습
  • 새 모델 버전의 정확도 평가

필요한 항목

  • Google Cloud 프로젝트
  • 브라우저(Chrome 또는 Firefox 등)

2. 설정

이 Codelab에서는 Codelab 소개에 있는 Document AI 설정 단계를 완료했다고 가정합니다.

다음 단계를 완료한 후에 진행하세요.

3. 프로세서 만들기

먼저 이 실습에서 사용할 커스텀 문서 추출기 프로세서를 만들어야 합니다.

  1. 콘솔에서 Document AI 개요 페이지로 이동합니다.

DocAIOverviewConsole

  1. 커스텀 프로세서 만들기를 클릭하고 커스텀 문서 추출기를 선택합니다.

docai-custom-codelab-02

  1. 이름을 codelab-custom-extractor로 지정하고(또는 다른 기억하기 쉬운 이름) 목록에서 가장 가까운 리전을 선택합니다.

docai-custom-codelab-03

  1. 만들기를 클릭하여 프로세서를 만듭니다. 이제 프로세서 개요 페이지가 표시됩니다.

docai-custom-codelab-04

4. 데이터 세트 만들기

프로세서를 학습시키려면 학습 및 테스트 데이터로 데이터 세트를 만들어 프로세서가 추출하려는 항목을 식별하도록 만들어야 합니다.

  1. 프로세서 개요 페이지에서 데이터 세트 구성을 클릭합니다.

docai-custom-codelab-04

  1. 이제 데이터 세트 구성 페이지가 표시됩니다. 학습 문서와 라벨을 저장할 버킷을 직접 지정하려면 고급 옵션 표시를 클릭합니다. 그렇지 않으면 계속을 클릭합니다.

docai-custom-codelab-05

  1. 데이터 세트가 만들어지면 학습 페이지로 이동합니다.

docai-custom-codelab-07

5. 테스트 문서 가져오기

이제 샘플 W2 PDF를 데이터 세트로 가져오겠습니다.

  1. 문서 가져오기를 클릭합니다.

docai-custom-codelab-08

  1. 이 실습에서 사용할 샘플 PDF를 준비했습니다. 다음 링크를 소스 경로 박스에 복사하여 붙여넣습니다. 지금은 '데이터 분할'을 '할당되지 않음'으로 둡니다. 다른 체크박스는 모두 선택하지 않은 상태로 둡니다. 가져오기를 클릭합니다.
cloud-samples-data/documentai/codelabs/custom/extractor/pdfs

docai-custom-codelab-09

  1. 문서를 가져올 때까지 기다립니다. 1분 안에 완료됩니다.
  2. 가져오기가 완료되면 학습 페이지에 문서가 표시됩니다.

docai-custom-codelab-10

6. 라벨 만들기

새로운 프로세서 유형을 만들고 있으므로 Document AI가 어떤 필드를 추출할지 이해하도록 커스텀 라벨을 만들어야 합니다.

  1. 왼쪽 하단에 있는 스키마 수정을 클릭합니다.

docai-custom-codelab-11

  1. 이제 스키마 관리 콘솔이 표시됩니다.

docai-custom-codelab-12

  1. 라벨 만들기 버튼을 사용하여 다음 라벨을 만듭니다.

이름

데이터 유형

어커런스

CONTROL_NUMBER

숫자

여러 번(필수사항)

EMPL_SSN

일반 텍스트

여러 번(필수사항)

EMPLR_ID_NUMBER

일반 텍스트

여러 번(필수사항)

EMPLR_NAME_ADDRESS

주소

여러 번(필수사항)

FEDERAL_INCOME_TAX_WH

금액

여러 번(필수사항)

SS_TAX_WH

금액

여러 번(필수사항)

SS_WAGES

금액

여러 번(필수사항)

WAGES_TIPS_OTHER_COMP

금액

여러 번(필수사항)

  1. 완료되면 콘솔에 다음과 같이 표시됩니다. 작업이 완료되면 저장을 클릭하세요.

docai-custom-codelab-13

  1. 뒤로 화살표를 클릭하여 학습 페이지로 돌아갑니다. 만든 라벨이 왼쪽 하단에 표시됩니다.

docai-custom-codelab-14

7. 테스트 문서 라벨 지정

다음으로, 추출하려는 항목의 텍스트 요소와 라벨을 식별합니다. 이 라벨은 모델을 학습시켜 이 특정 문서 구조를 파싱하여 올바른 유형을 식별하는 데 사용됩니다.

  1. 앞에서 가져온 문서를 더블클릭하여 라벨 지정 콘솔로 이동합니다. 모습은 다음과 유사합니다.

docai-custom-codelab-15

  1. '경계 상자'를 클릭합니다. 도구를 클릭한 다음 '1173038' 텍스트를 강조표시합니다. CONTROL_NUMBER 라벨을 할당합니다. 텍스트 필터를 사용하여 라벨 이름을 검색할 수 있습니다.

docai-custom-codelab-16

  1. 다른 CONTROL_NUMBER 인스턴스에 대해서도 작업을 완료합니다. 라벨이 지정되면 모습이 다음과 유사합니다.

docai-custom-codelab-17

  1. 다음 텍스트 값의 모든 인스턴스를 강조 표시하고 적합한 라벨을 할당합니다.

라벨 이름

텍스트

EMPLR_ID_NUMBER

24-3188810

FEDERAL_INCOME_TAX_WH

19127.2

SS_TAX_WH

5093.71

SS_WAGES

66584.46

WAGES_TIPS_OTHER_COMP

56081.18

EMPL_SSN

714-32-2105

EMPLR_NAME_ADDRESS

Adams, Chase and Gilbert Inc 972 Gonzalez Dam South Katherine NC 95869-5178

  1. 작업이 완료되면 라벨 지정된 문서의 모습은 다음과 유사합니다. 문서의 경계 상자나 왼쪽 메뉴의 이름/값을 클릭하면 이러한 라벨을 수정할 수 있습니다. 라벨 지정이 완료되면 라벨이 지정된 것으로 표시를 클릭한 다음 데이터 세트 관리 콘솔로 돌아갑니다.

docai-custom-codelab-20

8. 학습 세트에 문서 할당

이제 데이터 세트 관리 콘솔로 돌아갑니다. 라벨이 지정되거나 라벨이 지정되지 않은 문서의 수와 라벨당 인스턴스의 수가 변경된 것을 볼 수 있습니다.

docai-custom-codelab-21

  1. 이 문서를 '학습'이나 '테스트' 중 하나로 할당해야 합니다. 문서와 세트에 할당을 차례로 클릭한 다음 학습을 클릭합니다.

docai-custom-codelab-22

  1. 데이터 분할 수가 변경되었습니다.

docai-custom-codelab-23

9. 사전에 라벨이 지정된 데이터 가져오기

Document AI 커스텀 프로세서에는 학습 세트와 테스트 세트에 최소 10개의 문서와 각 세트의 각 라벨 인스턴스가 10개 필요합니다.

최상의 성능을 위해서는 각 세트에 문서 50개 이상, 각 라벨의 인스턴스 50개 이상을 포함하는 것이 좋습니다. 일반적으로 학습 데이터가 많을수록 정확성이 높아집니다.

모든 문서에 라벨을 지정하려면 시간이 오래 걸리므로 이 실습을 위해 가져올 수 있는 사전에 라벨이 지정된 문서를 준비했습니다.

사전에 라벨이 지정된 문서는 Document.json 형식으로 가져올 수 있습니다. 이는 인간 참여형(Human in the Loop, HITL)을 사용하여 프로세서를 호출하고 정확도를 검증한 결과일 수 있습니다.

aside negative

참고: 사전에 라벨 지정된 데이터를 가져올 때 모델을 학습시키기 전에 주석을 직접 검토하는 것이 좋습니다.

  1. 문서 가져오기를 클릭합니다.

docai-custom-codelab-24

  1. 다음 Cloud Storage 경로를 복사하여 붙여넣어 학습 세트에 할당합니다.
cloud-samples-data/documentai/codelabs/custom/extractor/training
  1. 다른 폴더 추가를 클릭합니다. 이제 다음 Cloud Storage 경로를 복사하여 붙여넣어 테스트 세트에 할당합니다.
cloud-samples-data/documentai/codelabs/custom/extractor/test

docai-custom-codelab-25

  1. 가져오기를 클릭하고 문서를 가져올 때까지 기다립니다. 이번에는 처리할 문서가 더 많으므로 이전보다 오래 걸립니다. 6분 정도 소요되며, 이 페이지에서 나갔다가 다시 돌아와도 됩니다.

docai-custom-codelab-26

  1. 완료되면 학습 페이지에 문서가 표시됩니다.

docai-custom-codelab-27

10. 모델 학습

이제 커스텀 문서 추출기의 학습을 시작할 준비가 되었습니다.

  1. 새 버전 학습을 클릭합니다.

docai-custom-codelab-28

  1. 버전에 기억할 수 있는 이름(예: codelab-custom-1)을 지정합니다. '학습 방법'에 '처음부터 학습'을 선택합니다.

docai-custom-codelab-29

  1. (선택 사항) 라벨 통계 보기를 선택하여 데이터 세트의 라벨에 대한 측정항목을 볼 수도 있습니다.

docai-custom-codelab-30

  1. 학습 시작을 클릭하여 학습 프로세스를 시작합니다. 데이터 세트 관리 페이지로 리디렉션됩니다. 오른쪽에서 학습 상태를 볼 수 있습니다. 학습을 완료하는 데 몇 시간 정도 걸립니다. 이 페이지를 나갔다가 다시 돌아와도 됩니다.

docai-custom-codelab-31

  1. 버전 이름을 클릭하면 버전 ID 및 학습 작업의 현재 상태를 보여주는 버전 관리 페이지로 이동합니다.

docai-custom-codelab-32

11. 새 모델 버전 테스트

학습 작업이 완료되면(제 테스트에서는 약 1시간 정도 걸렸음) 새 모델 버전을 테스트할 수 있으며 예측에 바로 사용할 수 있습니다.

  1. 버전 관리 페이지로 이동합니다. 여기에서 현재 상태 및 F1 점수를 확인할 수 있습니다.

docai-custom-codelab-33

  1. 사용하기 전에 이 모델 버전을 먼저 배포해야 합니다. 오른쪽에 있는 세로 점을 클릭하고 버전 배포를 선택합니다.

docai-custom-codelab-34

  1. 팝업 창에서 배포를 선택하고 버전이 배포될 때까지 기다립니다. 완료되기까지 몇 분 정도 걸립니다. 배포가 완료되면 이 버전을 기본 버전으로 설정할 수도 있습니다.

docai-custom-codelab-35

  1. 배포가 완료되면 평가 탭으로 이동합니다. 이 페이지에서 전체 문서의 F1 점수, 정밀도, 재현율을 포함한 평가 측정항목과 개별 라벨을 확인할 수 있습니다. 이러한 측정항목에 관한 자세한 내용은 AutoML 문서를 참고하세요.

docai-custom-codelab-36

  1. 아래에 링크된 PDF 파일을 다운로드합니다. 이 파일은 학습 또는 테스트 세트에 포함되지 않았던 샘플 W2입니다.

  1. 테스트 문서 업로드를 클릭하고 PDF 파일을 선택합니다.
  2. 추출된 측정항목은 다음과 같이 표시됩니다.

docai-custom-codelab-37

12. 선택 사항: 새로 가져온 문서를 자동으로 라벨 지정

학습된 프로세서 버전을 배포한 후 자동 라벨 지정을 사용해 새 문서를 가져올 때 라벨 지정 시간을 절약할 수 있습니다.

  1. 학습 페이지에서 문서 가져오기를 클릭합니다.
  2. 다음 경로를 복사하여 붙여넣습니다. 이 디렉터리에는 라벨 지정이 되지 않은 W2 PDF가 5개 있습니다. 데이터 분할 드롭다운 목록에서 학습을 선택합니다.
    cloud-samples-data/documentai/Custom/W2/AutoLabel
    
  3. 자동 라벨 지정 섹션에서 자동 라벨 지정을 사용하여 가져오기 체크박스를 선택합니다.
  4. 기존 프로세서 버전을 선택하여 문서에 라벨을 지정합니다.
  • 예: 2af620b2fd4d1fcf
  1. 가져오기를 클릭하고 문서를 가져올 때까지 기다립니다. 이 페이지를 나갔다가 다시 돌아와도 됩니다.
  • 완료되면 학습 페이지의 자동 라벨 지정 섹션에 문서가 표시됩니다.
  1. 자동 라벨 지정 문서를 라벨 지정됨으로 표시하지 않고 학습 또는 테스트용으로 사용할 수는 없습니다. 자동 라벨 지정 문서를 보려면 자동 라벨 지정 섹션으로 이동하세요.
  2. 첫 번째 문서를 선택하여 라벨 지정 콘솔로 이동합니다.
  3. 라벨, 경계 상자, 값을 검사하여 모두 맞는지 확인합니다. 누락된 값이 있으면 라벨 지정합니다.
  4. 완료되면 라벨이 지정된 것으로 표시를 선택합니다.
  5. 자동으로 라벨이 지정된 각 문서에 대해 라벨 확인을 반복한 다음 학습 페이지로 돌아가 학습에 데이터를 사용합니다.

13. 결론

수고하셨습니다. Document AI를 사용하여 커스텀 문서 추출기 프로세서를 성공적으로 학습시켰습니다. 이제 이 프로세서를 사용하여 모든 특수 프로세서처럼 문서를 이 형식으로 파싱할 수 있습니다.

특수 프로세서 Codelab을 참조하여 프로세싱 응답 처리 방법을 검토할 수 있습니다.

삭제하기

이 튜토리얼에서 사용한 리소스 비용이 Google Cloud 계정에 청구되지 않도록 하려면 다음 안내를 따르세요.

  • Cloud 콘솔에서 리소스 관리 페이지로 이동합니다.
  • 프로젝트 목록에서 해당 프로젝트를 선택한 후 삭제를 클릭합니다.
  • 대화상자에서 프로젝트 ID를 입력한 후 종료를 클릭하여 프로젝트를 삭제합니다.

리소스

라이선스

이 작업물은 Creative Commons Attribution 2.0 일반 라이선스에 따라 사용이 허가되었습니다.