GPT-2 124m, 345m, 774m 및 1.5B 변압기 모델 용 사용하기 쉬운 래퍼
무엇입니까? • 설치 • 시작하기

Rishabh Anand에 의해 제작 • https://rish-16.github.io
GPT-2는 OpenAI가 텍스트 생성을 위해 개발 한 자연어 처리 모델입니다. 인터넷에서 40GB의 텍스트로 훈련 된 GPT (생성 사전 훈련 된 변압기) 모델의 후임자입니다. 그것은 2017 년에 종이가 필요한 모든 것만으로도주의를 기울이는 변압기 모델을 특징으로합니다.이 모델에는 124M , 345M , 774M 및 1558M 의 4 가지 버전이 있습니다.
1.5B 모델은 현재 OpenAI에서 출시 된 가장 큰 모델입니다.
마지막으로, gpt2-client 동일한 기능을 특징으로하지만 접근성, 이해력 및 유도를 갖춘 원래 gpt-2 저장소 주변의 래퍼입니다. 5 줄 미만의 코드로 4 개의 GPT-2 모델을 모두 가지고 놀 수 있습니다.
*참고 :이 클라이언트 래퍼는 직간접 적으로 발생하는 손상에 대해 책임을지지 않습니다. 모델에서 언급 한 이름, 장소 및 물건은 허구이며 실제 실체 나 조직과 유사하지 않습니다. 샘플은 필터링되지 않으며 공격적인 콘텐츠를 포함 할 수 있습니다. 사용자 재량권 조언.*
pip 통해 클라이언트를 설치하십시오. 이상적으로, gpt2-client Python> = 3.5 및 Tensorflow> = 1.x 에 대해 잘 지원됩니다. Python 2.x를 사용하는 경우 일부 라이브러리는 pip 통해 --upgrade 플래그를 사용하여 다시 설치하거나 업그레이드해야 할 수 있습니다.
pip install gpt2-client참고 :
gpt2-clientTensorflow 2.0과 호환되지 않습니다 . Tensorflow 1.14.0을 사용해보십시오.
1. 모델 가중치 및 체크 포인트를 다운로드하십시오
from gpt2_client import GPT2Client
gpt2 = GPT2Client ( '124M' ) # This could also be `355M`, `774M`, or `1558M`. Rename `save_dir` to anything.
gpt2 . load_model ( force_download = False ) # Use cached versions if available. 이것은 현재 작업 디렉토리에서 models 이라는 디렉토리를 생성하고 모델에 필요한 가중치, 체크 포인트, 모델 JSON 및 하이퍼 파라미터를 다운로드합니다. load_model() 함수를 호출 한 후에는 models 디렉토리에서 파일이 다운로드를 완료했다고 가정하면 다시 호출 할 필요가 없습니다.
참고 : set
force_download=True기존 캐시 된 모델 가중치 및 체크 포인트를 덮어 쓰십시오.
2. 텍스트 생성 시작!
from gpt2_client import GPT2Client
gpt2 = GPT2Client ( '124M' ) # This could also be `355M`, `774M`, or `1558M`
gpt2 . load_model ()
gpt2 . generate ( interactive = True ) # Asks user for prompt
gpt2 . generate ( n_samples = 4 ) # Generates 4 pieces of text
text = gpt2 . generate ( return_text = True ) # Generates text and returns it in an array
gpt2 . generate ( interactive = True , n_samples = 3 ) # A different prompt each time앞서 언급 한 샘플에서 생성 옵션이 매우 유연하다는 것을 알 수 있습니다. 어떤 종류의 텍스트를 생성 해야하는지, 여러 덩어리 또는 한 번에 하나씩 프롬프트를 사용하여 혼합 및 일치 할 수 있습니다.
3. 프롬프트 배치에서 텍스트 생성
from gpt2_client import GPT2Client
gpt2 = GPT2Client ( '124M' ) # This could also be `355M`, `774M`, or `1558M`
gpt2 . load_model ()
prompts = [
"This is a prompt 1" ,
"This is a prompt 2" ,
"This is a prompt 3" ,
"This is a prompt 4"
]
text = gpt2 . generate_batch_from_prompts ( prompts ) # returns an array of generated text4. GPT-2에 맞춤형 데이터 세트를 미세 조정합니다
from gpt2_client import GPT2Client
gpt2 = GPT2Client ( '124M' ) # This could also be `355M`, `774M`, or `1558M`
gpt2 . load_model ()
my_corpus = './data/shakespeare.txt' # path to corpus
custom_text = gpt2 . finetune ( my_corpus , return_text = True ) # Load your custom dataset사용자 정의 코퍼스 또는 데이터 세트에 GPT-2를 미세 조정하려면 GPU 또는 TPU를 보유하는 것이 이상적입니다. Google Colab은 사용자 정의 모델을 다시 훈련/미세 조정하는 데 사용할 수있는 도구 중 하나입니다.
5. 텍스트 시퀀스 인코딩 및 디코딩
from gpt2_client import GPT2Client
gpt2 = GPT2Client ( '124M' ) # This could also be `355M`, `774M`, or `1558M`
gpt2 . load_model ()
# encoding a sentence
encs = gpt2 . encode_seq ( "Hello world, this is a sentence" )
# [15496, 995, 11, 428, 318, 257, 6827]
# decoding an encoded sequence
decs = gpt2 . decode_seq ( encs )
# Hello world, this is a sentence 제안, 개선 및 개선 사항은 항상 환영합니다! 문제가 있으면 문제 섹션에서 문제를 제기하십시오. 개선 된 경우 PR을 만들기 전에 제안을 논의하기 위해 문제를 제기하십시오.
모든 아이디어 - 아무리 터무니 없더라도 환영합니다!
오픈 소스는 정말 재미 있습니다. 당신의 기부금은 나에게 새로운 아이디어를 생생하게 할 수 있도록 동기를 부여합니다. 내 오픈 소스 노력을 지원하는 데 관심이 있다면 기부하십시오-그것은 나에게 많은 것을 의미합니다!
MIT