Hugging Face Hub Search API 업데이트
Hugging Face는 모델, 데이터셋, Spaces를 검색할 수 있는 보다 직관적이고 프로그래밍 가능한 인터페이스를 제공하기 위해 huggingface_hub 라이브러리를 업데이트했습니다. 이러한 업데이트를 통해 사용자가 웹 인터페이스를 수동으로 탐색하거나 API 쿼리 매개변수를 추측할 필요가 없으며, Python 또는 Jupyter 환경 내에서 직접 복잡한 필터링을 수행할 수 있습니다.
ModelSearchArguments를 통한 간소화된 검색
ModelSearchArguments 및 DatasetSearchArguments 클래스는 사용자 친화적인 용어를 Hugging Face API에서 요구하는 특정 형식의 문자열로 매핑하는 읽기 쉬운 "cheat sheets" 역할을 합니다. 이를 통해 매개변수를 어떻게 작성해야 하는지 결정하는 시행착오 과정을 제거합니다.
사용 가능한 검색 속성
ModelSearchArguments 클래스는 다음과 같은 검색 가능한 속성을 위한 네임스페이스를 제공합니다:
- author: 모델 제작자로 필터링합니다.
- dataset: 학습에 사용된 데이터셋으로 필터링합니다 (예:
model_args.dataset.glue는'dataset:glue'를 반환합니다). - language: 모델의 언어로 필터링합니다.
- library: PyTorch와 같은 프레임워크로 필터링합니다 (예:
model_args.library.PyTorch는'pytorch'를 반환합니다). - license: 모델 라이선스로 필터링합니다.
- model_name: 특정 모델 이름으로 필터링합니다.
- pipeline_tag: Text Classification과 같은 작업으로 필터링합니다 (예:
model_args.pipeline_tag.TextClassification은'text-classification'을 반환합니다).
사용자는 api.list_models() 메서드에 filter 매개변수를 사용하여 이러한 인자를 전달함으로써 일치하는 모델을 검색할 수 있습니다.
ModelFilter를 통한 고급 필터링
여러 기준이나 기준당 여러 값을 포함하는 복잡한 쿼리의 경우, ModelFilter 클래스가 검색을 위한 조정된 접근 방식을 제공합니다. 단순한 문자열 대신, ModelFilter를 통해 사용자는 작업, 데이터셋, 라이브러리에 대한 요구 사항 목록을 정의할 수 있습니다.
예를 들어, 사용자는 다음 기준을 동시에 모두 충족하는 모델을 검색할 수 있습니다:
- Tasks:
text-classification과zero-shot-classification모두. - Datasets: Multi NLI와 GLUE 모두.
- Libraries: PyTorch와 TensorFlow 모두.
기술적 구현: AttributeDictionary
개선된 검색 경험은 AttributeDictionary라고 불리는 유틸리티 클래스에 의해 구동됩니다. fastcore 라이브러리의 AttrDict 클래스에서 영감을 받은 AttributeDictionary는 키에 대한 -탭 완성(tab-completion)을 가능하게 하여 탐색적 프로그래밍에 필수적인 기능을 강화합니다.
AttributeDictionary의 주요 특징
- Attribute Access: 키를 단순히 딕셔너리 키(예:
ad['key'])로 사용하는 대신 속성(예:ad.key)으로 액세스할 수 있습니다. - Nested Exploration: 중첩된 딕셔너리를 지원하여 API 응답의 심층 탐색을 가능 수 있게 합니다.
- Deletion:
del ad.key또는del ad[key]를 사용하여 키를 삭제할 수 있습니다. - Constraint: 키에 숫자나 특수 문자가 포함된 경우, Python 구문상 속성이 숫자로 시작하거나 특수 문자를 포함할 수 없으므로 표준 딕셔너리 인덱싱(
ad['key'])을 사용하여 액세스해야 합니다.
프로그래밍 방식의 모델 정보 조회
검색을 넘어, huggingface_hub 라이브러리는 사용자가 api.model_info('model_id') 메서드를 통해 특정 모델 ID를 사용하여 상세 정보를 조회할 수 있도록 합니다.
Sources
관련
- Dispatch
- Dispatch
- Dispatch
- Dispatch
- Dispatch