제퍼넷 로고

충분한 데이터로 모델을 훈련했는지 확인하는 방법

시간

충분한 데이터로 모델을 훈련했는지 확인하는 방법

WeightWatcher는 (사전) 훈련 및 미세 조정된 심층 신경망의 성능을 평가하기 위한 오픈 소스 진단 도구입니다. 딥 러닝이 작동하는 이유에 대한 최첨단 연구를 기반으로 합니다.


By 찰스 마틴, 계산 컨설팅

 

 

심층 신경망(DNN)에는 많은 훈련 데이터가 필요합니다. 모델을 미세 조정하는 데에도 많은 작업이 필요할 수 있습니다. 많이. 그렇다면 충분히 사용했는지 어떻게 알 수 있습니까? CV(Computer Vision) 모델의 경우 항상 테스트 오류를 ​​볼 수 있습니다. 그러나 BERT 또는 GPT와 같은 대형 변환기 모델을 미세 조정하는 것은 어떻습니까?

  • 모델을 평가하는 가장 좋은 메트릭은 무엇입니까?
  • 충분한 데이터로 훈련했는지 어떻게 확신할 수 있습니까?
  • 고객은 어떻게 확신할 수 있습니까?

웨이트워쳐 그러나 권한을 얻는 것은 제작자와 사용자 모두에게 시간이 많이 걸리고 복잡할 수 있으며 크리에이티브 커먼즈 라이선스가 이를 해결할 수 있다.

pip install weightwatcher


WeightWatcher는 (사전) 훈련 및 미세 조정된 심층 신경망의 성능을 평가하기 위한 오픈 소스 진단 도구입니다. 에 대한 최첨단 연구를 기반으로 합니다. 딥 러닝이 작동하는 이유. 요새, Nature에 소개되었습니다.

여기에서는 WeightWatcher를 사용하여 DNN 모델이 충분한 데이터로 훈련되었는지 확인하는 방법을 보여줍니다.

이 논문에서는 GPT 대 GPT2의 예를 고려합니다. GPT는 NLP Transformer 모델로, 오픈AI, 가짜 텍스트를 생성합니다. 처음 개발되었을 때 OpenAI는 작은 데이터 세트로 특별히 훈련된 GPT 모델을 출시하여 가짜 텍스트를 생성하는 데 사용할 수 없게 만들었습니다. 나중에 그들은 가짜 텍스트가 좋은 사업이라는 것을 깨달았고 GPT와 같은 GPT2를 출시했습니다. 그러나 유용하게 만들기에 충분한 데이터로 훈련되었습니다.

 

TechViz - The Data Science Guy: GPT2를 사용한 NLP의 데이터 증대

 

WeightWatcher를 GPT와 GPT2에 적용하고 결과를 비교할 수 있습니다. WeightWatcher가 기록 스펙트럼 규범 와 알파(멱법칙) 측정항목은 GPT 모델에 문제가 있음을 즉시 알려줍니다. 이는 논문의 그림 6에 나와 있습니다.

 

Fig. 6

 

여기서는 WeightWatcher Power Law(PL) 알파 메트릭에 대해 직접 수행하는 방법을 정확히 살펴보겠습니다. (알파), 그리고 이러한 플롯을 해석하는 방법을 설명합니다.

이러한 계산은 Jupiter 노트북 또는 Google Colab에서 실행하는 것이 좋습니다. (참고로 당신은 또한 실제 노트북을 볼 수 있습니다 그러나 이것은 weightwatcher의 이전 버전을 사용합니다.)

이 게시물의 경우 우리는 작업 노트북을 제공합니다 FBI 증오 범죄 보고서 WeightWatcher github 저장소.

WeightWatcher는 기본 Huggingface 모델을 이해합니다. 실제로 WeightWatcher는 다음을 지원합니다.

  • TF2.0 / 케라스
  • 파이토치 1.x
  • 포옹 얼굴

등등)

ONNX(현재 트렁크에서)

현재 Dense 및 Conv2D 레이어를 지원합니다. 더 많은 계층에 대한 지원이 제공될 예정입니다. NLP Transformer 모델의 경우 Dense 레이어에 대한 지원만 필요합니다.

먼저 GPT 및 GPT2 pyTorch 모델이 필요합니다. 인기 있는 HuggingFace 변압기 패키지를 사용할 것입니다.

!pip install transformers


둘째, pyTorch와 weightwatcher를 가져와야 합니다.

import torch
import weightwatcher as ww


또한 weightwatcher 메트릭을 해석하는 데 도움이 되는 pandas 및 matplotlib 라이브러리가 필요합니다. Jupyter 노트북에서 이것은 다음과 같습니다.

import pandas as pd import matplotlib
import matplotlib.pyplot as plt
%matplotlib inline


이제 Transformers 패키지와 2개의 모델 클래스를 가져옵니다.

import transformers
from transformers import OpenAIGPTModel,GPT2Model


2개의 사전 훈련된 모델을 가져와서 실행해야 합니다. model.eval ()

gpt_model = OpenAIGPTModel.from_pretrained('openai-gpt')
gpt_model.eval(); gpt2_model = GPT2Model.from_pretrained('gpt2')
gpt2_model.eval();


