Llamafileを使えば、1つのファイルでLLMを配布し、実行することができます。

ブログ記事:単一ファイルでLLMを配布および実行する

LLM(Language Model)開発者のために、「一度ビルドすればどこでも実行できる」という夢を実現することを目指しています。そのために、llama.cppとCosmopolitan Libcを組み合わせたフレームワークを開発しました。このフレームワークでは、LLM用のアプリを単一のファイルとしてビルドし、ほとんどのPCやサーバーでローカルに実行することができます。

まず、llamafilesは複数のCPUマイクロアーキテクチャ上で実行できます。llama.cppにランタイムディスパッチを追加し、新しいIntelシステムが古いコンピュータのサポートを犠牲にすることなく、最新のCPU機能を使用できるようにしました。

さらに、llamafilesは複数のCPUアーキテクチャ上で実行できます。AMD64とARM64のビルドをシェルスクリプトで連結し、適切なビルドを起動することで実現しています。ファイル形式はWIN32とほとんどのUNIXシェルと互換性があります。必要に応じて、プラットフォームネイティブ形式に簡単に変換することもできます。

さらに、llamafilesはmacOS、Windows、Linux、FreeBSD、OpenBSD、NetBSDの6つのOSで実行できます。Linuxスタイルのツールチェーンを使用してコードを1度ビルドするだけで済みます。提供するGCCベースのコンパイラは、実際にポータブルな実行可能ファイルですので、開発に最も適したOSでソフトウェアをすべての6つのOSにビルドすることができます。

最後に、LLMのウェイトはllamafileに埋め込むことができます。GGMLライブラリにPKZIPのサポートを追加しました。これにより、非圧縮のウェイトを自己展開アーカイブのように直接メモリにマップすることができます。オンラインで配布される量子化されたウェイトは、互換性のあるバージョンのllama.cppソフトウェアで前置されることにより、元の観測された動作を無期限に再現することができます。

私たちは、いくつかの異なるモデルを埋め込んだ例のバイナリを提供しています。以下のリンクからHugging Faceからこれらをダウンロードすることができます。コマンドラインバイナリは、コマンドラインから実行され、llama.cppの「main」関数を手動で呼び出すかのように動作します。サーバーバイナリは、ローカルのWebサーバー(127.0.0.1:8080)を起動し、Webベースのチャットボットを提供します。

また、リリースページからllamafileソフトウェア(ウェイトを含まない)のみを直接ターミナルまたはコマンドプロンプトでダウンロードすることもできます。Windowsの場合、これが必須です。

Apple SiliconのmacOSでは、llamafileをブートストラップするためにXcodeをインストールする必要があります。

Windowsでは、llamafileをllamafile.exeに名前を変更する必要があるかもしれません。Windowsでは、実行可能ファイルの最大ファイルサイズ制限は2GBです。したがって、Windowsプラットフォームでは、llamafileとウェイトを別々のファイルにする必要があります。

zshを使用してllamafileを実行する際に問題が発生する場合は、sh -c ./llamafileというコマンドを使用してみてください。これは、zsh 5.9+で修正されたバグによるものです。Pythonのサブプロセス、古いバージョンのFishなども同様の場合があります。

Linuxでは、binfmt_miscが問題を引き起こすことがあります。実際にポータブルな実行可能ファイルインタプリタをインストールすることで、これを修正することができます。

Apple Siliconでは、Xcodeがインストールされていればすべてうまく動作するはずです。

Linuxでは、Nvidia cuBLAS GPUサポートは、(1)ccコンパイラがインストールされている、(

注意

  • この記事はAI(gpt-3.5-turbo)によって自動生成されたものです。
  • この記事はHackerNewsに掲載された下記の記事を元に作成されています。
    Llamafile lets you distribute and run LLMs with a single file
  • 自動生成された記事の内容に問題があると思われる場合にはコメント欄にてご連絡ください。

コメントする