안녕하세요. 9기 HuggingFace 파트너 정정민입니다.
이번 포스팅에서는
HuggingFace에서 연구 결과를 둘러보는 과정과
마음에 드는 연구 결과물을 API로 호출하는 방법을
확인해보겠습니다!
이전 포스팅에서는
HuggingFace의 간단한 설명과,
HuggingFace의 웹 데모를 사용하는 방법(Spaces)을 이야기 했습니다.
혹시, 놓치셨다면 아래 링크로 확인해보세요 ^^
https://www.gpters.org/c/ai-developers/9-huggingface
HuggingFace Models
HuggingFace의 Models 페이지는 연구 결과들을 모아둔 곳입니다.
다양한 연구 결과물이 존재하고
이를 한눈에 볼 수 있도록 좌측 패널에
다루는 문제(Task)에 따른 분류를 해두었습니다.
이종 데이터간 문제를 푸는 Multimodal
이미지 처리 Computer Vision
자연어 처리 Natural Language Processing
등등
이 존재하죠!
그리고 특정 테스크에 해당하는 하위 테스크가 존재합니다.
이번 포스팅에서는 자연어 처리의 문장 분류 문제를 다뤄볼까합니다.
Natural Language Process의 Text Classification 을 클릭해봅니다.
그러면, 해당 문제가 하이라이트 되고 (파란색 화살표)
그 문제에 속하는 다양한 연구 결과물이 메인 공간에 표시됩니다!
이들 중 적절한 연구 결과물을 클릭해서 들어갈 수 있어요.
저는 Twitter 데이터를 이용한 감성 분석 (sentiment Analysis) 모델을 사용해보겠습니다! (핑크색 박스)
감정 분석 : 글에 담긴 저자의 감정 상태를 예측하는 문제 (긍정 / 부정 / 중립)
참고로, 보여지는 화면은 시간이 지남에 따라 바뀔겁니다.
따라서 이 포스트를 보고 따라오시는 분들은 아래 페이지의 링크로 접근해주세요.
https://huggingface.co/cardiffnlp/twitter-roberta-base-sentiment-latest
본인이 문제에 맞는 적절한 연구결과를 찾기위해서는
상단의 Filter by name에 적절한 키워드를 입력하시고
우측의 sort를 조절하면 됩니다.
제목만 보고 적절한 연구 결과물을 유추할 수 있지만
그것이 정말 내 문제를 풀 수 있는지는
해당 연구 결과물 페이지에 들어가서 내용을 읽어봐야겠죠 ^^??
API 사용 가능성 확인
모든 연구 결과물이 API를 제공하지는 않습니다.
이를 확인하기 위해서는 연구 결과 메인 페이지에서
우측 Deploy 버튼을 눌러 (파란 화살표)
Inference API 라는 버튼이 있는것을 확인해야 합니다!! (핑크 화살표)
만약 API를 제공하지 않는다면
Deploy 버튼이 없거나, Inference API라는 부분이 존재하지 않습니다. (아래 참고)
API 호출 준비하기 (HuggingFace API key 확인, 코드 확인)
API를 사용하고자 한다면
HuggingFace에 가입하고 로그인이 되어있어야합니다.
그렇다면 API를 사용할 수 있는 key를 발급받을 수 있습니다.
가장 우측 상단의 본인 프로필을 눌러서
Settings에 들어갑니다.
Access Tokens (파란 박스) > New token (핑크 박스) 클릭
Name에 적절한 값을 넣어주시고,
Role은 read로 선택해서
생성하시면 됩니다.
다 왔습니다.
그러면 아래와 같이 Access Token(=API key)이 발급되고 API 사용 준비가 된겁니다!
당연하겠지만, 이건 유출하시면 안되겠죠?? ^^;;
복사 버튼를 누르면 Key가 복사되고
여러 API 활용 과정에서 사용됩니다.
자, 다시 연구 페이지로 돌아갑니다.
그리고 Deploy > Inference API 버튼을 눌러봅니다.
그러면, 파이썬, JS, curl 방식으로 사용하는 기본 코드가 나옵니다. (파란 화살표)
저는 파이썬이 익숙하니 파이썬 코드로 선택해서 코드를 복사합니다 (위 핑크 화살표)
그리고 사용하는 코드 작성 툴로 이동해서 붙여넣습니다.
Colab도 좋습니다!
import requests
API_URL = "https://api-inference.huggingface.co/models/cardiffnlp/twitter-roberta-base-sentiment-latest"
headers = {"Authorization": "Bearer 여기에_각자의_AccessToken이_들어갑니다!!"}
def query(payload):
response = requests.post(API_URL, headers=headers, json=payload)
return response.json()
output = query({
"inputs": "I like you. I love you",
})위 코드를 간단히 설명하면
저희가 선택한 연구 결과물 AI 모델을 사용할 수 있는 사이트에 접근해서 (API_URL)
접근 가능한지 인증 코드를 넣어주고 (headers)
AI 모델에게 답변을 달라고 요청을 합니다 (response)
인터넷으로 요청해야하므로 인터넷 연결이 필요합니다!
요청하는 입력은 사용자가 정의하기 나름이며 (inputs)
위 코드에서는 "I like you. I love you" 입니다.
그 결과가 output에 저장
과 같은 과정으로 코드가 작성되어있네요.
API 사용하고 결과 보기
위 코드를 실행하고 결과를 받습니다.
(실행하는 중간에 패키지 임포트 에러가 난다면 설치해주시면 됩니다) → 이 부분도 포스팅으로 한번 적어야겠네요 ㅎㅎ;;