Hugging Face Transformers: 오픈소스 머신러닝 입문 가이드

Hugging Face는 비기술 사용자들을 위해 오픈소스 머신러닝(ML)을 쉽게 이해할 수 있도록 설계된 초보자용 가이드를 공개했습니다. 이 가이드는 Hugging Face Transformers 라이브러리를 사용하여 대형 언어 모델(LLM), 특히 Microsoft의 Phi-2를 호스팅 환경에서 실행하는 실용적인 단계별 안내를 제공합니다.

Hugging Face 생태계 이해하기

Hugging Face 생태계는 사전 학습된 모델의 배포와 사용을 간소화하는 여러 상호 연결된 도구들로 구성됩니다.

Hugging Face Transformers 라이브러리

Transformers 라이브러리는 자연어 처리(NLP), 컴퓨터 비전, 오디오 작업을 위한 수천 개의 사전 학습 모델에 접근할 수 있는 오픈소스 Python 라이브러리입니다. PyTorch, TensorFlow, JAX와 같은 하위 수준 ML 프레임워크의 복잡성을 추상화하여 사용자가 코드를 처음부터 작성하지 않고도 모델을 구현할 수 있게 합니다.

Hugging Face Hub

Hub는 머신러닝을 위한 GitHub와 유사한 협업 플랫폼으로, 커뮤니티가 오픈소스 모델과 데이터셋을 호스팅합니다. Transformers 라이브러리는 Hub와 직접 통합되어 모델을 다운로드하고 배포할 수 있습니다.

Hugging Face Spaces

Spaces는 Hub에서 제공되는 서비스로, 사용자가 웹 기반 ML 데모와 애플리케이션을 구축하고 배포할 수 있게 합니다. Docker 템플릿(미리 정의된 소프트웨어 환경 청사진)의 사용을 지원하여 JupyterLab 노트북과 같은 일관된 애플리케이션을 빠르게 배포할 수 있습니다.

LLM 실행을 위한 기술 요구사항

대형 언어 모델을 실행하려면 성능과 호환성을 보장하기 위한 특정 하드웨어 및 소프트웨어 구성이 필요합니다.

GPU 가속

CPU도 일부 애플리케이션을 처리할 수 있지만, LLM은 효율적인 작동을 위해 그래픽 처리 장치(GPU)의 병렬 연산 능력이 필요합니다. 예를 들어, Phi-2 모델을 실행하려면 24GB VRAM을 갖춘 NVIDIA A10G와 같은 충분한 메모리를 가진 GPU가 필요합니다.

소프트웨어 종속성

Transformers 라이브러리를 통해 모델을 실행하려면 사용자는 라이브러리 자체와 지원 프레임워크를 설치해야 합니다. Transformers 라이브러리는 다른 프레임워크 위에 구축되어 있기 때문에 PyTorch, TensorFlow 또는 JAX 중 하나를 설치해야 합니다.

핵심 머신러닝 개념

이 가이드는 오픈소스 모델과 상호 작용하기 위해 필요한 여러 기본 프로그래밍 및 ML 개념을 정의합니다.

클래스와 객체

Python에서 클래스는 객체를 생성하기 위한 “레시피” 역할을 합니다. 이 가이드는 model 객체와 tokenizer 객체라는 두 개의 필수 객체를 만들기 위해 클래스를 활용합니다. 이를 통해 속성과 함수를 함께 묶어 코딩 과정을 단순화할 수 있습니다.

토큰화와 디코딩

모델은 원시 텍스트를 처리할 수 없으며 숫자 값만 이해합니다. 토크나이저는 문장을 더 작은 조각(토큰)으로 나누고 각 토큰에 숫자 입력 ID를 할당하는 도구입니다. 이 과정을 인코딩이라고 합니다. 모델의 숫자 출력을 사람이 읽을 수 있게 하려면 토크나이저가 디코딩이라는 역과정을 수행해야 합니다.

기본 모델과 인스트럭션 튜닝 모델

다양한 모델이 프롬프트에 반응하는 방식에는 중요한 차이가 있습니다:

  • 기본 모델: 본질적으로 거대한 자동 완성 엔진입니다. 학습 데이터에 기반해 가장 가능성이 높은 다음 토큰을 예측합니다. Microsoft의 Phi-2는 기본 모델이므로 대화형으로 직접 명령에 응답하지 않을 수 있습니다.
  • 인스트럭션 튜닝 모델: 기본 모델에 추가 학습을 진행하여 특정 사용자 명령이나 프롬프트를 이해하고 응답하도록 만든 모델로, 채팅 기반 상호작용에 더 적합합니다.

구현 워크플로우

Phi-2와 같은 모델에 대한 추론을 실행하려면, 가이드는 다음과 같은 기술 워크플로우를 제시합니다:

  1. Environment Setup: JupyterLab Docker 템플릿과 NVIDIA A10G GPU를 사용하여 Hugging Face Space를 생성합니다.
  2. Installation: !pip install을 사용하여 torch(PyTorch)와 transformers 라이브러리를 설치합니다.
  3. Loading: AutoModelForCausalLMAutoTokenizer 클래스를 사용하여 특정 model_id(예: "microsoft/phi-2")를 통해 Hub에서 모델과 토크나이저를 로드합니다.
  4. Processing: 토크나이저를 사용해 입력 텍스트를 input_ids로 인코딩합니다.
  5. Generation: 모델 객체의 .generate 메서드를 사용해 숫자 출력을 생성합니다.
  6. Output: 토크나이저의 .decode 메서드를 사용해 숫자 출력을 텍스트로 디코딩합니다.

SUMMARY: Hugging Face는 Transformers 라이브러리와 Hub를 사용하여 Microsoft의 Phi-2와 같은 오픈소스 머신러닝 모델을 배포하고 실행하는 포괄적인 입문 가이드를 제공합니다.

TITLE: Hugging Face Transformers: 오픈소스 머신러닝 입문 가이드

Sources