생성형 AI를 사용한 맞춤 추출기
생성형 AI 학습 및 추출을 사용하면 다음 작업을 할 수 있습니다.
- 제로샷 및 퓨샷 기술을 사용하여 기반 모델을 사용해 학습 데이터가 거의 없거나 아예 없는 고성능 모델을 얻을 수 있습니다.
- 미세 조정을 사용하여 점점 더 많은 학습 데이터를 제공할 때 정확성을 더욱 높일 수 있습니다.
생성형 AI 학습 방법
선택하는 학습 방법은 사용 가능한 문서 수와 모델 학습에 투입할 수 있는 노력의 양에 따라 다릅니다. 생성형 AI 모델을 학습하는 방법에는 세 가지가 있습니다.
학습 방법 | 제로샷 | 퓨샷 | 미세 조정 |
---|---|---|---|
정확성 | 보통 | 중간~높음 | 높음 |
노력 | 낮음 | 낮음 | 보통 |
권장 학습 문서 수 | 0 | 5~10 | 10~50명 이상 |
맞춤 추출기 모델 버전
맞춤 추출기에는 다음 모델을 사용할 수 있습니다. 모델 버전을 변경하려면 프로세서 버전 관리를 참고하세요.
버전 1.0 및 1.3은 신뢰도 점수를 지원하지만 버전 1.1, 1.2, 1.4는 지원하지 않습니다.
모델 버전 | 설명 | 정식 | 미국/EU의 ML 처리 | 미국/유럽 미세 조정 | 출시일 |
---|---|---|---|---|---|
pretrained-foundation-model-v1.0-2023-08-22 |
특수한 비전 모델과 기반 모델을 기반으로 문서 사용 사례에 특화된 프로덕션 준비 후보입니다. |
예 | 아니요 | 미국만 해당 (GA) | 2024년 1월 9일 |
pretrained-foundation-model-v1.1-2024-03-12 |
Gemini 1.0 Pro LLM 및 전문 언어 및 비전 모델을 비롯한 새로 개발된 기술을 기반으로 하는 출시 후보입니다. 이 버전 및 이후 버전에는 체크박스 감지와 같은 고급 OCR 기능이 포함되어 있습니다. 증가된 토큰 한도를 사용하거나 최신 모델을 실험하는 데 권장됩니다. |
아니요 | 예 | 미국, EU (미리보기) | 2024년 5월 3일 |
pretrained-foundation-model-v1.2-2024-05-10 |
Gemini 1.5 Pro LLM 및 특수 언어 및 비전 모델을 비롯한 새로 개발된 기술을 기반으로 하는 프로덕션 준비 후보입니다. | 예 | 예 | 미국, EU (미리보기) | 2024년 5월 27일 |
pretrained-foundation-model-v1.3-2024-08-31 |
Gemini 1.5 Flash LLM을 기반으로 하는 프로덕션 준비 후보입니다. 지연 시간을 최소화하려는 사용자에게 권장됩니다. | 예 | 예 | 미국, EU (미리보기) | 2024년 8월 23일 |
pretrained-foundation-model-v1.4-2025-02-05 |
Gemini 2.0 Flash LLM을 기반으로 하는 출시 후보입니다. 온라인 프로세스 요청에 대해 분당 최대 120페이지의 할당량을 지원합니다. 체크박스 감지와 같은 고급 OCR 기능도 포함되어 있습니다. 최신 모델을 실험하려는 사용자에게 권장됩니다. | 아니요 | 예 | 아니요 | 2025년 2월 5일 |
프로젝트에서 프로세서 버전을 변경하려면 프로세서 버전 관리를 검토하세요.
시작하기 전에
아직 사용 설정하지 않았다면 결제 및 Document AI API를 사용 설정합니다.
생성형 AI 모델 빌드 및 평가
권장사항에 따라 프로세서를 만들고 추출하려는 필드를 정의합니다. 이는 추출 품질에 영향을 미치므로 중요합니다.
- Workbench > 맞춤 추출기 > 프로세서 만들기 > 이름 지정으로 이동합니다.
- 시작하기 > 새 필드 만들기로 이동합니다.
문서 가져오기
모델 학습:
- 빌드를 선택한 다음 새 버전 만들기를 선택합니다.
- 이름을 입력하고 만들기를 선택합니다.
평가:
- 평가 및 테스트로 이동하여 방금 학습한 버전을 선택한 다음 전체 평가 보기를 선택합니다.
- 이제 전체 문서 및 각 필드의 f1, 정밀도, 재현율과 같은 측정항목이 표시됩니다.
- 실적이 프로덕션 목표를 충족하는지 결정합니다. 충족하지 않으면 학습 및 테스트 세트를 재평가합니다.
새 버전을 기본값으로 설정합니다.
- 버전 관리로 이동합니다.
- 선택하여 옵션을 펼친 다음 기본값으로 설정을 선택합니다.
이제 모델이 배포되었습니다. 이 프로세서로 전송된 문서는 맞춤 버전을 사용합니다. 모델의 성능을 평가하여 추가 학습이 필요한지 확인할 수 있습니다.
평가 참조
평가 엔진은 일치검색 또는 유사 검색을 모두 실행할 수 있습니다. 정확한 일치의 경우 추출된 값이 실제 값과 정확하게 일치해야 하며 그렇지 않으면 누락으로 집계됩니다.
대소문자 차이와 같은 약간의 차이가 있는 퍼지 일치 추출도 일치로 간주됩니다. 평가 화면에서 변경할 수 있습니다.
미세 조정
미세 조정을 사용하면 학습에 수백 또는 수천 개의 문서를 사용합니다.
프로세서를 만들고 권장사항에 따라 추출할 필드를 정의합니다. 이는 추출 품질에 영향을 미치므로 중요합니다.
자동 라벨 지정을 사용하여 문서를 가져오고 문서를 학습 및 테스트 세트에 할당합니다.
문서의 라벨을 확인하거나 수정합니다.
모델을 학습시킵니다.
- 빌드 탭을 선택하고 새 버전 만들기를 선택합니다.
제공된 기본 학습 매개변수 또는 값을 사용해 봅니다. 결과가 만족스럽지 않다면 다음과 같은 고급 옵션을 실험해 보세요.
학습 단계 (100~400): 조정 중에 데이터 배치에서 가중치가 최적화되는 빈도를 제어합니다.
- 너무 낮으면 수렴하기 전에 학습이 종료될 위험이 있음을 나타냅니다 (적합도 부족).
- 너무 높으면 학습 중에 모델이 동일한 데이터 배치를 여러 번 보게 되어 과적합이 발생할 수 있습니다.
- 단계가 적을수록 학습 시간이 단축됩니다. 템플릿 변형이 적은 문서의 경우 수가 더 높을 수 있고, 변형이 더 많은 문서의 경우 수가 더 낮을 수 있습니다.
학습률 배수 (0.1~10): 학습 데이터에서 모델 파라미터가 최적화되는 속도를 제어합니다. 대략 각 학습 단계의 크기에 해당합니다.
- 학습률이 낮으면 각 학습 단계에서 모델 가중치가 조금씩 변경됩니다. 너무 낮으면 모델이 안정적인 솔루션으로 수렴하지 않을 수 있습니다.
- 비율이 높을수록 변화가 크다는 것을 나타내며, 비율이 너무 높으면 모델이 최적의 솔루션을 건너뛰고 최적화되지 않은 솔루션으로 수렴할 수 있습니다.
- 학습 시간은 학습률 선택의 영향을 받지 않습니다.
이름을 지정하고 필요한 기본 프로세서 버전을 선택한 다음 만들기를 선택합니다.
평가: 평가 및 테스트로 이동한 다음 방금 학습한 버전을 선택하고 전체 평가 보기를 선택합니다.
- 이제 전체 문서 및 각 필드의 f1, 정밀도, 재현율과 같은 측정항목이 표시됩니다.
- 실적이 프로덕션 목표를 충족하는지 확인합니다. 충족하지 않는 경우 추가 교육 문서가 필요할 수 있습니다.
새 버전을 기본값으로 설정합니다.
- 버전 관리로 이동합니다.
- 선택하여 옵션을 펼치고 기본값으로 설정을 선택합니다.
이제 모델이 배포되었으며 이 프로세서로 전송되는 문서에서 맞춤 버전을 사용합니다. 모델의 성능을 평가하여 추가 학습이 필요한지 확인하려 합니다.
기반 모델을 사용한 자동 라벨 지정
기반 모델은 다양한 문서 유형의 필드를 정확하게 추출할 수 있지만, 특정 문서 구조에 대한 모델의 정확성을 개선하기 위해 추가 학습 데이터를 제공할 수도 있습니다.
Document AI는 사용자가 정의한 라벨 이름과 이전 주석을 사용하여 자동 라벨 지정을 통해 대규모 문서에 더 쉽고 빠르게 라벨을 지정할 수 있습니다.
- 맞춤 프로세서를 만들었으면 시작하기 탭으로 이동합니다.
- 새 필드 만들기를 선택합니다.
라벨에 구체적이고 명확한 이름을 지정합니다. 이렇게 하면 기반 모델의 정확성과 성능이 개선됩니다.
추출 정확도와 성능을 위해 선택해야 하는 항목 유형에 관한 설명 (예: 각 항목에 추가된 컨텍스트, 통계, 사전 지식)을 추가합니다.
Build(빌드) 탭으로 이동한 다음 Import Documents(문서 가져오기)를 선택합니다.
문서의 경로와 문서를 가져올 세트를 선택합니다. 자동 라벨 지정 옵션을 선택하고 기반 모델을 선택합니다.
Build 탭에서 데이터 세트 관리를 선택합니다.
가져온 문서가 표시되면 그중 하나를 선택합니다.
이제 모델의 예측이 보라색으로 강조표시됩니다.
- 모델에서 예측한 각 라벨을 검토하고 올바른지 확인합니다.
누락된 필드가 있으면 해당 필드도 추가합니다.
문서가 검토되면 라벨이 지정된 것으로 표시를 선택합니다. 이제 모델에서 문서를 사용할 수 있습니다.
문서가 테스트 또는 학습 세트에 있는지 확인합니다.
3단계 중첩
이제 Custom Extractor에서 3단계 중첩을 제공합니다. 이 기능은 복잡한 표를 더 효과적으로 추출합니다.
다음 API 호출을 사용하여 모델 유형을 확인할 수 있습니다.
이러한 요청의 응답은 v1beta3 미리보기에서 modelType
필드를 포함하는 ProcessorVersion
입니다.
절차 및 예시
다음 샘플을 사용합니다.
시작하기를 선택한 다음 필드를 만듭니다.
- 최상위 수준을 만듭니다.
- 이 샘플에서는
officer_appointments
가 사용됩니다. - 상위 라벨입니다를 선택합니다.
- 발생:
Optional multiple
을 선택합니다.
하위 필드 추가를 선택합니다. 이제 두 번째 수준 라벨을 만들 수 있습니다.
- 이 수준 라벨의 경우
officer
를 만듭니다. - 상위 라벨입니다를 선택합니다.
- 발생:
Optional multiple
을 선택합니다.
- 이 수준 라벨의 경우
두 번째 수준
officer
에서 하위 필드 추가를 선택합니다. 3단계 중첩의 하위 라벨을 만듭니다.스키마가 설정되면 자동 라벨 지정을 사용하여 3단계 중첩 수준이 있는 문서에서 예측을 가져올 수 있습니다.
데이터 세트 구성
프로세서 버전을 학습시키거나 업트레이닝하거나 평가하려면 문서 데이터 세트가 필요합니다. Document AI 프로세서는 인간과 마찬가지로 예시에서 학습합니다. 데이터 세트는 성능 측면에서 프로세서 안정성을 개선합니다.학습 데이터 세트
모델과 정확성을 개선하려면 문서에서 데이터 세트를 학습합니다. 모델은 정답이 있는 문서로 구성됩니다.- 미세 조정하려면 버전
pretrained-foundation-model-v1.0-2023-08-22
로 새 모델을 학습시키려면 문서가 10개 이상, 버전pretrained-foundation-model-v1.1-2024-03-12
의 경우 16개,pretrained-foundation-model-v1.2-2024-05-10
및pretrained-foundation-model-v1.3-2024-08-31
의 경우 1개가 필요합니다. - 퓨샷의 경우 문서 5개가 권장됩니다.
- 제로샷의 경우 스키마만 있으면 됩니다.
테스트 데이터 세트
테스트 데이터 세트는 모델에서 F1 점수 (정확성)를 생성하는 데 사용됩니다. 정답이 포함된 문서로 구성됩니다. 모델이 얼마나 정확한지 확인하기 위해 정답을 사용하여 모델의 예측 (모델에서 추출한 필드)을 올바른 답변과 비교합니다. 테스트 데이터 세트에는 미세 조정 버전pretrained-foundation-model-v1.0-2023-08-22
의 경우 문서가 10개 이상, 버전 pretrained-foundation-model-v1.1-2024-03-12
의 경우 16개, pretrained-foundation-model-v1.2-2024-05-10
및 pretrained-foundation-model-v1.3-2024-08-31
의 경우 문서가 1개 있어야 합니다.
속성 설명이 포함된 맞춤 추출기
속성 설명을 사용하면 라벨이 지정된 필드의 특성을 설명하여 모델을 학습할 수 있습니다. 각 항목에 대한 추가 맥락과 통계를 제공할 수 있습니다. 이렇게 하면 모델이 제공한 설명에 맞는 필드를 일치시켜 학습하고 추출 정확성을 개선할 수 있습니다. 속성 설명은 상위 항목과 하위 항목 모두에 지정할 수 있습니다.
속성 설명의 좋은 예로는 위치 정보와 속성 값의 텍스트 패턴이 있습니다. 이러한 정보는 문서에서 혼동을 야기할 수 있는 요소를 명확히 하는 데 도움이 됩니다. 명확하고 정확한 속성 설명은 특정 문서 구조나 콘텐츠 변형과 관계없이 더 안정적이고 일관된 추출을 보장하는 규칙으로 모델을 안내합니다.
프로세서의 문서 스키마 업데이트
속성 설명을 설정하는 방법은 문서 스키마 업데이트를 참고하세요.
숙박 시설 설명이 포함된 처리 요청 보내기
문서 스키마에 이미 설명이 설정되어 있는 경우 처리 요청 보내기의 안내에 따라 처리 요청을 보낼 수 있습니다.
속성 설명으로 프로세서 미세 조정
요청 데이터를 사용하기 전에 다음을 바꿉니다.
- LOCATION: 프로세서의 위치입니다(예:
us
- 미국eu
- 유럽 연합
- PROJECT_ID: Google Cloud 프로젝트 ID입니다.
- PROCESSOR_ID: 맞춤 프로세서의 ID입니다.
- DISPLAY_NAME: 프로세서의 표시 이름입니다.
- PRETRAINED_PROCESSOR_VERSION: 프로세서 버전 식별자입니다. 자세한 내용은 프로세서 버전 선택을 참고하세요. 예를 들면 다음과 같습니다.
pretrained-TYPE-vX.X-YYYY-MM-DD
stable
rc
- TRAIN_STEPS: 모델 미세 조정을 위한 학습 단계입니다.
- LEARN_RATE_MULTIPLIER: 모델 미세 조정을 위한 학습률 배수입니다.
- DOCUMENT_SCHEMA: 프로세서의 스키마입니다. DocumentSchema 표현을 참고하세요.
HTTP 메서드 및 URL:
POST https://LOCATION-documentai.googleapis.com/v1beta3/projects/PROJECT_ID/locations/LOCATION/processors/PROCESSOR_ID/processorVersions/PROCESSOR_VERSION:process
JSON 요청 본문:
{ "rawDocument": { "parent": "projects/PROJECT_ID/locations/LOCATION/processors/PROCESSOR_ID", "processor_version": { "name": "projects/PROJECT_ID/locations/LOCATION/processors/PROCESSOR_ID/processorVersions/DISPLAY_NAME", "display_name": "DISPLAY_NAME", "model_type": "MODEL_TYPE_GENERATIVE", }, "base_processor_version": "projects/PROJECT_ID/locations/us/processors/PROCESSOR_ID/processorVersions/PRETRAINED_PROCESSOR_VERSION", "foundation_model_tuning_options": { "train_steps": TRAIN_STEPS, "learning_rate_multiplier": LEARN_RATE_MULTIPLIER, } "document_schema": DOCUMENT_SCHEMA } }
요청을 보내려면 다음 옵션 중 하나를 선택합니다.
curl
요청 본문을 request.json
파일에 저장하고 다음 명령어를 실행합니다.
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION-documentai.googleapis.com/v1beta3/projects/PROJECT_ID/locations/LOCATION/processors/PROCESSOR_ID/processorVersions/PROCESSOR_VERSION:process"
PowerShell
요청 본문을 request.json
파일에 저장하고 다음 명령어를 실행합니다.
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://LOCATION-documentai.googleapis.com/v1beta3/projects/PROJECT_ID/locations/LOCATION/processors/PROCESSOR_ID/processorVersions/PROCESSOR_VERSION:process" | Select-Object -Expand Content