허깅 페이스(Hugging Face) - 기본 개요 (1)

2026. 5. 25. 08:10AI/LLM

우리가 많이 쓰는 ChatGPT, Claude, Gemini는 우리가 작성한 프롬프트에 어떻게 대답을 해주는 걸까?

  

이러한 질문에 대한 이야기를 해보려고 한다.

 

모델(Model)

 

모델은 데이터를 학습해서 패턴을 기억하는 것이다. 이런 데이터를 수 천~ 수 억개 학습하면서

 

패턴을 찾는다. 이런 패턴을 학습하는 것을 모델이라고 한다.

 

우리가 쓰는 상용화된 모델은 엄청나게 많은 데이터를 학습하고

 

테스트를 거쳐서 일반인들이 사용할 수 있게 하는 것이다. 또한 프롬프트를 통해서 학습하기도 한다.

 

머신러닝 - 딥러닝 - LLM

 

인공 지능(AI)라고 불리우는 것 안에 포함된 개념들이다.

 

인공 지능을 구성하기 위해 들어가는 개념은 머신러닝부터 시작한다.

 

머신러닝은 데이터에서 규칙을 학습하는 알고리즘으로 이루어졌다.

 

그보다 조금 더 깊게 들어간 것이 딥러닝이다.

 

딥러닝은 많은 층으로 구성된 신경망을 활용한다. (심층신경망 기반)

 

그 여러 신경망 중에서 사람의 텍스트를 해석하고 생성하는

 

심층 신경망을 LLM(Large Language Model)이라고 한다.

예전에는 모델을 만들고, 모델에 어떤 알고리즘이 필요하고 이런 이야기를 했다면,

 

지금은 기본 모델이 존재하는 상태에서 시작한다.

 

그걸 기반으로 추가 학습을 시켜(파인 튜닝) 우리에게 맞는 모델을 사용하게 된다.

 

LLM의 동작원리

 

위에서 모델은 패턴을 학습하는 과정이라고 했었다.

 

그 중 LLM은 다음 단어(토큰)를 예측하는 모델로 이해하면 된다.

 

이러한 작업을 위해서는 토큰화 작업이 필요한데, 기계는 문장을 그대로 이해하지 않고 쪼갠다.

 

그것을 숫자로 바꾸어 그 숫자 기반으로 이해를 한 후 작업을 해서 답변을 해주는 방식이다.

 

이것을 어떻게 나눌지는 내부적으로 학습된 언어 모델 형태에 따라 달라질 수 있다.

토큰화 작업

트랜스포머(Transformer)

 

LLM의 폭발적인 성장을 야기시킨 개념으로써

 

대부분의 LLM은 트랜스포머(Transformer) 기반이다.

 

예측을 수행할 때 입력의 다른 부분에 선택적으로 주의를 기울이는 구조이다. (앞 뒤 문맥 파악)

 

허깅 페이스(Hugging Face)

 

구글에서 모델을 오픈 소스(Open Source)로 풀었고,

 

이걸 기반으로 개발자들이 자기만의 모델을 만들어 공유하기 시작했다.

 

그 공유하는 플랫폼을 만들었는데, AI 모델의 Github 같은 플랫폼이다.

 

즉, 오픈 소스 파운데이션 모델이다.

 

이 오픈소스 모델을 사용하기 위해 LLM Course도 제공하고 있다.

 

이 부분에 대해 자세히 알아보자.

 

트랜스포머로 무엇을 할 수 있나요?

 

먼저 트랜스포머 패키지를 설치하자.

pip install datasets evaluate transformers==4.41.2

 

트랜스포머에는 파이프라인(pipeline) 이라는 함수가 하나 있는데

 

pipeline의 매개변수로 task 문자열을 받게 되어 있다.

 

파이프라인은 복잡한 모델과정을 간단하게 묶은 기능이다. 예시로 감정 분석 AI 모델을 적용시켜보자.

from transformers import pipeline

classfier = pipeline("sentiment-analysis")
classifier("I've been waiting for a HuggingFace couse my whole life.")

 

결과는 다음과 같이 나온다.

 

기본적으로 가장 높은 확률의 결과 하나만 보여준다.

 

(단, 한국어 결과도 보이게 만드려면, 한국어 학습된 모델을 잘 사용해야 한다)

 

