【LayerSkip】LLMの回答速度を2倍に向上させるMetaの最新技術

layerskip

WEELメディア事業部LLMリサーチャーの2scです。

2024年10月21日、MetaがLLMの回答速度を約2倍に向上させる技術「LayerSkip」を公開しました。

このLayerSkipはなんと、部品追加なしで生成速度UPが可能!しかもすでに、LlamaシリーズからLayerSkipに対応したLLMが計7モデルも登場しています。

この記事ではそんなLayerSkip対応のLlamaシリーズの使い方や、有効性の検証まで行います。本記事を熟読することで、LayerSkipの凄さを理解し、サクサク動くAIツールが作れるかもしれません。

ぜひ、最後までご覧ください。

目次

LayerSkipの概要

「LayerSkip」はMeta(旧Facebook)が開発した、LLMの回答速度を高める手法になります。そのすごいところとしては下記のとおりです。(※1)

LayerSkipのすごいところ
  • 部品(層やモジュール)の追加なしで、LLMの生成速度UPを実現
  • 幅広いタスクにて、ベースのLLMからの速度UPを確認済み
    • CNN/DM(ニュース記事のデータセット)を要約するタスクで最大2.16倍の速度UP
    • コーディングタスクで1.82倍の速度UP
    • TOPv2(多分野のデータセット)の意味解析タスクで2.0倍の速度UP
  • LlamaシリーズからLayerSkipを採用した下記モデルが登場
    • layerskip-llama2-7B
    • layerskip-llama2-13B
    • layerskip-codellama-7B
    • layerskip-codellama-34B
    • layerskip-llama3-8B
    • layerskip-llama 3.2-1B

このLayerSkipを適用したLLMについては、ベースのモデルと比べて、回答生成の速度が段違いに向上。具体的には……

このように、元のモデルの倍近い速度で生成が可能となっています。

LayerSkipのしくみ

LayerSkipは「Early Exit / 早期終了」と「Speculative Decoding / 投機的デコーディング」という2つの技術からなります。そのしくみはいたってシンプル。思考過程の前半で手短かつ大まかに結論を出したあと(Early Exit)、思考過程の後半でその結論を精査していく(Speculative Decoding)という流れで、迷いのない回答生成が実現しています。

なかでもポイントは、Early Exitで余らせた推論能力を精査に回しているところでしょう。この工夫のおかげで、案出し&精査で計2モデルを要する従来のSpeculative Decodingとは違い、1モデルでの高速推論が実現しています。

LayerSkipのライセンス

公式ページによるとLayerSkipは「CC-BY-NCライセンス」のもと、無料で私的使用が可能です。ただし、商用利用・特許使用はNGとなっています。(※2)

利用用途可否
商用利用
改変⭕️
配布⭕️
特許使用
私的使用⭕️
参考:https://github.com/facebookresearch/LayerSkip?tab=License-1-ov-file

なお、Metaの最新LLMについて詳しく知りたい方は、下記の記事を合わせてご確認ください。

LayerSkip対応のLlamaシリーズの使い方

HuggingFaceのMeta公式ページでは、LayerSkipに対応したLlamaシリーズ計7モデルが公開中です。ここからは、そんなLayerSkip対応のLlamaシリーズの使い方について、GitHubのREADMEに記載されているやり方をお伝えしていきます。(※2)

モデルにアクセスする方法

LayerSkip対応のLlamaシリーズについては、以下の手順でアクセスが可能です。

  1. HuggingFaceのアカウントでログイン
  2. 下記のリンクから使いたいモデルのページにアクセス
  3. リクエストフォームを埋めて送信(承認・メール受信までは時間がかかります)
  4. 手順に沿ってユーザーアクセストークンを取得
  5. コマンドラインで「huggingface-cli login」を実行

回答生成の方法

