ターボチャージされた Python: AI により計算速度が数千倍高速化
マサチューセッツ大学アマースト校2023年8月30日
マサチューセッツ大学アマースト校の研究者は、最先端の Python プロファイラーである Scalene を導入しました。 従来のプロファイラーとは異なり、Scalene は AI を使用してコードの非効率性を特定し、修正を提案します。 将来的には速度向上のためにより良いプログラミングが求められる中、この開発は重要性を増しています。
彼らが開発した Scalene は、プログラミング言語 Python を劇的に高速化するオープンソース ツールで、コンピューターの処理速度を制限するハードウェアの問題を回避します。
Emery Berger 率いるマサチューセッツ大学アマースト校のコンピューター科学者のチームは、最近、受賞歴のある Scalene と呼ばれる Python プロファイラーを発表しました。 Python で書かれたプログラムは遅いことで有名であり、他のプログラミング言語で書かれたコードよりも最大 60,000 倍遅いです。Scalene は、Python が遅れている箇所を効率的に正確に特定するように機能するため、プログラマーはコードのトラブルシューティングと合理化を行ってパフォーマンスを向上させることができます。
さまざまなプログラミング言語があり、C++、Fortran、Java などはよく知られていますが、近年では 1 つの言語がほぼユビキタスになっています。それが 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 コードの作成を開始できます。
「コンピューターはもはや高速化していません。 将来の速度の向上は、より優れたハードウェアによってではなく、より高速で効率的なプログラミングによってもたらされるでしょう。」
— Emery Berger 氏、マニング情報コンピューター科学大学アマースト校のコンピューターサイエンス教授
「しかし、Python は非常に非効率的です」とバーガー氏は言います。 「Python は他の言語よりも簡単に 100 ~ 1,000 倍実行速度が遅く、一部のタスクには Python の 60,000 倍の時間がかかる場合があります。」
マサチューセッツ州アマースト大学コンピュータサイエンス教授エメリー・バーガー氏。 クレジット: アマースト大学
プログラマーはこのことを以前から知っており、Python の非効率性と戦うために、「プロファイラー」と呼ばれるツールを使用できます。 プロファイラーはプログラムを実行し、どの部分が遅いのか原因を特定します。
残念ながら、既存のプロファイラーは、Python プログラマーを助けるために驚くほどほとんど役に立ちません。 せいぜい、コードの領域が遅いことを示すだけで、何ができるかはプログラマに判断を任せます。
バーガー氏のチームには、マサチューセッツ大学コンピューターサイエンス大学院生のサム・スターン氏とフアン・アルトマイヤー・ピッツォルノ氏が含まれており、Python コードの非効率性を正確に特定するだけでなく、AI を使用してコードの改善方法を提案する初のプロファイラーとして Scalene を構築しました。
「Scalene は、プログラムがどこで時間を無駄にしているかをまず明らかにします」とバーガー氏は言います。 Python の速度低下の大部分の原因となる 3 つの主要な領域 (CPU、GPU、メモリ使用量) に焦点を当てています。
Scalene は、Python の対応に問題がある箇所を特定すると、ChatGPT を支える同じテクノロジーを活用した AI を使用して、個々の行、さらにはコードのグループを最適化する方法を提案します。
「これは実用的なダッシュボードです」と Berger 氏は言います。 「速度計は車の速度を示すだけではなく、もっと速く走れる可能性があるかどうか、速度が影響を受ける理由、最高速度まで上げるにはどうすればよいかを教えてくれます。」