두번째로, Zero-Shot-Classfication 태스크를 적용시켜보자.

 

간단하게 말하면, 문장을 제시하고,

 

candidate_labels에 리스트를 주어서 이중에 단어(주제)를 고르라는 의미이다.

from transformers import pipeline

classfier = pipeline("zero-shot-classification")
classifier("This is a course about the Transformers Library",
            candidate_labels = ["education", "politics", "business"])

 

세번째로, Text-Generation 태스크를 적용시켜보자.

from transformers import pipeline

generator = pipeline("text-generation", model="distilgpt2")
generator("In this course, we will teach you how to", max_length=30, num_return_sequences = 2)

 

네번째로, Fill-Mask 태스크를 적용시켜보자.

from transformers import pipeline

unmasker = pipeline("fill-mask")
unmasker("This Course will teach you all about <mask> models", top_k=2)

 

다섯번째로, Named Entity Recognition (개체명 인식)을 적용시켜보자.

 

그러면 실무에서 어디에 활용할 수 있을까?

 

만약 뉴스 분석의 경우, 인물/ 기업 정보를 추출할 수 있고,

 

챗봇 서비스를 만든다고 할 경우, 사용자의 핵심 정보를 파악할 수 있다.

from transformers import pipeline

ner = pipline("ner", grouped_entites = True)
ner("My name is Sylvain and I wrok at Hugging Face in Broklyn")

 

여섯번째로, Question Answering (질의 응답)을 적용시켜보자.

 

나중에 Context 항목은 문서나 파일 등으로 바뀔 것이다.

from transformers import pipeline

question_answerer = pipeline("question-answering")
question_answerer(
   question="Where do I Work?"
   context="My name is Sylvain and I Work at Hugging Face in Brooklyn"
)

 

일곱번째로, Summarization (요약)을 적용시켜보자.

from transformers import pipeline

summarizer = pipeline("summarization")
summarizer(
    """
    America has changed dramatically during recent years. Not only has the number of
    graduates in traditional engineering disciplines such as mechanical, civil,
    electrical, chemical, and aeronautical engineering declined, but in most of
    the premier American universities engineering curricula now concentrate on
    and encourage largely the study of engineering science. As a result, there
    are declining offerings in engineering subjects dealing with infrastructure,
    the environment, and related issues, and greater concentration on high
    technology subjects, largely supporting increasingly complex scientific
    developments. While the latter is important, it should not be at the expense
    of more traditional engineering.

    Rapidly developing economies such as China and India, as well as other
    industrial countries in Europe and Asia, continue to encourage and advance
    the teaching of engineering. Both China and India, respectively, graduate
    six and eight times as many traditional engineers as does the United States.
    Other industrial countries at minimum maintain their output, while America
    suffers an increasingly serious decline in the number of engineering graduates
    and a lack of well-educated engineers.
"""
)

 

이렇게 태스크와 모델 지정을 해서 트랜스포머 기능을 살펴봤다. 그 내부 구성은 다음과 같다.

우리가 앞서 살펴봤듯이 먼저 Pre-Training 된 모델이 하나 있고, 미세 조정(파인 튜닝)을 통해

 

우리가 사용할 수 있는 구조가 나오는데 실제로 인코더디코더로 구분되어 있는 부분이 들어있다.

 

그러나 이걸 2개 다 무조건 가지고 있는 것은 아니고, 어떤 것은 인코더만 쓰는 모델이 있는 반면

 

어떤 것은 디코더만 쓰는 모델이 있는 것이다. 이것은 우리가 명령하는 태스크에 따라 다른 것이다.

 

예를 들어, Summarization 태스크의 경우에는 인코더와 디코더 모두를 사용한다.

 

반대로, Fill-Mask 태스크의 경우에는 인코더만 사용한다.

 

인코더의 동작 원리는 우리가 입력할 텍스트 입력하면 전처리 단계를 거치고,

 

입력한 텍스트 전체를 참고하여 텍스트 임베딩 과정을 거치게 되며,

 

이렇게 숫자로 바꾼 결과를 디코더로 넣어준다.

 

디코더는 받은 임베딩 데이터를 토큰에 맞추어 텍스트를 생성하여 완성하는 단계로 이루어진다.

 

태스크 별 인코더 / 디코더 구성은 다음과 같다.