<p align="center">
<img src="https://raw.githubusercontent.com/huggingface/optimum-graphcore/HEAD/readme_logo.png" />
</p>
Optimum Graphcore
🤗 Optimum Graphcore는 🤗 Transformers 라이브러리와 Graphcore IPU 사이의 인터페이스입니다.
이것은 모델 병렬화 및 IPU 로딩, 훈련, 미세 조정(fine-tuning), 추론에 필요한 도구 세트를 제공하며, 🤗 Transformers가 이미 지원하는 모든 작업에서 작동하고 🤗 Hub와 그곳에 있는 모든 모델과 기본적으로 호환됩니다.
지능형 처리 장치(Intelligence Processing Unit, IPU)란 무엇인가?
Hugging Face 블로그 게시물의 인용문:
IPUs는 Graphcore의 IPU-POD 데이터센터 컴퓨팅 시스템에 동력을 공급하는 프로세서입니다. 이 새로운 유형의 프로세서는 AI 및 머신러닝의 매우 특정한 계산 요구 사항을 지원하도록 설계되었습니다. 세밀한 병렬성(fine-grained parallelism), 저정밀도 산술, 희소성을 처리할 수 있는 능력과 같은 특징들이 우리의 실리콘에 내장되어 있습니다.
GPU와 같은 SIMD/SIMT 아키텍처를 채택하는 대신, Graphcore의 IPU는 프로세서 코어 바로 옆, 즉 실리콘 다이 위에 초고대역폭 메모리를 갖춘 대규모 병렬 MIMD 아키텍처를 사용합니다.
이 설계는 오늘날 가장 인기 있는 모델인 BERT나 EfficientNet을 실행하든, 차세대 AI 애플리케이션을 탐색하든 높은 성능과 새로운 수준의 효율성을 제공합니다.
Poplar SDK 설정
이 라이브러리를 사용하려면 Poplar SDK 환경을 활성화해야 합니다. Graphcore의 Getting Started 가이드를 참조하십시오.
설치
이 패키지의 최신 릴리스를 설치하려면:
pip install optimum-graphcore
Optimum Graphcore는 빠르게 발전하는 프로젝트이므로 소스에서 설치하는 것이 좋을 수 있습니다.
pip install git+https://github.com/huggingface/optimum-graphcore.git
개발자 모드에서 설치하기
만약 optimum-graphcore 코드를 작업하고 있다면, 다음처럼 클론하여 optimum과 optimum-graphcore를 편집 가능(editable) 방식으로 설치해야 합니다:
git clone https://github.com/huggingface/optimum --branch v1.6.1-release
git clone https://github.com/huggingface/optimum-graphcore
pip install -e optimum -e optimum-graphcore
이제 코드를 변경할 때마다 해당 변경 사항을 즉시 실행해 볼 수 있습니다.
예제 실행하기
examples 디렉토리에는 여러 개의 예제가 제공됩니다. 각 예제는 Optimum Graphcore를 사용하여 IPU에서 실행하는 명령어 라인을 담은 README 파일을 포함하고 있습니다.
모든 예제의 요구 사항을 설치해 주세요:
cd <example-folder>
pip install -r requirements.txt
Optimum Graphcore 사용 방법
🤗 Optimum Graphcore는 하나의 목표를 염두에 두고 설계되었습니다: IPU의 모든 성능을 활용하면서 어떤 🤗 Transformers 사용자에게도 훈련 및 평가를 간단하게 만듭니다.
이전에 이미 🤗 Transformers를 사용하고 있다면 최소한의 변경만 필요합니다.
주어진 입력(텍스트, 이미지, 오디오 등)에 모델을 즉시 사용하려면 pipeline API를 지원합니다:
->>> from transformers import pipeline
+>>> from optimum.graphcore import pipeline
...
또한 Trainer API를 사용하는 것도 매우 쉽습니다:
-from transformers import Trainer, TrainingArguments
+from optimum.graphcore import IPUConfig, IPUTrainer, IPUTrainingArguments
...
더 자세한 정보는 전체 🤗 Optimum Graphcore 문서를 참조하세요.
지원되는 모델
🤗 Optimum Graphcore에서 현재 다음 모델 아키텍처와 태스크를 지원합니다:
| 사전 학습 (Pre-Training) | 마스킹된 LM (Masked LM) | 인과적 LM (Causal LM) | Seq2Seq LM (요약, 번역 등) | 시퀀스 분류 (Sequence Classification) | 토큰 분류 (Token Classification) | 질문 답변 (Question Answering) | 객관식 (Multiple Choice) | 이미지 분류 (Image Classification) | CTC |
|---|
| BART | ✅ | | ❌ | ✅ | ✅ | | ❌ | | | |
| ... | | | | | | | | | | |
| If you find any issue while using those, please open an issue or a pull request. | | | | | | | | | | |