meta-llama/Llama-3.2-1Bの使い方について【天ぷらが好きか聞くと・・・】

ふゅか
ふゅか
Metaの新しいモデル、Llama-3.2-1Bについて知ってる?
はるか
はるか
軽量な言語モデルらしい。

1. meta-llama/Llama-3.2-1Bとは

  • decoderタイプのモデル
  • 1.24B のパラメータ
  • テキスト生成の言語モデル

Llama-3.2-1Bは、Metaが開発したdecoderタイプの大規模言語モデルです。1B以外にも、3Bのサイズのモデルがあります。「英語、ドイツ語、フランス語、イタリア語、ポルトガル語、ヒンディー語、スペイン語、タイ語」の8つの言語をサポートしていると公式は述べています。テキスト生成やコード補完、対話システムなどの使用が考えられます。また、過去に解説した、Llama-3と比較して、軽量なモデルであることが特徴です。また、画像認識などに関連するvision系の11Bと90Bのllama-3.2も登場したようです。

Llama-3.2-1Bを使うためには、Llama-3と同様に許可が必要なのでhugging faceでレポジトリのアクセスの許可をもらいましょう。

2. pythonコード

はるか
はるか
今回はLlama-3.2-1Bに天ぷらがすきなのかどうか聞いてみる。

2.1. 実行環境

  • RTX 4070ti super VRAM 16GB
  • Windows11
  • memory 64GB
  • Python 3.11.9

2.2. pipelineを使用したコード

import torch
import transformers
model_id = "meta-llama/Llama-3.2-1B"

pipeline = transformers.pipeline(
"text-generation",
model=model_id,
torch_dtype=torch.bfloat16,
device_map="auto"
)
prompt="Do you like tempura? \n"

out=pipeline(prompt)
print(out[0]["generated_text"])

普通に受け答えをしてくれました。「I do. I like it a lot. I like it」と、天ぷらに対して好印象らしいですね。

はるか
はるか
普通に答えてくれる。「好きだ」って。

2.3. モデルを直接読み込む方法

今回はモデルが比較的軽量なので量子化せず、普通に読み込みます。また、do_sample=Trueとして、サンプリングを行います。

from transformers import AutoTokenizer, AutoModelForCausalLM
from transformers import set_seed
import torch
tokenizer = AutoTokenizer.from_pretrained("meta-llama/Llama-3.2-1B")
model = AutoModelForCausalLM.from_pretrained("meta-llama/Llama-3.2-1B",
                                             device_map="auto",
                                             torch_dtype=torch.bfloat16
                                             )


set_seed(50006)
prompt="Do you like tempura?"
input_ids  = tokenizer.encode(prompt,return_tensors="pt").to("cuda")

generated_token = model.generate(input_ids,max_new_tokens=100,
                                do_sample=True, top_k=50)
out = tokenizer.decode(generated_token[0], skip_special_tokens=True)

面白いことに、言語モデルは質問を答える側ではなく、聞く側としてとらえたようで、すしのデリバリーをおすすめしてきました。

Do you like tempura? Is it your favorite cuisine?
Try this sushi box lunch delivery!
These are all made fresh on location!
Sake, beer, wine and more!

PR