GPT-J-6B 모델 corlab 에서 사용해 보기 (corlab pro 필요)

GPT-J-6B 모델을 무료로 사용하기 위해서는 Hugging Face의 Transformers 라이브러리를 사용하면 됩니다. 아래는 Transformers 라이브러리를 사용하여 GPT-J-6B 모델을 로드하고 예측하는 예제 코드입니다.

from transformers import GPTJForCausalLM, GPT2Tokenizer

# GPT-J-6B 모델과 토크나이저 로드
tokenizer = GPT2Tokenizer.from_pretrained("EleutherAI/gpt-j-6B")
model = GPTJForCausalLM.from_pretrained("EleutherAI/gpt-j-6B")

# 입력 문장
input_text = "Hello, how are you?"

# 토큰화
input_ids = tokenizer.encode(input_text, return_tensors="pt")

# GPT-J-6B 모델에 입력하여 예측
output = model.generate(input_ids, max_length=50, do_sample=True)

# 디코딩하여 출력
generated_text = tokenizer.decode(output[0], skip_special_tokens=True)
print(generated_text)

위 코드에서 GPTJForCausalLM은 GPT-J-6B 모델 클래스를, GPT2Tokenizer는 GPT-J-6B 모델에 맞는 토크나이저를 의미합니다. 이 코드를 실행하면 “Hello, how are you? I’m doing well, thank you for asking.”와 같은 문장이 출력됩니다.

이 코드를 사용하기 위해서는 transformers 라이브러리가 설치되어 있어야 합니다. pip install transformers 명령어를 사용하여 라이브러리를 설치할 수 있습니다.

corlab에서는 다음과 같이 하시면 됩니다.

 

!pip install transformers

 

앞서 말씀드린것 처럼 자원을 많이 사용하므로 Colab Pro 를 사용하셔야 합니다.

git

 

GPT-J-6B : OpenAI가 공개한 GPT-3와 유사한 소스 코드 공개된 대형 언어 모델

GPT-J-6B는 OpenAI가 공개한 GPT-3와 유사한 대형 언어 모델로, 6억 개의 파라미터로 이루어져 있습니다. GPT-J-6B는 OpenAI GPT-3와 같은 능력을 갖춘 모델로, 다양한 자연어 처리 태스크를 수행할 수 있습니다. GPT-J-6B는 JAX와 함께 공개되어 있으며, GPU를 이용하여 대규모 데이터 세트에서 훈련되었습니다.

JAX는 구글에서 개발한 머신러닝 프레임워크로, 자동 미분과 GPU 가속화를 지원하여 고성능의 머신러닝 연산을 가능하게 합니다. GPT-J-6B는 JAX 프레임워크를 사용하여 훈련되었기 때문에, 해당 모델을 사용하기 위해서는 JAX 라이브러리가 필요합니다.

GPT-J-6B를 사용하기 위해서는 직접 다운로드해서 사용하는 것이 아니라, Hugging Face나 OpenAI와 같은 API를 통해 사용하는 것이 일반적입니다.
또한 구글의 Corlab도 이용가능합니다.(Pro 버전으로 업그레이드 필요)
그러나 여기서는 직접 다운로드해서 본인의 컴퓨터를 사용해 작동시키고 싶으신 분을 위한 안내입니다.

작업 환경 구성(윈도우의 경우)

GPT-J-6B 모델을 사용하기 위해서는 다음과 같은 라이브러리, 프레임워크, 컴퓨팅 자원이 필요합니다.

  1. Python 3.x 버전
    • GPT-J-6B는 Python 3.x 버전에서 작동합니다.
  2. JAX 라이브러리
    • GPT-J-6B는 JAX 프레임워크와 함께 제공됩니다.
    • JAX는 NumPy와 호환되며, 자동 미분과 XLA(accelerated Linear Algebra) JIT 컴파일 기능을 제공합니다.
    • JAX는 pip 패키지 매니저를 통해 설치할 수 있습니다. (ex. pip install jax)
  3. CUDA Toolkit 및 cuDNN
    • GPT-J-6B 모델은 GPU를 사용하여 작동합니다.
    • 따라서 NVIDIA GPU가 필요하며, NVIDIA GPU에 대한 CUDA Toolkit과 cuDNN이 설치되어 있어야 합니다.
    • CUDA Toolkit은 NVIDIA 개발자 사이트에서 다운로드 받을 수 있습니다.
  4. Hugging Face Transformers 라이브러리
    • GPT-J-6B 모델의 편의성을 위해 Hugging Face에서 제공하는 Transformers 라이브러리를 사용할 수 있습니다.
    • Transformers는 pip 패키지 매니저를 통해 설치할 수 있습니다. (ex. pip install transformers)

따라서, Windows에서 GPT-J-6B 모델을 사용하기 위해서는 다음과 같은 작업을 수행해야 합니다.

  1. Python 3.x 버전 설치
  2. JAX 라이브러리 설치
  3. CUDA Toolkit 및 cuDNN 설치
  4. Hugging Face Transformers 라이브러리 설치

앞서 말씀드린것 처럼 , GPT-J-6B 모델은 GPU를 사용하여 작동하기 때문에, GPU가 없는 PC에서는 작동하지 않습니다. 따라서, NVIDIA GPU를 장착한 PC가 필요합니다.

다운로드

GPT-J-6B 모델의 소스 코드는 공개되어 있습니다. 해당 모델의 소스 코드는 GitHub에서 확인할 수 있습니다..

https://github.com/kingoflolz/mesh-transformer-jax

 

OpenAI GPT API와의 차이

 

OpenAI GPT API는 클라우드 기반의 인공지능 API로, OpenAI에서 운영하고 있습니다. 사용자는 API를 호출하여 GPT 모델을 사용할 수 있으며, 인터넷에 연결되어 있어야 합니다. 반면에 GPT-J-6B는 다운로드해서 사용하는 오픈소스 모델로, 로컬 환경에서 동작합니다. 따라서 인터넷 연결이 필요하지 않습니다. 또한 GPT-J-6B는 OpenAI에서 운영하는 API와는 달리, 상업적 사용에 대한 라이선스 문제가 있을 수 있습니다. 따라서 상업적 용도로 사용하기 전에 관련 법규 및 라이선스를 확인하는 것이 좋습니다.