OpenELM-1_1B-Instruct

更新
04.10.2026
推論

Appleの1.1Bの指示チューニング済みOpenELMモデルです。層ごとのスケーリングを採用し、デバイス上で効率よく英語テキストを生成できるように設計されています。

基本情報

  • ライセンス: Apple Sample Code License (apple-amlr)
  • パラメータ数: 1.1B
  • コンテキスト長: 2,048トークン
  • モダリティ: テキスト入力、テキスト出力
  • 最小ハードウェア要件: 2.16 GBのbf16チェックポイント、8 GBのマシンに収まります

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-InstructOpenELM-1_1BOpenELM-450M-InstructOpenELM-3B-Instruct
ARC-c
科学的推論
37.9732.3430.3839.42
ARC-e
平易な科学問題
52.2355.4350.0061.74
BoolQ
はい・いいえで答える質問
70.0063.5860.3768.17
HellaSwag
常識に基づく文の補完
71.2064.8159.3476.36
PIQA
物理的な常識
75.0375.5772.6379.00
SciQ
科学の試験問題
89.3090.6088.0092.50
WinoGrande
代名詞の参照先の特定
62.7561.7258.9666.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を手動でビルドする必要はありません。

  1. お使いのプラットフォーム向けのAtomic Chatをダウンロードして開きます。
  2. モデルブラウザーでOpenELM-1_1B-Instructを検索し、Download Optionsを開きます。
  3. お使いのメモリ容量に収まるビルドを選び、チャットを開始します。

270Mから3Bまでのファミリー内のほかのモデルについては、ローカルで実行できるOpenELMモデルの一覧をご覧ください。また、SmolLM3-3Bのような、ほかの小型ローカルLLMと比較することもできます。

OpenELM-1_1B-Instructのライセンス

OpenELM-1_1B-Instructは、Apple Sample Code License (apple-amlr)の下で公開されています。標準的なパーミッシブライセンスではなく、Apple独自の条件であるため、このモデルを利用して製品を開発する前に、リポジトリ内のLICENSEファイルを読んでください。Appleはモデルの安全性を保証せずに提供しており、利用者自身による安全性テストとフィルタリングを想定しています。また、事前学習データセットを使用する前に、それらのライセンス契約を確認するよう求めています。

Hugging Faceからモデルをダウンロード

pip install -U transformers sentencepiece
huggingface-cli download apple/OpenELM-1_1B-Instruct
python generate_openelm.py --model apple/OpenELM-1_1B-Instruct --prompt 'Once upon a time there was' --generate_kwargs repetition_penalty=1.2
curl http://localhost:8000/v1/chat/completions \
  -H "Content-Type: application/json" \
  -d '{
    "model": "apple/OpenELM-1_1B-Instruct",
    "messages": [{"role": "user", "content": "Write a short poem about the sea."}]
  }'
from transformers import AutoModelForCausalLM, AutoTokenizer
model = AutoModelForCausalLM.from_pretrained("apple/OpenELM-1_1B-Instruct", trust_remote_code=True)
tokenizer = AutoTokenizer.from_pretrained("meta-llama/Llama-2-7b-hf")
inputs = tokenizer("Once upon a time there was", return_tensors="pt")
out = model.generate(**inputs, max_new_tokens=128, repetition_penalty=1.2)
print(tokenizer.decode(out[0], skip_special_tokens=True))
import OpenAI from "openai";
const client = new OpenAI({ baseURL: "http://localhost:8000/v1", apiKey: "local" });
const res = await client.chat.completions.create({
  model: "apple/OpenELM-1_1B-Instruct",
  messages: [{ role: "user", content: "Write a short poem about the sea." }]
});
console.log(res.choices[0].message.content);
デスクトップ
macOS
(Intel・Apple Silicon)
ダウンロード
Windows
(x64)
ダウンロード
Linux
(x86_64)
ダウンロード

よくある質問

OpenELM-1_1B-Instructは、Appleが2024年4月に公開した、パラメータ数1.08Bの指示チューニング済み言語モデルです。層ごとのスケーリング戦略によってTransformerの各層にパラメータを効率よく割り当てるOpenELMファミリーに属しています。Appleは、CoreNetライブラリを基盤とする学習・評価フレームワーク全体とともに、このモデルを公開しました。

BF16精度ではモデルの重みは約2.2 GBなので、VRAMが約4 GBのGPUで実行でき、最近のほとんどのグラフィックスカードに余裕を持って収まります。4ビット量子化ではメモリ使用量が1 GB未満に減り、テスト用途であればCPUやApple Siliconでも実行できるほど小型です。

重みはHugging Faceから一般にダウンロードできますが、モデルはApache 2.0やMITのような標準的なパーミッシブライセンスではなく、Apple Sample Code License (apple-amlr)の下で配布されています。このライセンスは一般的なオープンソースの条件よりも制約が多いため、商用で導入する前に確認してください。Appleは、オープンな研究を支援するため、学習、ファインチューニング、評価のコード一式も公開しています。

OpenELMには独自のモデル実装コードが含まれているため、Hugging Face Transformersでtrust_remote_code=Trueを使用して読み込みます。このモデルはLlama-2トークナイザー(meta-llama/Llama-2-7b-hf)を使用し、add_bos_token=Trueが必要です。Appleはリポジトリ内で補助スクリプトgenerate_openelm.pyも提供しています。より整った生成結果を得るには、repetition_penalty=1.2を渡すことが推奨されています。

OpenELM-1_1B-Instructの最大コンテキスト長は2,048トークンで、設定内のmax_context_lengthの値によって定められています。このコンテキスト長は現在の基準では短く、長文ドキュメントを扱うタスクよりも、短いプロンプト、1ターンの指示、軽量なチャットに適しています。モデルは主に英語データで学習されているため、英語テキストでの使用に最も適しています。