Learn more about Search Results ML - Page 374

Mojo | 新しいプログラミング言語

はじめに プログラミング言語の世界は常に進化し続けていますが、新たな競合者が現れ、機械学習と人工知能のソフトウェア開発を簡素化し、開発者の生産性を向上させるようになりました。Mojoは、Pythonをルーツに持ち、研究から本番環境へのスムーズな移行を妨げるパフォーマンスとデプロイメントの課題に対処するために戦略的に設計された革新的なプログラミング言語として登場しました。Pythonの制限を改善することにより、Mojoはこれらの2つの重要な領域のギャップを成功裏に埋め合わせます。まだ開発の初期段階ですが、将来的にはPythonのスーパーセットになるように設計されています。このブログ投稿では、Mojoの主要な側面と、コードの書き方を革新する方法を探求します。 Modularは、AIおよびMLアプリケーションのPythonのパフォーマンス問題を解決するためにMojoを作成しました。Pythonは強力で多目的な言語ですが、CおよびC++などの他の言語に比べて1000倍遅くなってしまいます。Modularは、Pythonの使いやすさとCおよびC++のスピードを組み合わせる言語を作成したいと考えており、MojoはPythonに比べて35000倍高速であると主張しています。 出典:https://www.modular.com/mojo ¶ この記事は、Data Science Blogathonの一部として公開されました。 Mojoの特徴 次のような注目すべき機能があり、その機能を強化しています。 プログレッシブ型:Mojoは、型を活用してパフォーマンスとエラーチェックを強化することができます。型注釈を利用することで、開発者はコードを最適化し、コンパイル中に潜在的なエラーをキャッチすることができます。 ゼロコスト抽象化:Mojoは、値を構造体にインライン割り当てすることによって、ストレージを効率的に制御することができます。このアプローチにより、オーバーヘッドを最小限に抑え、最適なパフォーマンスを実現できます。 所有権と借用チェッカー:Mojoは、所有権と借用チェッカーを実装することでメモリの安全性を提供します。この機能により、ダングリングポインターやデータ競合などの一般的な問題を防止し、より堅牢で安全なプログラミング体験を提供します。 ポータブルパラメトリックアルゴリズム:Mojoは、コンパイル時メタプログラミングを活用することで、ハードウェアに依存しないアルゴリズムを書くことができます。このアプローチにより、ボイラープレートコードを減らし、柔軟でポータブルなソリューションを作成することができます。 言語統合自動チューニング:Mojoは、組み込みの自動チューニング機能を提供することで、パラメータの最適化プロセスを簡素化します。ターゲットハードウェア上でのパフォーマンスを最大化するための最適なパラメータ値を自動的に検索し、手動での微調整を必要としません。 さらに、Mojoは以下の機能を備えています。 MLIRのフルパワー:Mojoは、MLIR(Multi-Level Intermediate Representation)の全機能を活用しています。MLIRは、プログラムの効率的な最適化や変換を実現し、パフォーマンスを向上させ、他のMLフレームワークとのシームレスな統合を可能にします。 並列異種ランタイム:Mojoは、異なるハードウェアアーキテクチャ上での並列実行をサポートしています。この機能により、利用可能なリソースを効率的に活用し、マルチデバイスや分散コンピューティングシナリオでのパフォーマンスを向上させることができます。 高速コンパイルタイム:Mojoは、高速なコンパイルを優先し、開発者が素早く反復し、コード変更と実行の間の時間を短縮することができます。この機能により、スムーズな開発体験と迅速なフィードバックループが実現されます。 全体的に、Mojoは、パフォーマンス、安全性、ポータビリティ、および開発者の生産性に優れたプログラミング言語を提供するためにこれらの機能を組み合わせています。 パフォーマンス パフォーマンスに関しては、Mojoは、複数のコア、ベクトルユニット、専用アクセラレータユニットを含むハードウェアの潜在能力を最大限に活用することで、Pythonの能力を大幅に向上させています。これは、最新のコンパイラと異種ランタイムシステムを統合することによって実現されています。Mojoを使用することで、開発者は、現代のハードウェアアーキテクチャで利用可能な膨大な処理能力を引き出すことができます。…

スタンフォード大学の研究者がSequenceMatchを紹介:模倣学習損失を用いたLLMsのトレーニング

