☭DEVELOPER/#6 인공지능(AI-X) 프로젝트

[AI]자연어

조반짝 2024. 2. 3. 18:24
728x90
반응형

vscode에서  proj2  폴더 열기 

nlp.py 파일 생성

 

conda activate proj2 가상환경 실행

 


딥러닝모델 > 딥러닝계의 깃허브

https://huggingface.co/

 

Hugging Face – The AI community building the future.

 

huggingface.co

 

Text Classification : 감정의 긍부정을 구분함

Token Classification : 텍스트에 따라 카테고리 구분

Summarization: 문장요약

Translation: 번역

 

Transformers 설치

pip install transformers

모델을 테스트하고 사용하는 방법이 나와있음

 

pip install transformers datasets evaluate accelerate 설치

pip install transformers datasets evaluate accelerate

 

<nlp.py> 

#STEP 1
from transformers import pipeline

# STEP 2
classifier = pipeline("sentiment-analysis", model="stevhliu/my_awesome_model")

# STEP 3
text = "This was a masterpiece. Not completely faithful to the books, but enthralling from beginning to end. Might be my favorite of the three."

# STEP 4
result = classifier(text)

# STEP 5
print(result)

 

python nlp.py 실행

label1 긍정문으로 나옴

This was a masterpiece. Not completely faithful to the books, but enthralling from beginning to end. Might be my favorite of the three.

번역하면 긍정문이다.

 

모델 가져와서 사용하기

python nlp.py 실행

긍정문이 출력

 

AutoModel, AutoTokenizer 

 

각 각 모델별로 토크나이저 모델을 제공하지만 

tokenizer = AutoTokenizer.from_pretrained("bert-base-uncased")

 

코드 참고

import torch

#STEP 1
from transformers import pipeline, AutoModel, AutoTokenizer, AutoConfig, AutoModelForAudioFrameClassification

# STEP 2
# classifier = pipeline("sentiment-analysis", model="stevhliu/my_awesome_model")
# classifier = pipeline("sentiment-analysis", model="ProsusAI/finbert")

# 전처리
tokenizer = AutoTokenizer.from_pretrained("ProsusAI/finbert")
# 모델을 불러옴
config = AutoConfig.from_pretrained("ProsusAI/finbert")
model = AutoModel.from_config(config)


# STEP 3
text = "Stocks rallied and the British pound gained."
token = tokenizer(text, return_tensors="pt")

# STEP 4
# result = classifier(text)
with torch.no_grad():
    #logit : 결과
    logits = model(**token).logits

# STEP 5
predicted_class_id = logits.argmax().item()
result = model.config.id2label[predicted_class_id]
print(result)

 

main.py > fast API 넣기

from fastapi import FastAPI, Form

app = FastAPI()


@app.post("/predict/")
async def login(text: str = Form()):
    
    result = ""
    return {"result": result}

 

 

uvicorn main:app 실행

금융용어에 대한 긍정 부정문이 나옴

 

한국어를 지원하는 모델 사용해보기

모델 변경

 


sum.py 파일 생성

 

#STEP 1
from transformers import pipeline

# STEP 2
summarizer = pipeline("summarization", model="stevhliu/my_awesome_billsum_model")
kor_summarizer = pipeline("summarization", model="psyche/KoT5-summarization")

# STEP 3
text = "sumarize: The Inflation Reduction Act lowers presription drug costs, health care costs, and energy costs."
kor_text = "설 연휴를 앞두면 언제나 선물세트 마련에 대한 고민이 깊어지기 마련이다. 고물가 기조에 식품 가격은 줄지어 인상됐으니 명절 선물을 고르기도 쉽지 않은 형국이다. 이에 국내 식품업계들은 소비자들의 부담을 덜기 위해 다양한 구성에도 실속은 챙긴 '가성비' 설 선물세트를 선보이고 있다.4일 정식품은 가성비는 물론 건강까지 고려한 '베지밀 설 선물세트'를 선보였다고 밝혔다. 정식품의 메인 제품인 '담백한 베지밀 에이'는 고소하고 담백한 맛이 특징이며 '베지밀 검은콩 두유'는 칼슘과 인을 적정 비율로 설계해 칼슘의 흡수율을 높였다. 또 시니어에게 필요한 고칼슘, 칼슘, 비타민D, 오메가3 지방산 등 성분을 강화한 '베지밀 5060 시니어 두유'와 체계적인 당 관리가 필요한 소비자를 위한 '베지밀 에이스 저당 두유' 등 맞춤형 제품도 내놨다."

# STEP 4
result = summarizer(text)
kor_result = kor_summarizer(kor_text)

# STEP 5
print(result)
print(kor_result)

 

python sum.py 실행

 

한국어 요약이 완료되었다!

728x90
반응형