Hugging Face에서 spaCy 사용하기
Hugging Face에서 spaCy 사용하기
spaCy는 산업 전반에서 널리 쓰이는 고급 자연어 처리(NLP) 라이브러리예요. 개체명 인식, 텍스트 분류, 품사 태깅 같은 작업을 위한 파이프라인을 쉽게 사용하고 학습시킬 수 있고, 대량의 텍스트를 처리·분석하는 강력한 앱을 만들 수 있게 해줘요.
Hub에 올라온 공식 spaCy 모델을 pip로 바로 설치해 쓸 수 있어요.
출처: 문서
본문
Hub에서 spaCy 모델 둘러보기
spaCy 3.3의 공식 모델은 spaCy 조직 페이지에 있어요. 커뮤니티 누구나 자신의 spaCy 모델을 공유할 수 있는데, 모델 페이지 왼쪽 필터로 찾을 수 있어요.
Hub의 모든 모델은 유용한 기능을 갖추고 있어요:
- 라벨 스킴, 메트릭, 구성요소 등을 담은 자동 생성 모델 카드.
- 메트릭을 볼 수 있는 오른쪽 위의 평가 섹션.
- 발견 가능성을 높이고 라이선스·언어 같은 정보를 담은 메타데이터 태그.
- 브라우저에서 모델을 직접 가지고 놀 수 있는 인터랙티브 위젯.
- 추론 요청을 할 수 있는 Inference Providers 위젯.
기존 모델 사용하기
Hub의 모든 spaCy 모델은 pip install로 바로 설치할 수 있어요.
pip install "en_core_web_sm @ https://huggingface.co/spacy/en_core_web_sm/resolve/main/en_core_web_sm-any-py3-none-any.whl"
관심 있는 링크를 찾으려면 spaCy 모델이 있는 리포지토리를 열면 돼요. 리포지토리를 열면 Use in spaCy를 클릭해서 모델을 설치·로드할 수 있는 동작 스니펫을 얻을 수 있어요!
설치 후에는 어떤 spaCy 파이프라인이든 로드할 수 있어요.
# Using spacy.load().
import spacy
nlp = spacy.load("en_core_web_sm")
# Importing as module.
import en_core_web_sm
nlp = en_core_web_sm.load()
모델 공유하기
spaCy CLI 사용하기 (권장)
spacy-huggingface-hub 라이브러리는 spaCy 네이티브 CLI를 확장해서 패키지된 모델을 쉽게 Hub에 푸시할 수 있게 해줘요.
pip로 spacy-huggingface-hub을 설치할 수 있어요:
pip install spacy-huggingface-hub
명령어가 잘 등록됐는지 확인할 수 있어요:
python -m spacy huggingface-hub --help
CLI로 푸시하려면 아래처럼 huggingface-hub push 명령어를 사용해요.
python -m spacy huggingface-hub push [whl_path] [--org] [--msg] [--local-repo] [--verbose]
| 인자 | 타입 | 설명 |
|---|---|---|
whl_path |
str / Path |
spacy package로 패키지된 .whl 파일 경로. |
--org, -o |
str | 파이프라인을 업로드할 조직의 선택적 이름. |
--msg, -m |
str | 업데이트에 사용할 커밋 메시지. 기본값은 "Update spaCy pipeline". |
--local-repo, -l |
str / Path |
모델 리포지토리 로컬 경로 (없으면 생성됨). 기본값은 현재 작업 디렉터리의 hub. |
--verbose, -V |
bool | 디버깅용 추가 정보 출력 (예: 생성된 전체 hub 메타데이터). |
spacy package로 패키지된 파이프라인은 뭐든 업로드할 수 있어요. 바이너리 .whl 파일을 출력하려면 --build wheel을 설정해야 해요. 업로더는 자동 생성된 README.md와 meta.json에 담긴 모델 정보를 포함해 파이프라인 패키지의 모든 메타데이터를 읽어요.
hf auth login
python -m spacy package ./en_ner_fashion ./output --build wheel
cd ./output/en_ner_fashion-0.0.0/dist
python -m spacy huggingface-hub push en_ner_fashion-0.0.0-py3-none-any.whl
1분쯤이면 패키지된 모델을 Hub에 올리고, 브라우저에서 바로 시험해보고, 커뮤니티와 공유할 수 있어요. 필요한 모든 메타데이터가 자동으로 업로드되고 멋진 모델 카드까지 받아요.
이 명령은 두 가지를 출력해요:
- Hub에서 리포지토리를 찾을 위치! 예: https://huggingface.co/spacy/en_core_web_sm
- Hub에서 파이프라인을 바로 설치하는 방법!
파이썬 스크립트에서
Python에서 push 함수를 사용할 수 있어요. 이 함수는 게시된 모델의 "url"과 "whl_url"(휠 파일)을 담은 딕셔너리를 반환하고, 나중에 pip install로 설치할 수 있어요.
from spacy_huggingface_hub import push
result = push("./en_ner_fashion-0.0.0-py3-none-any.whl")
print(result["url"])
추가 자료
더 알아보기 (Learn more)
- NLP 파이프라인 모델을
spacy-huggingface-hubCLI로 쉽게 Hub에 공유할 수 있어요. from_pretrained방식 대신spacy.load()나 모듈 임포트로 모델을 로드해요.- 모델 카드 문서에서 자동 생성 카드에 담기는 내용을 확인해 보세요.