HN 日本語サマリー

← 一覧へ戻る
AI・機械学習

MITの研究プロジェクトがいかにしてグローバルなプログラミング言語になったか

How an MIT research project became a global programming language (news.mit.edu)

201 pointsby theanonymousone102 コメント

要約

MITの研究プロジェクトから生まれたプログラミング言語Juliaは、科学者やエンジニアが複雑な数学的演算や統計シミュレーションを容易に行えるように設計されています。当初は研究者のフラストレーションから始まりましたが、現在では100万人以上のユーザーを持つオープンソース言語となり、創薬、ジェットエンジン設計、航空機設計など、幅広い分野で最先端の研究や開発に利用されています。

全文翻訳

How an MIT research project became a global programming language

それは、いくつかの苛立ったメールから始まりました。2009年、研究者グループは、コーディングを学ぶことなく複雑な数学的操作や統計シミュレーションを実行できるように設計されたプログラミング言語に不満を募らせ始めました。これらのプログラミング言語は硬直的で遅かったのです。もし科学者が本当に機能するものを構築した場合、それをより速く実行するためには、プログラム全体を別の言語で書き直す必要がありました。

そのメールはMITでの研究プロジェクトとなり、Juliaという、使いやすく高性能なプログラミング言語を構築するという使命を掲げました。Juliaは、科学研究、データ分析、ジェットエンジン、医薬品、金融市場、ロボットなどの複雑なシステムのモデリングのために設計されています。

その研究プロジェクトはMITのラボとなり、ラボはJuliaHubという会社になりました。その過程で、Juliaは科学者、エンジニア、数学者などの間で熱心な支持を得ました。今日では、無料のオープンソース言語であるJuliaは、世界中の数千の企業や大学で働く人々を含め、100万人以上のユーザーを抱えています。

Juliaが、微小な原子の振る舞いから半導体、ニューラルネットワーク、レースカー、そして飛行機に至るまで、太陽の下のあらゆるものをモデル化するために使用されてきたと言うのは、わずかな誇張に過ぎません。また、太陽を超えた多くのものを研究するためにも使用されており、天文学者はブラックホールの画像処理にJuliaを使用しています。

Juliaの秘訣は、使用されるデータの種類に応じてコードをコンパイルする方法にあります。このような「ジャストインタイムコンパイル」により、Juliaは他の数値プログラミング言語よりも高速で柔軟性があります。

JuliaHubの共同創設者兼CEOであるViral Shah氏は、「科学者やエンジニアはプログラマーではありません。科学者、エンジニア、プログラマーからなる学際的なチームで科学アプリケーションを構築することは困難です」と述べています。「私たちは、『科学者やエンジニアに、彼らのアイデアを高いレベルで表現でき、かつ優れたソフトウェアパフォーマンスも得られるプログラミング言語を提供できたらどうだろうか?』と問いかけました。」

非プログラマーにとってプログラミングを容易にすることは、Juliaの共同制作者であるShah氏、MIT数学教授のAlan Edelman氏、Jeff Bezanson氏(SM ’12, PhD ’15)、元MIT研究科学者のStefan Karpinski氏を含む、JuliaHubの創設者たちの北極星となってきました。

4月、JuliaHubのチームは、ロケット、ヒートポンプ、衛星などの複雑な物理システムの開発を加速するためのAIプラットフォームの最新バージョンであるDyad 3.0のローンチにより、その方向へさらに大きな一歩を踏み出しました。エンジニアはすでにDyadを使用して、物理シミュレーション、安全分析、品質管理などを実行する自律AIエージェントを指示しています。

「Dyad 3.0を使えば、データと設計文書をアップロードするだけで、システムが航空機全体を設計してくれます」とShah氏は述べています。「Boeingのような顧客と協力して、エンジニア向けの自律型ハードウェア設計機能を構築しています。簡単に言えば、『コンピューターよ、飛行機を作ってくれ』と言い、設計文書をアップロードすれば、システムがすべての物理法則を考慮し、すべてのコードをコンパイルし、すべてを検証し、設計全体を自律的に構築してくれるのです。」

謙虚な始まり

科学者やその他の研究者向けのより良いプログラミング言語の必要性について議論した後、Juliaの共同制作者たちは2009年頃にJulia Labを開始しました。Julia Labは現在もMITのコンピュータサイエンス・人工知能研究所で活動しています。

