見出し画像

Falcon 180B の概要

以下の記事が面白かったので、かるくまとめました。

Spread Your Wings: Falcon 180B is here


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%)などで学習しています。

さらにチャットモデルでは、会話データセットと指示データセットでファインチューニングしています。

【注意】Falcon 180Bは少量利用できますが、「ホスティング使用」を除く非常に制限的な条件下で使用できます。商用利用に興味がある場合は、ライセンスを確認し、法務チームに相談することをお勧めします。

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. プロンプトの書式

ベースモデルのプロンプトの書式はありません。
チャットモデルのプロンプトの書式は次のとおりです。

System: <システムメッセージ>
User: <ユーザーメッセージ>
Falcon:

4-4. Transformers

Transformers v4.33以降で、HuggingFaceのエコシステム内のすべての機能を活用できます。

・学習および推論のスクリプト
・safetensors
・bitsandbytes、PEFT、GPTQ 
・assisted generation
(speculative decoding)
・より長いコンテキスト長に対するRoPE スケーリングのサポート
・豊富で強力な生成パラメータ

モデルを使用するには、ライセンスと使用条件に同意する必要があります。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",
)



いいなと思ったら応援しよう!