저의 포스팅에서 지속적으로 huggingface의 오픈 소스모델을 바탕으로 테스트를 진행해보고 있습니다~~
2024.06.21 - [데이터&AI/LLM] - llama3 한국어 모델 On-premise로 활용하기 (feat. Bllossom)
2024.05.29 - [데이터&AI/LLM] - llama3 의 모델을 api로 호출하기!! (feat. ollama, python, embedding)
이때 아래와 같이 AutoModel 이라는 패키지를 사용하는데요~~~
from transformers import AutoTokenizer, AutoModelForCausalLM
자연어 처리(NLP) 분야에서 뛰어난 성능을 보여주는 Hugging Face Transformers
라이브러리는 다양한 모델과 편리한 기능을 제공하며
특히, Pipeline과 AutoModel은 Transformers 모델을 활용하는 두 가지 주요 방법입니다!!!
이에 각각의 장단점을 이해하고자 포스팅을 작성해보았습니다
이번 포스팅을 통하여 Pipeline과 AutoModel의 차이점을 살펴보고,
각각의 활용 사례를 통해 어떤 상황에서 어떤 방법을 선택해야 하는지 알아보겠습니다.
1. Pipeline: 아이 쉽다!! 아이 편하다!~!
Pipeline은 특정 NLP 작업(Task)에 최적화된 모델, 토크나이저, 전처리 및 후처리 기능을
하나로 묶어 제공하는 고수준 API
즉, 모델 로딩, 입력 데이터 전처리, 모델 추론, 결과 후처리 등 복잡한 과정을 단 몇 줄의 코드로 처리
장점:
- 간편한 사용: 복잡한 NLP 작업을 몇 줄의 코드로 처리, 초보자도 쉽게 사용 가능
- 다양한 작업 지원: 감정 분석, 텍스트 분류, 질의응답, 번역 등 다양한 NLP 작업에 특화된 파이프라인을 제공
- 빠른 프로토타이핑: 모델 성능 빠르게 확인 및 실험에 용이
단점:
- 제한적인 커스터마이징: 모델 아키텍처나 세부 설정을 변경하기 어려움
- 낮은 유연성: 특정 작업에 최적화되어 있어 다른 작업에 활용하기 어려움
활용 예시 (감정 분석):
from transformers import pipeline
classifier = pipeline("sentiment-analysis")
result = classifier("오늘 날씨 정말 좋다!")
print(result)
2. AutoModel: 입맛에 맞게 물고 뜯고!!
AutoModel은 모델 아키텍처에 대한 세부적인 제어가 가능한 저수준 API입니다
모델과 토크나이저를 직접 로드하고, 입력 데이터 전처리 및 결과 후처리 과정을 사용자가 직접 구현해야 함.
장점:
- 높은 유연성: 모델 아키텍처, 토크나이저, 전처리 및 후처리 과정을 자유롭게 커스터마이징.
- 다양한 모델 활용: Hugging Face Hub에 등록된 수많은 모델을 자유롭게 선택하여 사용 가능
- 연구 및 고급 작업에 적합: 모델의 작동 방식 이해 후, 새로운 모델을 개발하거나 기존 모델을 개선하는 데 유용
- !!! langchain에 연결 가능!! : 이게 기존 gpt 등을 활용한 모듈에서 바꿔끼기가 가능합니다!
단점:
- 복잡한 사용: 모델 로딩, 전처리, 후처리 과정을 직접 구현, 코드량이 증가로 높은 난이도
- 모델에 대한 깊은 이해 필요: 모델 아키텍처 및 작동 방식에 대한 이해가 부족하면 효과적으로 활용하기 어렵습니다.
활용 예시 (감정 분석):
from transformers import AutoTokenizer, AutoModelForSequenceClassification
tokenizer = AutoTokenizer.from_pretrained("beomi/KcELECTRA-base")
model = AutoModelForSequenceClassification.from_pretrained("beomi/KcELECTRA-base")
inputs = tokenizer("오늘 날씨 정말 좋다!", return_tensors="pt")
outputs = model(**inputs)
print(outputs)
비교 요약
Pipeline | AutoModel | |
사용 용이성 | 매우 쉬움 | 복잡함 |
유연성 | 제한적 | 매우 높음 |
코드 길이 | 짧음 | 김 |
커스터마이제이션 | 제한적 | 매우 높음 |
사용 사례 | 빠른 프로토타이핑, 간단한 작업 | 맞춤형 모델 구현, 세부 조정이 필요한 작업 |
결론
Pipeline과 AutoModel은 각기 다른 목적과 필요에 맞게 설계된 도구
간단한 NLP 작업을 빠르고 쉽게 수행하려면 Pipeline을 사용,
반면, 모델의 세부 조정이나 맞춤형 처리가 필요하다면 AutoModel을 사용!!
으로 이해해주시면 됩니다~~
감사합니다.
'데이터&AI > LLM' 카테고리의 다른 글
qwen2 모델 톺아보기 (feat. llama3 모델과의 비교!) (0) | 2024.06.24 |
---|---|
알리바바의 llm 모델 qwen2 사용해보기 (feat.놀라운 한국어실력) (0) | 2024.06.23 |
llama3 한국어 모델 On-premise로 활용하기 (feat. Bllossom) (0) | 2024.06.21 |
Solar 오픈소스 모델 활용해서 ON-premise LLM 만들기 (0) | 2024.06.13 |
[STT] 녹음파일에서 텍스트 추출하기!! by OpenAI Whisper(feat python) (0) | 2024.06.08 |
댓글