WeightWatcher 로 GPT 모델을 분석하려면 감시자 인스턴스를 만들고 다음을 실행하기만 하면 됩니다. 감시자.분석(). 이렇게 하면 각 레이어에 대한 메트릭이 포함된 pandas 데이터 프레임이 반환됩니다.

watcher = ww.WeightWatcher(model=gpt_model)
gpt_details = watcher.analyze()


세부 데이터 프레임은 테스트 또는 학습 데이터에 액세스할 필요 없이 모델 성능을 분석하는 데 사용할 수 있는 품질 지표를 보고합니다. 가장 중요한 메트릭은 Power Law 메트릭입니다. 알파. WeightWatcher 보고서 알파 모든 레이어에 대해. GPT 모델은 거의 50개에 가까운 레이어를 가지고 있으므로 모든 레이어 알파를 한 번에 히스토그램으로 검사하는 것이 편리합니다(pandas API 사용).

gpt_details.alpha.plot.hist(bins=100, color='red', alpha=0.5, density=True, label='gpt')
plt.xlabel(r"alpha $(alpha)$ PL exponent")
plt.legend()


이것은 밀도를 나타냅니다. 알파 GPT 모델의 모든 레이어에 대한 값입니다.

이 히스토그램에서 모델의 2가지 문제를 즉시 확인할 수 있습니다.

  • 피크 알파심 4. 이는 잘 훈련된 모델에 대한 최적보다 높습니다.
  • 여러 이상치가 있습니다. alpha>6″ src=”https://xlera8.com/wp-content/uploads/2021/07/how-to-tell-if-you-have-trained-your-model-with-enough-data-8.png”>, indicating several poorly trained layers.
</li>
</ul>
<p>So knowing nothing about GPT, and having never seen the test or training data, WeightWatcher tells us that this model should never go into production.</p>
<p>Now let’s look GPT2, which has the same architecture, but trained with more and better data. Again, we make a <em>watche</em>r instance with the model specified, and just run <em>watcher.analyze()</em></p>
<div style=
    watcher = ww.WeightWatcher(model=gpt2_model)
    gpt2_details = watcher.analyze()


이제 GPT와 GPT2의 멱법칙 알파 측정항목을 비교해 보겠습니다. 각 모델에 대해 하나씩 2개의 히스토그램을 생성하고 오버레이합니다.

gpt_details.alpha.plot.hist(bins=100, color='red', alpha=0.5, density=True, label='gpt')
gpt2_details.alpha.plot.hist(bins=100, color='green', density=True, label='gpt2')
plt.xlabel(r"alpha $(alpha)$ PL exponent")
plt.legend()


GPT의 레이어 알파는 다음과 같습니다. 빨간, 그리고 GPT2의 경우 녹색, 히스토그램이 크게 다릅니다. GPT2의 경우 피크 $alphasim 3.5&bg=ffffff$ 그리고 더 중요한 것은 이상값이 없다는 것입니다. $latex alpha>6&bg=ffffff$ 작은 알파가 더 좋으며 GPT2 모델은 더 많고 더 나은 데이터.

WeightWatcher에는 모델을 평가하는 데 도움이 되는 많은 기능이 있습니다. 다음과 같은 작업을 수행할 수 있습니다.

  • 충분한 데이터로 훈련했는지 판단하는 데 도움이 됩니다(여기에 표시됨).
  • 과도하게 훈련된 잠재적 계층을 감지합니다(표시된 대로). 이전 블로그에서)
  • 조기 중지 기준을 얻는 데 사용됩니다(테스트 데이터를 볼 수 없을 때).
  • 모델과 하이퍼파라미터 전반에 걸쳐 테스트 정확도의 추세를 예측합니다(참조 우리의 자연지및 가장 최근 제출).

그리고 다른 많은 것들.

시도해 보십시오. 그리고 그것이 당신에게 유용하다면 알려주세요.

회사에서 AI에 대한 도움이 필요하면 연락하세요. 저는 전략 컨설팅, 멘토십, 실습 개발을 제공합니다. #talkToChuck, #theAIguy.

 
바이오 : 찰스 마틴 박사 UC Berkeley와의 공동 연구 노력으로 Weight Watcher 프로젝트를 개발했습니다. 그는 캘리포니아주 샌프란시스코에서 부티크 컨설팅 회사를 운영하며 고객이 AI 솔루션을 개발하도록 돕습니다. 그는 eBay, Blackrock, GoDaddy, Walmart와 같은 대기업뿐만 아니라 Aardvark(Google에서 인수) 및 Demand Media(Google 이후 첫 번째 XNUMX억 달러 IPO)와 같은 매우 성공적인 신생 기업과 함께 일했습니다. 또한 인류세 연구소를 통해 AI, 핵물리학, 양자역학/컴퓨팅 분야에 대해 페이지 패밀리 오피스에 자문을 제공합니다.

실물. 허가를 받아 다시 게시했습니다.

관련 :


PlatoAi. Web3 재창조. 데이터 인텔리전스 증폭.
액세스하려면 여기를 클릭하십시오.

출처: https://www.kdnuggets.com/2021/07/tell-model-trained-enough-data.html

spot_img

최신 인텔리전스

spot_img