이번 포스팅에서는 Hugging Face에서 제공하는 수많은 기계 학습 모델 중에서 추출한 요약(Abstract)을 텍스트 파일에 저장하는 방법을 단계별로 접근할 수 있도록 검색내용을 요약정리 하였습니다.
Hugging Face는 100,000개 이상의 모델을 보유하고 있으며, 특히 Transformer 기반의 자연어 처리(NLP) 모델로 잘 알려져 있습니다.
< 요약된 20단계 가이드 >
- Hugging Face Hub 라이브러리 설치
- 필요한 Python 모듈 임포트
- HfApi 인스턴스 생성
- 모델 리스트 가져오기
- 모델 메타데이터 확인
- 요약이 포함된 모델 필터링
- 텍스트 파일 생성
- 모델마다 요약 저장 반복문 작성
- 100개 이상 모델 처리 위해 페이지네이션 적용
- 페이지네이션으로 모델 순차 처리
- 텍스트 파일에 여러 모델의 요약 저장
- 파일 닫기
- 출력 확인
- 데이터 추출 필터링 최적화
- 특정 태스크에 맞는 모델 필터링
- 진행 상황 로깅
- 에러 핸들링 추가
- Hugging Face 웹에서 추가 정보 확인
- 파일 포맷팅 개선
- 스크립트 실행 및 저장된 파일 확인
Hugging Face는 기계 학습, 특히 자연어 처리(NLP) 분야에서 가장 널리 사용되는 플랫폼 중 하나로, 100,000개 이상의 모델을 제공합니다. 이 가이드에서는 Python과 Hugging Face의 라이브러리를 사용하여 모델의 요약을 다운로드하고, 이를 텍스트 파일로 저장하는 방법이 주 내용입니다.
1. Hugging Face 라이브러리 설치하기
먼저 Hugging Face에서 제공하는 huggingface_hub 라이브러리를 설치해야 합니다. 터미널 또는 명령 프롬프트에서 다음 명령어를 실행하세요:
pip install huggingface_hub transformers
이 명령어는 Hugging Face의 모델과 상호작용할 수 있는 모든 필수 패키지를 설치해 줍니다.
2. Python 모듈 임포트하기
이제 Python 코드에서 필요한 모듈들을 불러옵니다. 우리는 Hugging Face Hub API와 그 외 몇 가지 기본 모듈을 사용할 것입니다.
from huggingface_hub import HfApi
3. HfApi 인스턴스 생성하기
Hugging Face의 API 인스턴스를 생성하여 모델 데이터를 받아올 준비를 합니다. HfApi 객체는 Hugging Face 허브에 있는 모델 정보를 쉽게 불러올 수 있게 도와줍니다.
api = HfApi()
4. 모델 리스트 가져오기
이제 Hugging Face에서 제공하는 모델 리스트를 불러옵니다. 이때 한 번에 100개의 모델 정보를 받아올 수 있습니다.
models = api.list_models(limit=100)
5. 모델 메타데이터 확인하기
각 모델은 메타데이터를 포함하고 있으며, 여기서 모델의 요약(Abstract) 정보를 찾을 수 있습니다.
for model in models: print(model.modelId, model.description)
6. 요약이 포함된 모델 필터링하기
모델들 중에서 요약이 포함된 모델만 필터링하여 추출합니다. 모델 설명이 없는 경우도 있기 때문에 설명이 있는 모델만 선택해야 합니다.
abstracts = [(model.modelId, model.description) for model in models if model.description]
7. 텍스트 파일 생성하기
요약을 저장할 텍스트 파일을 생성합니다. 파일을 쓰기 모드로 열어 데이터를 저장할 준비를 합니다.
with open("huggingface_abstracts.txt", "w") as file:
8. 모델마다 요약 저장 반복문 작성하기
각 모델의 요약을 텍스트 파일에 저장하는 코드를 작성합니다. 앞서 필터링한 모델 목록을 이용하여 파일에 차례로 저장합니다.
for model_id, description in abstracts: file.write(f"Model: {model_id}\\\\nAbstract: {description}\\\\n\\\\n")
9. 100개 이상 모델 처리 위해 페이지네이션 적용하기
한 번에 100개 이상의 모델을 가져와야 할 경우 페이지네이션을 적용하여 여러 페이지에서 데이터를 가져옵니다.
models = api.list_models(limit=100, page=page_num)
10. 페이지네이션으로 모델 순차 처리하기
여러 페이지에 걸쳐 있는 모델을 처리하기 위해 페이지 번호를 순차적으로 증가시키며 데이터를 가져옵니다.
for page_num in range(1, total_pages): models = api.list_models(limit=100, page=page_num) # 모델 처리 코드 추가
11. 텍스트 파일에 여러 모델의 요약 저장하기
페이지네이션을 통해 가져온 모델들의 요약을 텍스트 파일에 차례로 저장합니다.
12. 파일 닫기
모든 요약 데이터를 저장한 후 파일을 닫아줍니다.
file.close()
13. 출력 확인하기
텍스트 파일이 잘 생성되었는지 확인한 후 파일의 내용을 살펴봅니다.
14. 데이터 추출 필터링 최적화하기
원하는 모델의 요약만을 효율적으로 저장할 수 있도록 데이터 추출 필터링을 최적화합니다. 예를 들어, 특정 키워드를 기준으로 필터링할 수 있습니다.
abstracts = [(model.modelId, model.description) for model in models if "transformer" in model.tags]
15. 특정 태스크에 맞는 모델 필터링하기
자연어 처리(NLP) 모델만을 추출하고 싶다면 태그를 기반으로 필터링할 수 있습니다.
abstracts = [(model.modelId, model.description) for model in models if "NLP" in model.tags]
16. 진행 상황 로깅하기
데이터 저장 과정을 모니터링하기 위해 진행 상황을 로그로 출력합니다.
print(f"Stored abstract for {model_id}")
17. 에러 핸들링 추가하기
모델 설명이 없는 경우 또는 기타 오류가 발생할 수 있으므로, 예외 처리를 추가하여 스크립트가 중단되지 않도록 합니다.
try: # 모델 처리 코드 except Exception as e: print(f"Error processing model {model_id}: {e}")
18. Hugging Face 허브에서 추가 정보 확인하기
각 모델에 대한 추가 정보를 Hugging Face 웹사이트에서 직접 확인할 수 있습니다.
url = f"<https://huggingface.co/{model_id}>"
19. 파일 포맷팅 개선하기
파일의 가독성을 높이기 위해 요약 간에 구분선을 추가하거나 날짜 등 추가 정보를 넣을 수 있습니다.
file.write(f"Model: {model_id}\\\\nAbstract: {description}\\\\n{'-'*40}\\\\n")
20. 스크립트 실행하기
최종적으로 스크립트를 실행하여 모든 모델의 요약을 텍스트 파일에 저장합니다.
마무리
이와 같은 방법으로 Hugging Face에서 제공하는 다양한 모델의 요약을 손쉽게 텍스트 파일로 저장할 수 있습니다. 이를 통해 필요한 모델들의 정보를 효율적으로 정리하고 관리할 수 있을 것입니다.
🌐 Sources
- huggingface.co - 요약
- huggingface.co - Hub에서 파일 다운로드하기
- YouTube - HuggingFace 처음이라면?
- datasciencebeehive.tistory.com - Hugging Face 설치하기
- YouTube - 인공지능 친해지기
- huggingface.co - 둘러보기
- huggingface.co - Download files from the Hub
- huggingface.co - Downloading models
- huggingface.co - Big data? 🤗 Datasets to the rescue!
- huggingface/datasets - GitHub Repository
'IT' 카테고리의 다른 글
AI와 노코드 기술의 융합 (6) | 2024.10.23 |
---|---|
Hugging Face를 이용해 arXiv에서 연구 논문 초록을 다운로드 (5) | 2024.10.22 |
OpenAI Assistants Playground (3) | 2024.10.21 |
OpenAI Swarm (2) | 2024.10.20 |
n8n 셀프호스팅 (1) | 2024.10.20 |