👉 오늘 한 일
파이널 프로젝트 중간 상황
주제 : KoGPT-trinity 모델을 활용한 3행시 생성 모델 구축 및 배포
현업자 피드백 : 22.12.28
1. 거대 모델에 대한 이해도를 높여라.
-
현업자들은 매일 최신 기술을 보기 때문에, GPT나 허깅 페이스 사용 여부에 놀라지 않는다.
-
대신에 시간을 들여야만 알수 있는것들을 알때 감탄한다. 하나하나를 쓸때 제대로 알고 하는게 중요하다.
-
예시) BERT 모델과 GPT 모델의 차이점 비교 및 실험. 내지는 ‘데이터를 이렇게 하니까 좋았다’라는 경험.
2. 프로젝트의 본질은 서비스가 아니다.
- 지금 우리가 프로토 타입 만들어서 제품을 출시해야 하는게 아니다.
- 파이널의 핵심은 ‘더 많은 공부와 더 많은 배움과 알고리즘’ 이다.
3. 텍스트 생성, 엎지 말자.
- 일단 지금은 API 를 쓰고 있으니까, 접는 것이 더 나쁘다.
**text 생성을 시도해봐도 좋을 것 같다.**
- 일반적 텍스트 제너레이션은 다음에 나올 단어를 나이브하게 생성 하는 것에 해당한다.
- 대신 그냥 생성이 아니라
n행시는 어떻게 연관되게 할 지
를 좀더 공부가 필요한 것!
4. 잘 해낸 점이 있다.
- 가사에서는 많은 어휘가 나오지 않아서 가사를 모은것은 잘했다.
- 영단어 생략 후, vocab을 조그맣게 해서 직접 제너레이션 해보는 것을 추천한다.
결론: 방향성, 이렇게 잡아라.
- GPT를 빼고, 조건부 확률분포로 해서 샘플링해볼 것.
- 데이터셋을 아주 조그맣게 해서 텍스트 제너레이션을 구현해보자.
- 1 STEP은 다음과 같다 → 확률분포로 sampling (또는 퓨리스틱하게)
- 데이터셋: 1000개 내외
- 방법:
자 -> 자로 시작하는 단어를 vocab 찾아서 단어 가져와서 넣고. (다음에 나올 단어에 대한 확률분포)
동 -> 동으로 시작하는 단어를 vocab 찾아서 단어 가져와서 넣고.
차 -> 차로 시작하는 단어를 vocab 찾아서 단어 가져와서 넣는 식.
- LSTM , gan, DNN 없이. 딥러닝 전에 순수 텍스트 생성 시도 → 복잡도가 커졌을 때 딥러닝을 써보라.
- 즉, 딥러닝을 쓰기 전의 것들을 말하는 것. rnn 을 써도 텍스트 제너레이션 모델을 이해해야만 한다.
- 이해의 순서라는 것이 존재함. 가능하다면 조건부 확률분포해서 나이브 베이즈한 방식으로 시도해볼 것.
Reference
확률 기반 언어 모델
http://bigdata.dongguk.ac.kr/lectures/TextMining/_book/%EC%96%B8%EC%96%B4-%EB%AA%A8%EB%8D%B8language-model.html#%ED%99%95%EB%A5%A0%EA%B8%B0%EB%B0%98-%EC%96%B8%EC%96%B4-%EB%AA%A8%EB%8D%B8
[자연어 처리] BERT와 GPT로 배우는 자연어 처리
https://roytravel.tistory.com/162
[AI 모델 탐험기] #7 한글 버전의 GPT-2, KoGPT2
https://velog.io/@yeop2/AI-%EB%AA%A8%EB%8D%B8-%ED%83%90%ED%97%98%EA%B8%B0-7-%ED%95%9C%EA%B8%80-%EB%B2%84%EC%A0%84%EC%9D%98-GPT-2-KoGPT2
📌KPT 회고
Keep: 프로젝트 진행에 영향을 미친 긍정적 요소를 말합니다.
Problem: 프로젝트 진행에 영향을 미친 부정적 요소를 말합니다.
Try: 부정적 요소를 해결할 향후 행동 방향에 대한 피드백입니다. (프로젝트/개인 모두)
- Keep: 깃헙 레파지토리를 깔끔하게 정리한 점이 좋다. 어차피 프로젝트 기간 중 언젠가 해야됐을 것 같았다.
- Problem: 스케줄 관리를 잘 하고 있는 것인지 잘 모르겠다.. 약간 빠듯할지도 모르겠다는 생각이 든다.
- Try: 각 파트에 대한 명확한 데드라인 설정과 코드 공유, 리뷰를 통해 공통된 부분 작업 시간을 최소화해볼 수 있을 것 같다.