[Paper review] tera pipe: token level pipeline parallelism for training larg...Seonghoon Jung
버클리 대학에서 2021년에 발표한 Large-Scale Transformer 모델의 병렬 학습에 대한 논문 리뷰입니다.
TeraPipe Token-Level Pipeline Parallelism for Training Large-Scale Language Models
https://arxiv.org/abs/2102.07988
이 강의에서는 파이썬의 이중 for 루프를 이용한 구구단 출력 및 소수 찾기 알고리즘에 대해 살펴보겠습니다.
이중 for 루프는 for 루프내에 for 루프를 넣은 문장으로 다소 복잡한 문제해결을 위해서 사용할 수 있습니다.
- 강의 키노트 자료는 다음 링크를 통해 다운 받으세요
https://drive.google.com/drive/folders/1UrrO4_ch4xcIErbExstwpUVY6vFvPdkW
- 강의 소스코드는 다음 링크를 통해 다운 받으세요
https://github.com/dongupak/Basic-Python-Programming
[Paper review] tera pipe: token level pipeline parallelism for training larg...Seonghoon Jung
버클리 대학에서 2021년에 발표한 Large-Scale Transformer 모델의 병렬 학습에 대한 논문 리뷰입니다.
TeraPipe Token-Level Pipeline Parallelism for Training Large-Scale Language Models
https://arxiv.org/abs/2102.07988
이 강의에서는 파이썬의 이중 for 루프를 이용한 구구단 출력 및 소수 찾기 알고리즘에 대해 살펴보겠습니다.
이중 for 루프는 for 루프내에 for 루프를 넣은 문장으로 다소 복잡한 문제해결을 위해서 사용할 수 있습니다.
- 강의 키노트 자료는 다음 링크를 통해 다운 받으세요
https://drive.google.com/drive/folders/1UrrO4_ch4xcIErbExstwpUVY6vFvPdkW
- 강의 소스코드는 다음 링크를 통해 다운 받으세요
https://github.com/dongupak/Basic-Python-Programming
2017 tensor flow dev summit (Sequence Models and the RNN API)
작성된 자료로 2017년 2월 22일 오후 8시 부터 Maru180에서
GDG Seoul 에서 주최한 2017 Tensorflow Dev Summit Extended Seou에서
발표를 진행
Sequence Models and the RNN API 정리 내역 공유
2017 tensor flow dev summit (Sequence Models and the RNN API)
작성된 자료로 2017년 2월 22일 오후 8시 부터 Maru180에서
GDG Seoul 에서 주최한 2017 Tensorflow Dev Summit Extended Seou에서
발표를 진행
Sequence Models and the RNN API 정리 내역 공유
2021년 11월 16일 모두콘에서 발표했던 딥러닝 경량화 & 최적화 슬라이드 입니다.
딥러닝 경량화 & 최적화를 실용적으로 적용하려면 어떻게 해야 할까요? 딥러닝 경량화를 검색하면 이론적으로 매우 많은 자료가 쏟아져 나옵니다. 하지만 실제로 적용을 해보면 효과가 없거나 오히려 역효과가 나는 경우가 있습니다. 이번 모두콘에서 저희가 지금까지 딥러닝 모델 경량화 & 최적화를 진행하면서 어떤 것이 실용적으로 효과가 있었는지에 대해서 공유하려고 합니다.비슷한 주제로 고민 중이고 계셨던 분이시면 편하게 들으러 와주세요.
ChatGPT is a natural language processing technology developed by OpenAI. This model is based on the GPT-3 architecture and can be applied to various language tasks by training on large-scale datasets. When applied to a search engine, ChatGPT enables the implementation of an AI-based conversational system that understands user questions or queries and provides relevant information.
ChatGPT takes user questions as input and generates appropriate responses based on them. Since this model considers the context of previous conversations, it can provide more natural dialogue. Moreover, ChatGPT has been trained on diverse information from the internet, allowing it to provide practical and accurate answers to user questions.
When applying ChatGPT to a search engine, the system searches for relevant information based on the user's search query and uses ChatGPT to generate answers to present along with the search results. To do this, the search engine provides an interface that connects with ChatGPT, allowing the user's questions to be passed to the model and the answers generated by the model to be presented alongside the search results.
Vectorized Processing in a Nutshell. (in Korean)
Presented by Hyoungjun Kim, Gruter CTO and Apache Tajo committer, at DeView 2014, Sep. 30 Seoul Korea.
JMI Techtalk: 강재욱 - Toward tf.keras from tf.estimator - From TensorFlow 2.0 p...Lablup Inc.
이 Techtalk에서는 TensorFlow 2.0으로 이전시 tf.estimator 에서 tf.keras로 이전해야 하는 이유에 대하여 설명합니다.
This Techtalk explains why you need to migrate from tf.estimator to tf.keras when moving to TensorFlow 2.0.
Similar to [GPG 스터디] 1.2 템플릿 메타프로그래밍을 이용한 빠른 수학 연산 (20)
다들 STL 잘 사용하고 계신가요?
오늘도 라태웅(NHN NEXT, NEXON)님의 발표입니다.
STL의 기본 개념부터, 사용 노하우까지 담아보았습니다.
여러분들도 우리 스터디 참여하셔서 Live로 들으시고 발표도 하러 오세요!
관련 문의 : 댓글 or https://www.facebook.com/gpgstudygogo
<실제>
< '#'에 맞춰서 다음 슬라이드로 넘어가시면 됨.>
안녕하세요. NHN NEXT의, 최연소 참가자 19살 남세현입니다.
#저는 일정 공유가 핵심인 달력어플을 만들고있습니다.
#흠… 일정을 공유를 어떻게 해야할까요?
서버에서 처리하는거 말곤 없을까 생각하다가
다음 3가지가 떠올랐습니다.
#아이폰은 사진같은거 말고는 어플끼리 파일공유가 힘듭니다.
사람들이 많이 사용하는게 라인, 카톡인데요
라인 카톡으로 많이하는건 텍스트 보내기, #사진보내기 입니다.
#사진에 데이터를 녹여넣고, 그 사진을 메신저로 전달하면 어떨까요
#사진은 공용 저장소인 사진보관함에 저장되는데, 모든 어플에서 접근이 가능합니다.
기존엔 파일을 다운받아도 관리도 안되고 공유도 힘들고... 그것이 해결할 수 있습니다.
#어떻게 파일을 사진에 녹여내냐면,
모든 데이터는 이진수로 이루어져 있습니다. 그 이진수를 사진의 픽셀 RGB값에 대입하겠다는 겁니다.
#이것이 그렇게 해서 만든 사진데이터입니다. 저는 앞으로 이런걸 "사진데이터" 라고 부르겠습니다.
어떤 데이터가 담겨져 있을까요?
제가 말하기 전까지는 모릅니다.
몇천개의 인트형 정수가 저장되어있습니다.
#이게 어느 어플에서 저장한 데이터인지, 피피티자료인지 음악자료인지 알 수 없습니다.
컴퓨터를 쓸땐 파일에 '이름과 아이콘'을 붙입니다.
#파일 내부의 이진수 데이터는 인간이 읽을 수 없지만, #겉의 파일 이름과 아이콘으로 구분할수있습니다.
#그렇다면 이 사진데이터도 겉으로 봤을땐 사람이 읽을 수 있는 글씨이고, 컴퓨터는 데이터로 인식하게 만들면 되지 않을까요?
#이것이 바로 그렇게 만든 사진데이터입니다.
#밝기가 확실히 밝아졌죠?
#한 픽셀의, RGB값의 뺀 앞부분 #두 비트를 이용해서 사람이 노이즈 속에서도 글씨를 읽어낼 수 있게 할 수 있습니다.
#글씨가 있는 부분은 앞 두개는 무조건 11, 나머지 여섯개는 데이터의 이진수값. 반대로 글씨가 없는부분은 앞에는 00, 나머지는 데이터를 집어넣습니다.
#앞에 두 비트가 차지하는 명암의 비중이 75%나 됩니다. 아무리 뒤에 6비트가 커도, 화면밝기로 절대 따라갈 수 없습니다.
#사람은 명암 구분을 제일 잘합니다. 명암이 75%이나 차이나면 노이즈가 있음에도 글씨를 볼 수 있습니다.
그래서, 사진데이터에 파일의 속성을 글씨로 써줍니다.
#마치 바탕화면 보는것처럼 저게 무슨 사진데이터인지 파악할 수 있습니다.
#압축파일, 게임세이브데이터, 내스케줄, 음악, 에러로그, 초대권, 그 무엇도 다 이런식으로 저장할 수 있습니다. 일종의 QR코드 진화판이죠.
#저는 모든 개발자들이 쉽게 데이터를 사진으로 저장하고,
사진에서 데이터를 불러올 수 있는 api를 라이브러리 형태로 오픈소스 제공합니다.
#이것이 가지는 의미를 찾아봅시다
#파일. 자료는 사용자 자신이 주인이 되어서 스스로 관리할수 있어야 합니다.
#클라우드 시대가 왔다지만, 사용자경험을 고려하지 않은 디자인이 많습니다.
애플의 폐쇄성때문에 어플끼리 파일 옮기는게 힘들어서 대부분 클라우드와 URL을 통해서 작업합니다. 로컬이 단단하지 않은 상태에서 모든걸 클라우드에게 맞기겠다는 건 말이 안됩니다. #그때문에 일어난 불편함을 개발자와 사용자 둘다 느끼고 있습니다. 스마트폰은 특히나 네트워크 단절이 드문 기계잖아요
#그 누구도 파일을 보내기 위해서 클라우드 어플을
1. 1부
프로그래밍 기법들
1.2 템플릿 메타프로그래밍을 이용한 빠른 수학 연산
Page 59 ~ 77
NHN NEXT, NEXON 라태웅
2. 서론
C++ 프로그래머라면 템플릿이라는 말에서 STL, 범용 컨테이너 등을 떠올릴 것
템플릿은 속도와 크기 모두에서 대단히 최적화된 코드를 만들어 내는 하나의 가
상 컴파일러가 될 수 있음
Todd Veldhuidzen과 David Vandevoorde가 어떠한 알고리즘도 템플릿화 될 수 있
음을 보임
이 챕터에서는 몇 가지 예제로 템플릿의 새로운 활용 방법에 대해 알아볼 것
3. 피보나치 수열 - 정의
피보나치 수열 : 0, 1, 1, 2, 3, 5, 8, 13, … 형태의 수열
일반화된 공식 : Fib(n) = Fib(n-1) + Fib(n-2)
7. 피보나치 수열 – 주의할 점
템플릿 함수는 실제 함수가 아님. Val이라는 열거형 정수일 뿐
struct으로 정의한 것은 표기를 단수화하기 위한 것일 뿐
템플릿 인자 N은 함수의 입력을 지정하는 용도로 쓰임.
재귀 순환을 종료하기 위한 상태를 처리해야 함. (피보나치 수열의 경우 N이 0이
나 1일 때 종료됨)
14. 계승(Factorial) - 템플릿화
피보나치 예제와 마찬가지로 FactT(4)는 상수 24가 됨
즉, n에 비례하는 수행 시간이 런타임에서는 상수적인 수행 시간(O(1))으로 줄어
드는 것
15. 계승(Factorial) - 단점
가독성
FactT(n)과 같은 잘 정의된 매크로를 사용하면 해결
컴파일 시간
감수할 수 있음 (한 번만 컴파일하니까?)
피보나치 수열이나 계승이 필요한 게임은 많지 않음
필요로 하더라도 컴파일 시점에서 결정할 수 있는 경우는 드뭄
게임에서 거의 필수적으로 쓰이는 삼각함수를 템플릿화 해보자
16. 삼각함수
템플릿 기법이 실제로 쓸모 있는 것임을 보여주는 예가 될 것
많은 게임들이 sine 값 테이블이나 비슷한 방식을 이용해서 계산 속도를 높이는
기법을 사용함
만약 컴파일러가 sine(1.234) 같은 코드를 읽고 이로부터 단 하나의 move 명령을
생성해낼 수 있다면?
즉, sine(1.234)가 상수로 치환된다면? -> 수행 속도 매우 빨라질 것
17. 삼각함수
sine(x)은 으로 계산됨
위의 식에서 x는 라디안 값이고 0 <= x < 2pie 임
이를 재귀적으로 표현하면,
21. 삼각함수 – 템플릿화
!!?? 왜 안돼는거야!? 하고 찾아봤더니…
즉, float, double 같은 부동소수점은 사용할 수 없다!!
22. 삼각함수 – 템플릿화
하지만 이대로 포기할 수 없음
정수 계산을 하고 부동소수점으로 변환하도록 해보자.
23. 삼각함수 –
템플릿화
1.234의 경우 1234와 1000을 넣음
단점
매번 R/D를 수행해야함
개선
정수로 계산을 하고 return을
할 때만 D로 나눠주는 방식으로
개선할 수 있음
24. 결론
책에서는 템플릿 메타프로그래밍이 런타임에서 계산하는 것보다 느릴 때도 있
지만 결론은 짱짱맨
컴파일러마다 템플릿 처리 방식이 약간 다르고 재귀적인 호출 회수를 컴파일 중
에 제한하는 경우도 있음
아무튼 템플릿 짱짱맨
25. 발표자 결론
그러나 삼각함수의 예처럼 2000년도에는 되던 방법이 2014년에는 안되는 경우
가 많음…
분명 제대로 공부하고 알고 사용하면 유용할 것 같음
차라리 미리 계산해두고 상수 값으로 쓰면 컴파일 시간도 아끼고 런타임 시간도
아낄 수 있을텐데 굳이 템플릿 메타프로그래밍으로 해야할 필요가 있나?
26. 발표를 마치며…
템플릿 메타프로그래밍에 깊이가 없다보니 이게 현업에서 큰 도움이 될지는 잘
모르겠음
코드 가독성이 떨어지고 컴파일 시간이 늘어나고 상수 값만 넣을 수 있으니 동적
으로 무언가 계산할 수도 없고 불편한 점이 더 많아보임
정말 이걸 쓸 날이 올까..?
27. ‘ GPG를 공부하자’ 페이스북 페이지
https://www.facebook.com/gpgstudygogo