-
Notifications
You must be signed in to change notification settings - Fork 2
1회차 받아쓰기
Attendees 1 12:32 어젯밤에 오늘 어쩌면은 오프라인 모임이고 뭐고 다 못할 수도 있겠다 생각이 들었었는데 아침에 일어나 보니까 상황이 좀 정리가 된 것 같아서 예정대로 진행을 하면 되겠구나라고 했는데 다 열었는데 기술적인 이슈와 예상하지 못한 그런 이슈로 거의 약간 해커선 수준으로 되게 창의적으로 지금 두 개의 구글 미스를 띄워가지고 컴퓨터에서 동시에 브로드 캐스트를 해보는 아주 저도 색다른 경험을 해보고 있는 것 같습니다. 거의 한 40분 정도 지금 지났는데 일단은 죄송하고요. 여러 가지 매끄럽지 못하게 진행한 점은 정말 죄송합니다. 소중한 시간을 이렇게 뺏어서 죄송하고 오늘 준비한 내용을 최선을 다해서 전달을 해보도록 하겠습니다. 일단 환영하고요. 그리고 저는 리벨리온에서 소프트웨어를 개발을 하고 있고 컴파일러 연구 개발을 꽤 오랫동안 해왔고요. 그다음에 파이토츠에 대한 관심이 매우 높습니다.
Attendees 1 13:30 지금 리벨리온에서는 MPU를 파이토츠에 이제 붙이는 일을 하고 있고 그리고 파이토치 파운데이션에 리벨리온이 최근에 이제 가입을 해서 거기에서 리벨리온을 대표를 하는 일도 하고 있고요. 그리고 파이토치 car에도 파이토치 코 시그를 만들어서 관심 있는 분들과 함께 코뮤니티 활동도 해볼 생각입니다.
Attendees 1 13:52 네 저희가 이제 랩을 만약에 저희가 매끄럽게 첫 번째 길을 잘 끝내면 그다음에도 계속해볼 생각인데 일단 첫 번째 랩의 목표는 일단 파이토치 인터널에 관심 있는 사람들이 얼마큼 되는지 그래서 다 같이 한번 모여보면 좋겠다라고 생각을 했고요. 그거는 일단 많은 분들께서 관심을 가져주시고 또 오늘 참여를 해 주셔서 일단 첫 단추는 잘 잠근 게 아닌가 그렇게 생각이 들고요. 그리고 다 같이 그런 파이토치가 실제 안에는 어떻게 생겼는지라고 하는 것들에 대해서 같이 공부하고 성장을 할 수 있으면 좋을 것 같고요. 그리고 그게 이제 저희에서 끝나는 게 아니라 저희가 이제 같이 공부한 그런 결과는 저희가 잘 정리를 해서 더 많은 분들께서 쉽게 파이토츠 안이 어떻게 생겼는지 공부를 하실 수 있도록 공유를 할 수 있으면 좋을 것 같아요.
Attendees 1 14:48 그리고 이제 제 개인적으로는 제 본업이 리벨리온에서 개발을 하고 있는 거기 때문에 여기서 같이 공부한 것들이 이제 그 업무에 잘 활용이 되면 좋겠다 라고 생각을 하고 있고 그리고 저희가 가지고 있는 목표 중에 하나가 그냥 저희가 프라이빗 포크를 가지고 있는 게 아니라 업스트림을 하는 거여서 저희뿐만이 아니라 여기 계신 많은 분들이 같이 파이토치 업스트림에 기여를 해서 한국이 파이토치 업스트림에서 큰 그러한 지분을 가져갈 수 있으면 좋겠다 이렇게 개인적으로는 생각을 하고 있어요. 아마 여기다 여기 계신 분들도 다 개인적인 그런 목표들이 있으실 텐데 그걸 저희가 다 같이 한번 공유를 해보면 좋겠지만 시간적인 이유로 그건 힘들 것 같고 나중에 기회가 되면 같이 그걸 나눠보는 그런 시간이 있으면 좋을 것 같아요.
Attendees 1 15:34 운영 방안은 오늘 일단은 일어난 여러 가지 일을 보고 저희가 고민을 좀 더 많이 해봐야 될 것 같기는 한데 일단 이렇게 세 가지 정도로 나눴거든요. 그다음에 저는 전체적으로 이제 운영을 총괄을 해야 되고 그리고 이제 강의 자료를 일단 초안을 작성하는 역할들을 계속해서 할 생각이고요. 그리고 여기 이제 모여 계신 오프라인 참여자분들은 온라인 강의 전에 강의 자료를 한번 리뷰를 해 주시고 그리고 이제 필요한 부분들이 있으면 같이 참여해서 보강도 해 주시는 역할을 하면 좋을 것 같고 온라인 참여자분들은 실제 이제 강의에 참여해 주셔서 아니면은 배포된 강의 자료에 대해서 피드백이나 질문을 이제 강의 참여하시기 전에 해주셔도 해주셔도 좋고요. 그래서 배우시고 그리고 강의 자료에 대한 품질이 향상될 수 있도록 기여를 해 주시면 좋지 않을까 대충 이렇게 일단 생각을 했어요.
Attendees 1 16:26 구체적으로 혹시 다른 여러 가지 좋은 의견들이 있으면 활발하게 제시를 해 주시면 그런 것들을 반영을 해서 운영하는 방법을 계속 개선해 나가도록 하겠습니다. 지금 저희가 하고 있는 이 온라인 모임은 원래 계획은 이제 1시간이었는데 오늘은 시간이 더 넘어가게 될 것 같고요. 총 12회를 지금 할 생각이고 이번에 했던 것처럼 강의 전에 슬라이드를 배포를 하고 공지를 하고 그리고 실제 강의 자료에 대한 간단한 질문은 첫 번째 배포한 슬라이드에도 코멘트를 남겨주신 분들이 계신데 굉장히 감사하고요. 그런 식으로 좀 간단한 것들은 거기에 남기시면 직접 대응을 할 수도 있고 조금 더 약간 긴 질문이나 아니면 좀 더 긴 답이 필요한 그런 질문들은 비터블 리포에 이제 이슈를 남겨주시면 거기서 대응을 하는 게 어떨까 그렇게 생각을 하고 있습니다. 이 강의 슬라이드를 그냥 어세스 기타브 계정은 제 생각에 그냥 로그인 어차피 이슈를 올리시는 데는 아마 계정 제한이 없지 않나 싶기는 한데요.
Attendees 1 17:31 PR을 하시려면 거기에 커미컴이라든지 그런 게 필요하겠지만 아마 오셔서 이슈 남기는 건 제 생각에는 굳이 가입을 하지 않으셔도 될 걸로 생각이 들긴 하거든요. 그거는 한번 해보고 혹시 이제 그런 것들이 필요하면은 다시 한 번 고민들을 해보면 될 것 같아요. 제가 지금 개인적인 이메일 같은 것들을 받아서 제가 막 다 관리를 하고 하는 게 현실적으로는 불가능해서 웬만하면 그런 것들은 피하고 진행할 수 있는 방법을 찾을 수 있으면 좋을 것 같습니다. 여기 키텀 리폰은 여기에도 있고 제가 아마 이메일에도 남겼을 것 같고 앞으로도 계속해서 링크된 공유를 드려서 그렇게 운영이 되도록 한번 방향을 잡아보고 싶습니다. 네 이제 본론으로 들어가기 시작할 텐데 일단 오늘은 인트로덕션 시간이니까 저희가 약간 파이스 토치에 대한 깊은 내용으로 들어가기 전에 그 배경부터 조금 말씀을 나누고 싶어서 배경 위주로 좀 준비를 했거든요.
Attendees 1 18:28 일단 머신러닝 프레임웍이라고 저는 이제 부르는데 예를 들어서 파이토치나 아니면 그전에 많이 쓰던 텐서플로우나 잭스나 이런 것들을 통틀어서 저는 개인적으로는 머신러닝 프레임웍이라고 부르고 있습니다. 이 머신러닝 프레임웍이라고 하는 게 AI 에코 시스템에서는 어떻게 보면 이런 AI 가속기들을 위한 오퍼레이팅 시스템이자 그리고 그 위에 프로그램 랭귀지도 제공을 하는 셈이죠. 모델 자체를 직접 제공하는 그런 기능을 작성을 하는 그런 기능을 파이토치가 아니면은 어떤 텐서플로우 같은 것들이 하니까 어떤 프로그램 랭지지적인 성격도 있고 또 그것들을 그냥 간단하게 AI 가속기에 매핑을 하는 게 아니라 그걸 이제 어떤 트리얼하지 않은 그런 전환을 통해서 실제 하드웨어 타겟에 매핑을 해야 되기 때문에 컴파일러 역할도 같이 하고 있는 것 같아요. 그래서 이런 다양한 여러 가지 기술들이 이제 혼재되어 있는 기술이 머신러닝 프레임웍이다라고 저는 생각을 하고요.
Attendees 1 19:25 이 영역에 대해서 겹치는 그런 컴퓨터 사이언스의 기술 영역들이 굉장히 많거든요. 그중에서 제가 생각나는 대로 이제 정리해 본 게 이제 이 정도인데 이것들에 대해서 그냥 네 제가 한 장 한 장 넘어가면서 제가 가지고 있는 생각들을 좀 정리를 해드릴게요. 주로 제가 전달하고 싶은 메시지는 머신러닝 프레임웍이라고 하는 게 그냥 어디선가 갑자기 튀어나온 게 아니라 그전에 있었던 굉장히 훌륭한 연구 그다음에 산업적인 그런 결과들이 집적이 되어 있는 거다. 그리고 그것들을 하나하나 이렇게 이제 파헤쳐 보면은 그 나름대로 굉장히 중요한 그런 기술적인 흐름들이 있었고 그것들이 지금 이렇게 같이 융합이 돼가지고 지금 저희가 쓰고 있는 머신러닝 프레임웍이 되었다라고 하는 메시지를 좀 전달을 해드리고 싶었어요. 이런 주제들에 대해서 한 장 한 장 저희가 넘기면서 같이 말씀을 나눠보면 좋겠습니다.
Attendees 1 20:22 질문을 어떻게 받으면 좋을까요? 현실적으로 질문을 받을 수가 있을지 잘 모르겠는데 그러면 혹시 지금 이 딱 스테이지에서 질문하시고 싶으신 거 있으면은 양쪽 창 중에 하나라도 책에 좀 몇 개 올리시면은 대답을 하고 넘어가면 어떨까 싶은데 질문하시고 싶으신 분은 혹시 여기 책에다가 올려주실 수 있으세요? 제가 해볼까요? 아니 다른 거 쓰지 맙시다. 여기 책 보여주면 돼요. 예학과 기타
Attendees 1 21:09 아무도 없으셔서 그럼 일단 넘어가도록 하겠습니다. 제가 타픽 하나하나 할 때마다 중간에 퍼즐을 하고 여쭤볼 테니까 질문 있으신 분들은 여기 하나 있어요. 있나요? 파이토츠의 경우에는 ML 컴파일러의 이름이 있을까요? 저는 되게 좋은 질문인 것 같은데 일단은 컴파일러라고 하는 게 뭐냐라고 정의를 해야 되는데 파이토치 1.0에도 컴파일러 비슷한 게 들어있긴 했거든요. 예를 들어서 지 트레이스 이런 것들이 트레이스를 뽑아내는 것도 일종의 컴파일럿이라고 생각한다면 거기에 파이토치 1.0에 파이토치 버전 1에도 지트레이트 같은 건 들어있었고요. 그런데 파이토치 1 같은 경우에는 이거 모두가 중심이었기 때문에 실제 이런 ML 컴파일러의 기능에 대해서는 그렇게 제 생각에 강조가 되지 않았던 것 같아요.
Attendees 1 21:57 그게 이제 대대적으로 바뀌게 된 게 파이토치 2.0이고 파이토치 2.0에는 저희가 컴파일러라고 부를 만한 것들이 이제 몇 개가 붙어 있는데 하나가 직접 지트레이스를 대체를 하는 다이나모라고 하는 게 달려 있고요. 그 다이나모도 어떻게 보면 컴파일러 비슷한 역할을 하고 그리고 또 하나가 이제 인덕터 인덕터가 사실은 더 본격적인 컴파일러라고 할 수 있죠. 그렇게 두 개가 붙어 있어요. 플러스 어떻게 보면은 그 사이에 있는 트리톤이라고 하는 그런 이제 도메인 스페스픽 랭귀지가 있는데 이제 그 도메인 스페스픽 랭귀지의 컴파일로 또 들어 있기 때문에 또 그것도 어떻게 보면 넓은 범위에서는 하이터치 2.0의 범주에 들어간다고 생각을 할 수가 있습니다. 파이토 KR 소개요. 혹시 경환 님 계신가요?
Attendees 1 22:46 이건 제가 하는 것보다는 저희 파이토치 KKR의 리더이신 정화 님께서 해주시면 좋을 것 같은데 만약에 정화 님이 안 계시면 이 파이토치 KR 소개는 저희가 다음 시간에 정아 님께 정식으로 소개를 해달라고 부탁을 드리면 어떨까요? 네 알겠습니다. 그럼 이렇게 저희가 중간에 한 번 퍼즐을 하고 일단 오늘은 또 있나요? 정화 님 다음번에 좀 더 정식으로 하시죠? 제가 오늘 원래 정아 님을 네네네. 다음 번에 약간 더 정식으로 제가 소개를 드리는 시간을 마련을 하도록 하겠습니다. 채민 님 일단은 시간이 좀 지나서 이 질문은 기타 이슈로 아마 남겨주시면 좋을 것 같고요. 다음번에 대응을 해드리도록 할게요. 일단은 넘어가면
Attendees 1 23:48 일단 헤테로지니어스 컴퓨팅이라고 하는 게 어떻게 보면은 이제 머신러닝 프레임웍의 배경 기술로는 제가 가장 먼저 떠올랐던 타픽이거든요. 당연히 이제 머신러닝 프레임웍의 핵심은 그냥 모델을 기술을 하는 게 아니라 GPU 같은 그런 AI 가습기를 잘 쓰는 거기 때문에 그리고 그런 CPU랑 AI 가습기를 함께 잘 쓰는 거를 이제 헤테로지니스컴퓨팅이라고 요즘에는 부르는 것 같아요. 그래서 헤트로지네스 컴퓨팅 특히나 GPU를 사용한 헤트로지네스 컴퓨팅이 제일 먼저 떠올랐고요. 이거는 아마 많이 들으셨겠지만은 그래픽스에서 시작을 한 개념이라고 저는 생각을 하고 물론 다른 여러 가지 배경도 있긴 하지만 지금 저희가 쓰는 맥락에서는 GPU가 가장 중요한 역할을 했기 때문에 그래픽스가 그 시작점이라고 생각을 하고 오픈gl이 저는 어떻게 보면 본격적인 시작점이었던 것 같아요.
Attendees 1 24:40 이제 실리콘 그래픽스가 개발한 그래픽스 API인데 이런 그래픽스라고 하는 거를 약간 이렇게 프로그래머블 하고 뭔가 이렇게 다른 사람이 만들어놓은 거를 재활용해서 컴포즈를 해가지고 소프트웨어처럼 짜게 만든 그 시작점이 오픈 지열이었다고 생각을 하고요. 오픈질 자체는 실리콘 그래픽스라는 회사 자체가 상업적으로 이렇게 성공을 하지 못해서 많이 저희가 이제 얼마 굉장히 중요한 그런 기술적인 역할을 한 거에 비해서는 상업적으로는 약간 제한이 있었던 것 같아요. 오히려 더 크게 성공을 한 거는 이제 마이크로소프트가 오픈지 비슷하게 윈도우를 위해서 만든 다이렉텍스가 상업적으로는 엄청나게 크게 성장을 했었고 지금의 NVIDIA나 ti가 있게 된 그런 가장 중요한 동인이 그 당시에 윈도우스가 만들었던 다이렉트 엑스였다라고 저는 생각을 합니다. 다이렉트 x가 버전이 이제 윈도우가 이제 올라가고 그다음에 GPU가 좋아지면서 계속해서 올라갔는데 2천년대 초에 굉장히 큰 변화가 생기게 돼요.
Attendees 1 25:39 그때부터 이제 셰이딩이라고 하는 기능이 그래픽으로 이제 등장을 하기 시작하고 이제 쉐이딩은 하드웨어로만으로는 구할 수가 없어서 실제 셰이딩을 프로그래밍할 수 있는 그런 기능들이 들어가게 되고 그걸 하드웨어적으로는 NVIDIA의 g4 3가 2001년에 처음으로 도입을 했다라고 알려져 있고요. 이거를 이제 프로그램 소프트웨어 API에 반영이 된 거는 다이렉트 x a부터 시작을 했지만 조금 더 본격적인 모습을 갖추게 된 거는 다이렉트 엑스에서 하이레벨 쉐이딩 랭귀지라고 하는 걸 정의를 하면서라고 저는 생각을 합니다. 이때부터 GPU가 단순하게 이제 픽스트 펑션 이미 정해져 있는 그런 그래픽스 펑션을 컴포즈 할 수 있는 그런 기능을 하는 데서 실제 하드웨어 리소스들을 더 파인그레인하게 프로그래밍 할 수 있는 그런 디바이스로 진화를 하게 되고요. 그러다가 2007년에 쿠다라고 하는 게 등장을 하죠.
Attendees 1 26:36 쿠다라고 하는 게 맨 처음에 등장한 거는 아마 다 아시겠지만은 지금처럼 머신러닝을 위해서 하는 건 아니고 2001년부터 2007년 사이에 GPU가 엄청나게 빠른 속도로 성능이 올라갔거든요. 그러다 보니까 거의 그냥 웬만한 슈퍼 컴퓨터 비슷한 성능을 내기 시작하고 그럴 거면 그러면 일반적으로 사람들이 슈퍼 컴퓨터 쓸 수 있듯이 쓸 수 있는 게 아니야라고 이제 아마 NVIDIA에 계신 분들이 생각을 했던 것 같아요. 그래서 그러면 그걸 그렇게 쓰게 하려면 뭐가 필요해라고 생각을 한 게 쿠다라고 하는 프로그래밍 모델이었고요. 쿠다라고 하는 프로그래밍 모델이 어떻게 이제 태어나게 됐냐라고 하는 배경도 되게 재미있으니까 궁금하신 분들은 아마 인터넷을 찾아보시면 아실 수가 있을 것 같습니다. 그래서 쿠다라고 하는 거를 만들면서 GPGP라고 하는 단어가 그때부터 이제 생겨나고요.
Attendees 1 27:26 꽤 인기가 있었고 실제 워낙 GPU가 성능이 좋고 크다라고 하는 게 잘 만들어져 있어서 gpgpu가 그 당시에 굉장히 큰 화두였어요. 그래서 그걸 이제 NVIDIA만 이제 하려고 했던 게 아니라 애플에서는 오픈cl이라고 하는 걸 시작을 했고 그다음에 AMD랑 앎은 약간 다른 형태의 헤테로지니어 시스템 아키텍처라고 하는 CPU와 GPU가 같이 쉐어드 메모리에 묶여 있는 그런 형태의 헤테로스 컴퓨팅 플랫폼을 만들려고 시도도 하긴 했었죠. 하지만 지금 오픈셀은 아직도 쓰이고 있긴 하지만은 쿠다나 다른 것들에 대해서는 거의 안 쓰고 있다고 봐도 되고 AMD가 시도를 했던 hsa는 제대로 자리를 못 잡고 아마 거의 상용화에 실패했다고 볼 정도로 뒷길로 사라져 갔습니다. 이제 2007년 정도에 있었던 일입니다.
Attendees 1 28:17 이러면서 헤테로지스 컴퓨팅이 이제 쿠다가 사실 등장하면서 굉장히 잘 자리 잡은 것 같고 저희가 앞으로 보겠지만 실제 파이토치 안에 깔려 있는 헤테로지니 컴퓨팅 API도 많은 부분들이 쿠다와 단어가 있어요. 그러니까 쿠다가 GPU가 붙으면서 자리를 잘 잡았기 때문에 파이토 자체가 그 밑바닥을 보면 코다의 모양을 많이 닮아 있고 그 코다의 모양대로 다른 후발 투자들이 비슷비슷하게 만들어가고 있는 저는 그렇게 지금 흘러가고 있는 게 아니라고 생각이 듭니다. 조금만 더 이따가 질문을 받을게요. 그리고 그다음에 연결되는 게 이제 슈퍼 컴퓨팅이라고 하는 것들도 제 생각에는 연결점이 굉장히 많은 것 같아요.
Attendees 1 28:58 슈퍼 컴퓨팅이라고 하는 거는 일반적으로 엄청나게 복잡한 계산을 처리하기 위한 컴퓨팅 기술이라고 생각을 할 수가 있고 지금은 머신러닝이 대표적인 스포 컴퓨팅이라고 할 수가 있긴 하지만은 한 20년 전 그다음에 그것보다 훨씬 더 저는 생각을 하면은 주 운용 분야가 이제 사이언티픽 리서치 앤 시뮬레이션 그래서 피지스 시뮬레이션 그다음에 천문학 그다음에 클라미 모델링 로켓도 만들고 핵폭탄도 만들고 하는 이런 응용들에 주로 많이 쓰였던 게 이제 스퍼 컴퓨팅이고 미국에 보면 내셔널 앱이라고 하는 게 있는데 그 내셔널 앱들이 하는 가장 큰 일 중에 하나가 이런 터 컴퓨팅을 만들어가지고 이런 응용 이런 문제들을 푸는 게 그들이 하고 있는 일이죠. 보통 굉장히 많은 수의 컴퓨터를 네트워크로 연결을 해서 큰 계산을 분산으로 나눠가지고 이제 분산을 처리하는 방식이고요.
Attendees 1 29:48 이런 측면에서는 예를 들어서 구글이 만드는 데이터센터 그다음에 그 위에 올라가 있는 어떤 클라우드 기술들 이런 것들도 슈퍼 컴퓨팅과 연결점이 많다고 볼 수도 있긴 하지만 그런 인터넷 서비스 같은 경우에는 상대적으로는 간단한 그리고 독립적인 그런 계산을 엄청나게 많이 하는 반면에 이런 슈퍼 컴퓨팅이라고 했을 때에는 한 잡 자체가 엄청나게 크고 걔네들이 다 연결되어서 여러 컴퓨터에서 나눠서 처리가 돼야 되는 그런 특성이 있고요. 그러다 보니까 보통 인터넷 서비스에서는 특정 노드나 특정 서비스 리퀘스트가 폴트가 나도 그런 것들이 다른 서비스 리퀘스트들에는 영향을 주지 않는 반면에 굉장히 큰 계산 같은 경우에는 그중에 이제 하나만 안 돌아가도 전체 계산이 다 망가지는 경우들도 있기 때문에 그런 폴트라고 하는 개념이 훨씬 더 중요하죠.
Attendees 1 30:44 그거는 머신러닝에서도 비슷한데 머신러닝에서는 인퍼런스는 어떻게 보면 제가 아까 말씀드린 인터넷 서비스처럼 독립적인 리퀘스트가 굉장히 많이 오는 그런 테스크라고 생각할 수 있기는 하지만은 이제 트레이닝 같은 경우에 특히나 대규모 분산 트레이닝 같은 경우에는 이 하나가 하나의 잡이기 때문에 이런 폴트라고 하는 것들이 훨씬 더 크리티컬해지게 됩니다. 참고로 시간이 있으신 분은 메타가 람마 3.1을 이제 만들면서 같이 퍼블리싱한 테크 리포트가 있는데 거기 보면 그들이 GPU 그들의 말로는 한 만 6천 개 정도를 써서 h10 만 6천 개 정도를 써서 람마 3.1을 트레이닝 했다고 하는데 그때 겪었던 그런 경험들을 테크 리포트로 묶어놓은 게 있으니까 인터넷을 검색해서 한번 읽어보시면 도움이 될 것 같습니다. 네 이런 분산 처리라고 하는 것들이 이제 슈퍼 컴퓨팅이라고 하는 그런 도메인에서 굉장히 많이 발전을 했고요.
Attendees 1 31:45 그래서 CD라든지 그다음에 SPM드라든지 민디라든지 하는 이런 개념들도 이런 계산들을 이제 모델링을 하면서 만들어진 그런 개념이고 이제 여기에서 여러 가지 구현 표준들도 나오게 됐거든요. mpi라든지 오픈 MP가 가장 먼저 떠오르는 그런 표준이고 이중에서 mpi가 파이토치가 구현한 분산 프로그래밍 모델의 제 생각에는 기반인 것 같아요. 그래서 이런 관련된 거는 나중에 저희가 파이토치 토치 디스트리트를 공부를 할 때 조금 더 깊게 다뤄보도록 할게요. 그리고 이런 계산에 가장 중요한 요소가 이제 선형 대수인데 그 선형 대수에서도 가장 중요한 연산이 맨멀이죠. 맨멀이 그냥 아주 단순하게 계산하면 매트릭스 크기의 n의 3승에 비례하잖아요. 그러니까 매트릭스 계산이 커지면 매트릭스가 커지고 다른 요소보다도 맨머리 이제 도미넌트한 그런 계산에 있어서 부분을 차지하게 되고 이걸 얼마큼 빠르게 하느냐라고 하는 게 전체 자료를 얼마큼 빠르게 처리를 하느냐에 큰 영향을 주게 되죠.
Attendees 1 32:50 그래서 이제 멤버를 얼마큼 잘 처리를 할 수 있는가라고 하는 게 결국에는 가장 중요한 최적화인 거고 이걸 위해서 엄청나게 많은 사람들이 많은 연구를 했어요. 실제 약간 수학적으로 이런 멤버 자체를 얼마나 콤플렉스트를 낮출 수 있냐라고 하는 그런 연구들도 많았고요. 여기 있는 스트라센 알고리즘은 혹시 기회가 되시고 약간 그런 역량이 되시는 분은 잘 읽은 다음에 저희한테 좀 가르쳐 주시면 좋겠습니다. 저는 몇 번 읽어보려고 시도를 했는데 제가 잘할 수 있는 분야는 아닌 것 같고요. 스트레스 날리올린 같은 경우에는 이제 아까 말씀드린 아주 단순한 n 큐빗 n의 3승이 되는 컴플렉스를 더 떨어뜨리는 그런 굉장히 참신한 그런 알고리즘을 제안을 했는데 실제 어떻게 동작 하는지는 저는 잘 모르겠어요.
Attendees 1 33:39 최근에 딥마인드가 알파 댄서라고 하는 걸 내놓으면서 더 최적화되어 있는 그런 터널들을 실제 조그마한 멤버 커널들을 만들어가지고 속도를 향상시켰다고 해서 크게 화제가 됐었고 네이터라고 하는 논문에서 발표를 했었죠. 그런 알고리즘도 굉장히 중요하긴 한데 실제 이런 슈퍼 컴퓨터에서는 큰 연산을 얼마큼 잘 쪼개느냐라고 하는 게 훨씬 더 도미넌트한 문제고 그런 것들을 잘 하기 위한 그런 보편적인 라이브러리들이 라이브러리도 이제 등장을 했는데 그중에 가장 잘 알려져 있는 게 이제 블라스라고 하는 거죠. 이 블라스라고 하는 게 나온 거는 꽤 오래됐고요. 1979년에 나왔고 제가 지금 성함은 잘 기억이 안 나는데 이걸 만드신 분이 트링상을 받으셨어요.
Attendees 1 34:22 최근에 그만큼 보편적으로 쓰이고 있는 라이브러리고 그중에서도 이제 저희 머신러닝 도모에 대해서는 필서를 다루니까 이제 맨머가 가장 중요하고 그 맨머리 리플러스에 들어있는 레이어 중에서 레벨 3에 이제 잼이라고 하는 그런 명칭으로 불리는 API가 정의가 되어 있죠. 이 블라스라고 하는 게 굉장히 큰 영향을 미쳤고 머신러닝 세계에서도 아직도 엄청나게 큰 영향을 미치고 있습니다. 이 표준을 이제 각각의 하드웨어 밴더들이 그들에게 가장 최적화되어 있는 구현을 해서 이제 라이브를 제공하는데 mbda 같은 경우에는 쿠블라스라고 하는 거를 이제 공개를 했고 쿠블라스는 소스 자체는 API는 물론 쓸 수 있긴 하지만 그 소스 자체는 크로즈 소스였는데 이제 그거랑 거의 비슷하게 동작을 하는 코틀라스라고 하는 프로젝트는 오픈 소스로 진행을 하고 있습니다. 이렇게 스터 컴퓨팅도 헤트로티스 컴퓨팅만큼 MLS 프레임웍에 많은 영향을 미친 그런 기반 기술이라고 생각을 하시면 됩니다.
Attendees 1 35:18 네 맞는 것 같습니다. 여기서 잠깐 퍼즐을 하고 질문 있으시면 한두 개 정도 받아볼까요? 이렇게 진행을 해서 오늘 끝낼 수 있는지 모르겠지만 질문이 계신 분들은 잠깐 질문을 해 주시면 답을 하고 가도록 하겠습니다.
Attendees 1 35:46 가장 간단한 차이는 쿠블라스는 프로드 소스고요. 질문 한 번 읽어주시면 여기 계신 분들 제이큐 님께서 쿠블라스와 푸틸라스의 차이에 대해서 간략하게 설명을 부탁드렸는데 쿠블라스는 클로드 소스고 그다음에 쿠틸러스는 오픈소스라고 하는 게 일단 가장 큰 차이인 것 같아요. 그리고 제가 쿠블라스는 사실 깊게 몰라서 그 안에 어떤 기술들이 활용되고 있는지 잘 모르겠지만은 두 라이버리 다 기본적으로는 네 두 라이브러리가 기본적으로 이런 잼이라고 하는 그리고 블라스 쿠블라스에도 아마 레벨 1 2 3 다 지원을 하겠지만 가장 중요한 게 맨머이고 그럼 코다를 활용해서 NVIDIA GPU에서 가장 빠르게 돌리기 위해서 만든 기술이어서 실제적으로 전반적인 아키텍처는 저는 비슷할 것 같아요.
Attendees 1 36:40 쿠블라스는 공개가 안 돼 있고 쿠틀라스는 공개가 돼 있기 때문에 쿠블라스가 진짜 어떻게 생겼는지는 알 수가 없긴 하지만 비슷할 것 같고 결국에는 GPU라고 하는 게 아키텍처적으로 보면은 큰 단위부터 조금 조금 쪼개져서 이제 밑으로 나오잖아요. 내려가잖아요. 거기에서 각각의 레벨에서 있는 그런 패러럴리즘이나 그다음에 메모리 하이 바퀴를 가장 잘 쓰는 그런 여러 가지 기술들을 라고 생각합니다. 제가 유사 역행렬 기법이 뭔지 몰라서 또는 제가 답을 못 해드리겠는데 혹시 아시는 분 계세요? 세미 님께서 지금 하신 유사 역행렬 기법이 혹시 하드웨어 최적화에도 사용되기도 하는지요라는 질문이 있었는데 이거 혹시 답을 해 주실 수 있는 분 계신가요? 비트 이슈에 일단 올려주시면 다른 분께서도 답을 해 주실 수 있으실 것 같습니다. 메타 람마 테크니컬 리포트도 기타 이슈를 올려주시면 아마 답을 올려줄 수 있는 분 여기까지 계실 것 같아요.
Attendees 1 37:48 다른 질문들은 기타 이슈를 좀 해 주시면은 여기서 발런티어 분들께서 해 주시기를 기대를 하면서 일단 그럼 또 다음 타픽으로 넘어가 볼게요. 슈퍼 컴퓨터까지 이야기를 했고 ML 컴파일러라고 하는 것도 어떻게 보면 굉장히 연관이 있는 그런 부분이고 특히 파이토치 2.0이 되면서 제가 더 중요해지고 있다라는 말씀을 드렸는데 많은 머신러닝 컴파일러가 가정하고 있는 거는 정적인 그래프로 전환된 그런 모델을 특정 하드웨어에 맞게 최적화해주는 거를 저는 머신러닝 컴파일러라고 생각을 하거든요. 물론 이제 정덕위버에서 동적으로 다이나믹 쉐입이나 이런 특성을 가지고 있는 거를 지원을 하는 머신러닝 컴파일러들도 있긴 하지만 지금까지 나와 있는 대부분의 컴파일러는 제 생각에는 이런 정적인 모델을 가정을 하고 만든 것 같고요.
Attendees 1 38:43 머신러닝 컴파일러를 그러면 이용을 하기 위해서는 동적으로 표현되어 있는 모델을 특정인 정적인 모델로 만들어내는 게 중요하고 이게 아까 제가 말씀드렸던 트레이스 내지는 그래픽 캡처라고 하는 그런 기술이 그러니까 같이 동반이 돼야 가능한 부분이 있고요. 이 그래프를 머신러닝 컴파일러가 이해할 수 있는 그런 포맷으로 일단 전환을 하고 이제 그거를 여러 가지 컴파일러 최적화 기술을 통해서 최종적으로 하드웨어가 이제 실행할 수 있는 모델을 생성을 하는 과정을 거치는 게 머신러닝 컴파일러라고 저희가 생각을 하고 있고요. 머신러닝 컴파일러는 여기 아마 온디바이스 AI 하시는 분들도 제 생각에는 꽤 되실 거라고 생각을 하는데 온디바이스 AI 가속기에서는 꽤 많이 쓰이고 있다고 생각을 할 수가 있죠.
Attendees 1 39:28 특히나 퀄컴 스냅 그룹에 들어 있는 MPU라든지 마찬가지로 액스노스에 들어있는 MPU 그다음에 구글 텐서 에소스에 들어있는 tpu 이런 애들을 쓰기 위해서는 보통 이제 머신러닝 컴파일러를 쓰게 되어 있고 서버에서는 온디바이스에서 쓰는 것만큼 머신러닝 컴파일러 쓰는 게 보편화가 되어 있지 않지만은 그래도 꽤 많고 저는 앞으로도 훨씬 더 활성화가 될 거라고 생각을 하는데 대표적으로 구글 같은 경우에는 tpu를 위한 뭐라 그럴까 tpu를 위한 머신러닝 프레임웍은 다 밑단이 엑셀a로 되어 있고 그 엑셀a 자체가 컴파일러이기 때문에 서버에서 구글은 굉장히 옛날부터 많이 잘 활용을 해오고 있고요. NVIDIA GPU 같은 경우에는 이제 서빙보다는 인플루언서 쪽에 제 생각에는 집중 했던 것 같은데 텐서rt 같은 게 일종의 컴파일러라고도 생각을 할 수가 있어요.
Attendees 1 40:24 댄서 알팅하는 여러 기능들이 있는데 그중에서 퓨전이라든지 하는 이런 것들을 하기 위해서는 모델이 들어오면 그것도 그래프로 표현을 하고 거기에서 적절하게 표준에 적용을 하고 이런 의미에서 컴파일러 기술이라고 할 수가 있고 저희 이제 리벨리온 같은 경우에도 이런 정적인 그래프를 받아서 처리하는 머신러닝 컴파일러가 가장 중요한 그런 프로덕트고요. 이제 텐서플로우나 파이토치를 둘 다 지원을 하고 있습니다. 아까 잠깐 말씀드렸지만 파이토치 2.0이 등장하면서 이런 컴파일러 기술이 훨씬 더 많이 본격적으로 전개가 되고 있기 때문에 이런 트렌드는 서버 쪽에서도 앞으로는 점점 더 중요해질 거라고 생각을 하고 있습니다. 또 하나 제 생각에 깊게 연관되어 있는 도메인이 데이터 사이언스 하시는 분들이 많이 쓰는 그런 이제 누메리컬 컴퓨팅이라고 부르는 그런 영역인데 데이터 사이언스라고 하는 용어를 굉장히 많이 쓰긴 하지만 사실 정의하기는 좀 까다로운 것 같거든요.
Attendees 1 41:22 불리뭉실 이런 거야라고 이야기를 하지만 정의를 하기는 좀 까다로운 것 같은데 챗gpt와 구글 서치와 이런 걸 통해서 어쨌든 제가 힌트를 얻어서 정의를 해본 거는 통계나 그다음에 컴퓨터 사이언스나 수학 같은 이런 컨터티브한 그런 도구들을 활용을 해서 대량의 데이터를 분석을 하고 이걸 이해를 하는 융합 학문을 사람들이 데이터 사이언스라고 부르고 있는 것 같고 이런 데이터 사이언스를 통해서 업무를 하시는 분들을 저희가 데이터 사이언티스트 아니면 데이터 엔지니어라고 부르는데 이제 그런 분들은 정말로 그거를 풀 타임 잡으로 하고 계신 분들도 있긴 하지만은 사실 엔지니어링이나 이런 사이언스의 일을 하시는 많은 분들이 때때로는 이런 당연히 데이터 사이언티스트 역할들을 하시게 되는 것 같아요.
Attendees 1 42:09 그런 데이터 사이언티스트들이 이제 선호를 하는 부분은 그냥 스플 뿔 프로그래밍을 하고 자바 프로그래밍을 하는 것보다는 일단 데이터는 있고 그거를 쉽게 가공을 해가지고 내가 원하는 정보를 이제 만들어내는 건데 원하는 인사이트를 뽑아내는 건데 이제 주로 이분들이 선호를 하는 게 복잡한 수학 함수를 본인이 직접 짜는 것보다는 이미 잘 갖춰져 있으면 그런 것들을 이제 활용하기를 원하고 그다음에 이제 진짜로 긴 스트립 스크립트나 긴 어떤 소스 코드를 짠 다음에 그걸 돌리기보다는 데이터가 있으면 돌려보고 결과 보고 다시 또 돌려보고 하는 그런 인터렉트 모델을 중요하게 생각하고 이 비주얼라이제이션 같은 것들도 굉장히 중요하게 생각을 하시는 것 같습니다.
Attendees 1 42:49 데이터 사이언스라고 하는 게 그다음에 데이터 사이언티스트를 위한 도구라는 게 아주 옛날부터 있긴 했지만 저는 학교 다닐 때 이제 매트랩 같은 경우에는 굉장히 많이 썼었는데 이게 먼파이라고 하는 게 2천년대 초에 나오기 시작하면서 제 생각에는 파이토치도 이것도 마찬가지로 통일이 되고 있는 것 같거든요. 파이토치가 성장하면서 넌 파일이 성장하고 넌 파이가 성장하면서 같이 파이토치 성장해서 요즘에는 많은 데이터 사이언시스들이 이런 파이토치로 되어 있는 툴들을 잘 활용을 하고 있는 것 같고요. 거기에 이제 피터 같은 그런 더 인터렉티브하게 비주얼라이제이션까지 다 같이 잘 할 수 있는 이런 도구들이 나오면서 더 많은 사람들이 더 쉽게 접근할 수 있는 그런 도구들이 되어 있는 것 같습니다. 이게 넌 파이 같은 경우에는 실제 텐서플로우도 마찬가지고 파이토치도 마찬가지고 그 API와 특히 CPU에서 텐소를 지원을 하는 방식이라든지 하는 것들은 넌 파이와 굉장히 많이 닮아 있고요.
Attendees 1 43:47 이런 접촉터 같은 팀들은 당연히 머신러닝 하시는 분들도 굉장히 많이 쓰기 때문에 사용성 특히 측면에서는 굉장히 비슷한 추세로 가고 있다라고 생각을 합니다. 그리고 한 가지 이제 재미있는 거는 넌파이가 넌파이의 영향을 받아서 이제 파이토츠가 만들어졌는데 근데 지금 어떤 일이 일어났냐면 넌 파일을 만드신 분이 성함이 제가 뭔지 모르겠지만 그분이 만든 회사가 있고 그 회사에서 파이토치 2.0에 엄청 기여를 하면서 넌 파이가 파이토치에서 네이티브하게 지원이 돼요. 그러니까 그냥 넌 파이 코드를 그냥 짜면 이걸 그냥 투표에서 돌 거라고 생각하고 넌 파이 코드를 짜면 아까 제가 잠깐 말씀드렸던 바이너머라고 하는 기술을 이용을 해서 그거를 동적으로 트레이스를 만든 다음에 그거를 인덕터를 써서 쿠다 코드로 뱉어내서 넌 파이 코드를 수정 없이 GPU에서 가속을 할 수 있는 그거를 실제 개발을 하셨고 그거를 다 파이토스의 업스트림을 하셨어요.
Attendees 1 44:48 되게 재밌죠 어떻게 보면은 넌 파이를 이제 코다를 써가지고 GP에서 돌리는 여러 가지 많은 그런 제안들이 있었는데 어떻게 보면 이게 종교탄인 것 같아요. 그냥 넌 파일 수정하지 않게 쓰고 그리고 이런 GP를 가장 잘 쓸 수 있도록 해주는 파이토치 프레임웍에 아예 업트링을 시켜서 만들어놔서 아마 많은 분들이 이 기술을 통해서 넌 파일를 GPU에서 가속하는 그런 일들을 하게 되지 않을까 그렇게 생각을 해봅니다.
Attendees 1 45:22 그리고 또 하나 이제 지금까지는 약간 이제 뭐라 그럴까 프로그램 랭귀지적인 문제보다는 약간 다른 영역들의 문제를 다뤘는데 아마 지금부터는 조금 더 제가 아마 프로그래밍 랭귀지 쪽의 문제를 다루기 시작할 것 같아요. 다루기 시작한 제 기억이 맞다면 혹시 2랭귀지 프라블럼이라고 하는 거 들어보신 적 있으세요? 요즘에 모듈라라고 하는 회사 혹시 아시는 분 모듈라 AI 그렇죠? 모듈라 AI라고 하는 회사가 있고 모듈라 AI라고 하는 회사가 이렇게 만드는 대표적인 프로덕트가 혹시 뭔지 아세요? 그렇죠 네 그렇죠 이제 모조라고 하는 게 있는데 그 모조가 일종의 프로그래밍 랭귀지거든요. 파이썬의 약간 랭귀지를 익스턴션을 해서 만든 모조라고 하는 그런 프로그램 랭귀지 가 있는데 그게 뭐냐면 이들이 파이썬이 가지고 있는 어떻게 보면은 고질적인 사용성 중에 하나가 이 2랭귀지 플라그럼이라고 하는 게 있어요.
Attendees 1 46:25 그거를 해결을 하는 솔루션으로 대안을 내놓은 건데 이 파이썬뿐만이 아니라 파이썬과 비슷한 랭귀지들이 가지고 있는 큰 문제가 뭐냐 하면 되게 쓰기 쉽고 접근하기 편한 점이 있긴 하지만은 성능이 나오질 않아요. 굉장히 복잡한 특히나 이제 수식을 풀어야 되는 그런 복잡한 알고리즘 같은 것들을 이제 파이썬으로 짜게 되면 굉장히 느리죠. 그거를 n파이 같은 이런 프레임웍들이 해결을 하는 거는 그거를 파이썬 이거 해결하는 방법이 여기 제가 말씀드린 것처럼 여러 가지가 있는데 현실적으로 가장 잘 동작을 하는 거는 2 랭귀지를 쓰는 건데 실제 스크립트 인터페이스는 파이썬을 쓰지만 거기에 중요한 그런 함수 같은 경우에는 예를 들어서 파이바인드 일레븐 같은 걸로 시플뿔 코드를 잘 짜서 이제 파이토치 파이썬 수준에서 잘 활용을 하도록 만들어주는 이런 방식으로 문제들을 많이 해결을 하고 근데 이렇게 되려면 네 줄리아도 있죠. 네 감사합니다.
Attendees 1 47:25 그래서 이런 현상을 2 랭귀지 플라블럼이라고 하고 이거를 삐딱하게 보면 플라이 되지만 긍정적으로 보면 툴 랭귀지 솔루션이 되는 셈인 거죠. 저는 개인적으로 t 랭귀지 솔루션이라고 생각을 하는 편이긴 한데 그걸 이제 프라브럼이라고 생각하시는 분들도 계시고 그래서 이제 줄리아 같은 것도 나오고 그리고 크리스 레트노 같은 분이 모조 같은 그런 프로젝트도 하고 있다라고 생각을 하시면 됩니다. 어쨌든 파이톤이 가지고 있는 이런 네 감사합니다. 영주님 이런 성능 문제를 해결하기 위한 방법이 크게 세 가지 정도로 정리가 되는 것 같은데 하나가 실제 파이썬 컴파일러 자체를 더 좋은 걸 만드는 일이 하나가 있고요. 그래서 이제 저희가 스리 파이썬을 제가 여기서 사이온이라고 해놨네요. 죄송합니다. 스파이썬이 이제 파이썬 디폴트 인터폴트라고 해야 되나요?
Attendees 1 48:20 아무튼 엔진인데 얘도 성능이 점점 더 좋아지고 있고 어떤 분은 조크로 만약에 이 트렌드가 계속해서 이어지면은 파이톤이 c플보다 몇 년 후에는 성능이 더 좋아진다라는 조크도 하실 정도로 일단 c 파이썬의 성능 자체도 일단은 굉장히 좋아지고 있고 그다음에 파이파이는 파이썬으로 파이썬 인터페이터를 만드는 프로젝트인데 얘도 성능이 스파이썬보다 자기들이 더 좋고 훨씬 더 좋아질 수 있다라고 주장을 하고 있어요. 이런 프로젝트들도 있어서 파이썬 자체의 성능을 높이는 이런 해결책도 있고요. 그다음에 이제 두 번째가 아까 제가 말씀드린 모저 같은 그런 프로젝트 파이솔 앵기지를 약간 콤팔 가속하기 훨씬 더 좋은 형태로 오그먼트를 해가지고 쓰는 이런 해결책도 하나가 있을 거고요. 그다음에 이제 세 번째 해결책이 가장 파필러하고 많은 사람들이 받아들이는 해결책인데 말씀드린 것처럼 파이썬이 해야 될 일은 파이썬이 하고 파이썬이 할 수 없는 일은 다른 랭기즈로 넘어가는 거죠.
Attendees 1 49:18 넌 파일 같은 경우에는 아까 제가 이제 파이 터치를 통해서 GPU를 쓰고 하는 일들도 이야기를 했지만 주로 이제 CPU에서 사용이 됐고 그래서 그 문제를 이제 스플 바인딩을 하면서 이제 해결을 했는데 이제 파이토치 같은 경우에는 마찬가지로 CF 바인딩도 쓰긴 하지만 예를 들어서 mbda GP를 쓴다라고 한다면 또 거기에는 쿠다를 쓰잖아요. 이렇게 생각을 해보면 이제 2 랭귀지 솔루션이 아니라 트리 랭귀지 솔루션이 되는 셈이죠. 이런 문제가 있고 이거를 파이토치에서 푸는 것과 다른 방식으로 풀어보려는 그런 여러 가지 대안들도 있다라고 하는 것들은 한번 제가 짚고 넘어가고 싶었습니다. 그리고 이거 모드와 그래프 모드라고 하는 게 있고 이거에 대해서 다 아시겠지만 한번 그럼 설명을 좀 더 해보면 일단 이거 모드라고 하는 거는 실제 제가 어떤 API를 호출하자마자 그 오퍼레이터가 곧바로 실행되는 시멘틱을 가지고 있다라고 생각을 하시면 되고요.
Attendees 1 50:21 이제 그래프 모드라고 하는 거는 그 API가 호출되는 과정은 실질적으로는 그래프가 점진적으로 이제 생성이 되는 그런 과정인 거고 그게 건당 끝나면 그렇게 해서 만든 그래프를 한 번에 처리를 해가지고 뭔가 작업을 하는 거가 이제 그래프 모드라고 생각을 하시면 됩니다. 저희가 이거 모드와 그래프 모드를 이렇게 구분을 할 수 있긴 하지만 예를 들어서 저희가 백워드 프로포케이션을 하기 위해서 포드 그래프를 이거 모드를 돌리게 되면 그럼 사실 저는 제 개인적으로는 두 가지를 한꺼번에 하고 있다라고 생각을 하거든요. 그러니까 실제 포드 입장에서는 이거로 계산을 하기는 하지만 백워드 입장에서는 이거로 계산하는 과정이 본인의 그래프 모드인 셈 거죠. 왜냐하면 100워드 계산은 이거 모드 백워드 계산은 푸드 계산이 아닌 거고 그 하지만 배우들 입장에서 봤을 때는 이거 모드라고 하는 게 내가 해야 될 계산을 그래프를 만들어주는 과정이잖아요.
Attendees 1 51:20 그래서 어떻게 보면은 저희가 이거 모드를 켜고 트레이닝을 하기 위해서 오토그라드를 키면 그래드를 키면 그게 보드 입장에서 봤을 때는 이거이긴 하지만 백워드 입장에서 봤을 때는 코드가 본인의 그래프 모드인 셈이죠. 동의하시나요? 동의를 하지 않더라도 저는 이렇게 생각을 합니다. 각자 알아서 그거는 해석을 하시면 될 것 같습니다. 어쨌든 간에 그래프 모드라고 하는 거는 뭔가 계산을 해야 되는데 그 계산을 하기 위해서 실제 보이는 API는 실제 이제 수행을 하거나 보이는 API는 내가 뭔가 그래프를 만들기 위한 힌트인 셈인 거고 그래서 그 힌트를 뽑아낸 다음에 그걸 가지고 내가 하는 일을 하는 것이 저는 그래프 모드라고 생각을 해요. 그래프 모드를 해서 접근하기 위한 방법도 굉장히 다양하게 나왔는데 일단 tf1 같은 경우에는 딱 진짜 그래프 모드만 제공을 하는 거죠. 이제 사람들이 디파인 엔드 1이 이제 그래프 모드 제가 방금 말씀드린 설명이랑 사실 똑같죠.
Attendees 1 52:20 개발자들한테 명시적으로 그냥 그래프를 만들어 달라라고 부탁을 하는 거예요. 그게 이제 tf1에서 제시를 했던 방법이고요. 그다음에 팔도치 이거에 이제 이제 뭐라고 해야 될까 이거에 이제 대항이라기보다는 이거에 대한 대안으로 그렇게 짜면 너무 힘드니 그냥 이거 모델을 가정을 하고 모델을 작성하도록 해야 된다 라고 해서 이제 파이토치는 디파인 바이원이라고 이제 저희가 또 이야기할 수 있는 2구 모델을 중심으로 빌드업을 했고요.
Attendees 1 52:47 하지만 마찬가지로 백워드는 이거 모드가 백워드의 이제 그래프 모드로 다들 동작하고 있다라고 하는 거는 저는 이제 그렇게 해석한다는 말씀드렸고 파이토치가 이제 성공을 하면서 이제 텐서플로우 2로 넘어가면서 텐서플로우 1이 가지고 있던 문제를 해결하기 위해서 마찬가지로 이거 모델을 이제 지원을 하기 시작하고 젝스라고 하는 그런 프로젝트도 마찬가지로 더욱더 어떻게 보면 이거 모드가 디폴트로 이거 모드가 중심이고 거기에 이제 기술 자체는 이거 모드가 되지만 사실은 그래프 모드로 동작을 하는 그런 트레이싱 기술을 써가지고 해결을 하도록 되어 있습니다. 그래서 이제 그래프 모드 접근하는 방법도 이렇게 이제 다양한 다른 여러 가지 접근법이 있고 각 프레임웍마다 조금씩 다른 그런 기술들을 적용을 하고 있습니다.
Attendees 1 53:32 이거는 제가 좀 예시를 들어 이거 굉장히 중요한 개념이어서 다시 한 번 예시를 들어서 설명을 했는데 tf1 같은 경우에는 실제로 TF 컨턴트 TF 멤멀이라고 하는 게 실제로 하는 일이 계산을 하는 게 아니라 그냥 그 안에 있는 계산을 어떤 그래프를 만들어내는 과정을 진짜로 하는 거고요. 그래서 실제 TF 세션이라고 하는 걸 만들어서 그 안에서 그 그래프를 이밸류에이션을 하면 그 결과를 받을 수가 있어요. 그래서 예를 들어서 abc라고 하는 변수가 있는데 이 c라고 하는 변수를 검토를 해보면 그거는 어떤 값이 나오는 게 아니라 이제 그런 계산을 10까지 하기 위한 과정에 캡처가 되어 있는 셈인 거죠. 그리고 실제 c의 값을 알기 위해서는 c를 이밸류에이션을 해야 그 결과가 튀어나오게 됩니다.
Attendees 1 54:22 그리고 이제 파이토치 같은 경우에는 이거 모드고 그래서 여기에서는 실제 x1 2 y라고 하는 게 실제 의미하는 게 정말 센서 값들인 거고 이 한 줄 한 줄을 이제 이거 모드에서 이제 수행을 하면 단계 단계별로 계산이 되고 프린트 y를 그냥 하면 결과를 그냥 뽑게 되죠. 그래서 이거를 다시 그래프를 만들고 하는 그런 과정이 없이도 이거 자체는 그대로 계산을 할 수가 있습니다.
Attendees 1 54:52 이제 그래프 캡처라고 하는 게 그래프 모델에서는 그럼 되게 중요하고 어떻게 그러면은 그래프를 뽑아낼 거냐라고 하는 게 이제 또 되게 중요한데 tf1은 제가 말씀드렸던 것처럼 아예 프로그래머들한테 명시적으로 그래프를 그려달라라고 표현을 한 거고요. 그다음에 트래f나 파이트 h 2에서는 명시적으로 그래프를 그려달라라고 하지 않긴 하거든요. 하지만은 암묵적으로 이제 이거 모드로 모델을 만들어주면 거기에서 어떻게든 우리가 그래프를 뽑아내겠다 라고 하는 게 이제 트래픽 2나 파이터치 파이터치 12로 다 하는 그런 방식인데 tf2는 tf1의 흔적이 아직 남아 있어서 그럼에도 불구하고 그래프라고 하는 거를 익스프리스트하게 컨스트럭트를 한 다음에 그 그래프라고 하는 게 있는 그런 컨텍스트로 묶어서 그 컨텍스트 안에서 이거 모드로 모델을 기술을 하면 거기에 그래프가 캡처가 되게 돼 있어요. 네 그래서 어떻게 보면은 약간 어정쩡한 그런 느낌이 좀 들기는 하거든요.
Attendees 1 55:50 그렇고 파이토치 1 2 모두 다 100% 이거 모델을 지원을 하는데 이제 토치 1에서는 아까 제가 말씀드린 딥트레이스라고 하는 걸 이용을 해서 스트레이스를 뽑아가지고 그래프 모듈을 수행을 하도록 되어 있고 이 파이토치 2에서는 이걸 좀 더 더 범용적으로 쓸 수 있는 토치점 컴파일 그중에서도 트레이스를 뽑아내는 거는 다이나모라고 하는 기술을 개발을 해서 더 체계적으로 대응을 하고 있다라고 하는데 팔도지 1과 2의 차이입니다. 감사합니다. 이런 트리스라고 하는 게 머신러닝 프레임업을 만들면서 사람들이 새로 만들어낸 개념이 아니라 굉장히 옛날부터 고민을 했던 그런 개념인데 이게 카피라이트 이슈가 있을 수 있으나 제가 그냥 그 앞부분만 조금 카피를 해가지고 붙었는데 이 논문이 나온 게 81년이에요. 81년에 도셉 피셔라고 하는 분이 낸 그런 논문인데 여기서 말하는 트레이스가 아까 지 트레이스 말하는 트레이스랑 똑같은 의미고요.
Attendees 1 56:52 이 논문을 이제 패러럴 컴퓨터를 위한 그런 컴퓨터러를 만들면서 보안을 해서 실제 이름을 트레이스라고 붙이기 시작한 게 아주 오래됐고요. 아주 오래됐고 그리고 그런 개념이 컴파일러만 있는 게 아니라 사실 하드웨어도 있어요. 혹시 아키텍처 수업을 들으신 분들은 슈퍼 스케일라 그다음에 아우더 오더 토마슬러 알고리즘 이런 거 아니면 레저베이션 테이블 레지스터 리네이밍 이런 용어들을 들어보셨을 텐데 거기에서 특히 아웃오브 오더 프로세서가 하는 일이 정확하게 트레지스랑 똑같거든요. 그러니까 브랜치 프로덕션을 해서 확실하진 않지만 갈 것 같은 길을 선택을 해서 사실 리뉴얼하지 않은 그런 프로그램을 리뉴얼 리뉴얼하게 만들잖아요. 그게 아웃워드 프로세서에서 브랜치 프로덕션 이런 것들이 해주는 일이에요. 네 아무튼 그렇고 그리고 그걸 조금 더 명시적으로 하는 게 이제 트레이스 캐시고요.
Attendees 1 57:49 그렇게 해서 아예 트레이스를 만든 다음에 만든 트레이스 자체를 하드웨어적으로 이제 캐시를 해가지고 쓰는 게 그다음에 나왔던 그런 트레이스 캐시인데 이 트레이스 캐시에서 이제 사용하는 방식은 어떻게 보면은 이 뒤에 나왔던 이전에 나왔던 디트로이스하고 훨씬 더 비슷한 그런 방법이죠. 그리고 자바 제가 여기는 안 적었는데 자바 버추얼 머신도 마찬가지로 이런 디트레이싱이라고 하는 걸 썼고 그리고 이제 크롬 크롬이나 아니면 이런 이제 모던 브라우저에 다 들어가는 이런 자바스크립트 엔진도 다 트레이싱이라고 하는 기술을 다 쓰고 있습니다. 이게 마지막이가 이런 기술들이 다 이제 혼합이 돼가지고 머신러닝 프레임웍을 사람들이 지금 만들고 있다라고 생각을 하시면 됩니다. 여기서 잠깐 멈추고 혹시 질문 있으시면 조금 받고 다음으로 넘어가도록 하겠습니다.
Attendees 1 58:40 여기 지금 성의원님께서 파이토치 인퍼런스의 경우 토치 지점 토치점 지점 토치 컴파일 토치점 z 토치 컴파일 등을 적용하지 않으면 이거 모드로 실행됩니다.
Attendees 1 59:00 그렇죠? 네 네 맞습니다.
Attendees 1 59:07 조금만 더 부연 설명을 하면 이제 토지점 짓을 해도 튀어나오는 거는 모델인 셈이고요. 이제 토치 점 컴파일 해도 밖에서 보이는 거는 그냥 에덴 모듈이거든요. 그래서 어떻게 보면 이런 툴들이 그런 최적화가 되어 있지 않은 모델을 인풋으로 주면 최적화가 된 형태로 어쨌든 리턴을 해서 실행할 수 있도록 해준다. 그런 식으로 패 조치는 API를 디자인을 해놨어요. 혹시 다른 질문 있으신가요? 여기 보면 지훈 님께서 LLM은 동적 인풋 사이즈에 대한 컴파일이 중요해질 것 같은데 파이토치 2.0에서 이런 대응이 잘 되고 있다고 생각하시는지 궁금합니다.
Attendees 1 59:50 굉장히 중요한 질문이고 저희가 나중에 이 질문에 대한 대응을 할 텐데 이런 동적인 인풋 사이즈를 대응을 하는 방법도 여러 가지가 있는데 이제 그중에 하나가 그런 동적인 사이즈를 어떻게든 프로그램 랭귀지 내지는 API 수준에서 표현을 해서 컴파일을 할 때 그런 걸 다 고려를 하고 반영을 해서 컴파일를 하도록 하는 그런 방식이 하나가 있고 파이토치 2.0에도 이런 동적인 사이즈를 표현을 할 수 있는 그런 API가 제공이 돼요. 그러니까 데이터의 레인지를 정해서 이 변수가 가질 수 있는 동적으로 가질 수 있는 레인지가 이거니까 이거에 다 잘 대응을 하도록 컴파일을 해봐라고 하는 힌트를 줄 수가 있거든요. 그런 방식이 하나가 있고요. 근데 저는 그게 얼마큼 보편적으로 잘 쓰일지 모르겠어요. 그게 되게 어색한 것 같아요.
Attendees 1 1:00:43 저는 제 개인적으로는 되게 어색하다고 생각해서 그런 방식이 얼마나 잘 보편적으로 잘 정리가 돼서 구현이 되고 사람들이 얼마나 그걸 잘 어댑트를 할 건가라고 하는 거는 저는 개인적으로도 약간 의심이 되긴 합니다. 현실적으로 사람들이 쓰는 방법은 그래서 오히려 그게 아니라 약간 gg 치고 그러니까 파이토치나 이런 데서 보통 그래프를 기술을 하고 하는 그런 모델에서 빠져나와서 예를 들어서 커스터 모을 만들어요. 커스텀 오버 만들고 커스텀 오베는 따로 시멘틱을 주고 그거는 잘 그러니까 그래프로 잘 표현이 되는 그런 부분들 그러니까 스태틱하게 잘 표현이 되는 부분하고 동쪽으로밖에 될 수 없는 부분들을 이렇게 잘 발라가지고 동쪽으로 해야 되는 그런 부분들은 다 커스텀오브로 일단 숨겨놓고 실제 처리하는 거는 예를 들어서 그냥 쿠다로 짜는 거죠.
Attendees 1 1:01:41 그 대신에 가동 자체가 내가 처리할 수 있는 맥스 예를 들어서 사이즈는 이거다라고 하는 것들은 프로그래머가 가정을 해서 인풋 파라미터나 그런 것들로 만들게 해놓고 모델들에 대한 동적인 처리가 필요한 그런 부분들은 그걸 어떻게든 파이토치의 옷들로 표현을 하려고 하는 게 아니라 그냥 포기를 하고 커스텀 오베 도메인으로 넘겨서 그 안에서 그런 것들을 더 잘 처리를 할 수 있는 그런 표현에 맞춰서 그냥 표현을 하게 되고 그 대신에 그 두 세계가 잘 맞물려서 이제 컨센스턴트하게 동작할 수 있도록 하는 그런 방식도 생각을 해볼 수가 있어요. 저는 개인적으로는 두 번째 방식이 첫 번째 방식보다는 더 합리적인 것 같다고 생각을 하긴 하거든요. 이거는 사람마다 의견들은 좀 다를 수 있는 것 같아요. 이게 아까 최용주 님께서 하시는 답이고 질문이 꽤 많은데 잠깐만요. 두 번째 질문이 내가 이쪽만 보는 건가요? 근데 질문을
Attendees 2 1:02:40 여기는 없어요
Attendees 1 1:02:41 없어요 그렇군요. 여기에 훨씬 사람이 많군요. 네 알겠습니다. 두 번째 질문이 이거 모드는 코드 그대로 순차적으로 실행하고 그래프 모드는 최적화를 목적으로 다시 재구성하는 것인가요? 목적 자체는 그렇죠 그러니까 이거 모드는 그냥 보이는 대로 실행을 해야 되니까 이제 순차적으로 실행할 수밖에 없는 거고 그러니까 이거 모드를 페이스하게 진짜 이거 모드로 실행을 한다라고 한다면 그냥 순차적으로 보이는 대로 실행을 할 수밖에 없는 거고 그래프 모드는 처음부터 끝까지 계산이 이렇게 될 거야라고 하는 걸 먼저 파악을 하는 과정에 있고 그거를 파악을 한 다음에 전체를 보고 계산을 다시 재조정할 수 있는 그런 옵션이 있는 셈인 거죠. 그런 의미에서는 목적에 맞게 다시 재구성을 하는 과정이 그래프 모드에서는 가능하고 또 그렇게 하려고 그래프 모드를 승인 했죠. 그래서 무봉님께서 하신 말씀이 저는 맞다고 생각을 하고요. 그리고 대환 님께서 하신 말씀이
Attendees 1 1:03:57 그레뉴얼리티라고 하는 게 어떤 말씀인지 제가 잘 모르겠습니다. 요거는 기업 이슈로 남겨두시면 거기에서 다른 분들하고 함께 같이 대응을 해보면 어떨까 싶고요. 그리고 이제 상진님께서 말씀하신 게
Attendees 1 1:04:17 그렇죠 인플런스 서비스 환경에서는 컴퓨너 배칭을 이용해서 입력을 배치 사이즈를 일정하게 유지를 할 수 있다는 말씀이신가요? 상경 님 네 어쨌든 네 하게 돼 있습니다. 좋습니다. 상주님께서 하시는 거는 코멘트이신 것 같고 인플루언서 서비스 환경에서는 컨티니스 배칭을 이용해서 입력을 항상 일정한 크기로 가져갈 수 있습니다. 혹시 상길 님 여기 지금 계신가요? 네 질문이 있어가지고
Attendees 1 1:04:55 동쪽인 부사이즈에 대해서
Attendees 4 1:04:57 어떻게 하냐 하 국제 서비스 환경에서 입력하는 일자
Attendees 1 1:05:02 왜 알겠습니다. 이건 약간 일정한 길이와 기타 등등에 대한 정리가 좀 더 약간 좀 필요할 것 같긴 한데 이거는 오프라인으로 조금 더 말씀을 나눠보면 어떨까 싶긴 한데 그러면 네 그렇고 그다음에 석진무님께서 하신 게 트레이싱 스케줄이라고 하는 게 기존 프로그램 언어 컴파일에서 사용되는 pg 같은 기법일까요? 그러니까 피지o하고 트레이스 스케줄링이 연관이 있기는 해요. 근데 같다고 보기는 어렵거든요. 무슨 말이냐면 트레이스 스케줄링 일단 pgo라고 하는 거에 대해서 말씀드리면 pgo는 일반적으로 프로그램이 동쪽으로 가지는 그런 특성들 어쨌든 뽑아내고 내지는 유출을 하고 그래서 그런 특성들을 활용을 해서 옵티마이제이션을 하는 거를 pgo라고 보통 이야기를 합니다. 그런 면에서는 어떻게 보면 pgo가 더 넓은 개념이고 pgo의 한 특정 알고리즘이 트레스 스케줄링이라고 할 수가 있겠네요. 그렇게 보는 게 맞겠네요.
Attendees 1 1:06:11 그러니까 pgo라고 하는 거는 더 큰 개념으로 제가 말씀드린 것처럼 프로그램이 가지고 있는 동적인 특성을 컴파일 타임에 활용을 해서 최적화를 하는 거를 저희가 PS라고 정의를 할 수가 있고요. 그중에 가장 파퓰러한 방법 중에 하나가 트레이스 스케줄링이에요. 왜냐하면 트레이스 스케줄링 할 때는 아까 제가 동쪽 브랜치 프로덕션 이런 거 말씀을 드렸잖아요. 아웃오브 오더 엔진을 할 때 브랜치 프로덕션을 해서 이제 트레이스를 만드는데 브랜치 프레티션을 잘 해야 그분 트레이스를 만들고 이제 뭐라고 해야 될까요? 롤백이 없이 성능을 잘 뽑아낼 수가 있겠죠. 그래서 그런 동적인 특성을 잘 뽑아내는 게 되게 중요하게 되고요. 트레이스 스케줄링도 마찬가지예요. 제가 예를 들어서 갈 수 있는 길이 a도 있고 b도 있는데 베팅을 하는 거거든요.
Attendees 1 1:07:00 컴파일 타임에 a가 훨씬 더 빈번하게 이루어질 거야라고 한다면 내 다음에 수행되는 게 a라고 생각을 해서 그 경우에 맞게 스케줄링을 하는 게 이제 트레이스 스케줄링이라서 굉장히 양질의 그런 프로파일 데이터가 제공이 되는 게 트레이스 스케줄링이 되게 중요합니다. 그런 면에서는 트레이스 스케줄링은 pgo의 한 특정한 기법이라고 생각을 할 수가 있을 것 같아요.
Attendees 1 1:07:26 네 감사합니다.
Attendees 1 1:07:31 여기까지 했고 사실은 이게 아마 제 생각에는 마지막 페이지인 것 같아요. 더 있네요. 이게 거의 이제 마지막 페이지인데 그래서 이런 머신러닝 프레임웍에 그런 방대한 양의 그런 백그라운드가 있긴 하지만 그런 것들이 이제 순차적으로 순차적이라기보다는 이제 시간이 흘러감으로써 점점 더 이렇게 잘 정리가 돼서 사람들이 이런 문제는 이렇게 풀면 좋겠다라고 하는 게 한 5년 10년 전보다는 지금 훨씬 더 잘 정립이 되어 있는 것 같아요. 그리고 그런 것들이 잘 통합되어 있는 형태가 파이토치인 것 같고요. 몇 년 전까지만 해도 사람들이 긴가민가 했긴 하지만 지금은 거의 파이토치로 제 생각에는 격리가 되어가는 게 아닌가라고 생각이 듭니다. 그 한 예가 아마 여기 있는 분들이 아마 거의 다 아시는 그런 기술일 텐데 VLM이라고 하는 그런 기술이 있고요.
Attendees 1 1:08:23 파이토치 위에 올라가는 기술이라고 생각할 수가 있는데 이 VM에 하드웨어를 붙이는 게 요즘 모든 하드웨어 벤더들이 하려고 하는 가장 유행처럼 지금 시도를 해보고 있긴 하거든요. 근데 이 VLM이 이제 자기들이 업스트림에서 하드웨어를 지원을 하기 위해서는 일단 파이토치에 잘 붙여봐라라고 하는 거를 아주 구체적인 그런 요구 조건으로 내걸었어요. 그러면서 그걸 이제 대표하는 그런 이기탑 이슈도 있긴 한데 그러면서 이제 제시를 했던 게 자기들은 앞으로 파이토치를 VLM이 뭐라고 그럴까 하드웨어를 붙이는 그런 내로우 베이스로 쓰게 쓸 거야. 그래서 하드웨어 디펜던트가 디펜던트한 그런 부분들은 일단 파이토치에 잘 붙이면 그다음에 와서 그들한테 줘라라고 하는 걸 이제 정식적인 팔러스 로직을 만들었어요.
Attendees 1 1:09:10 어떻게 보면 당연한 얘기도 하지만 이 머신러닝 에코 시스템에서 방금 말씀드린 이 네로 웨이스트 여러 다양한 하드웨어들을 잘 앱스트랙션을 해서 단순화시켜주는 그런 창구로 이제 파이터치를 보편적으로 받아들여져 가고 있는 것 같습니다.
Attendees 1 1:09:29 그래서 종합적으로 그럼 제가 생각했을 때 파이토치 2.0이 가지고 있는 성질은 파이토치 2.0의 성질을 거의 다 인네릿을 당연히 했고요. 그래서 1.0의 성질까지 다 포함을 해서 보면 개발자들이 봤을 때에는 넌파이 쓰는 것 같은 그런 경험을 할 수 있도록 만든다. 실제 텐서가 생긴 모양도 그렇고 실제 프리디파인드 매스 펑션 같은 것들이 잘 제공이 되는 것도 그렇고 인터렉티브한 것도 있고 마찬가지로 주피터라든지 하는 데이터 사이언티스들이 많이 쓰는 그런 툴도 다 지원을 하고 라고 하는 측면에서 넌 파이 같은 그런 사용자 경험을 제공을 한다라고 하는 게 첫 번째 큰 특징이고 그 밑에 헤테로지니어스 컴퓨팅이라고 하는 게 파운데이션으로 깔려 있다라고 하는 게 두 번째 가장 큰 특징이고 그리고 디지털 비티드 프로그래밍 모델 같은 경우에는 mpi와 굉장히 흡사한 거를 파이토치에서 기본적으로 제공을 하기 시작한 게 또 하나의 큰 특성이라고 생각을 하고요.
Attendees 1 1:10:25 특히 1.0부터 이거 모드에서는 이제 컴퓨터 라이브러리를 그다음에 그래프 모드에서는 특히 2.0에서 mr 컴파일러와 인터뷰이션을 굉장히 중요하게 생각을 하고 있고 이런 지원들을 또 되게 잘 해 나가고 있다라고 하는 거 그다음에 다른 특징은 저는 제 2 랭귀지가 아니라 3 랭귀지 내지는 멀티 랭귀지 솔루션이라고 생각을 하고요. 그래서 실제 스크립팅을 하는 거는 파이썬으로 하지만 그 밑에 들어가면 성능을 높이기 위한 그런 부분들은 스플플로 전환이 돼서 제공이 되고 그다음에 특히나 쿠다를 쓴다라고 한다면은 정말로 성능이 그 필요한 분들은 GPU나 아니면 tpu나 MPU의 로딩이 되기 위해서 그들이 제공하는 그런 커널 랭비드를 쓴다라고 하는 특징이 또 하나가 있는 것 같고요. 그리고 디파인 바이런 이거 모드를 시맨틱의 중심으로 가져가되 거기에 이제 그래프 모델을 스니스하게 지원을 하기 위한 토치 다이나모라고 하는 기술을 제공을 했다.
Attendees 1 1:11:27 그리고 그게 트레이닝뿐만 아니라 인퍼런스뿐만이 아니라 이제 트레이닝에서도 잘 쓸 수 있도록 제공을 한다라고 하는 게 굉장히 큰 특징이고 어떻게 보면 2.0이 넘어오면서 가장 많이 변한 부분이 이 부분인 것 같고요. 이런 모든 것들을 여러 다양한 하드웨어랑 잘 붙이기 위한 그런 인터그레이션 포인트를 잘 정의를 하고 있다 라고 하는 게 제가 생각했을 때 방금 제가 말씀드린 그런 여러 가지 기술적인 백그라운드를 다 합쳐서 화이트 2.0이라고 하는 게 구현한 그런 형태라고 생각을 합니다. 그래서 저희가 앞으로는 그러면 이제 어떻게 제 생각에 펼쳐 나가면 좋을 것 같냐면 파이터치 인터널의 기초에 대한 부분이랑 그다음에 심화 부분 이렇게 두 개를 나눴고요.
Attendees 1 1:12:10 기초에 대한 부분은 전체 인터넷에 어떻게 생겼나 코드 베이스는 어떻게 바라봐야 되나라고 하는 그런 개요부터 시작을 해서 일단 이거 모드 이야기를 먼저 하고 그다음에 그래프 모드에 대해서 공부를 해본 다음에 그런 것들이 트레이닝 파인튜닝 인퍼런스에는 어떻게 활용이 되는가 라고 하는 것들을 이야기를 해보면 좋을 것 같고요. 그다음에 심화로 들어가게 되면은 제가 지금 잡은 거는 이렇게 네 가지 정도의 타픽을 잡았어요.
Attendees 1 1:12:35 하나는 그래도 지금 파이토치에서 가장 잘 붙어 있기도 하고 사람들이 가장 잘 활용을 하고 이해하는 게 GPU니까 그럼 파이토치랑 GPU는 어떻게 붙어 있고 사람들이 어떻게 쓰는지라고 하는 거 그다음에 그런 디스트리비티드 프로그래밍 위에 그런 패러럴한 프로그래밍은 파이 토치를 가지고 어떻게 하는지 그리고 아까 이제 컨트니 대칭 이런 것들도 나오긴 했지만은 파이토치를 가지고 LLM의 인플루언스를 어떻게 활용을 하고 있는지 라고 하는 것들을 좀 다뤄보면 좋을 것 같고 마지막으로는 저희 랩 자체의 이름이 파이토치 플러스 MPU니까 이런 MPU들하고의 인플리케이션지 특히 그거를 제가 잘 알고 있는 건 리벨리온밖에 없기 때문에 리벨리온 관점에서 이야기를 해보는 거 이렇게 4가지 정도의 타픽을 심화 과정에서 다루면 좋을 것 같습니다. 아마 이게 마지막일 거예요. 이게 제가 오늘까지 준비한 그런 내용이고요.
Attendees 1 1:13:37 시간이 조금 남긴 했는데 네 어떻게 하면 좋을까 일단 저희 마무리하기 전에 이제 오늘 했던 내용들이나 앞에 계획이나 등등해서 종합적으로 궁금하시거나 코멘트가 있으면 조금 받고 그다음에 오늘 온라인 모임은 마무리를 해보면 좋을 것 같은데요. 혹시 질문이나 코멘트 있으세요?
Attendees 1 1:14:03 닫아버렸군요.
Attendees 1 1:14:09 제가 이 질문에 그냥 제가 보자마자 종수님 종수 님께서 하신 질문이 뭐냐 하면 토치 스크립트는 파이톤과 c 플러스 사이에 위치해 있다고 봐도 되나요라고 하는 질문에 나중에 다시 한 번 생각을 해볼 수도 있긴 한데 저는 아닌 것 같아요. 그러니까 토치 스크립트는 이런 파이토치 스피플 같은 툴 랭귀지 플라이라든지 하는 이 수준이랑은 약간 올소도할 그런 문제라고 생각을 하거든요. 토치 스크립트라고 하는 거는 이거 모드가 기본으로 제공이 되는 파이토치에서 그래프 모드를 지원을 하기 위한 그런 기술 중에 하나인 셈인 거죠. 그래서 파이톤과 스피플 그런 레이어링하고는 저는 상관이 없지 않나 그렇게 생각이 듭니다. 이제 동수 님 질문에 대한 답이었고요. 제이크 님 같은 경우에 오늘 했던 강의 내용들은 나중에 정리가 돼서 공유가 되나요?
Attendees 1 1:15:09 이게 앞으로 저희가 고민을 해야 될 부분인데 제가 이렇게 구두로 전달을 한 부분들이 최대한 잘 캡처가 돼서 강의 노트로 잘 남으면 좋을 텐데 그거를 일단 제가 더 자세하게 처음부터 쓰는 것도 방법이고 아니면 AI가 잘 해주는 것도 좋을 것 같고 아니면 여러분께서 도와줄 수 있는 것도 있고 그래서 이런 것들이 아마 좀 다 같이 해보면 제 생각에는 좋을 것 같아요. 그걸 제가 다 정리를 한다라고 생각하면 그런 앱을 만들 필요가 없었겠죠. 아마 그러니까
Attendees 3 1:15:40 블로그 같은 거를 하시는 분이 계신다거나 아니면 이 랩을 위한 블로그 같은 거 있으시다면은 만든다면은 뭔가 좀 같이 뭔가
Attendees 1 1:15:49 그래서 저희가 이제 여기서 이렇게 논의를 하고 같이 공부한 내용들을 어떻게 잘 캡처를 해서 더 공유하기 쉬운 형태로 만들 가 만들 건가라고 하는 것들을 좀 잘 이야기를 해보면 좋을 것 같습니다. 쿠다와 트리톤은 어떻게 다른지 궁금합니다. 이게 이제 다른 차이점이 몇 가지가 있고 저희가 트리톤에 대해서도 나중에 한번 이야기를 좀 해볼 텐데 일단 쿠다는 프리프라이터리한 테크놀로지고 트리톤이라고 하는 거는 오픈이라고 하는 게 일단 가장 큰 차이 중에 하나고요. 코다라고 하는 거는 NVIDIA만 쓸 수가 있고 mbda가 다른 회사들이 쓰지 못하도록 굉장히 강한 라이센스를 걸어놨어요. 트리톤은 오픈소스이기 때문에 누구든지 갖다 쓸 수 있다라고 하는 게 일단 첫 번째 차이점이고 두 번째 차이점은 엄밀하게 말해서 이게 전적으로 맞지 않긴 하지만 일단은 맨 처음에 만들어진 거는 약간 픽셀 단위의 굉장히 파인 드레인한 조그만 트레드들이 엄청나게 많은 걸 가정하고 만든 프로그램 모델이긴 하거든요.
Attendees 1 1:16:51 그거에 비해서 이제 트리톤 같은 경우에는 다루는 데이터들의 단위 청크 단위가 어떤 스타일 이라고 하는 조금 더 코스그레인한 그런 단위를 가지고 얘네들을 어떻게 특히나 메모리 하이로키상에서 잘 매니지를 할 건가라고 하는 거에 초점을 만들어져 있는 그런 랭기즈라고 생각을 할 수가 있어요. 그런 측면에서 봤을 때 머신러닝에는 쁘다보다는 트리톤이 훨씬 더 잘 맞는 측면이 있어요. 그렇긴 하지만 쿠다 자체도 사실 계속 머신러닝이 쿠다의 가장 중요한 애플리케이션이 되면서 이런 블록 프로그램의 특성들을 갖기 위한 여러 가지 장치들을 추가를 하고 있긴 하거든요. 그래서 제가 방금 말씀드린 이게 정확하게 분리가 되지 않긴 하지만 쿠자 같은 경우에는 제 생각에는 원래 만들어진 게 그게 아닌 데다가 더하면서 만들어지는 넌트리어라는 그런 복잡성이 좀 있는 것 같아요. 그런 측면에서는 코다를 가지고 사실 GPU를 정말 잘 쓰기가 쉽지는 않습니다.
Attendees 1 1:17:47 그에 반해서 이제 트리토는 간단한 프로그래밍 모델을 제공을 하고 그 대신에 특히나 GPU의 매핑을 하기 위해서 해야 되는 그런 복잡한 최적화는 컴파일러가 해결을 하도록 하는 게 전반적인 스트레티지라고 하는 점에서 굉장히 다릅니다. 이거에 대해서는 저희가 나중에 좀 더 깊게 이야기를 해보면 좋겠습니다.
Attendees 3 1:18:03 아카이빙에 대해서 코멘트를 남겨주신 것 같아요. 박정
Attendees 1 1:18:10 네 알겠습니다. 그리고 네 이 정도인 것 같습니다. 이게 마지막 질문이죠 아닌가요? 중간에 코멘트가 나오는 건가요?
Attendees 1 1:18:28 네 그리고 웅주님께서 말씀하신 거는 코다는 스플 베이스고 트리톤은 데크레이터 형태로 제공하는 파이썬 API입니다. 이것도 굉장히 큰 차이점 중에 하나예요. 저는 이거를 트리톤을 파이썬 API라기보다는 파이썬 스텍스를 사용한 도메인 스페스픽 랭귀지라고 이해를 하는 게 저는 더 좋다라고 생각을 하는데 이거에 대해서는 다른 분들은 다른 의견 있으면 나중에 해주셔도 될 것 같죠 그게 무슨 말이냐면 트리톤은 신텍스 자체는 그러니까 트리톤이 바인딩이 옛날에 원래 맨 처음에 이름은 까먹었는데 맨 처음에 만들었던 하버드 박사 과정 학생이 만들었을 때는 파이썬 바인딩도 있고 그다음에 c 바인딩도 있고 했는데 c 바인딩은 거의 쓰지 않는 것 같고 파이썬 바인딩은 주로 많이 쓰는데 그 파이썬 바인딩의 신텍스 자체는 그냥 사실 파이썬 스펙스 하지만 실제 파이썬 프로그램은 아니기 때문에 c 파이썬이 이해할 수 있는 그런 파이썬은 아니고요.
Attendees 1 1:19:27 파이썬 섹스를 가진 하지만 새로운 인터플리테이션이 필요한 그런 도메인 스페 파이썬에 임베드 되어 있는 도메인 스페스틱 랭귀지라고 이해를 하는 게 더 좋을 것 같습니다. 그리고 맨 마지막에 질문하신 게 문광영 님께서 파이토치용 컴퓨팅 쉐이더라고 불러도 될까요? 네 저는 그렇게도 부를 수가 있는 것 같아요. 그러니까 파이토치가 파이토치 2.0이 어떻게 보면 디폴트로 이걸 쓰자라고 이제 결정을 한 크기 결정을 한 그런 파이토치에 딱 붙어 있는 그런 커널 프로그래밍 랭리즈라고도 생각을 할 수 있을 것 같습니다. 일단 오늘 모임은 일단은 준비한 거는 여기서 마치고 QnA도 이 정도에서 좀 마무리를 하면 좋을 것 같고요. 오늘 맨 처음 시작할 때 매끄럽지 못했던 점은 굉장히 죄송하고 그전에 그전에 저희가 온라인 오프라인 관련돼서 질문들도 많고 하시면서 좀 복잡했었는데 그런 부분들은 저희가 잘 반영을 해서 다음 번부터는 조금 더 매끄럽게 진행을 할 수 있도록 해보겠습니다.
Attendees 1 1:20:33 전반적인 운영이라든지 하는 이런 부분들에 대해서는 여기 또 모여 계신 오프라인 분들의 피드백도 들어가면서 좀 정리를 해서 제안을 하고 온라인에 계신 분들도 같이 피드백을 받아가지고 같이 한번 만들어가면 제 생각엔 좋을 것 같죠 오늘 사실 한 40분 정도 실제 강의를 듣도록 하기까지는 한 40분 정도 걸려서 있음에도 불구하고 많은 분들께서 잘 남아주셔서 끝까지 참여해 주셔서 감사하고요. 다들 좋은 시간이었으면 좋겠습니다. 또 뵙겠습니다. 감사합니다.