コアアイデアは、エンジニアリング、科学、数学のアプリケーションに優れた高性能プラットフォームを作成することでした。Shah氏は、Juliaが登場する前は、科学者やエンジニアは、ソフトウェアを構築するために誰かを雇うか、彼らのために設計された少数のプログラミング言語の遅いパフォーマンスを受け入れるしかなかったと述べています。

「PythonやMATLABのように使いやすく、C言語のように高速なものを作りたかったのです」とShah氏は言います。「私たちは自分たちのためにJuliaを構築しました。」

Edelman氏は、当初、研究者たちは自分たちの創造物を欲しがる人はいないだろうと考えていたと述べています。

「誰かが興味を持つまで10年はかかるだろうと思っていましたが、『忍耐は美徳だから、やろう』と言いました」とEdelman氏は回想します。

MITの研究者たちは2012年にブログ投稿でJuliaを発表しました。彼らはすぐに、他の多くの研究者も同様の不満を抱いていることに気づきました。

「最初に始めたときは、インタラクティブな研究ワークフローを対象としていましたが、ますます多くの人々があらゆることにそれを使用するようになっています」とBezanson氏は述べています。「今では、ユーザーと共に進化するにつれて、言語全体をより小さな組み込みデバイスに移行させています。」

初期の頃から、Edelman氏はMITのほぼすべての学科の学生と共にJuliaのクラスを教えてきました。今日、彼はしばしば、学生たちがロボット工学、天文学、物理シミュレーション、金融など、幅広いアプリケーションのためにすでにJuliaを使用していることを知ります。

「研究者たちが私に近づいてきて、『Juliaが速いから使っていると監督者に言っていますが、本当に楽しいから使っていることは内緒にしてください』と言います」とEdelman氏は述べています。「重要なのはJuliaの抽象化です。多くの場合、コーディング言語は、あなたが考えている一つの問題を解決することを強制します。Juliaの言語は、あなたが考えている問題だけでなく、世界中の他の人々の問題も解決できるようにします。それは、より一般的に問題を解決することを奨励します。」

Juliaの人気が高まるにつれて、世界中の研究者たちがJuliaチームにサポートを求めるようになりました。2015年までに、その需要は十分に強くなり、彼らはJuliaHubを設立し、会社を通じてユーザーをフルタイムで支援することを決定しました。彼らは、MIT Deshpande Center for Technological Innovationなどから、会社を立ち上げるための支援を受けました。

JuliaHubの仕事は、単にユーザーを支援することから、言語をより一般的に進化させることへと発展しました。これは、Juliaの熱心なユーザーによる印象的な成果リストを支えています。Juliaは、コンピュータ回路のシミュレーション、健康格差の検出、地球の気候と海洋のモデリング、脳活動の分析などに使用されてきました。

ある人がJuliaで製薬モデリングプラットフォームを構築した後、それはModernaのCovid-19ワクチンの開発を加速するために使用されました。別のケースでは、研究者たちがJuliaを使用して航空機衝突回避プログラムを作成しました。彼らは、Pythonで構築された以前のバージョンよりも約50倍高速に動作することを発見しました。MetaのエンジニアはJuliaを使用して、WhatsAppの40億ユーザー向けのより良いオーディオコーデックを開発しました。

「長年にわたり、産業、政府、学術界のユーザーがJulia言語でさまざまな興味深いことを行っているのを見てきました」とEdelman氏は述べています。「人々がそれを使用している範囲の広さには、正直なところ、多くの点で私たちを驚かせています。」

自律設計

JuliaHubは2025年6月にプログラミングを加速するための研究エージェントとしてDyad 1.0を、12月にDyad 2.0をローンチしました。創設者たちは、Dyad 3.0が複雑なシステムの設計において、能力と自律性の新しいレベルを表していると信じています。

「Dyadの重要な点は、それが物理コンパイラであり、それゆえ物理法則を強制することです」とShah氏は説明します。「一般的なAIシステムは、物理法則を違反する方法で物理問題を解決することがよくあります。Dyadエージェントを使用すると、そのような違反を検出し、エージェントを物理的に正しい解の方向に導きます。これにより、製品エンジニアリングにおける設計時間が桁違いに短縮され、数ヶ月かかる作業が数時間で完了すると予想しています。」

Edelman氏がJuliaの影響を見る方法の一つは、彼のクラスを通してです。最近、ある学生がDyadを使用して、ロボットが宇宙空間をどのように移動するかをモデル化しました。別の学生はそれを使用してロケットエンジンを構築しました。

「最後に彼は、『どれほど簡単だったか信じられなかった。ロケットエンジンを手に入れただけだ!』と言いました」とEdelman氏は回想します。