AI

🤗 Transformers 라이브러리의 pipeline 사용하기

juunghee 2025. 2. 12. 18:01

목차

    1. Pipeline이란? 📊

    Transformers 라이브러리에서 가장 기본적인 함수입니다.

    이 함수는 모델과 필요한 전처리 및 후처리 단계를 연결한 것이며, 예측하고싶은 데이터를 넣어주기만 하면 된다.

    이 과정을 몇 줄의 코드로 처리할 수 있습니다.

    pipeline은 다음과 같은 주요 기능을 제공합니다:

    • 감정 분석
    • 질문 응답
    • 텍스트 요약
    • 번역
    • 음성 텍스트화

    2. pipeline 사용하기

    주요 기능중에 감정분석, 문장생성, 번역, 이미지분류를 해보겠습니다.

    Google Colab에서 트랜스포머 라이브러리를 기본으로 제공해주기 때문에 설치하지 않아도 된다.

    from transformers import pipeline

    2-1. 감정 분석 💬

    이미 학습이 되어있는 인공지능을 가져온다.

    # 허깅페이스의 디폴트 감정 분석 모델 가져오기
    classifier = pipeline('sentiment-analysis')

    아래는 모델을 가져올 때 화면입니다.

    이제 이 함수 안에 문장을 넣어주면 감정 분석을 해줍니다.

    classifier('I love using Hugging Face Transformers!')

    결과

    classifier('She does not love reading books.')

    결과

    1개 이상의 데이터를 넣을 수도 있다.

    # 한개 이상의 데이터이니까 리스트
    data = ['She loves reading books.','She does not love reading books.']
    classifier(data)
    # 전처리를 하지 않아도 알아서 해준다.

    결과

     

    ❕ 한글도 넣을 수 있는데 한글은 분석을 잘 못해주는 듯 하다.

    2-2. 문장 생성 📄

    # 문장 생성 모델 가져오기 => 디폴트는 openai-community/gpt2
    text_gnerator = pipeline('text-generation')
    result = text_generator('Once upon a time in a distant land')

    이제 result를 실행하면 위 text로 문장을 생성해준다.

    결과

     

     

    문장만 보고싶을 땐?

    result[0]['generated_text']

    결과

     

    max_length, min_length 해서 문장 길이를 조절할 수도 있다.

     

    text-generation 모델을 디폴트 모델 말고 다른 모델을 사용하고 싶다면?

    허깅페이스 > 모델 > text-generation으로 태스크 검색하기!

     

     

    아래 모델을 사용해주도록 하겠습니다.

    모델을 클릭한 후 모델이름 옆에 복사버튼을 클릭하면 복사가 됩니다.

     

    이제 복사한 모델을 파이프라인 함수 두번째 파라미터에 model= 안에 넣어주시면 됩니다.

    text_gen = pipeline('text-generation', model='EleutherAI/gpt-neo-1.3B')

     

    다시 위에서 했던 작업들을 동일하게 해주고 결과값을 출력해보면

    result = text_gen('Once upon a time in a distant land')
    result

     

    위와 다른 문장이 생성되었음을 볼 수 있습니다.

    결과

     

    2-3. 번역 🌐

     

    번역해주는 모델 가져오기

    model = pipeline('translation', model='Helsinki-NLP/opus-mt-ko-en')
    model('나는 자연어 처리를 배우고 있습니다.')

    결과

     

    영어에서 한국어로 번역

    model = pipeline('translation', model='jhk/opus-mt-tc-big-wiki-en-ko')
    model('Machine learning is the future of technology.')

    결과

     

     

    2-4.이미지 분류 🖼️

     

    이미지 분류해주는 모델 가져오기

    classifier = pipeline("image-classification")

    이제 원하는 이미지 사진을 다운 받은 뒤, 구글 코랩 파일탭에 디폴트 위치에 넣어주고

    classifier(이미지.jpg) 해주면 됩니다.

     

    저는 자전거와 강아지 사진(로트와일러) 사진을 가져와서 예측해봤습니다.

     

    첫번째 label과 score를 보면 예측을 잘한 것 같네요


    3. Pipeline의 장점 ✨

    • 간편한 사용: 복잡한 설정 없이 한 줄의 코드로 모델을 사용할 수 있어 매우 직관적이고 빠르게 활용할 수 있습니다.
    • 다양한 작업 지원: 감정 분석, 요약, 번역, 질문 응답 등 여러 자연어 처리 작업을 지원합니다.
    • 사전 훈련된 모델: 모델이 이미 훈련되어 있어, 모델 학습이나 튜닝 없이 바로 사용할 수 있습니다.

    4. 결론 🚀

    Hugging Face의 Transformers 라이브러리의 pipeline 기능은 NLP 작업을 간편하게 처리할 수 있는 강력한 도구입니다. 사전 훈련된 모델을 통해 텍스트 분석, 요약, 번역, 질문 응답 등 다양한 작업을 몇 줄의 코드로 실행할 수 있어, AI 프로젝트의 효율성을 크게 향상시킬 수 있습니다.

    home