Hub documentation
작업
작업
과제란 무엇인가요?
Task, 또는 pipeline type은 각 모델 API의 “형태”(입력과 출력)를 설명하며, 주어진 모델에 대해 어떤 Inference API와 위젯을 표시할지 결정하는 데 사용됩니다.

이 분류는 상대적으로 거친 수준입니다(모델 태그에 더 세분화된 작업 이름을 추가할 수 있으므로) 따라서 새 작업을 생성해야 하는 경우는 드뭅니다. 새 작업에 대한 지원을 추가하려면 이 문서에서 필요한 단계를 설명합니다.
개요
Hub에 새로운 작업이 통합되면 다음과 같은 이점이 있습니다:
- 사용자는 특정 작업의 모든 모델 – 및 데이터셋 – 을 검색할 수 있습니다.
- Inference API는 해당 작업을 지원합니다.
- 사용자는 위젯을 통해 모델을 직접 사용해 볼 수 있습니다. 🏆
모든 단계를 직접 구현할 필요는 없습니다. 새로운 태스크를 추가하는 것은 커뮤니티의 노력이며, 여러 사람이 기여할 수 있습니다. 🧑🤝🧑
프로세스를 시작하려면 huggingface_hub 저장소에서 새로운 이슈를 생성하세요. “Adding a new task” 템플릿을 사용하세요. ⚠️코딩을 시작하기 전에 이 문서를 검토하는 것이 좋습니다. ⚠️
첫 단계는 제안한 작업을 위한 모델을 업로드하는 것입니다. Hub에 새 작업을 위한 모델이 있으면, 다음 단계는 Inference API에서 해당 모델을 활성화하는 것입니다. 선택할 수 있는 지원 유형은 세 가지입니다:
- 🤗
transformers모델 사용 - 🐳 공식적으로 지원되는 라이브러리의 모델 사용
- 🖨️ 커스텀 추론 코드를 사용하여 모델을 사용하는 방법. 이 실험적 옵션에는 단점이 있으므로 다른 접근 방식을 사용하는 것을 권장합니다.
마지막으로, Hub에서 통합을 완성하는 작업 아이콘과 위젯과 같은 몇 가지 UI 요소를 추가할 수 있습니다. 📷
일부 단계는 독립적이며 순서대로 수행할 필요가 없습니다. 아이콘을 추가하려면 Inference API가 필요하지 않습니다. 즉, 아직 완전한 통합이 이루어지지 않았더라도 사용자는 특정 작업의 모델을 검색할 수 있습니다.
Hub에 새 작업 추가
Hugging Face transformers 라이브러리 사용
모델이 transformers 기반 모델인 경우, Inference API 작업과 pipeline 클래스 사이에 1:1 매핑이 존재합니다. transformers 라이브러리에서 가져온 몇 가지 예시 PR은 다음과 같습니다:
pipeline가 제출되고 배포되면, 해당 모델에 대해 Inference API를 사용할 수 있습니다.
지원되는 라이브러리를 사용하여 Community Inference API 사용
Hub는 Community Inference API에서 10개 이상의 오픈소스 라이브러리를 지원합니다.
새로운 작업을 추가하는 것은 비교적 간단하며 2개의 PR이 필요합니다:
- PR 1: API에 새 작업 추가 validation. 이 코드는 주어진 작업에 대해 추론 입력이 유효한지 확인합니다. PR 예시:
- PR 2: 라이브러리 docker 이미지에 새 작업을 추가합니다. 또한 다른 라이브러리에 작업을 통합하기 쉽게 하려면 템플릿도 추가해야 합니다.
docker_images/common/app/pipelines다음은 예시 PR입니다:
빠른 프로토타이핑을 위한 커뮤니티 추론 API 추가
내 모델이 어떤 라이브러리에서도 지원되지 않습니다. 끝이 아닌가요? 😱
이러한 사용 사례에는 Hugging Face Spaces 사용을 권장합니다.
UI 요소
Hub에서는 사용자가 특정 작업별로 모델을 필터링할 수 있습니다. 이를 위해 작업을 여러 위치에 추가해야 합니다. 또한 해당 작업에 사용할 아이콘도 선택할 수 있습니다!
Types.ts에 작업 유형을 추가합니다
huggingface.js/packages/tasks/src/pipelines.ts에서 몇 가지 작업을 수행해야 합니다
PIPELINE_DATA에 유형을 추가합니다. 파이프라인 유형은 NLP, 오디오, 컴퓨터 비전 등 여러 범주로 분류됩니다.- huggingface.js/packages/tasks/src/tasks/index.ts 파일의 사소한 변경 사항도 채워 넣어야 합니다.
- 아이콘을 선택하세요
lib/Icons 디렉토리에 아이콘을 추가할 수 있습니다. 보통 https://icones.js.org/collection/carbon에서 carbon 아이콘을 선택합니다. 또한 아이콘을 PipelineIcon에도 추가하세요.
위젯
작업이 프로덕션에 배포된 후, 사용자가 브라우저에서 모델을 직접 조작할 수 있는 방법을 구현하는 것보다 더 흥미로운 일이 있을까요? 🤩 모든 위젯은 여기에서 찾을 수 있습니다.
위젯 기여에 관심이 있으시다면, 모든 위젯의 구현을 참고해 보실 수 있습니다.
Update on GitHub