Seunghwan Hong

Engineering Blog

Avalanche: an End-to-End Library for Continual Learning - Paper Review

PyTorch 생태계의 Continual Learning 프레임워크

Avalanche with ContinualAI 이번 PyTorch Ecosystem Day 2021의 Poster 세션에서 소개된 것들이 정말 많았습니다. 그 중 Continual Learning에 관련된 라이브러리로 Avalanche가 있었는데, 마침 회사에서 이 논문을 정리할 니즈가 생겨서 이 글에 정리해봅니다. 이 논문은...

PyTorch Ecosystem Day 2021 톺아보기

내부 기능 개선과 외부 협업을 중심으로

PyTorch Ecosystem Day 2021 한국 시간으로 4월 22일 오전 12시부터 오전 10시까지 PyTorch Ecosystem Day 2021가 열렸습니다. 당연하겠지만 APAC의 낮에는 절대 허락되지 않는 Keynote 시간이었기에 거의 밤새다시피 하면서 들었습니다. PyTorch가 주변 생태계를 얼마나 소중하게 생...

TensorFlow Custom Op으로 데이터 변환 최적화하기

4.697ms → 17.147μs

이 글은 Pingpong 블로그에 기고된 글로, 핑퐁팀에서 Python을 어떻게 사용하는지와 코드를 어떻게 관리하는지에 대해 서술한 글입니다. 원 저자는 저와 정욱재 님입니다. 기록을 위해 제 블로그에도 올려놓습니다. 핑퐁팀에서는 모델 학습의 효율성을 위해 자주 TFRecord를 생성합니다. 하지만 정제할 데이터가 많은 경우에는 변환이 느려지고,...

프로그래머를 위한 파이썬 - Book Review

실전 프로젝트로 배우는 소프트웨어 개발의 원리와 정석

이 글은 제이펍에서 출간한 “프로그래머를 위한 파이썬”의 서평입니다. 저는 머신러닝 업계에서 일하고 있는데, 회사 안에서든 오픈소스에서든 수 많은 Python 코드들을 보게 됩니다. 하지만 인터넷에 있는 많은 코드들이 제대로 구조화되어 있지 않고, Python이 ‘단순한 도구’ 그 이상도 이하도 아니게 쓰이는 경우를 많이 봐왔습니다. 개인적으로도 P...

Q8BERT: Quantized 8Bit BERT - Paper Review

NeurIPS 2019

추론 속도와 메모리 효율성을 위해 BERT를 8Bit Integer로 Quantize하는 방법론을 제시했으며, NeurIPS 2019에 소개되었습니다. BERT를 Accuracy를 최대한 보존한 상태에서 4분의 1 크기로 줄였습니다. ArXiv Introduction 최근에 SOTA를 찍고 있는 BERT와 같은 모델들은 매우 큰 Cor...

MobileBERT: a Compact Task-Agnostic BERT for Resource-Limited Devices - Paper Review

ACL 2020

모바일 디바이스에서 추론할 수 있는 BERT를 만들고자 한 논문으로, ACL 2020에 소개되었습니다. BERT Large를 Pre-train한 후 이를 Teacher Model로 삼아 학습시켰을 때 BERT Base보다 4.3배 작고 5.5배 빠른 성능을 지녔습니다. ArXiv Github (TF 구현체) Introduction ...

ICLR 2020 NLP Paper Review

ICLR 2020 요약 정리

ICLR 2020을 보고 NLP 분야에서 읽어봄직한 논문들을 제 맘대로 추려 간단하게 정리했습니다. ICLR 2020 Virtual Site와 여러 큐레이션 블로그 글에서 관심 가는 것들을 기준으로 모아보았습니다. 중요하다고 생각하는 것들은 별도 글로 정리할 예정이며, 이 글에서는 개략적인 설명과 방법론, 이루어낸 결과물 정도로 정리합니다. 각 논문...

TensorFlow TPU 학습 101

Google ML 서비스의 심장으로 학습하기

이 글은 Pingpong 블로그에 기고된 글로, TensorFlow 2.0으로 TPU 상에서 학습을 시작하기 위해 필요한 과정에 대해 서술한 글입니다. 기록을 위해 제 블로그에도 올려놓습니다. 핑퐁팀은 PyTorch뿐만 아니라 TensorFlow 2.0도 활발하게 사용하고 있습니다. 최근 팀 내에서 TPU를 활용하여 학습하는 프로젝트를 진행하고 ...

DynaBERT: Dynamic BERT with Adaptive Width and Depth - Paper Review

입맛대로 잘라쓰는 BERT

BERT나 RoBERTa와 같이 사전 학습된 Language Model들은 많은 NLP Task에서 좋은 성능을 보이지만 그만큼 연산량이 많고 메모리 비용이 큽니다. 이 논문에서는 Width와 Depth를 Adaptive하게 조절할 수 있는 형태의 BERT Model을 소개합니다. Abstract BERT의 크기를 줄이기 위한 최근의 Approac...

핑퐁팀의 Python 문화 구축기

본격 Python 문화 바로잡기

이 글은 Pingpong 블로그에 기고된 글로, 핑퐁팀에서 Python을 어떻게 사용하는지와 코드를 어떻게 관리하는지에 대해 서술한 글입니다. 원 저자는 저와 정욱재 님입니다. 기록을 위해 제 블로그에도 올려놓습니다. 핑퐁팀은 머신러닝 모델 실험 코드부터 프로덕션에 이르기까지 Python을 많이 사용합니다. 하나의 프로젝트는 여러 명의 협업으로 ...