Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

6주차 과제 #6

Open
GirinMan opened this issue May 11, 2023 · 9 comments
Open

6주차 과제 #6

GirinMan opened this issue May 11, 2023 · 9 comments
Assignees
Labels
assignment 각 주차별 조별 과제 기록

Comments

@GirinMan
Copy link
Member

GirinMan commented May 11, 2023

다섯 번째 과제: Pipeline으로 다양한 NLP task 수행하기

회합 자료 링크: #1 (comment)
image

  • Huggingface에서 제공하는 API를 활용하여 다양한 NLP task를 수행할 수 있는 모델을 불러와 사용해 봅시다.
  • Transformers의 pipeline API를 사용하면 원본 텍스트 토크나이징, 모델 입력, 출력 결과 디코딩 등의 과정을 end-to-end로 쉽게 처리할 수 있습니다.

Colab Python 노트북을 사용한 huggingface pipeline 실습

huggingface_pipelines.ipynb

Step 1. 예시 노트북을 실행해보며 huggingface pipeline 사용법 익히기

  • Google 계정 로그인 후 colab에 접속해서 현재 레포지토리의 /Week6/huggingface_pipelines.ipynb 노트북을 실행해보면서 한국어에서 영어로 기계 번역을 수행하는 모델을 사용하는 방법을 알아봅시다.
  • 예시 데이터 대신 자신만의 데이터를 입력해서 사용해도 좋아요!

Step 2. Huggingface model hub와 dataset hub를 구경하고, 새로운 task 실행해보기

image

  • pipeline은 NLP task 뿐만 아니라 vision, voice, multimodal task 역시 지원합니다.
  • Huggingface에서 지원하는 task 목록과 model hub, dataset hub을 참조하여 transformer 모델을 활용한 나만의 파이프라인을 구축해 보세요.

Reference

제출 방식

  • 특별한 양식 없이, 실습 노트북의 task, 모델, 데이터 등을 다양하게 바꿔보며 자신만의 파이프라인을 실행한 결과를 보여주세요.
  • 기존 프로그래밍 스킬을 활용하여 pipeline을 적용한 프로그램을 개발해봐도 좋아요!(예시: 키보드로 텍스트를 입력하면 번역해주는 프로그램 만들기 등)
@GirinMan GirinMan self-assigned this May 11, 2023
@GirinMan GirinMan added the assignment 각 주차별 조별 과제 기록 label May 11, 2023
@Ahngab
Copy link

Ahngab commented May 16, 2023

1조 과제
hugging face의 knkarthick/MEETING_SUMMARY model을 load 해서 하나를 실행 했고, SetFit/bbc-news dataset을 가지고 와서 직접 summary해 headline 뉴스를 만들어주는 프로그램을 제작하였다.
6주차1
6주차2

@t2easure
Copy link

t2easure commented May 18, 2023

2조 과제

image
t5-base 라는 모델을 불러와서 영어 -> 독일어로 바꿔주는 번역 모델 실행해 봄.

image
gpt2를 이용해 문장을 입력하고 그 뒤에 문장을 작문하게 만듦

image
pipeline에서 텍스트를 분류하는 모델을 불러와 실행했다.

image
image
pipeline의 핵심 구성요소인 tokenizer를 통해 텍스트를 모델이 처리할 수 있도록 데이터를 변환하도록 skt/kogpt2-base-v2를 통해 토큰화를 진행해 보았고, 허깅페이스의 GPT2LMHeadModel을 통해 텍스트 생성 예제를 진행했습니다.

@ymnseol
Copy link

ymnseol commented May 18, 2023

4조

강다형

roberta-base-squad2 모델로 파이프라인을 실행해봤습니다. 질문-답변 쌍으로 이루어진 데이터를 통해 학습된 모델로, question answering task를 수행합니다.
KakaoTalk_Photo_2023-05-18-16-33-35
KakaoTalk_Photo_2023-05-18-16-33-39

김율희

nlpconnect/vit-gpt2-image-captioning 모델을 이용하여 이미지를 텍스트로 변환하는 작업을 수행했습니다.
KakaoTalk_Photo_2023-05-18-18-41-26 001
KakaoTalk_Photo_2023-05-18-18-41-27 002

김재명

model은 summarization model 중 영문에 pre-trained 되어있는 facebook/bart-large-cnn,
dataset은 해당 모델에 잘 맞는 cnn_dailymail 을 사용했습니다.
KakaoTalk_Photo_2023-05-18-16-34-13
KakaoTalk_Photo_2023-05-18-16-34-20

설유민

