Hugging Face에서 AllenNLP 사용하기
Hugging Face에서 AllenNLP 사용하기
allennlp는 다양한 언어 태스크에서 최신(state-of-the-art) 모델을 개발하기 위한 NLP 라이브러리예요. 현대 NLP의 공통 컴포넌트와 모델을 위한 고수준 추상화와 API를 제공하고, NLP 실험을 쉽게 실행하고 관리할 수 있게 해 주는 확장 가능한 프레임워크도 제공해요.
출처: 문서
본문
허브에서 allennlp 탐색하기
모델 페이지 왼쪽의 필터를 사용하면 허브에서 allennlp 모델을 찾을 수 있어요.
허브의 모든 모델은 유용한 기능과 함께 제공됩니다.
- 자동으로 호스팅되는 TensorBoard 트레이스가 있는 학습 메트릭 탭
- 검색 가능성을 돕는 메타데이터 태그
- 브라우저에서 직접 모델을 시험해 볼 수 있는 인터랙티브 위젯
- 추론 요청을 보낼 수 있는 Inference Providers 위젯
기존 모델 사용하기
Predictor 클래스를 사용하면 허브의 기존 모델을 로드할 수 있어요. from_path 메서드에 저장소 id를 "hf://" 접두사와 함께 사용하면 됩니다. 다음은 엔드투엔드 예제예요.
import allennlp_models
from allennlp.predictors.predictor import Predictor
predictor = Predictor.from_path("hf://allenai/bidaf-elmo")
predictor_input = {
"passage": "My name is Wolfgang and I live in Berlin",
"question": "Where do I live?"
}
predictions = predictor.predict_json(predictor_input)
이런 스니펫을 얻으려면 오른쪽 위의 Use in AllenNLP를 클릭하면 됩니다.
모델 공유하기
첫 번째 단계는 모델을 로컬에 저장하는 거예요. 예를 들어 archive_model 메서드로 모델을 model.tar.gz 파일로 저장할 수 있어요. 그다음 압축된 모델을 허브에 푸시하면 됩니다. allennlp로 모델을 학습하면 모델이 자동으로 직렬화(serialize)되므로 그것을 사용해도 좋아요.
AllenNLP CLI 사용하기
CLI로 푸시하려면 아래처럼 allennlp push_to_hf 명령을 사용하면 됩니다.
allennlp push_to_hf --repo_name test_allennlp --archive_path model
| 인자 | 타입 | 설명 |
|---|---|---|
--repo_name, -n |
str / Path |
허브의 저장소 이름. |
--organization, -o |
str | 파이프라인을 업로드할 조직 이름(선택). |
--serialization-dir, -s |
str / Path |
직렬화된 모델이 있는 디렉터리 경로. |
--archive-path, -a |
str / Path |
직렬화 경로 대신 압축된 모델(예: model/model.tar.gz)을 사용할 때 쓰는 플래그. |
--local-repo-path, -l |
str / Path |
모델 저장소의 로컬 경로(없으면 생성됨). 기본값은 현재 작업 디렉터리의 hub. |
--commit-message, -c |
str | 업데이트에 사용할 커밋 메시지. 기본값은 "update repository". |
Python 스크립트에서 사용하기
push_to_hf 함수는 bash 스크립트와 동일한 파라미터를 가져요.
from allennlp.common.push_to_hf import push_to_hf
serialization_dir = "path/to/serialization/directory"
push_to_hf(
repo_name="my_repo_name",
serialization_dir=serialization_dir,
local_repo_path=self.local_repo_path
)
잠시만 기다리면 모델이 허브에 올라가고, 브라우저에서 직접 시험해 보고, 커뮤니티와 공유할 수 있어요. 필요한 모든 메타데이터도 자동으로 업로드됩니다!
추가 자료
더 알아보기 (Learn more)
- AllenNLP 공식 문서에서
Predictor와 모델 아카이빙에 대해 더 배울 수 있어요. - 허브의
allennlp모델 목록을 탐색해 보세요.