티스토리 뷰
1. 코랩 설치된 패키지 확인
!pip freeze
2. 로컬에서 pytorch 설치시 필요한 옵션 선택 후 명령어 받기
- pip3대신 pip로 설치
3. 트랜스포머 설치
pip install transformers
4. Text Classification
- https://huggingface.co/docs/transformers/tasks/sequence_classification
# step1: import modules
from transformers import pipeline
# step2: create inference object
# model 부분에 user이름/모델명 이 부분만 수정해주면 됨
classifier = pipeline("sentiment-analysis", model="stevhliu/my_awesome_model")
# step3: prepare data
text = "This was a masterpiece. Not completely faithful to the books, but enthralling from beginning to end. Might be my favorite of the three."
# step4: inference
result = classifier(text)
# step5: post processing
print(result)
- 모델을 변경하고 싶다면
classifier = pipeline("sentiment-analysis", model="snunlp/KR-FinBert-SC")
result = classifier("현대바이오, '폴리탁셀' 코로나19 치료 가능성에 19% 급등")
print(result)
- 욕설탐지ㅋㅋ
- Label 1: Curse detected로 잘 분류한다
classifier = pipeline("sentiment-analysis", model="2tle/korean-curse-detection")
result = classifier("시발")
print(result)
# Device set to use cpu
# [{'label': 'LABEL_1', 'score': 0.9701563119888306}]
5. Token-Classification
- 객체명 인식: Named entity recognition
- 문장에서 이름을 가진 객체를 인식: 지명, 시간, 사람이름 등
- 개인정보 탐지하고 삭제해줄 때 많이 사용
- 모델 선택: https://huggingface.co/Leo97/KoELECTRA-small-v3-modu-ner
# step1: import moduels
from transformers import pipeline
# step2: inference models
classifier = pipeline("ner", model="Leo97/KoELECTRA-small-v3-modu-ner")
# step3: load data
text = "내일 유재석과 서울역으로 가는 방법 안내해줘"
# step4: inference
result = classifier(text)
# step5: post processing
print(result)
6. Summarization
- 이제 llm 나와서 잘 안씀
- 추출식 요약과 추상식 요약
7. Multiple choice
# step1: import modules
from transformers import AutoModelForMultipleChoice
from transformers import AutoTokenizer
import torch
# step2: 모델이랑 전처리기
model = AutoModelForMultipleChoice.from_pretrained("stevhliu/my_awesome_swag_model")
tokenizer = AutoTokenizer.from_pretrained("stevhliu/my_awesome_swag_model")
# step3: 데이터 로드
prompt = "France has a bread law, Le Décret Pain, with strict rules on what is allowed in a traditional baguette."
candidate1 = "The law does not apply to croissants and brioche."
candidate2 = "The law applies to baguettes."
inputs = tokenizer([[prompt, candidate1], [prompt, candidate2]], return_tensors="pt", padding=True)
labels = torch.tensor(0).unsqueeze(0)
# step4: 추론
outputs = model(**{k: v.unsqueeze(0) for k, v in inputs.items()}, labels=labels)
logits = outputs.logits
# step5: 후처리
predicted_class = logits.argmax().item()
predicted_class
반응형
'AI > AI 서비스 개발' 카테고리의 다른 글
[AI 서비스 개발] NLP 감정 분석 모델 비교(허깅페이스) (1) | 2024.12.30 |
---|---|
[AI 서비스 개발] 오디오 whisper 사용해보기 (0) | 2024.12.29 |
[AI 서비스 개발] 사진 해석 (Image captioning) (3) | 2024.12.29 |
[AI 서비스 개발] 글자 인식 OCR (0) | 2024.12.29 |
[AI 서비스 개발] 안면인식 (1) | 2024.12.28 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- ChatGPT
- llm
- 고득점 Kit
- 운동
- 스크랩
- 오픽
- IH
- 루틴
- 영어회화
- C언어
- 다이어트
- 티스토리챌린지
- 미라클모닝
- 아침운동
- opic
- 갓생
- SQL
- 경제
- 습관
- 아침
- Python
- 프로그래머스
- 실기
- 뉴스
- 기초
- Ai
- 30분
- 오블완
- 빅데이터 분석기사
- 줄넘기
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
글 보관함