Code Summarization에 대해 fine-tuning된 CodeT5를 사용하여 code summarization을 수행했습니다. Pipeline은 text2text-generation을 사용했습니다! Input으로 다익스트라 알고리즘 구현 코드와 위치 정보를 디스플레이하는 코드를 각각 주었을 때, 의도를 잘 파악하는 것 같습니다!
스크린샷 2023-05-18 오후 1 52 48

표지원

FLAN에 prompt를 넣어, 특정 task 제한 없이 다양한 요청에 대해 답변을 하도록 했습니다.
스크린샷 2023-05-18 오후 7 01 57

@YUNHYUNWOO
Copy link

3조
hugging face에서 번역모델과 요약모델을 이용하여 영어뉴스를 한글로 요약하도록 하였습니다.
HAI 6-1-모델
번역모델은 KoJLabs/nllb-finetuned-en2k을, 요약모델은 eenzeenee/t5-base-korean-summarization을 사용했습니다.
HAI 6-2 데이터셋 2
데이터셋은 SetFit/bbc-news을 사용하였습니다.

결과
HAI 6-2-결과 3

@jerry7129
Copy link

5조
image
image
image

@twkang43
Copy link

강태욱

사용 모델 : t5-base-korean-summarization (링크 : https://huggingface.co/eenzeenee/t5-base-korean-summarization)
Screenshot 2023-07-20 at 15 09 13

해당 모델을 통해 뉴스 기사를 요약해보았습니다.
뉴스 기사는 임의로 다음의 기사로 설정했습니다. https://sports.news.naver.com/news?oid=028&aid=0002648964

다음의 코드를 통해 뉴스 기사의 요약을 수행했습니다.
뉴스의 내용에 맞게 적절한 요약을 제공한 것을 확인할 수 있었습니다.
Screenshot 2023-07-20 at 15 10 58

@mnxcv
Copy link

mnxcv commented Jul 23, 2023

임세훈

사용 모델

from transformers import pipeline

QA = pipeline("question-answering", model="deepset/roberta-base-squad2", device=device)

Question-Answering task를 수행하는 deepset/roberta-base-squad2 model을 사용하였습니다.

사용 예시

code

news_article = '''
(내용 생략)
'''

BAD_EXAMPLE = {
    'question': "What is the reason of this record-breaking rainfall?",
    'context': news_article
}
print(f"{BAD_EXAMPLE['question']} -> {QA(BAD_EXAMPLE)['answer']}")

GOOD_EXAMPLE = {
    'question': "How many people have been left without power?",
    'context': news_article
}
print(f"{GOOD_EXAMPLE['question']} -> {QA(GOOD_EXAMPLE)['answer']}")

output

What is the reason of this record-breaking rainfall? -> climate change
How many people have been left without power? -> More than 80,000

좋은 예시와 나쁜 예시를 하나씩 찾았습니다.

전체적으로 문장과 잘 연결되어 있는 Question의 경우 옳은 답변을 내놓았지만
그렇지 않은 경우 잘못된 답변을 내놓았습니다.

사용한 Colab Notebook 주소는 여기에서 확인할 수 있습니다.

@DHki
Copy link

DHki commented Jul 24, 2023

김동하

사용 모델

knkarthick/MEETING_SUMMARY 모델을 사용해서 간단한 텍스트를 요약해봤습니다.

image

간단한 소개를 입력했을 때, 이와 같이 요약이 잘 되었습니다.

image
BBC 뉴스기사를 입력했을 때에도 마찬가지로 요약이 잘 되는 것을 확인했습니다.

@KangMeanWoo
Copy link

강민우

사용 모델

VisualQuestionAnswering task를 수행하는 dandelin/vilt-b32-finetuned-vqa모델을 사용하였습니다.

from transformers import pipeline

oracle = pipeline(model="dandelin/vilt-b32-finetuned-vqa")
image_url = "https://datasets-server.huggingface.co/assets/dali-does/clevr-math/--/general/train/15/image/image.png"
oracle(question="How many things are there?", image=image_url, top_k = 1)


[{'score': 0.3569360375404358, 'answer': '6'}]

image

image_url = "https://datasets-server.huggingface.co/assets/dali-does/clevr-math/--/general/train/21/image/image.png"
oracle(question="How many things are there?", image=image_url, top_k = 1)


[{'score': 0.6242725253105164, 'answer': '3'}]

image

두 사진의 사물의 개수에 대해 물어보았는데 첫 번째 사진은 사물도 많고 여러 개의 사물이 붙어 있어서 6이라는 잘못된 답이 나왔고 두 번째 사진에서는 비교적 쉬운 사진이라 3이라는 알맞은 답이 나왔습니다.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
assignment 각 주차별 조별 과제 기록
Projects
None yet
Development

No branches or pull requests

10 participants