인간에게 작업량 스케줄링하기

Lv.1 골드키위 (58.♡.216.146)

2024년 4월 19일 AM 12:17 · 수정됨(00:27)

조회 1,080 공감 0

https://twitter.com/karpathy/status/1780684098773876941

생각해 볼만한 글인 것 같아 가져왔습니다. 글쓴이는 테슬라와 OpenAI에서 인공지능을 만들었던 안드레 카파시(Andrej Karpathy)입니다.

(Claude 3 Opus로 번역)

인간에게 작업량 스케줄링하기

어떤 인간 조직에서의 계산 작업량은 "CPU에서 실행"하는 것이 가장 좋습니다. 하나의 매우 유능한 사람을 선택하여 동기화 없이 단일 스레드 방식으로 완료할 작업을 할당하는 것입니다. 보통 새로운 것을 시작할 때 가장 적합합니다. "사물의 뼈대를 만드는 것"에 비유할 수 있습니다.

다른 작업량은 GPU에서 실행하는 것이 가장 좋습니다. 더 많은 수의 (어쩌면 더 젊은) 사람들을 데려와서 병렬로 작업을 할당하는 것입니다. 대규모 멀티스레드이며 동기화 오버헤드가 필요합니다. 보통 프로젝트의 후반부 또는 자연스럽게 병렬 처리가 가능한 부분에 적합하며, 뼈대가 있을 때 "사물을 살찌우는 것"에 비유할 수 있습니다.

여기에는 중간 지점이 있습니다. 때로는 작은 팀이 협업하는 멀티 스레드 CPU 실행을 상상할 수 있습니다. 좋은 관리자는 당면한 프로젝트의 계산 기하학을 이해하고 CPU 또는 GPU에 작업의 일부를 위임할 시기를 알 것입니다.

이 비유가 약간 깨지는 주목할 만한 지점 중 하나는 컴퓨터 자원을 잘못 할당할 때 발생할 수 있는 최악의 일은 프로그램이 더 느리게 실행된다는 것입니다. 그러나 인간 조직에서는 훨씬 더 나빠질 수 있습니다. 속도가 느려질 뿐만 아니라 결과물의 전반적인 품질이 낮아지고, 더 취약해지며, 더 지저분해지고, 일관성이 떨어지며, 더 추해질 수 있습니다.

여기서 가장 흔한 걸림돌은 CPU에서 실행되어야 하는 무언가를 병렬화하려고 시도하는 것입니다. 일반적인 언어로 말하자면, 이것은 더 많은 사람을 투입하면 일이 더 빨리 진행될 수 있다는 오해에서 비롯됩니다. 보통 "위원회에서 설계한" 결과물로 이어지는데, 단지 더 느려질 뿐만 아니라 철학이 일관되지 않고, 엔트로피가 높으며, 장기적인 결과는 훨씬 더 나쁩니다.

반대 문제는 더 드물고 보통 누군가가 반복적이고, 재미없거나 지루한 일을 하고 있을 때 일어납니다. 이런 경우에는 더 많은 도움을 받으면 정말 좋을 것입니다.

스타트업은 우연히 이점을 갖고 있다고 생각합니다. 그들은 대기업의 자원이 부족하고 강력한 CPU에서 계산을 실행하므로, 그것이 옳은 일인 경우에 이깁니다. 더 큰 회사, 특히 무언가가 전략적으로 매우 중요하다고 여겨지는 경우에는 거의 항상 너무 많은 병렬 처리에 손을 댑니다.

요약하자면, 당신의 프로젝트, 계산 기하학, 내재된 병렬성에 대해 생각해보고 어떤 부분이 CPU 또는 GPU에 가장 적합한지 고려하세요.

댓글 (1)

  • S

    steeldusk Lv.1

    24.04.19 · 24.♡.248.211

    그래서 보통 병렬로 진행이 안되는 critical path를 찾아내고 각 task마다 선행조건들을 찾아서 최적의 작업 루트를 구상은 합니다만, 인간은 기계가 아니라 항상 오차가 생기네요.

댓글을 작성하려면 이 필요합니다.