본문 바로가기

Dev15

Tokenizer 비교 실험 (형태소 분석, word piece) * Environment : Ubuntu 18.04, Python 3.8.3 * Dataset : Korean Wikipedia 토크나이저의 방식은 크게 두가지 방식으로 볼 수 있다. Word piece 혹은 subword segmentation으로 한 단어를 세부 단어로 분리하는 방식과 형태소 분석 방식이 있다. 영어를 기반으로 발전되었기에 word piece 방식이 다양하고 속도측면에서 빠르지만, 한국어의 특성상 형태소 분석 방식이 좀 더 적합하기는 하다. 그래서 두가지 tokenizing 방식에 대해 (미루고 미루던) 비교 실험을 진행해보았다! 간략하게 정리하자면, 공개된 패키지 기반으로 각 방식마다 알려진 것은 표에 정리해두었다. Word piece Morphology BPE (ACL 2015, .. 2020. 8. 6.
Tensorflow mirrored strategy 사용하여 2개 GPU로 BERT fine-tuning 학습하기 Horovod로도 해봤지만 Tensorflow 내에서 기본적으로 제공하는 패키지를 사용하여 여러 개의 GPU로 분산학습이 가능하다. 이번엔 추가 프레임워크 사용없이 Tensorflow 내에서 해보고자 한다. * Environment : Ubuntu 18.04, CUDA 10.0, CuDNN 7.6.5, 2 * Titan RTX, Tensorflow 1.14, Anaconda, Python 3.6.5 * Model : BERT Multilingual cased model * Dataset : SQuAD 2.0 공식 문서와 colab으로 자세하게 설명이 되어있지만, 내 코드에 적용시키기 위한 충분한 설명이 아니어서 이를 구현하는 데에는 시간이 조금 필요했다. 이번에 사용할 분산 방법은 Mirrored Str.. 2020. 6. 5.
2개의 GPU로 BERT SQuAD2.0 fine-tuning training 하기 연구실 PC를 Titan RTX (24GB) GPU를 사용해서 하는데 기존 레퍼지토리에서 가이드로 제공하는 것보다 2배의 RAM인데, batch size 2배로 돌리면 OOM 에러가 뜬다.. 그래서 Titan RTX GPU를 하나 더 받아, 더 큰 배치사이즈로도 돌려보기로 하였다. 우선 나에겐 GPU PC가 처음이었고 낯설어 multi gpu를 사용하기 위해서 새로이 학습하고 찾아봐야했다. 찾아보았을 때 Horovod를 사용하여 multi gpu를 주로 사용한다고 하여 이를 따라보기로 했다. What is Horovod ? * Motivation : single-GPU 학습 스크립트를 쉽게 가져오고 이를 성공적으로 scalable하게 여러 GPU에서 병렬적으로 학습할 수 있도록 하는 것 - 프로그램을 배.. 2020. 5. 21.
[프로그래머스] 종이접기 문제 (Level 3) Python 풀이 문제 설명 직사각형 종이를 n번 접으려고 합니다. 이때, 항상 오른쪽 절반을 왼쪽으로 접어 나갑니다. 다음은 n = 2인 경우의 예시입니다. 먼저 오른쪽 절반을 왼쪽으로 접습니다. 다시 오른쪽 절반을 왼쪽으로 접습니다. 종이를 모두 접은 후에는 종이를 전부 펼칩니다. 종이를 펼칠 때는 종이를 접은 방법의 역순으로 펼쳐서 처음 놓여있던 때와 같은 상태가 되도록 합니다. 위와 같이 두 번 접은 후 종이를 펼치면 아래 그림과 같이 종이에 접은 흔적이 생기게 됩니다. 위 그림에서 ∨ 모양이 생긴 부분은 점선(0)으로, ∧ 모양이 생긴 부분은 실선(1)으로 표시했습니다. 종이를 접은 횟수 n이 매개변수로 주어질 때, 종이를 절반씩 n번 접은 후 모두 펼쳤을 때 생기는 접힌 부분의 모양을 배열에 담아 return .. 2020. 3. 13.
[프로그래머스] 정수 삼각형 문제 (Level 3) Python 풀이 문제 설명 위와 같은 삼각형의 꼭대기에서 바닥까지 이어지는 경로 중, 거쳐간 숫자의 합이 가장 큰 경우를 찾아보려고 합니다. 아래 칸으로 이동할 때는 대각선 방향으로 한 칸 오른쪽 또는 왼쪽으로만 이동 가능합니다. 예를 들어 3에서는 그 아래칸의 8 또는 1로만 이동이 가능합니다. 삼각형의 정보가 담긴 배열 triangle이 매개변수로 주어질 때, 거쳐간 숫자의 최댓값을 return 하도록 solution 함수를 완성하세요. 제한사항 삼각형의 높이는 1 이상 500 이하입니다. 삼각형을 이루고 있는 숫자는 0 이상 9,999 이하의 정수입니다. 입출력 예 triangle result [[7], [3, 8], [8, 1, 0], [2, 7, 4, 4], [4, 5, 2, 6, 5]] 30 이 문제는 동적계.. 2020. 3. 12.