Notice
Recent Posts
Recent Comments
Link
관리 메뉴

one by one ◼◻◼◻

2021인공지능 데이터 활용 경진대회(한국지능정보사회진흥원/과학기술정보통신부) 본문

대회후기

2021인공지능 데이터 활용 경진대회(한국지능정보사회진흥원/과학기술정보통신부)

JihyunLee 2021. 10. 2. 14:37

2021 인공지능 데이터 활용 경진대회에 참여했다.

아쉽게도.. 예선에서 시간부족으로 모델을 제출하지 못해 결과를 알 수 없었다.

하지만 텍스트 요약 이라는 새로운 분야에 도전해서 결과를 얻었다는 점에서(비록 결과가 좋은지 어떤지는 모르지만..)

좋은 경험이었다!

 

예선대회는 dacon 플랫폼에서 이뤄졌고, 시간은 3일이 주어졌다. 

https://dacon.io/competitions/official/235818/overview/description

 

"훈민정음에 스며들다"-문서요약 역량평가 - DACON

좋아요는 1분 내에 한 번만 클릭 할 수 있습니다.

dacon.io

 

코드 공유에서 달린 댓글들을 보니 나 말고도 시간 부족으로 당황한 사람이 많은 듯 했다.

(여담이지만.. 시간이 안그래도 부족한데 실수로 cpu에 모델을 로드해서 서버가 뻗어버리는 일이 생겼다. 그래서 복구하느라 제시간에 제출을 못함..ㅠㅠ)

 

나의 방법

내가 한 방법은 아주! 간단하다.

이리저리 '한국어 text summarize'를 구글링 해 보니 KoBART summarization 모델이 있었다.

https://github.com/seujung/KoBART-summarization

 

GitHub - seujung/KoBART-summarization: Summarization module based on KoBART

Summarization module based on KoBART. Contribute to seujung/KoBART-summarization development by creating an account on GitHub.

github.com

그냥 여기서 하라는데로 모델을 다운받고, 설치하고, 대회 데이터는 csv 였는데, 이를 tsv로 변경만 시켜주고, 학습시켰다.

 

결과물은 다음과 같다(비록 채점받진 못했지만..).

 

본문

"[경주=환경일보] 강광태 기자 = 경주시는 창의적 아이디어를 적극 수렴함으로써 소통과 시민참여행정을 실현하고자 '2019년 경주시 상반기 행복 톡톡 아이디어 공모'를 개최한다. 이번 공모전은 4월 30일까지 진행되며, 경주시 발전에 관심 있는 사람이면 누구나 참여할 수 있다. 공모 분야는 일자리 창출 및 지역경제 활성화 방안, 경주시 인구 늘리기 방안, 문화관광 활성화를 위한 차별화된 제안, 안전한 환경 조성 및 나눔 복지 실현 제안, 4차·6차 산업 혁신기술 아이디어, 업무혁신 방안, 기타 생활 관련 아이디어 등으로, 시정 전반에 걸친 자유로운 주제에 대한 제안을 받는다. 응모는 경주시 홈페이지 시민제안방과 국민생각함, 이메일, 우편, 방문 등 다양한 방법으로 참여 가능하다. 평가기준은 창의성, 능률성(경제성), 계속성, 적용범위, 노력도의 총 5가지로, 업무담당부서의 검토를 거친 후 사전심사단과 제안심사위원회의 공정한 심사를 통해 우수 제안을 최종 선정한다. 수상자에게는 상장과 함께 최고 300만원에 해당하는 부상금이 수여되고, 참가자 전원에게 소정의 기념품이 지급된다. 결과는 6월 중 경주시청 홈페이지를 통해 발표할 예정이다. 경주시 관계자는 ""'역사를 품은 도시 미래를 담는 경주'의 실현을 위해, 이번 공모를 통해 다양한 아이디어를 발굴함으로써 시정에 반영하고자 한다""며 ""참신하고 발전적인 아이디어를 가진 분들의 많은 참여를 기대한다""고 말했다. "

 

요약

"경주시는 4월 30일까지 '2019년 경주시 상반기 행복 톡톡 아이디어 공모'를 개최하여 일자리 창출 및 지역경제 활성화 방안, 경주시 인구 늘리기 방안, 문화관광 활성화를 위한 차별화된 제안, 차별화된 제안, 안전한 환경 조성 및 나눔 복지 실현 제안, 4차·6차 산업 혁신기술 아이디어, 업무혁신 방안, 기타 생활 관련 아이디어 등으로 시정 전반에 걸친 자유로운 주제에 대한 제안을 받는다."

 

본문

