[AI 모델 탐험기] #10 Q&A 생성 모델

AI Network
8 min readJun 10, 2021

--

[편집자주] 본 글은 커먼컴퓨터에서 Developer Relations Engineer를 맡고 있는 성창엽님이 오픈소스 AI모델을 정리하고 인사이트를 공유하는 글로 시리즈로 기획돼 발행되고 있습니다. 열번째 글은 Q&A 생성 모델입니다.

Input : 인공지능은 인간의 학습능력, 추론능력, 지각능력, 그외에 인공적으로 구현한 컴퓨터 프로그램 또는 이를 포함한 컴퓨터 시스템이다.

Q : 인간의 학습 능력, 추론 능력, 지각 능력 및 기타 인위적으로 구현 된 컴퓨터 프로그램은 무엇입니까?

A : 인공지능

질문 생성을 위한 가장 간단한 방법은 모델에 정보와 답변을 입력하면 정보의 문맥을 고려하여 해당 답변에 대한 질문을 생성하는 방법입니다. 질문 생성은 질문&답변 생성만큼 주류가 아닌데, 그 이유 중 하나는 대부분 논문에서 복잡한 파이프 라인을 사용하고 사전 학습 된 모델을 사용할 수 없기 때문입니다. 따라서 Suraj Patil님께서 이러한 문제를 해결하기 위해 복잡한 파이프라인 없이 end-to-end 방법을 사용하여 사전 학습된 질문 생성 모델 뿐만 아니라 질문&답변 생성 모델까지 공개해주셔 이를 가지고 글을 작성해보겠습니다.

프로젝트를 바로 확인해 보시고 싶으신 분들은 다음 링크를 참조해주세요!

Demo : https://link.ainize.ai/3w5skop

API : https://link.ainize.ai/2T9Nymz

Github : https://link.ainize.ai/3gigdxG

Ainize Workspace : https://ainize.ai/workspace/view?ipynb=https://raw.githubusercontent.com/scy6500/question-generator-tutorial/main/question-generator-tutorial.ipynb&imageId=HQ8gBR4qbSwEEgcoJL4G

질문&답변 생성을 위해 일반적으로 답변 추출 모델, 추출된 답변에 대한 질문 생성 모델, 질문을 받아 답변을 생성하는 모델로 총 3개의 모델이 필요합니다. 여기서 답변을 생성하는 모델이 2개인 이유는 모델들을 비교하여 생성이 된 질문이 올바른지 확인하기 위함입니다.

하지만 단일 작업에 대해 3개의 모델을 갖는 것은 불편할 뿐만 아니라 비효율적입니다. 따라서 3가지 작업을 모두 수행 할 수있는 다중 작업 모델이 필요한데, 이 프로젝트에서는 다중 작업 모델을 위해 T5라는 모델이 사용됩니다. 먼저 T5에 대해 알아보겠습니다.

한번에 해결하자 : T5

기존에 사용되었던 BERT 기반의 모델들은 많은 task에서 우수한 성능을 보여줬습니다. 하지만 이 모델들은 task별로 입출력의 형태가 다르다는 문제가 있었습니다. 이를 해결하기 위해 나온 것이 T5(The Text-To-Text Transfer Transformer)입니다. T5는 BERT 기반의 모델과 달리 모든 언어 task를 text-to-text task로 변환하여 문제를 해결합니다.

예시를 들어보자면, 만약 영어를 독일어로 번역하고싶다면 입력으로 “translate English to German: That is good.”, 출력으로 “Das ist gut.”를 사용합니다. 이번에는 문장의 적절성을 평가하고 싶다면 입력으로 “cola sentence: The course is jumping well..”, 출력으로 “not acceptable”을 사용합니다. 이와 같은 text-to-text task 접근 방식을 사용하면 동일한 모델, 로스 함수, 하이퍼 매개 변수를 사용할 수 있다고 합니다.

출처 : Google AI Blog — Exploring Transfer Learning with T5: the Text-To-Text Transfer Transformer

질문&답변 생성 모델은 “extract answer:”, “generate question:”와 같은 작업 접두사를 통해 다중 작업 방식으로 답변 추출 , 추출된 답변에 대한 질문 생성, 질문을 받아 답변을 생성을 수행합니다.

출처 : question_generation Github

사용법

  • Question Generator DEMO 사용하기

먼저 Ainize에서 제공하는 DEMO를 통해 Question Generator를 사용해보겠습니다.

Typing Box에 정보를 입력하고, Generate 버튼을 누르면 질문과 답변이 생성됩니다. 정보를 입력할 때는 백과 사전에서 복사하여 입력하는 것이 좋다고 합니다. 해당 DEMO는 link에서 사용할 수 있습니다.

  • Question Generator API 사용하기

이번에는 Ainize에서 제공하는 Question Generator API를 사용하여 Question Generator를 사용해보겠습니다. API에 관한 내용은 link에서 확인할 수 있습니다.

  • pipeline을 통해 모델 사용하기

이번에는 pipeline을 통해 모델을 사용해보겠습니다. pipeline을 사용하면 데이터 전처리 및 결과값 도출의 모든 단계를 따로 처리할 필요 없이 한번에 처리할 수 있다는 장점이 있습니다.

자세한 내용은 link에서 확인할 수 있습니다.

AI 네트워크는 블록체인 기반 플랫폼으로 인공지능 개발 환경의 혁신을 목표로 하고 있습니다. 수백만 개의 오픈 소스 프로젝트가 라이브로 구현되는 글로벌 백엔드 인프라를 표방합니다.

최신 소식이 궁금하시다면 아래 커뮤니케이션 채널을 참고해주시기 바랍니다. 다시 한 번 감사합니다.

​AI네트워크 공식 홈페이지: https://ainetwork.ai/

공식 텔레그램: telegram.com/ainetwork_kr

아이나이즈(Ainize): https://ainize.ai

유튜브: https://www.youtube.com/channel/UCnyBeZ5iEdlKrAcfNbZ-wog

페이스북:https://www.facebook.com/ainetworkofficial/

포럼:https://forum.ainetwork.ai/

AIN Price chart: https://coinmarketcap.com/currencies/ai-network/onchain-analysis/

--

--

AI Network
AI Network

Written by AI Network

A decentralized AI development ecosystem built on its own blockchain, AI Network seeks to become the “Internet for AI” in the Web3 era.

Responses (1)