見出し画像

Llama 3をGroqとColabで試してみる


2024年4月18日、米Meta社がLLMのLlamaシリーズの最新モデルLlama 3を公開しました。
それを契機に、久しぶりにLLM関連を調べ、Llama 3自体を動かしたりしました。
自分のMacBook Pro(M1 Pro、16GB)ではローカルでLLMを動かすのは難しいので、クラウド環境で利用できるのものが中心です。

今回参考にさせて頂きました ↓。

Llama 3を高速動作させるGroq

複数のLLMを試せるGroqChat
Llama 3を高速に動かせるという噂です(実際に早かったです。後述)。
8B(80億)と70B(70億)モデルなどが使えるチャットインタフェースを持つクラウドツールです。
ただ、プロンプトの履歴が残りません。
アシスタントとして使うのではなく、LLMの反応をちょっと試すためのツールのようです。

Groqの核はLPU(Language Processing Unit)という、独自開発のプロセッサです。
LLMを高速に処理することに特化しており、そのパフォーマンスをアピールするデモサイトとしてGroqChatが公開されているようです。
公式サイトには「Llama-2 70B をユーザーあたり 1 秒あたり 300 トークンを超える速度で実行」という記述がありました。

Googleアカウントでログイン

sign in to Groqから入ります。

Googleアカウントでも利用できます。

画面右上のドロップダウンメニューからLLMを選択します。

その隣の歯車アイコンでは、システムプロンプトを設定できます。
ここでLLMの役割を記述します。
例えば、日本語でやり取りをしたい場合、「日本語で回答するAIアシスタントです。必ず日本語で回答してください。」と記述します。

チャットの履歴は残らないようです。
ブラウザをリロードするとクリアされます。

レスポンスよく回答

以下のプロンプトを投げてみました。

LLMの進化により、今後どのような新しい仕事が生まれるでしょう。
また、その仕事にはどのようなスキルが必要とされるでしょうか。
理系職と文系職について2つずつ教えてください。

レスポンスは速いです。
7Bや8Bのモデルの場合、1秒も待たない感じでした。

以下、回答です。
各モデルの回答の内容は似た感じでした。
Llama 3以外も試し、各モデルのパフォーマンス結果を示します。

Llama3-8b-8192

LLM(Large Language Model)技術の進化により、新しい仕事が生まれると考えられます。以下は、理系職と文系職の2つずつ、新しい仕事の例と必要なスキルです。

理系職

1. Natural Language Processing (NLP) Engineer: LLM技術を基盤に、自然言語処理のシステムを開発するエンジニア。必要なスキル:プログラミングスキル(Python、Java、C++など)、NLPの理論、データ解析スキル。
2. Human-Machine Interface (HMI) Designer: LLM技術を基盤に、人とマシンのインターフェースを設計するデザイナー。必要なスキル:デザインスキル、UX/UIデザイン、NLPの理論。

文系職

1. Content Generation Specialist: LLM技術を基盤に、コンテンツを自動生成するスペシャリスト。必要なスキル:コンテンツクリエイティブスキル、NLPの理論、コミュニケーションスキル。
2. Language Understanding Analyst: LLM技術を基盤に、言語の意味や構造を分析するアナリスト。必要なスキル:言語学の知識、NLPの理論、データ解析スキル。

以上のように、LLM技術の進化により、新しい仕事が生まれると考えられます。理系職と文系職の両方で、NLPの理論やデータ解析スキルが必要とされることが予想されます。

返答欄の下の3本洗状のアイコンからは、文章のテーストを指定し直せます。
ただ、システムプロンプトが適用されず英語で返事が返ってきました。
「How are are you ?」と投げてProfesionalにすると「I am fully capable and proficient in my role as an AI assistant・・・」、Friendlyにすると「Hi there! I'm doing great・・・」という感じでした。

右側のスループット(トークン/秒)数字にマウスオーバーすると推論(inference)にかかった時間など、GroqChat & LLMのパフォーマンスが確認できます。

7Bや8Bで約300トークン/秒、70Bで約800トークン/秒程度でした。

Gemma-7b-It

Llama2-70b-4096

Llama3-70b-8192

Mixtral-8x7b-32768

Mixtral には合計 46.7B(467 億)のパラメータがありますが、トークンごとに使用するパラメータは 129 億。
12.9B モデルと同じ速度、同じコストで入力を処理し、出力を生成します(公式サイト参照)。

ColabでLlama 3

L4 GPUを使用します。

上記サイトによるとメモリは24Gバイト。
Hugging Faceのサイトのコードを使ってみます。

モデルを使用するには、Hugging FaceのサイトのModel Cardで利用許諾を取得しておきます。

# パッケージのインストール
!pip install -U transformers accelerate bitsandbytes

許諾を得られれば、Hugging Faceのサイトから取得できるトークンでログイン後にモデルを利用できるようになります。

# Googleのシークレットマネージャーに登録したAPIトークンを確認
from google.colab import userdata
userdata.get('HUGGING_TOKEN')
# HuggingFaceにトークンでログイン
!huggingface-cli login

