Hugging Face는 머신러닝(ML)과 데이터 사이언스 플랫폼 및 커뮤니티로, 사용자들이 머신러닝 모델을 구축, 배포 및 훈련할 수 있도록 돕습니다.
이 플랫폼은 실시간 애플리케이션에서 인공 지능(AI)을 시연, 실행 및 배포할 수 있는 인프라를 제공합니다. 사용자들은 다른 사람들이 업로드한 모델과 데이터 세트를 찾아볼 수도 있습니다. Hugging Face는 개발자들이 자신의 작업을 공개적으로 공유하고 테스트할 수 있게 해주기 때문에 머신러닝의 GitHub로 종종 불립니다.
Hugging Face는 Transformers Python 라이브러리로 유명하며, 이 라이브러리는 ML 모델을 다운로드하고 훈련하는 과정을 단순화합니다. 이 라이브러리를 통해 개발자들은 Hugging Face에서 호스팅되는 ML 모델 중 하나를 자신들의 작업 흐름에 효율적으로 포함시키고 ML 파이프라인을 만들 수 있습니다.
이 플랫폼은 오픈 소스 특성과 배포 도구 때문에 중요합니다. 이는 사용자들이 자원, 모델, 연구를 공유하고 모델 훈련 시간, 자원 소비 및 AI 개발의 환경적 영향을 줄일 수 있도록 허용합니다.
Hugging Face Inc.는 Hugging Face 플랫폼을 창출한 미국 기업으로, 2016년 프랑스 기업가 클레멘트 델랑그(Clement Delangue), 줄리앙 쇼몽드(Julien Chaumond) 및 토마스 울프(Thomas Wolf)에 의해 뉴욕시에서 설립되었습니다. 이 회사는 원래 청소년을 위한 동명의 채팅봇 앱을 개발했으며, 채팅봇 앱의 모델을 오픈 소스화 한 후 머신러닝 플랫폼으로의 초점을 전환했습니다.
2023년에는 이 회사가 아마존 웹 서비스와 파트너십을 체결하여 Hugging Face 제품을 AWS 고객이 사용자 정의 애플리케이션을 구축하기 위해 사용할 수 있도록 만드는 것을 발표했습니다. 구글, 아마존 및 엔비디아는 이 글을 작성하는 시점에서 이 스타트업에 투자한 몇몇 회사들 중 일부입니다.
Hugging Face의 활용
Hugging Face는 AI 플랫폼 및 지원 커뮤니티로 다양한 방법으로 활용됩니다. 커뮤니티 멤버들은 Hugging Face를 사용하여 아래와 같은 활동을 수행합니다:
- 머신러닝 모델 구현: 사용자들은 머신러닝 모델을 플랫폼에 업로드할 수 있습니다. 자연어 처리(NLP), 컴퓨터 비전, 이미지 생성 및 오디오와 같은 다양한 기능을 위한 모델이 있습니다.
- 머신러닝 모델 공유 및 발견: Spaces 및 Hugging Face Transformers 라이브러리를 통해 연구자와 개발자들은 커뮤니티와 모델을 공유할 수 있습니다. 다른 사용자들은 이러한 모델을 다운로드하여 자신의 애플리케이션에서 사용할 수 있습니다.
- 데이터셋 공유 및 발견: 연구자와 개발자들은 머신러닝 모델을 훈련시키기 위한 데이터셋을 공유하거나 Datasets 라이브러리를 통해 모델을 훈련시키기 위한 데이터셋을 찾을 수 있습니다.
- 모델 미세조정: 사용자들은 Hugging Face의 애플리케이션 프로그래밍 인터페이스(API) 도구를 사용하여 딥러닝 모델을 미세조정하고 훈련할 수 있습니다.
- 데모 호스팅: Hugging Face는 사용자들이 머신러닝 모델의 인터랙티브하고 브라우저 내 데모를 생성할 수 있도록 합니다. 이를 통해 사용자들은 모델을 더 쉽게 전시하고 테스트할 수 있습니다.
- 연구: Hugging Face는 BigScience 연구 워크숍과 같은 공동 연구 프로젝트에 참여하여 NLP 분야를 발전시키려는 노력을 하고 있습니다. 또한 사이트는 엄선된 연구 논문 목록이 있는 페이지를 호스팅합니다.
- 비즈니스 애플리케이션 개발: Hugging Face의 Enterprise Hub는 비즈니스 사용자들이 개인 호스팅 환경에서 트랜스포머, 데이터셋 및 오픈 소스 라이브러리를 사용할 수 있도록 지원합니다.
- ML 모델 평가: Hugging Face는 머신러닝 모델과 데이터셋을 평가하기 위한 코드 라이브러리에 접근할 수 있도록 제공합니다.
이러한 기능들은 Hugging Face를 매우 유연하고 다양한 용도로 사용할 수 있는 플랫폼으로 만들며, 많은 사람들에게 AI 및 ML 분야에서 협업하고 학습하는 데 도움이 됩니다.
Hugging Face의 주요 기능
- 모델: Hugging Face는 사용자들이 유형별로 필터링할 수 있는 대규모 모델 라이브러리를 호스팅합니다. Hugging Face에는 300,000개 이상의 모델이 있습니다. Hugging Face는 또한 플랫폼에서 상위 오픈 소스 ML 모델을 호스팅합니다. 리더보드에 있는 일부 모델은 다음과 같습니다:
- stabilityai/stable-diffusion-xl-base-1.0.
- WizardLM/WizardCoder-Python-34B-V1.0.
- Phind/Phind-CodeLlama-34B-v2.
- 데이터셋: 데이터셋은 모델이 데이터 간의 패턴과 관계를 이해하는 데 도움이 되며, 좋은 데이터셋을 만드는 것은 어려울 수 있습니다. Hugging Face는 사용자들이 접근할 수 있는 커뮤니티에 의해 업로드된 데이터셋에 접근할 수 있도록 합니다. Hugging Face 라이브러리의 일부 예제 데이터셋은 다음과 같습니다:
- the_pile_books3: Bibliotik의 모든 데이터를 일반 텍스트로 포함하고 있습니다. Bibliotik은 197,000권의 책을 저장하는 저장소입니다.
- wikipedia: 위키백과에서 데이터를 포함하고 있습니다.
- Anthropic/hh-rlhf: AI 출력의 유용성과 무해함에 대한 인간의 선호 데이터를 포함하고 있습니다.
- imdb: 대량의 영화 리뷰를 포함하고 있습니다.
- Spaces: 머신러닝 모델은 일반적으로 구현하고 사용하기 위해 기술적 지식이 필요합니다. Spaces는 사용자 친화적인 경험으로 모델을 패키지화하여 사용자들이 자신의 작업을 전시할 수 있게 합니다. Hugging Face는 데모를 호스팅하기 위한 필요한 컴퓨팅 자원을 제공합니다. Spaces는 기술적 지식이 필요하지 않습니다. Hugging Face Spaces의 일부 예제는 다음과 같습니다:
- LoRA the Explorer 이미지 생성기: 사용자들은 프롬프트를 기반으로 다양한 스타일의 이미지를 생성할 수 있습니다.
- MusicGen 음악 생성기: MusicGen은 사용자들이 원하는 출력의 설명이나 샘플 오디오를 기반으로 음악을 생성할 수 있게 합니다.
- Image to Story: 사용자들은 이미지를 업로드하고, 대형 언어 모델은 텍스트 생성을 사용하여 그것을 기반으로 한 이야기를 작성합니다.
Hugging Face 가입
Hugging Face는 커뮤니티 기여자로서 무료로 가입할 수 있으며, 사용자들에게는 모델, 데이터셋, 및 스페이스를 저장할 수 있는 Git 기반의 저장소를 제공합니다. 계정을 만든 후 사용자들은 다음과 같은 작업을 수행할 수 있습니다:
- 활동 피드 확인: 사용자는 자신의 활동과 다른 커뮤니티 멤버의 활동을 확인할 수 있습니다.
- Hugging Face Hub 접근: 사용자는 Hugging Face Hub에 접근하여 다양한 리소스와 도구를 이용할 수 있습니다.
- 조직 또는 개인 저장소 생성: 사용자는 조직을 생성하거나 개인 저장소를 설정할 수 있습니다.
- 프로필 탐색 및 설정 조정: 사용자는 자신의 프로필을 탐색하고 설정을 조정할 수 있습니다.
- 새로운 모델, 데이터셋 또는 스페이스 시작: 사용자는 새로운 모델, 데이터셋 또는 스페이스를 초기화할 수 있습니다.
- Hugging Face 커뮤니티 내의 최신 트렌드 발견: 사용자는 커뮤니티 내에서의 최신 트렌드를 발견할 수 있습니다.
- 사용자가 속한 조직 검토 및 그들의 특정 섹션 접근: 사용자는 자신이 속한 조직을 검토하고 그들의 특정 섹션에 접근할 수 있습니다.
- 유용한 ML 리소스 및 문서에 접근: 사용자는 머신러닝에 관한 유용한 리소스와 문서에 접근할 수 있습니다.
Hugging Face는 또한 사용자에게 더 많은 기능에 접근할 수 있게 해주는 유료 프로 계정과, 약간 더 높은 비용의 엔터프라이즈 계정도 제공합니다. 엔터프라이즈 계정은 엔터프라이즈 수준의 보안 및 접근 제어 기능을 추가하며 전용 고객 지원을 제공합니다.
Hugging Face의 이점
Hugging Face의 오픈 소스 및 공동체적 특성은 여러 이점을 제공합니다:
- 접근성: Hugging Face는 사용자가 AI 개발의 전형적인 제한적인 계산 및 기술 요구 사항을 우회할 수 있도록 돕습니다. Hugging Face가 사전 훈련된 모델, 미세 조정 스크립트 및 배포를 위한 API를 제공한다는 사실은 대형 언어 모델(LLM)을 생성하는 과정을 더욱 쉽게 만듭니다.
- 통합: Hugging Face는 사용자가 여러 ML 프레임워크를 통합할 수 있도록 돕습니다. 예를 들어, Transformer 라이브러리는 PyTorch 및 TensorFlow와 같은 다른 ML 프레임워크와 통합됩니다.
- 프로토타이핑: Hugging Face는 NLP 및 ML 애플리케이션의 빠른 프로토타이핑과 배포를 가능하게 합니다.
- 커뮤니티: Hugging Face는 지속적으로 업데이트되는 모델, 문서 및 튜토리얼과 함께 광대한 커뮤니티에 접근할 수 있도록 제공합니다.
- 비용 효율적: Hugging Face는 비즈니스를 위해 비용 효율적이고 확장 가능한 솔루션을 제공합니다. 처음부터 큰 ML 모델을 구축하는 것은 비싸며, Hugging Face의 호스팅 모델을 사용하면 돈을 절약할 수 있습니다.
이러한 이점들은 Hugging Face를 사용하는 기업과 개발자들에게 유용하게 작용하며, 머신러닝 및 자연어 처리 프로젝트의 진행을 촉진하고 지원하는 데 기여합니다.
Hugging Face의 고려해야 할 몇 가지 사항과 위험
Hugging Face의 이점과 대비하여 고려해야 할 몇 가지 사항과 위험이 있습니다:
- 편향: 다른 사전 훈련된 머신러닝 모델처럼, Hugging Face에서 사용할 수 있는 모델은 편향에 취약할 수 있으며, 이로 인해 모델이 성별 차별적, 인종 차별적 또는 동성애 차별적인 콘텐츠를 생성할 수 있습니다.
- 계산 요구 사항: Hugging Face에는 플랫폼이 기본으로 제공하는 것보다 더 많은 계산을 필요로 하는 큰 모델이 있으며, 사용자는 이를 구매해야 할 수 있습니다. 예를 들어, Bloom은 실행하는 데 비용이 많이 들 수 있는 큰 다국어 언어 모델입니다.
- 지원: 플랫폼의 무료 및 프로 버전에는 전용 고객 지원이 없습니다.
- 모델 검색: 플랫폼에서 호스팅되는 많은 모델이나 라이브러리 중 적절한 것을 찾기 어려울 때가 있습니다.
- 보안: Hugging Face를 사용하는 기업은 플랫폼이 비즈니스의 데이터 보안 요구 사항과 일치하는 보안 조치를 제공하는지 확인해야 합니다.
이러한 고려 사항과 위험 요소들은 Hugging Face를 사용할 때 고려해야 할 중요한 부분들이며, 사용자와 기업이 이러한 플랫폼을 통해 머신러닝 및 인공 지능 프로젝트를 추진할 때 더욱 신중하게 계획하고 준비할 수 있도록 돕습니다.
Hugging Face의 데이터셋
Hugging Face의 데이터셋은 AI 모델을 훈련시키기 위한 데이터의 모음입니다. 이 훈련 과정은 머신러닝이라고 불리며, 데이터셋은 예제와 레이블이 연결된 특별한 형식을 가집니다. 레이블은 모델에게 각 예제를 어떻게 해석할지 지시합니다.
모델이 데이터셋에서 훈련을 받으면서 예제와 레이블 사이의 관계, 패턴 및 단어, 문자, 문장 구조의 빈도를 이해하기 시작합니다. 충분히 훈련을 받은 후에는 데이터셋에 없는 프롬프트를 제공해 보면, 모델은 훈련 단계 동안 구축한 경험을 기반으로 출력을 생성합니다.
좋은 데이터셋을 만드는 과정은 어렵고 시간이 많이 소요되는데, 데이터는 실제 세계의 유용하고 정확한 표현이어야 합니다. 그렇지 않으면 모델은 더 자주 환각을 하거나 의도하지 않은 결과를 생성할 가능성이 있습니다. Hugging Face는 모델에 공급할 수 있는 30,000개 이상의 데이터셋을 호스팅하여 훈련 과정을 더욱 쉽게 만듭니다. 또한 오픈 소스 커뮤니티이기 때문에 자신의 데이터셋을 기여하고 새롭고 더 나은 것들이 출시됨에 따라 새로운 데이터셋을 찾아볼 수 있습니다.
Hugging Face에는 각 특정 작업을 훈련시키기 위한 데이터셋도 있습니다. 자연어 처리를 위한 AI 모델이 있는 것처럼, 컴퓨터 비전 또는 오디오용 데이터셋도 있습니다. 컨텐츠는 작업에 따라 변경되며, 자연어 처리는 텍스트 데이터에 의존하고, 컴퓨터 비전은 이미지에 의존하며, 오디오는 오디오 데이터에 의존합니다.
Hugging Face 데이터셋의 몇 가지 주목할 만한 예는 다음과 같습니다:
- wikipedia: 레이블이 달린 위키백과 데이터를 포함하므로, 모델을 위키백과 콘텐츠 전체에 대해 훈련시킬 수 있습니다.
- openai_humaneval: 인간이 수기로 작성한 Python 코드를 포함하며, 164개의 프로그래밍 문제가 있어 AI 모델이 코드를 생성하는 데 훈련시키기 좋습니다.
- diffusiondb: 14백만 개의 레이블이 달린 이미지 예제를 포함하며, AI 텍스트-이미지 모델이 텍스트 프롬프트에서 이미지를 생성하는 데 더 능숙해지도록 돕습니다.
- quantumaikr/llama-2-70b-fb16-korean:
quantumaikr/llama-2-70b-fb16-korean
is a Llama2 70B model finetuned the Korean Dataset
기술적 지식이 없는 사용자라도 이러한 데이터가 어떻게 구조화되는지 보고 AI 모델이 이를 어떻게 처리할지 상상하는 것이 흥미롭습니다.
Hugging Face의 Spaces 기능
Hugging Face의 Spaces 기능은 사용자가 모델을 호스팅하고 이를 훈련시키기 위한 데이터셋을 찾아보게 해주며, 더 넓은 대중에게 공유할 수 있는 경험으로 패키징되지는 않습니다. Spaces의 목적은 방문자들이 모델을 테스트하고 성능을 확인할 수 있도록 쇼케이스와 독립 실행형 데모를 생성하는 것입니다.
플랫폼은 데모를 실행하기 위한 기본 컴퓨팅 리소스(16 GB의 RAM, 2개의 CPU 코어, 그리고 50 GB의 디스크 공간)를 제공하며, 더 나은 성능과 더 빠른 속도를 원한다면 하드웨어를 업그레이드할 수 있습니다. 이것은 당신과 당신의 팀의 작업을 홍보하고 프로젝트에 더 많은 기여자를 유치하는데 좋습니다.
여기서 가장 좋은 부분은 많은 Spaces가 기술적 기술을 필요로 하지 않아 누구나 즉시 들어와서 이러한 모델을 작업(또는 재미로, 나는 판단하지 않음)에 사용할 수 있다는 것입니다. 여기 몇 가지 시도해 볼 수 있는 Spaces가 있습니다:
- CLIP Interrogator: 이미지를 텍스트로 변환하는 마법을 사용하여 업로드한 이미지에 대한 프롬프트를 찾아드립니다. 특히 멋진 이미지로부터 새로운 프롬프트를 수집하여 이미지 생성 기술을 향상시키고 싶다면 유용합니다.
- OpenAI’s Whisper: 음성 인식, 번역, 및 언어 식별에 사용될 수 있습니다.
그리고 이것들은 단순한 샘플일 뿐입니다. Hugging Face의 Spaces에 들어가 커뮤니티가 무엇을 작업하고 있는지 찾아보세요. 하지만 바쁜 날에는 하지 마세요. 시간이 더 빨리 지나갑니다.