自己回帰モデルは、変数の現在の値が過去の値に大きく依存するという直感に基づいた統計モデルの一種です。つまり、モデルは、過去の値に回帰させることによって、変数の将来の値を予測します。自己回帰モデルの最もよく知られた例の1つは、特に前の単語が与えられた場合に、シーケンス内の次の単語を予測するという基盤に大きく依存するGPTモデルのクラスであり、特にGPT-3およびそのバリアントです。大規模なテキストコーパスでこの自己回帰的な方法でGPTをトレーニングすることにより、言語の統計的パターン、依存関係、および意味的関係を捕捉することを学び、それによって入力プロンプトに基づいて文脈に即したテキストを生成することができます。しかし、以前の研究実験では、より小さなモデルや、ランダム性や変動性が少なく調整されたモデル(すなわち、より低い生成温度)は、繰り返しや誤った出力を生成する傾向があることが示されています。さらに、これらのモデルは、自分自身の出力を入力として使用する場合があり、しばしば意図した分布からモデルをすぐに離れるような複合エラーを引き起こします。 これらの課題に対処するために、スタンフォード大学の研究者チームは初期研究を行い、MLEでトレーニングされた自己回帰モデルが評価中に整合的なシーケンスを生成することを妨げる2つの主な障害を特定しました。最初の問題は、モデルとデータ分布の間の不一致を評価するために使用される発散測度にあります。MLEでは、分布外(OOD)のシーケンスを考慮しないため、そのようなシーケンスにおけるモデルの動作を制御することはできません。これを解決するために、研究者たちは、実際のデータと自己回帰的に生成されたシーケンスの組み合わせ間のχ2発散度を最小化するというアイデアを考案しました。これはMLEに比べて優れた性能を発揮しています。2番目の課題は、モデルがOODトークンを生成して、データ分布に整合する適切な継続がない場合に発生します。これに対処するために、研究者たちは、生成プロセスで<backspace>アクションを導入し、モデルが前のトークンを消去して、誤りを修正できるようにしました。 これらの初期研究から学びを得て、スタンフォード大学の研究者たちは、SequenceMatchと呼ばれる新しい手法を提案しました。これにより、自己回帰モデルを異なる発散技術に対してトレーニングすることができ、<backspace>アクションを追加することができます。研究者たちは、シーケンス生成の問題を強化学習問題として再定式化しました。単純に言えば、与えられた状態(つまり、部分シーケンス)に対して、すべての可能なシーケンスの中から次の行動(この場合、次のトークンの生成)を選択することを要約します。したがって、強化学習のフレームワークの1つである非対抗的な模倣学習の最新の開発を活用することにより、トレーニングされたモデルの占有測定と実際のデータの分布の間の発散を減らすことができました。さらに、シーケンス生成における複合エラーをさらに最小限に抑えるために、MLEではなく<backspace>アクションを使用して、自己回帰モデルをトレーニングしました。この言語モデリングの完全教師あり損失技術であるSequenceMatchは、事前にトレーニングされたモデルを微調整する追加ステップとして使用できます。 研究者たちは、MAUVEスコアをメトリックとして使用して、SequenceMatchで微調整されたGPT-2ベースのモデルのパフォーマンスとMLEでトレーニングされたモデルのパフォーマンスを比較するためにいくつかの実験評価を実施しました。その結果、SequenceMatchで微調整されたモデルはデータセットに近いテキストを生成し、MLEでトレーニングされたモデルと比較して、より流暢でエラーの少ないテキストを生成することが判明しました。チームは、モデルが長いテキストを生成するためにより多くの計算リソースと時間が必要であるという制限を強調しました。今後の課題に関しては、研究者たちは、異なる発散方法が生成されたシーケンスの品質にどのように影響するかを研究することに注力しています。

なぜ仮説検定はハムレットからヒントを得るべきか

もし科学者またはデータ専門家である場合、あなたの仮説検定手順には、通常のコースワークから悲劇的に(あるいは悲喜劇的に?)省略される重要なステップが欠けている可能性があります...

グリーンAI:AIの持続可能性を向上させるための方法とソリューション

もし、あなたがこの記事を開いたのであれば、おそらく現在の大規模言語モデル(LLM)の安全性と信頼性に関する現在の論争について聞いたことがあるでしょう有名な人々によって署名された公開書簡...

Ludwig – より「フレンドリーな」ディープラーニングフレームワーク

産業用途の深層学習については、私は避ける傾向があります興味がないわけではなく、むしろ人気のある深層学習フレームワークが扱いづらいと感じています私はPyTorchとTensorFlowを高く評価しています

Python から Julia へ:特徴量エンジニアリングと機械学習

これは、応用データサイエンスのためのJuliaの始め方に関する私の2部作の第2部です最初の記事では、単純なデータ操作や実施例をいくつか紹介しました...

AWS CDKを介してAmazon SageMakerロールマネージャーを使用して、カスタム権限を数分で定義します

機械学習(ML)の管理者は、MLワークロードのセキュリティと完全性を維持する上で重要な役割を果たしています彼らの主な焦点は、ユーザーが最高のセキュリティで操作し、最小特権の原則に従うことを確認することですただし、異なるユーザーペルソナの多様なニーズに対応し、適切な許可ポリシーを作成することは、時にアジリティを妨げることがあります[…]

研究者たちは、新しい量子光源を開発しました

その装置は単一光子のストリームを放出し、光量子コンピュータの基盤となる可能性があります

混乱するデータサイエンティストのためのPATH変数:管理方法

WindowsとUnix系システムの両方で、PATHとは何か、およびそれにパスを追加する方法を理解する

AIを活用した言語学習アプリの構築:2つのAIチャットからの学習

新しい言語を学び始めるときは、私は「会話ダイアログ」の本を買うのが好きです私はそのような本が非常に役立つと思っていますそれらは、言語がどのように動作するかを理解するのに役立ちます単に…

Find the right Blockchain Investment for you

Web 3.0 is coming, whether buy Coins, NFTs or just Coding, everyone can participate.

Advertising with us