| 原作者 | ゲオルギ・ゲルガノフ |
|---|---|
| 開発者 | ゲオルギ・ゲルガノフとコミュニティ |
| 初回リリース | 2023年3月10日[1] |
| リポジトリ | github.com/ggerganov/llama.cpp |
| 書かれた | C++、C |
| タイプ | 大規模言語モデル用ライブラリ |
| ライセンス | MITライセンス[2] |
llama.cppは、 Llamaなどのさまざまな大規模言語モデルで推論を実行するオープンソース ソフトウェアライブラリです。[3]これは、汎用テンソルライブラリであるGGMLプロジェクトと共同開発されています。[4]
ライブラリにはコマンドラインツールが含まれており、 [5]シンプルなWebインターフェースを備えたサーバーも含まれています。[6]
背景
2022年9月末に、ゲオルギ・ゲルガノフはテンソル代数を実装したCライブラリであるGGMLライブラリの開発に着手した。ゲルガノフは厳密なメモリ管理とマルチスレッド化を意図してこのライブラリを開発した。GGMLの開発はファブリス・ベラールのLibNCに関する研究に触発されたものである。[7]
llama.cppの前に、Gerganovは、 OpenAIの音声テキスト変換モデルであるWhisperを実装したwhisper.cppと呼ばれる同様のライブラリに取り組んでいました。[8]
ゲルガノフは医学物理学のバックグラウンドを持ち、ソフィア大学の物理学部に所属していた。[9] 2006年に国際物理オリンピックで銀メダルを獲得した。[10] [11] 2008年にはブルガリアソフトウェア企業協会、PCマガジン、ブルガリアのソフトウェアサービス企業であるMusala Softが主催したプログラミングコンテストで優勝した。[12]
発達
llama.cppは、依存性のない純粋なC / C ++で書かれたLlama推論コードの実装として、2023年3月にGeorgi Gerganovによって開発が開始されました。これにより、プロジェクトの目標であったGPUやその他の専用ハードウェアのないコンピューターでのパフォーマンスが向上しました。 [3] [13] [14] llama.cppは、 Androidデバイスを含むCPUだけで実行できるため、専用のハードウェアを持たないユーザーの間で人気を博しました。 [13] [15] [16]当初はCPU向けに設計されていましたが、後にGPU推論のサポートが追加されました。[17] 2024年11月現在、GitHubで67,000を超えるスターが付いています。[18]
2024年3月、ジャスティン・タニーはx86およびARM CPU向けに最適化された新しい行列乗算カーネルを導入し、FP16および8ビット量子化データ型の迅速な評価パフォーマンスを改善しました。[19]これらの改善はllama.cppにアップストリームでコミットされました。[19]タニーはまた、モデルとllama.cppを1つのファイルにバンドルするllamafileと呼ばれるツールを作成しました。このツールは、タニーが作成したCosmopolitan Libcライブラリを介して複数のオペレーティングシステムで実行され、C / C++をオペレーティングシステム間でより移植可能にします。[19]
建築
llama.cpp は、 x86、ARM、CUDA、Metal、Vulkan、SYCLなど、複数のハードウェア ターゲットをサポートしています。[20] [21] [22] [23]これらのバックエンドは、フロントエンドのモデル固有の llama.cpp コードで使用される GGML テンソル ライブラリを構成します。[24] llama.cpp は、オンザフライの量子化ではなく、事前のモデル量子化をサポートしています。 [25] llama.cpp は、最適化のために、 X86-64の場合はAVX、AVX2、AVX-512、ARM の場合はNeonなど、いくつかの CPU 拡張機能を使用します。Appleシリコンは、このプロジェクトの重要なターゲットです。[18] [26] JSONとして文法ベースの出力フォーマットをサポートしています。[14]
GGUF ファイル形式
| ファイル名拡張子 | .gguf |
|---|---|
| 魔法の数字 | 0x47 0x47 0x55 0x46 |
| 開発者 | ゲオルギ・ゲルガノフとコミュニティ |
| 初回リリース | 2023年8月22日[27] |
| 最新リリース | v3 [28] |
| フォーマットの種類 | 機械学習 テンソル |
GGUF(GGMLユニバーサルファイル)[29]ファイル形式は、テンソルとメタデータの両方を1つのファイルに保存するバイナリ形式で、モデルデータの高速保存と読み込みを目的として設計されています。[30]これは、他のモデルアーキテクチャのサポートが追加された際に下位互換性をより適切に維持するために、2023年8月にllama.cppプロジェクトによって導入されました。[17] [31]これは、GGMLなどのプロジェクトで以前に使用されていた形式を引き継いだものです。
GGUFファイルは通常、 PyTorchなどの別の機械学習ライブラリで開発されたモデルを変換することによって作成されます。[30]
デザイン
このフォーマットは量子化、つまりモデルの重みの精度を下げることに重点を置いています。これによりメモリ使用量が削減され、モデルの精度は低下しますが速度は向上します。[32] [31]
GGUFは2ビットから8ビットの量子化整数型[33] 、 float32、float16、bfloat16などの一般的な浮動小数点データ形式、および1.56ビットの量子化[5]をサポートしています。
このファイル形式には、トークナイザー語彙、コンテキスト長、テンソル情報、その他の属性など、GPTのような言語モデルを実行するために必要な情報が含まれています。[34]
対応機種
参考文献
- ^ “初期リリース · ggerganov/llama.cpp@26c0846”. GitHub . 2024年5月15日閲覧。
- ^ "llama.cpp/LICENSE at master · ggerganov/llama.cpp". GitHub .
- ^ ab Connatser, Matthew. 「このオープンソースの LLM チャットボット ランナーが x86、Arm CPU で勢いを増す方法」theregister.com 。2024年4 月 15 日閲覧。
- ^ ゲルガノフ、ゲオルギ (2024 年 5 月 17 日)。 「ガーガノフ/ggml」。GitHub。
- ^ ab Mann, Tobias (2024年7月14日). 「ハニー、LLMを縮小しました!量子化とテストの初心者向けガイド」. theregister .
- ^ Alden, Daroc. 「llamafile を使用したポータブル LLM [LWN.net]」。lwn.net。2024年7 月 30 日閲覧。
- ^ 「Georgi Gerganov 氏による Whisper と LLaMA の一般への普及 (Changelog インタビュー #532)」。Changelog。2023年 3 月 22 日。2024 年7 月 28 日閲覧。
- ^ "ggerganov/whisper.cpp". GitHub .
- ^ Mitev, Krasimir; Gerganov, Georgi; Kirov, Assen S.; Schmidtlein, C. Ross; Madzhunkov, Yordan; Kawrakow, Iwan (2012 年 6 月 21 日)。「PET モンテカルロシミュレーション結果に対する光子エネルギーカットの影響:光子エネルギーカットの影響」。Medical Physics . 39 (7Part1): 4175–4186. doi :10.1118/1.4725168。
- ^ ティシー=ラークス、アダム (2015).第 1 回から第 45 回までの国際物理オリンピックの受賞者のリスト。 BMEオミック。 p. 246.ISBN 978-963-593-500-0。
- ^ Захариев、Боян (2006 年 7 月 21 日)。 「България с 11 медала от международни олимпиади」。セガBGM。
- ^ Станева、Ирина (2008 年 1 月 30 日)。 「Студенти от СУ спечелиха конкурса по програмиране на БАСКОМ」。かりえり。
- ^ ab Edwards, Benj (2023年3月13日). 「ラップトップ、スマートフォン、Raspberry PiでGPT-3レベルのAIモデルを実行できるようになりました」。arstechnica.com 。 2024年4月15日閲覧。
- ^ ab ウィースト、イザベラ・カタリーナ;ファーバー、ダイク。朱、潔夫。ヴァン・ツリーック、マルコ。マイヤー、マイヤー、ソーニャ K.ジュグラン、ラディカ。カレロ、ズナミス I.パエク、ダニエル。クリースエク、イェンス。エバート、マティアス P.トルーン、ダニエル。キャザー、ヤコブ・ニコラス(2024)。 「構造化された医療情報検索のためのプライバシーを保護する大規模言語モデル」。npjデジタルメディシン。7 (257)。土井:10.1038/s41746-024-01233-2。PMC 11415382。
{{cite journal}}: CS1 maint: 複数の名前: 著者リスト (リンク) - ^ Hood, Stephen. 「llamafile: LLM を人々に、そして自分のコンピューターに届ける」Mozilla Innovations . 2024 年7 月 28 日閲覧。
- ^ 「オープンソース言語モデルによるAIの民主化」lwn.net . 2024年7月28日閲覧。
- ^ ab Rajput, Saurabhsingh; Sharma, Tushar (2024 年 6 月 4 日)。「エネルギー効率のための新たなディープラーニング量子化手法のベンチマーク」。2024 IEEE 第 21 回国際ソフトウェア アーキテクチャ コンパニオン会議 (ICSA-C)。pp. 238–242。doi : 10.1109 /ICSA- C63560.2024.00049。ISBN 979-8-3503-6625-9。
- ^ ab "ggerganov/llama.cpp". GitHub。
- ^ abc Connatser、Matthew。「Llamafile LLMドライバープロジェクトがCPUコアのパフォーマンスを向上」。www.theregister.com 。 2024年5月10日閲覧。
- ^ Gerganov, Georgi; Nguyen, Xuan Son; Slaren (2024年8月13日). 「ggml入門」. Huggingface .
- ^ Kluska, Piotr; Castell´o, Adri´an; Scheidegger, Florian; I. Malossi, A. Cristiano; Quintana-Ort´ı, Enrique (2024 年 6 月)。「QAttn: 混合精度ビジョン トランスフォーマー向けの効率的な GPU カーネル」(PDF)。IEEE /CVF コンピューター ビジョンおよびパターン認識 (CVPR) 会議ワークショップの議事録。
- ^ Fritts, Harold (2024年10月30日). 「AMDとLM Studio:x86ラップトップでAIをアクセスしやすく高速化する」. StorageReview.com。
- ^ 張建宇;孟恒宇。英、胡。ユウ、ルオ。シャオピン、ドゥアン。株式会社、マジュムダー・アビラッシュ・インテル (2024 年 7 月)。 「llama.cpp を使用して Intel GPU で LLM を実行する」。平行宇宙。 No.57.インテル。 34~37ページ。
- ^ Pounder, Les (2023年3月25日). 「Raspberry Pi 4で独自のAIチャットボットサーバーを作成する方法」. tomshardware.com . 2024年4月16日閲覧。
- ^ Walkowiak, Bartosz; Walkowiak, Tomasz (2024). 「自然言語処理用に設計されたインフラストラクチャ内での言語モデルの実装」(PDF)。International Journal of Electronics and Telecommunications。70 (1): 153–159. doi :10.24425/ijet.2024.149525 。 2024年5月8日閲覧。
- ^ Larabel、Michael。「Llamafile 0.7 で AVX-512 がサポートされ、AMD Zen 4 のプロンプト評価時間が 10 倍高速化」www.phoronix.com。
- ^ 「GGUF by ggerganov · Pull Request #2398 · ggerganov/llama.cpp」。GitHub。
- ^ "ggml/docs/gguf.md at master · ggerganov/ggml". GitHub .
- ^ "ggerganov/llama.cpp/gguf-py/README.md". GitHub . 2024年11月10日閲覧。
- ^ ab "GGUF". huggingface.co . 2024年5月9日閲覧。
- ^ ab Mucci, Tim (2024年7月3日). 「GGUF対GGML」www.ibm.com . 2024年7月26日閲覧。
- ^ Labonne, Maxime (2023年11月29日). 「GGUFとllama.cppを使用してLlamaモデルを量子化する」. Medium . Towards Data Science . 2024年5月9日閲覧。
- ^ カベサス、ダリオ;フォンセカ・デルガド、リゴベルト。レイエス・シャコン、イヴァン;ビスカイノ・イマカーニャ、パウリナ。モロチョ カヤムセラ、マヌエル (2024)。 「高校生および大学生向けの補完教育ツールとして、LLaMa ベースのチャットボットと拡張検索生成を統合する」。第 19 回ソフトウェア技術国際会議の議事録。 395–402ページ。土井:10.5220/0012763000003753。ISBN 978-989-758-706-1。
- ^ ドン、ボー;リン・ジュン;ユウ、ジェンタオ。徐鎮中。ルオ、ユウ。チャン、ハンウェン。沈海豪(2024年7月)。 「トランスフォーマーによる GGUF モデルの高速化」。平行宇宙。 No.57.インテル。 28~33ページ。
