터보차저 Python: AI로 컴퓨팅 속도를 수천 배 가속화
매사추세츠 대학교 애머스트 2023년 8월 30일
매사추세츠 대학교 Amherst의 연구원들은 최첨단 Python 프로파일러인 Scalene을 출시했습니다. 기존 프로파일러와 달리 Scalene은 AI를 사용하여 코드 비효율성에 대한 수정 사항을 식별하고 제안합니다. 이러한 개발은 미래가 속도 향상을 위한 더 나은 프로그래밍으로 기울어짐에 따라 중요성을 더해갑니다.
프로그래밍 언어 Python의 속도를 획기적으로 높이는 오픈 소스 도구인 Scalene은 컴퓨터 처리 속도를 제한하는 하드웨어 문제를 우회합니다.
Emery Berger가 이끄는 University of Massachusetts Amherst의 컴퓨터 과학자 팀은 최근 수상 경력이 있는 Scalene이라는 Python 프로파일러를 공개했습니다. Python으로 작성된 프로그램은 다른 프로그래밍 언어로 작성된 코드보다 최대 60,000배 느리기로 악명 높습니다. Scalene은 Python이 뒤처지는 위치를 정확히 식별하여 프로그래머가 더 높은 성능을 위해 문제를 해결하고 코드를 간소화할 수 있도록 합니다.
다양한 프로그래밍 언어가 있습니다. C++, Fortran, Java 등이 더 잘 알려져 있습니다. 그러나 최근 몇 년 동안 거의 보편화된 언어는 바로 Python입니다.
“Python is a ‘batteries-included’ language,” says Berger, who is a professor of computer science in the Manning College of Information and Computer Sciences at UMass Amherst, “and it has become very popular in the age of data science and machine learningMachine learning is a subset of artificial intelligence (AI) that deals with the development of algorithms and statistical models that enable computers to learn from data and make predictions or decisions without being explicitly programmed to do so. Machine learning is used to identify patterns in data, classify data into different categories, or make predictions about future events. It can be categorized into three main types of learning: supervised, unsupervised and reinforcement learning." data-gt-translate-attributes="[{"attribute":"data-cmtooltip", "format":"html"}]"> 머신러닝은 매우 사용자 친화적이기 때문입니다.” 이 언어는 사용하기 쉬운 도구 라이브러리와 함께 제공되며 직관적이고 읽기 쉬운 구문을 갖추고 있어 사용자가 Python 코드 작성을 빠르게 시작할 수 있습니다.
“컴퓨터는 더 이상 빨라지지 않습니다. 미래의 속도 향상은 더 나은 하드웨어보다는 더 빠르고 효율적인 프로그래밍을 통해 더 많이 이루어질 것입니다.”
— UMass Amherst 매닝 정보 및 컴퓨터 과학 대학의 컴퓨터 과학 교수인 Emery Berger
Berger는 "하지만 Python은 엄청나게 비효율적입니다."라고 말합니다. "다른 언어보다 100~1,000배 느리게 실행되며 일부 작업은 Python에서 60,000배 더 오래 걸릴 수 있습니다."
UMass Amherst 컴퓨터 과학 교수 Emery Berger. 크레딧: UMass 애머스트
프로그래머는 오랫동안 이를 알고 있었으며 Python의 비효율성에 맞서기 위해 "프로파일러"라는 도구를 사용할 수 있습니다. 프로파일러는 프로그램을 실행한 다음 속도가 느린 이유와 부분을 찾아냅니다.
불행하게도 기존 프로파일러는 Python 프로그래머에게 도움이 되는 일이 놀라울 정도로 거의 없습니다. 기껏해야 코드 영역이 느리다는 것을 나타내고, 무엇을 할 수 있는지 파악하는 것은 프로그래머에게 맡깁니다.
UMass 컴퓨터 공학 대학원생 Sam Stern과 Juan Altmayer Pizzorno가 포함된 Berger 팀은 Python 코드의 비효율성을 정확하게 식별할 뿐만 아니라 AI를 사용하여 코드 개선 방법을 제안하는 최초의 프로파일러로 Scalene을 구축했습니다.
Berger는 "Scalene은 먼저 프로그램이 시간을 낭비하는 부분을 알아냅니다."라고 말합니다. Python의 느린 속도의 대부분을 담당하는 세 가지 주요 영역(CPU, GPU 및 메모리 사용량)에 중점을 둡니다.
Scalene은 Python이 따라잡는 데 어려움을 겪는 부분을 파악한 후 ChatGPT를 뒷받침하는 동일한 기술을 활용하여 AI를 사용하여 개별 라인 또는 코드 그룹화를 최적화하는 방법을 제안합니다.
Berger는 "이것은 실행 가능한 대시보드입니다."라고 말합니다. "이것은 단지 자동차가 얼마나 빠르거나 느리게 가는지 알려주는 속도계가 아니라, 더 빨리 갈 수 있는지, 속도가 왜 영향을 받는지, 최대 속도에 도달하기 위해 무엇을 할 수 있는지 알려줍니다."