ここからは、LayerSkip対応のLlamaシリーズで回答生成を行う方法についてもご紹介します。手始めに、以下のPythonコードをコマンドライン上で実行して、GitHubからLayerSkipをクローンしてしまいましょう!

$ git clone git@github.com:facebookresearch/LayerSkip.git
$ cd LayerSkip

そして次は、環境周りの設定。下記を実行して、Python3.10の環境に必要なライブラリ一式をインストールします。

$ conda create --name layer_skip python=3.10
$ conda activate layer_skip

$ pip install -r requirements.txt

これで、LayerSkipを動かすのに必要な下準備は完了しました。

さて、今度はお待ちかね、LayerSkipによる回答生成です。回答生成用のコードは……

$ torchrun generate.py --model facebook/layerskip-llama2-7B \
    --sample True \
    --max_steps 512 \
    --generation_strategy self_speculative \
    --exit_layer 8 \
    --num_speculations 6

以上のとおり。詳細は下記をご確認ください!

スクロールできます
プログラム&引数詳細
generate.py生成用プログラム
–sampleサンプリングの有無
–temperature回答の自由度
–top_p回答候補のうち上位の確率Pに含まれるものを選ぶ絞り込み
–top_k回答候補のうち上位K個を選ぶ絞り込み
–helpコマンドライン引数の詳細確認
benchmark.pyベンチマーク用プログラム
–dataset cnn_dm_summarizationCNN/DM要約
–dataset xsum_summarizationXSUM要約
–dataset cnn_dm_lmCNN/DM言語モデリング(抜粋した単語から自由に生成)
–dataset human_evalHumanEvalコード生成
–n_shotshotの反復数で、デフォルトは0-shot
–helpコマンドライン引数の詳細確認
eval.py評価用プログラム
–tasks gsm8k小学生向け算数のタスク
–tasks cnn_dailymailニュース記事の要約タスク
sweep.py高速化用プログラム
–num_speculations案出しと精査の配分
–exit_layer思考(層)の深さ

なお、ここで挙げた使い方については、弊社での検証が済んでおりません。うまく動作しない場合もありますが、ご容赦ください。

結論を急いで生成速度UPの「LayerSkip」

当記事では、LLMの回答速度を倍増させる手法「LayerSkip」についてご紹介しました。このLayerSkipは結論を手短に出してから精査していくという手法で、迷いのない回答生成が実現しています。

すでに、LayerSkip対応のLlamaシリーズが7モデルも登場していますので、今後サクサク動くチャットボットが出てくるかもしれません。GPT-4oやClaude 3.5のようなハイエンドLLMだけでなく、高速化技術の今後も要チェックですよ!

最後に

いかがだったでしょうか?

弊社では

・マーケティングやエンジニアリングなどの専門知識を学習させたAI社員の開発
・要件定義・業務フロー作成を80%自動化できる自律型AIエージェントの開発
・生成AIとRPAを組み合わせた業務自動化ツールの開発
・社内人事業務を99%自動化できるAIツールの開発
ハルシネーション対策AIツールの開発
自社専用のAIチャットボットの開発

などの開発実績がございます。

まずは、「無料相談」にてご相談を承っておりますので、ご興味がある方はぜひご連絡ください。

➡︎生成AIを使った業務効率化、生成AIツールの開発について相談をしてみる。

生成AIを社内で活用していきたい方へ
無料相談

「生成AIを社内で活用したい」「生成AIの事業をやっていきたい」という方に向けて、生成AI社内セミナー・勉強会をさせていただいております。

セミナー内容や料金については、ご相談ください。

また、サービス紹介資料もご用意しておりますので、併せてご確認ください。

投稿者

  • 2sc

    テクニカルライター 大学時代はアリの生態を研究。 ラボで唯一、Pythonを使ってデータ分析を効率化していた。 現在はライターとして、オウンドメディアや学術記事の執筆に当たっている。

  • URLをコピーしました!
  • URLをコピーしました!
目次