"황영민 시장·군수·구청장 직접 제출… 경기도, 복지부·국회에 개선 요구 경기도가 장애인차량 등록시 행정기관을 두 번 오가야 하는 번거로움을 개선하기 위해 팔을 걷어붙였다. 23일 경기도에 따르면 현재 장애인이 차량을 구입해 장애인자동차 등록 및 표지를 발급받기 위해서는 관할 지자체 차량등록부서에 차량을 등록한 뒤, 또다시 주거지 관할 주민센터를 방문해 장애인차량 표지발급을 신청해야 한다. 2018년 12월 기준 도내 등록장애인은 54만7천여 명으로 이중 44%에 달하는 23만8천여 명이 장애인차량 등록을 한 상태다. 또 최근 통계를 살펴보면 매년 도내 등록장애인 중 4만8천여 명(9%) 정도가 장애인차량 등록 업무와 관련해 챠량등록부서와 주민센터를 내방하고 있는 것으로 나타났다. 장애인차량 표지 발급자의 52%는 보행상 장애를 겪고 있는 이들이지만, 관련 제도 미비로 장애인차량 등록을 위해 두 번이나 행정기관을 방문하는 번거로움을 겪고 있는 실정이다. 이에 도는 보건복지부와 국회에 행정시스템 개선을 요구하고 나섰다. 장애인차량 표지발급 신청서는 읍·면·동장을 거쳐 시장·군수·구청장에게 제출토록 돼 있는 현행 장애인복지법 시행규칙을 개정, 시장·군수·구청장에게 직접 제출하는 방식으로 변경하자는 것이 도 건의사항의 골자다. 이같은 내용으로 관련법이 개정될 경우 차량등록사업소에서 장애인자동차 표지발급 업무가 가능해져 장애인들이 두 번씩 행정기관을 찾을 필요가 없어진다. 현재 도의 장애인복지법 시행규칙 개정 건의는 보건복지부에 접수된 상태로 차량등록 업무를 맡고 있는 국토교통부와 협의가 이뤄져야 하는 상황이다. 도 관계자는 ""장애인은 최우선적으로 행정편의가 제공돼야 할 대상이지만 관련 제도와 시스템이 갖춰지지 않아 불편을 겪고 있다""면서 ""실제 장애인차량 표지 사용자가 차량을 매각할 때 차량등록부서에 이전처리 후 표지를 임의로 처분하는 사례들도 빈번해 회수율이 저조한 편이다. 관련법 개정이 이뤄질 수 있도록 최선을 다하겠다""고 말했다.

 

요약

"경기도는 23일 현재 장애인이 차량을 구입해 장애인자동차 등록 및 표지를 발급받기 위해서는 관할 지자체 차량등록부서에 차량을 등록한 뒤, 또다시 주거지 관할 주민센터를 방문해 장애인차량 표지발급을 신청해야 하는 번거로움을 개선하기 위해 장애인차량 등록시 행정기관을 두 번 오가야 하는 번거로움을 개선하기 위해 팔을 걷어붙였다."

 

배운 것들

이번 대회를 참여하면서 배운 점들을 정리해 보자면,

 

1. 모델은 CPU에 올리지 말자

모든 서버가 그러진 않겠지만,, GPU에 올려할 모델을 CPU에 올리니 뻗어버렸다. 앞으로는 그러지 말아야지.

 

2. Pytorch Lightning

KorBart summarization 모델은 Pytorch lightining이라는 모듈을 이용하고 있었다.

pytorch 코드를 high level에서 깔끔하게 쓸 수 있는 모듈인데 이를 배워서 활용해야 겠다는 생각이 들었다.

https://www.pytorchlightning.ai/

 

PyTorch Lightning

The ultimate PyTorch research framework. Scale your models, without the boilerplate.

www.pytorchlightning.ai

 

3. Summarization에 활용할 수 있는 링크들 + 방법.

코드 공유 페이지에 보니, summarization을 배울수 있는 링크들이 좀 더 정리되어 있었다.(Dacon user Usurper 님이 정리)

 

정리해주신 summarization 방법은 + 링크들은 아래와 같고,

  1. 단순 발췌 모델: 앞 문장부터 ~ 개의 단어를 그대로 가져오기
  2. Text Summarization Repo
  3. https://github.com/uoneway/KoBertSum
  4. https://huggingface.co/gogamza/kobart-summarization
  5. https://huggingface.co/ainize/kobart-news
  6. https://github.com/kiyoungkim1/LMkor
  7. https://github.com/SKT-AI/KoGPT2
  8. https://github.com/SKT-AI/KoBART
  9. https://github.com/kakaobrain/pororo
  10. xlm-robarta-large 계열 ext 모델

그리고 전, 후 처리로

  1. 요약이 아닌 것 제거하기
    1. is_it_summary > 1.5 값을 대상으로 text와 summary를 바꿔준다.
    2. 다시 is_it_summary을 구하고, is_it_summary <= 1.0 값을 제거한다.
  2. 엉뚱한 요약 제거하기
    1. is_it_extractive < 0.5 값을 제거한다.
    2. 남아있는 값의 text와 summary에 각각 문장 임베딩을 구하고, 유사도를 구한다.
    3. 임계치를 넘지 못하는 값을 제거한다.
  3. 새로운 요약 만들기
    1. 탈락한 값들의 text를 기존 요약 모델에 넣어, sudo 라벨을 구한다.
    2. 구해진 sudo 라벨을 1~2 의 과정을 통해 검증한다.
    3. 검증된 값을 학습데이터로 편입한다. (단, 만들어진 데이터가 기존 데이터의 수의 1/2을 초과하지 않도록 조정한다.)
  4. 오탈자 검증
    1. 룰베이스로 오탈자 검증
    2. 신경망으로 오탈자 검증

방법을 정리해 주셨다.

 

 

이번 대회가 제출도 못하고 아쉽게 끝나긴 했지만, 이틀동안 많이 배우고 좋은 경험을 했다 😉

Comments