OpenELM-1_1B-Instructとは
OpenELM-1_1B-Instructは、AppleのOpen Efficient Language ModelsであるOpenELMファミリーに属する、パラメータ数1.1Bの指示チューニング済みモデルです。このファミリーは2024年4月に270M、450M、1.1B、3Bの4サイズで公開され、それぞれに事前学習済みと指示チューニング済みのチェックポイントがあります。企業の研究機関によるリリースとしては珍しく、公開内容が充実しています。重み、学習ライブラリのCoreNet、データ準備・ファインチューニング・評価用のコード、学習ログがすべてまとめて提供されています。ローカルで使ううえでの利点はサイズです。bf16チェックポイントのファイルサイズは2.16 GBで、メモリを1 GBでも節約したいマシンにも適した小ささです。
| 仕様 | OpenELM-1_1B-Instruct |
|---|---|
| パラメータ数 | 1.1B(safetensors内では1,079,891,456) |
| アーキテクチャ | 層ごとのスケーリングを採用したデコーダー専用Transformer、28層 |
| アテンション | Grouped-query attention。深い層ほどヘッド数が増え、クエリヘッドは16から32、KVヘッドは4から8 |
| コンテキスト長 | 2,048トークン |
| モダリティ | テキスト入力、テキスト出力 |
| 学習データ | 約1.8兆トークン:RefinedWeb、重複を除去したPILE、RedPajamaおよびDolma v1.6のサブセット |
| トークナイザー | Llama-2トークナイザー、語彙数32,000 |
| リリース日 | 2024年4月 |
| ライセンス | Apple Sample Code License (apple-amlr) |
設計上の特徴は、層ごとのスケーリングです。OpenELMは28個のTransformer層をすべて同じ形状にするのではなく、深い層ほど幅を広げています。最初の層はクエリヘッド数16、FFNの倍率0.5で動作し、最後の層はヘッド数32、倍率4.0で動作します。これにより、この規模で精度の向上に最も寄与する後半の層にパラメータを集中させています。入力と出力の埋め込みは共有され、クエリとキーの射影はアテンションの前に正規化されます。
OpenELM-1_1B-Instructのベンチマーク
Appleのモデルカードに掲載されたゼロショット評価の数値では、この指示チューニング済みモデルを、同じモデルのベースチェックポイントおよびファミリー内で前後のサイズにあたる2モデルと比較しています。
| ベンチマーク | OpenELM-1_1B-Instruct | OpenELM-1_1B | OpenELM-450M-Instruct | OpenELM-3B-Instruct |
|---|---|---|---|---|
ARC-c 科学的推論 | 37.97 | 32.34 | 30.38 | 39.42 |
ARC-e 平易な科学問題 | 52.23 | 55.43 | 50.00 | 61.74 |
BoolQ はい・いいえで答える質問 | 70.00 | 63.58 | 60.37 | 68.17 |
HellaSwag 常識に基づく文の補完 | 71.20 | 64.81 | 59.34 | 76.36 |
PIQA 物理的な常識 | 75.03 | 75.57 | 72.63 | 79.00 |
SciQ 科学の試験問題 | 89.30 | 90.60 | 88.00 | 92.50 |
WinoGrande 代名詞の参照先の特定 | 62.75 | 61.72 | 58.96 | 66.85 |
指示チューニングにより、1.1Bのゼロショット評価の平均は63.44から65.50に上がり、BoolQでは3Bを上回ります。それ以外ではすべて3B-Instructが優位を保っています。そのため、1.1Bを選ぶ理由は最高スコアではなく、メモリを節約できることです。
OpenELM-1_1B-Instructのハードウェア要件
確認すべきシステム要件はメモリです。GGUFビルドはありません。llama.cppはOpenELMアーキテクチャに対応していないため、必要な容量はapple/OpenELM-1_1B-Instructのbf16 safetensorsチェックポイントを基準に見積もります。Appleは、trust_remote_codeを有効にし、Llama-2トークナイザーを使用するHugging Face Transformers経由で、このチェックポイントを利用できるようにしています。
| メモリ | 選択するビルド | ファイルサイズ |
|---|---|---|
| 8 GB以上 | model.safetensors (bf16) | 2.16 GB |
1つのファイルですべてのマシンに対応するため、複数の量子化レベルから選ぶ必要はありません。Apple silicon向けには、コミュニティによるMLX版とCoreML版への変換もあります。Appleのgenerate_openelm.pyスクリプトは、より小さなモデルをドラフト用として渡すことで、prompt-lookupとassistant-modelによる生成にも対応しています。これは投機的デコーディングを支える仕組みです。
Atomic ChatでOpenELM-1_1B-Instructを実行する方法
Atomic Chatは、macOS、Windows、Linux向けの無料のローカルアプリです。Hugging Faceのモデルブラウザーとチャット機能を内蔵しており、llama.cppを手動でビルドする必要はありません。
- お使いのプラットフォーム向けのAtomic Chatをダウンロードして開きます。
- モデルブラウザーでOpenELM-1_1B-Instructを検索し、Download Optionsを開きます。
- お使いのメモリ容量に収まるビルドを選び、チャットを開始します。
270Mから3Bまでのファミリー内のほかのモデルについては、ローカルで実行できるOpenELMモデルの一覧をご覧ください。また、SmolLM3-3Bのような、ほかの小型ローカルLLMと比較することもできます。
OpenELM-1_1B-Instructのライセンス
OpenELM-1_1B-Instructは、Apple Sample Code License (apple-amlr)の下で公開されています。標準的なパーミッシブライセンスではなく、Apple独自の条件であるため、このモデルを利用して製品を開発する前に、リポジトリ内のLICENSEファイルを読んでください。Appleはモデルの安全性を保証せずに提供しており、利用者自身による安全性テストとフィルタリングを想定しています。また、事前学習データセットを使用する前に、それらのライセンス契約を確認するよう求めています。
