見出し画像

MetaのLlama3を眺めてみる


Hugging FaceにおけるLlama3の紹介

2024年4月18日に、MetaよりFacebookの会社より、Llama3がリリースされました。オープン系の大規模言語モデルでは、Meta社のLlama2をベースにファインチューニングされているLLMが性能評価でも結果を残しているので、Llama2の後継のLlama3は期待度が高いです。

Hugging FaceにおけるLlama3の情報を眺めていきます。

Llama3は、80億パラメータと700億パラメータのバージョンがあります。モデル情報で驚いたのは、Llama3の80億パラメータは2023年3月、Llama3の70Bパラメータは2023年12月時点の情報まで持っているということです。Llama3の80億パラメータは2023年3月には出来上がっていることに、戦略的な意図を感じぜずにはいられません。


Llama3のモデル情報


ライセンス情報を見てみると、月間アクティブユーザ数が7億人を超える場合、ライセンスをリクエストする必要があるとあります。Meta社が今後どのようにオープンソースのLLMから利益を得るエコシステムを構築するか見えないですが留意しておく必要があるでしょう。ただ、Llama3で月間アクティブユーザ数7億人を超えるのは難しいかなと感覚的に思いますし、競争の激化によりLlama3の後続のLlama4, Llama5と登場してくることは目に見えているので次世代で検討でしょうか。


ライセンス情報の一部

SDGsの世の中で、ESG投資銘柄でアピールするためなのか、言語モデルを訓練しているときの電力消費量が掲載されています。Llama3は合計で2,290トンのCO2が排出されましたということです。GPUの計算時間はH100-80GBで770万時間とのことです。

1年間は24時間×365日は8,760時間となり、仮にH100-80GBで1年間計算したとすると、770万時間÷8,760時間=879台ほどのGPUをMeta社は利用していることになります。

H100-80GBは、価格コムあたりで調べてみると、1台あたり550万円ほどですので、550万円×880台=488億円ほどGPU購入に費やしていることになります。さらに電気代と考えると凄い金額です。


訓練における電力時間


ベンチマークは、LlamaモデルファミリーのLlama3とLlama2をパラメータ数ではLlama3はLlama2を上回っています。


Llamaモデルのベンチマーク比較



Google ColabにおいてLlama3の実装と結果

Llama3をHugging Faceからダウンロードして使うには、ライセンス条項に同意する必要があります。

下記のように入力して、Submitをクリックします。

ライセンス条項

Submitされた後に、少し時間がかかり、承認されますと使えるようになります。

今回は、Google ColabのA100を利用しています。事前に、Hugging FaceのアクセストークンをGoogle Colabに設定しておきましょう。


Google ColabでHugging Faceのアクセストークン設定

コードは、少し編集していますが、Hugging Faceのコードを流用しています。

!pip install accelerate
import transformers
import torch

model_id = "meta-llama/Meta-Llama-3-8B"

pipeline = transformers.pipeline("text-generation", model=model_id, model_kwargs={"torch_dtype": torch.bfloat16})
pipeline("Hey how are you doing today?")

[{'generated_text': 'Hey how are you doing today? I am doing well. I am a little bit tired because I'}]

出力結果

では、piplelineの関数内を変更して、色々なことを質問してみます。

pipeline("Do you introduce yourself?")

{'generated_text': 'Do you introduce yourself? Do you tell them your name? Do you tell them your name? Do'}]

出力結果

微妙な感じですね。自己紹介のときに関することと、質問の列挙と理解したのでしょうか。


pipeline("I have 100 apples. I ate 30 apples. How many apples do I have?", max_length=100)

[{'generated_text': 'I have 100 apples. I ate 30 apples. How many apples do I have? 70 apples. I have 70 apples. I ate 30 apples. How many apples do I have? 40 apples. I have 40 apples. I ate 30 apples. How many apples do I have? 10 apples. I have 10 apples. I ate 30 apples. How many apples do I have? -20 apples. I have -20 apples. I ate'}]

出力結果

リンゴ100個あり30個食べたら、残りは何個残っていますかと聞いたら論理的に70個と回答しており正答しております。回答字数制限をしたからなのか、繰り返し的に、30個さらに食べたら何個残っていますかと計算して回答しております。-20個のリンゴという回答も色々と考えさせられる材料です。


pipeline("Which is the best LLMs?", max_length=100)

[{'generated_text': 'Which is the best LLMs?. The best LLMs are those that are accredited by the Law Society of England and Wales. This means that they have been through a rigorous process of assessment and have been found to meet the high standards set by the Law Society. There are a number of different LLMs available, so it is important to do your research to find the one that is right for you.\nWhat is the best LLM in the UK?. The best LLM in the UK'}]

回答結果

聞いておきながら、回答があっているかはわかりませんが、それなりの回答になっているかと思います。

この記事が気に入ったらサポートをしてみませんか?