Falcon 180B の概要
以下の記事が面白かったので、かるくまとめました。
1. はじめに
本日、「Falcon 180B」がHuggingFaceで公開されました。これは、180Bパラメータを持つ最大のオープンLLMです。ベースモデル と チャットモデル が提供されており、Spaceでデモを試すこともできます。
2. Falcon 180B の概要
「Falcon 180B」は、TIIによって開発されたFalconファミリーの最新モデルです。約7,000,000 GPU時間、最大4096のGPUで同時に3.5兆トークンで学習しました。データセットは、主に「RefineedWeb」(〜85%)を使用しています。さらに、会話、テクニカルペーパー、コード(〜3%)などで学習しています。
さらにチャットモデルでは、会話データセットと指示データセットでファインチューニングしています。
3. Falcon 180B の性能
「Falcon 180B」の性能は、MMLUで「Llama 2 70B」と「GPT-3.5」を上回り、HellaSwag、LAMBADA、WebQuestions、Winogrande、PIQA、ARC、BoolQ、CB、COPA、RTE、WiC、WSC、ReCoRDで「PaLM 2-Large」と同等です。
「HuggingFace Leaderboard」では 68.74 を記録し、「LLaMA 2」の 67.35 を上回り、現在公開されているオープンLLMの中で最高得点を記録しました。
4. Falcon 180B の使い方
「Falcon 180B」は、Transformers v4.33 以降で利用可能です。
4-1. Space
Spaceで「Falcon 180B」のデモを簡単に試すことができます。
4-2. ハードウェア要件
ハードウェア要件は、次のとおりです。
4-3. プロンプトの書式
ベースモデルのプロンプトの書式はありません。
チャットモデルのプロンプトの書式は次のとおりです。
4-4. Transformers
Transformers v4.33以降で、HuggingFaceのエコシステム内のすべての機能を活用できます。
モデルを使用するには、ライセンスと使用条件に同意する必要があります。HuggingFace アカウントにログインしていること、および最新バージョンのTransformersを使用していることを確認してください。
pip install --upgrade transformers
huggingface-cli login
4-5. bfloat16
以下は、bfloat16でベースモデルを使用する方法です。「Falcon 180B」は大型モデルであるため、上の表にまとめられたハードウェア要件を考慮してください。
from transformers import AutoTokenizer, AutoModelForCausalLM
import transformers
import torch
model_id = "tiiuae/falcon-180B"
tokenizer = AutoTokenizer.from_pretrained(model_id)
model = AutoModelForCausalLM.from_pretrained(
model_id,
torch_dtype=torch.bfloat16,
device_map="auto",
)
prompt = "My name is Pedro, I live in"
inputs = tokenizer(prompt, return_tensors="pt").to("cuda")
output = model.generate(
input_ids=inputs["input_ids"],
attention_mask=inputs["attention_mask"],
do_sample=True,
temperature=0.6,
top_p=0.9,
max_new_tokens=50,
)
output = output[0].to("cpu")
print(tokenizer.decode(output)
My name is Pedro, I live in Portugal and I am 25 years old. I am a graphic designer, but I am also passionate about photography and video.
I love to travel and I am always looking for new adventures. I love to meet new people and explore new places.
4-6. bitsandbytes
「Falcon 180B」の8bit量子化と4bit量子化は、bfloat16との評価にほとんど違いがありません。自信を持って量子化でハードウェア要件を削減できます。ただし、8bit推論は4bit推論よりもはるかに高速であることに留意してください。
量子化を使用するには、bitsandbytesをインストールし、モデルをロードするときに対応するフラグを有効にするだけです。
model = AutoModelForCausalLM.from_pretrained(
model_id,
torch_dtype=torch.bfloat16,
load_in_8bit=True,
device_map="auto",
)