IT

Hugging Face제공 Abstract 텍스트 파일 저장 방법

esmile1 2024. 10. 22. 07:45

이번 포스팅에서는 Hugging Face에서 제공하는 수많은 기계 학습 모델 중에서 추출한 요약(Abstract)을 텍스트 파일에 저장하는 방법을 단계별로 접근할 수 있도록 검색내용을 요약정리 하였습니다.

Hugging Face는 100,000개 이상의 모델을 보유하고 있으며, 특히 Transformer 기반의 자연어 처리(NLP) 모델로 잘 알려져 있습니다.

< 요약된 20단계 가이드 >

  1. Hugging Face Hub 라이브러리 설치
  2. 필요한 Python 모듈 임포트
  3. HfApi 인스턴스 생성
  4. 모델 리스트 가져오기
  5. 모델 메타데이터 확인
  6. 요약이 포함된 모델 필터링
  7. 텍스트 파일 생성
  8. 모델마다 요약 저장 반복문 작성
  9. 100개 이상 모델 처리 위해 페이지네이션 적용
  10. 페이지네이션으로 모델 순차 처리
  11. 텍스트 파일에 여러 모델의 요약 저장
  12. 파일 닫기
  13. 출력 확인
  14. 데이터 추출 필터링 최적화
  15. 특정 태스크에 맞는 모델 필터링
  16. 진행 상황 로깅
  17. 에러 핸들링 추가
  18. Hugging Face 웹에서 추가 정보 확인
  19. 파일 포맷팅 개선
  20. 스크립트 실행 및 저장된 파일 확인

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

  1. huggingface.co - 요약
  2. huggingface.co - Hub에서 파일 다운로드하기
  3. YouTube - HuggingFace 처음이라면?
  4. datasciencebeehive.tistory.com - Hugging Face 설치하기
  5. YouTube - 인공지능 친해지기
  6. huggingface.co - 둘러보기
  7. huggingface.co - Download files from the Hub
  8. huggingface.co - Downloading models
  9. huggingface.co - Big data? 🤗 Datasets to the rescue!
  10. huggingface/datasets - GitHub Repository

'IT' 카테고리의 다른 글

OpenAI Assistants Playground  (0) 2024.10.21
OpenAI Swarm  (2) 2024.10.20
n8n 셀프호스팅  (1) 2024.10.20
Apple MDM Profile  (1) 2024.10.19
MacBook Pro Startup Keyboard Shortcuts  (5) 2024.10.19