Hugging Faceに記載のコードを実行して、モデルをダウンロードします。

# meta-llama/Meta-Llama-3-8B-Instruct
import transformers
import torch

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

pipeline = transformers.pipeline(
    "text-generation",
    model=model_id,
    model_kwargs={"torch_dtype": torch.bfloat16},
    device_map="auto",
)

システムプロンプトとユーザープロンプトを設定し、回答を生成。
5秒程度かかりました。

messages = [
    {"role": "system", "content": "あなたは日本語で回答するAIアシスタントです。日本語で返事をしてください。"},
    {"role": "user", "content": "LLMの進化により、今後どのような新しい仕事が生まれるでしょう。また、その仕事にはどのようなスキルが必要とされるでしょうか。理系職と文系職について2つずつ教えてください。"},
]

# テキストがトークン化されずにそのままの形で処理
prompt = pipeline.tokenizer.apply_chat_template(
        messages, 
        tokenize=False, 
        add_generation_prompt=True
)

# terminatorsを指定することで、生成されたテキストが適切な長さで終了
terminators = [
    pipeline.tokenizer.eos_token_id,
    pipeline.tokenizer.convert_tokens_to_ids("<|eot_id|>")
]

# pipeline() 関数が呼び出され、与えられたプロンプトからテキストを生成
outputs = pipeline(
    prompt,
    max_new_tokens=768,
    eos_token_id=terminators,
    do_sample=True,
    temperature=0.6,
    top_p=0.9,
)
# 元のプロンプトに続く生成されたテキスト部分のみを取得
print(outputs[0]["generated_text"][len(prompt):])

LLM(Large Language Model)の進化は、将来の仕事の創造や変化をもたらすと考えられます。
以下は、理系職と文系職について2つずつ、新しい仕事の例と必要なスキルを紹介します。

理系職

1. AIエンジニア: LLMを基盤としたAI技術の開発や運用を担当するエンジニア。必要なスキル:プログラミングスキル(Python、Java、C++など)、AI/ML技術、データ解析。

2. データサイエンティスト: LLMを使用したデータ解析や可視化を行う専門家。必要なスキル:統計学、データ解析、可視化ツール(Tableau、Power BIなど)、Python、R言語など。

文系職

1. コンテンツクリエイター: LLMを使用したコンテンツの生成や翻訳を行うクリエイター。必要なスキル:コミュニケーションスキル、文章作成スキル、翻訳スキル、LLMの理解。

2. ナレッティブエンジニア: LLMを使用したストーリーテリングやナレッティブの開発を行うエンジニア。必要なスキル:ストーリーテリングスキル、ナレッティブデザインスキル、LLMの理解、プログラミングスキル(JavaScript、Pythonなど)。

以上、LLMの進化に伴う新しい仕事の例と必要なスキルを紹介しました。将来的には、LLMを基盤とした新しい仕事がさらに創造されることが予測されます。

70Bはセッション切れ

70Bモデルも試しました。

model_id = "meta-llama/Meta-Llama-3-70B-Instruct"も使うが遅すぎる。

モデルのダウンロード中にランタイムのセッションが切れて、動かせませんでした。
下記はL4 GPUを使用し、ダウンロード処理中のリソースです。
この状態がしばらく続き、セッションが切れました。

ColabのA100 GPUで試そうとしましたが、割り当てられませんでした。
別の機会で試そうと思います。




##########

!pip install -U transformers accelerate bitsandbytes のケース

LLM(Large Language Model)の進化は、将来的に新しい仕事を生み出すきっかけとなる可能性があります。
以下は、理系職と文系職の2つずつ、LLMの進化によって生まれる可能性のある新しい仕事と、その仕事に必要なスキルです。

理系職

1. Natural Language Processing (NLP) Engineer: LLMの進化に伴い、NLPエンジニアは、機械学習や深層学習を基盤とした自然言語処理の開発に携わることになる。必要なスキル:Python、TensorFlow、Keras、NLPの理論

2. Explainable AI (XAI) Specialist: LLMの進化に伴い、XAIスペシャリストは、機械学習モデルに内在する因果関係や決定過程を明確化することで、AIの透明性を高めることになる。必要なスキル:機械学習、データ解析、統計学

文系職

1. Content Generation Specialist: LLMの進化に伴い、コンテンツジェネレーションスペシャリストは、AIが生成したコンテンツを評価、改良、配信することで、コンテンツマーケティングやメディアの新しい形を創造することになる。必要なスキル:コンテンツクリエイティブ、コミュニケーション、メディア理論

2. Human-AI Collaboration Specialist: LLMの進化に伴い、ヒューマン-AIコラボレーションスペシャリストは、AIと人間の協働を通じて、新しい創造や解決策を生み出すことになる。必要なスキル:コミュニケーション、チームワーク、プロジェクトマネジメント

以上のように、LLMの進化によって生まれる新しい仕事には、理系職と文系職の両方で、機械学習、データ解析、コミュニケーション、チームワークなどのスキルが必要とされることになる可能性があります。

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