llamafile、LLM を XNUMX つのファイルで配布して実行できるようにする新しい Mozilla プロジェクト

ラマファイル

ラマファイルのロゴ

Mozilla は、ブログ投稿を通じて、lコンパイラのリリース、 それは次のようになります 目標は、いくつかの大規模な言語モデルの使用を大幅に簡素化することです。 (LLM) は、ほぼすべてのデスクトップまたはサーバー上にあります。

新しい Mozilla プロジェクト 「llamafile」と呼ばれる、オープンソースのコンパイラです これは、GGUF 形式の機械学習モデル パラメーター ファイルを取得し、AMD64 および ARM64 ハードウェア上の XNUMX つの異なるオペレーティング システムで実行できる実行可能ファイルに変換できます。

そして、彼らは私に嘘をつくことを許しませんが、 ローカルで使用する大規模言語モデル (LLM) は、通常、さまざまなセットで配布されます。、これらの各ファイルの重量は通常、数ギガバイトになります。 これらのファイルはそのままでは直接使用できませんが、 そのため、他の種類のソフトウェアに比べて配布と実行が複雑になります。 さらに、特定のモデルに変更や調整が加えられている場合があり、異なるバージョンを使用すると結果が異なる場合があります。

Mozilla はこれを認識し、この問題に対処し、この課題に対処するために行動を起こしました。 Mozilla のイノベーション グループは「llamafile」を立ち上げました。 上で述べたように、これは LLM を、追加のインストールを必要とせずに XNUMX つの異なるオペレーティング システム (macOS、Windows、Linux、FreeBSD、OpenBSD、および NetBSD) 上で実行できる単一のバイナリ ファイルに変換するコンパイラです。 このソリューションにより、LLM の配布と実行が大幅に容易になり、同時に LLM の特定のバージョンの一貫性と再現性が長期にわたって確保されます。

llamafile コンパイラについては、次のように述べられています。 llama.cpp (オープンソース LLM チャットボット フレームワーク) と Cosmopolitan Libc の XNUMX つのプロジェクトを組み合わせて作成されました。 (多くのプラットフォームやアーキテクチャ上で C プログラムをコンパイルして実行できるオープン ソース プロジェクト)。 Mozilla は実装中に興味深い課題に直面し、定められた目的を達成するために Cosmopolitan の範囲を大幅に拡大する必要があったと述べています。

私たちの目標は、大規模なオープンソース言語モデルを開発者とエンド ユーザーの両方がさらにアクセスしやすくすることです。 これは、llama.cpp と Cosmopolitan Libc を組み合わせて、LLM のすべての複雑さを XNUMX つの実行可能ファイル (「llamafile」と呼ばれる) にまとめ、インストールせずにほとんどのコンピューター上でローカルに実行できるフレームワークにすることでこれを実現しています。

と言われています llamafile の主な目標の XNUMX つは、複数の CPU マイクロアーキテクチャで実行できるようにすることでした。 ここで llama.cpp が登場し、新しい Intel システムが古いコンピュータのサポートを犠牲にすることなく最新のプロセッサの機能を使用できるようにします。一方、AMD64 と ARM64 の場合、これらは適切なバージョンを起動するシェル スクリプトを使用して連結されます。 ファイル形式は、WIN32 およびほとんどの UNIX シェルと互換性があります。

対処されたもう XNUMX つの課題は、LLM ファイルの重みの問題でした。、GGML ライブラリの PKZIP のサポートのおかげで、llamafile に統合できます。 これにより、非圧縮の重みを自己解凍ファイルとしてメモリに直接マッピングできるほか、オンラインで配布される量子化された重みに .cpp と呼ばれるソフトウェアの互換バージョンをプレフィックスとして付けることができるため、最初に観察された動作を無期限に再現できるようになります。

4 GB ファイル (一般的に使用される GGUF 形式) の形式で LLM 重みのセットがあるとします。 llamafile を使用すると、その 4GB ファイルを、インストールせずに XNUMX つのオペレーティング システムで実行できるバイナリに変換できます。

最後に、それは言及されるべきです Mozilla がプロジェクトを立ち上げた «llamafile» は C/C++ で記述され、Apache ライセンスに基づいて配布されます。これは、GPL などのライセンスと比較して、リソースの使用方法や可用性に関する制限が少ないことを意味します。

用として それについてもっと知りたい プロジェクトに参加しているか、すでに使用したい場合は、使用する詳細および/またはクイック ガイドを参照してください。 次のリンク。