🔥

Llama-3.1-70BをGroq APIで使ってみた

2024/07/28に公開

概要

2024/07/23にMetaから最新のLlama-3.1がリリースされました。
https://ai.meta.com/blog/meta-llama-3-1/
OpenAI APIとの互換性と高速レスポンスを強みとしているGroq APIもLlama-3.1に対応しました。
https://wow.groq.com/now-available-on-groq-the-largest-and-most-capable-openly-available-foundation-model-to-date-llama-3-1-405b/
また、2024/07/26にはLlama-3.1の日本語学習モデルがサイバーエージェントからリリースされました。
https://huggingface.co/cyberagent/Llama-3.1-70B-Japanese-Instruct-2407
このようにLlama-3.1は早速様々な広がりを見せています。

今回はGroqを用いてLlama-3.1-70BとLlama3-70bに日本語で質問した場合の回答を比較してみました。

事前準備

Groqを使用したい方は下記を参考にGroq APIの登録とAPIキーの取得をしてください。
https://zenn.dev/mizunny/articles/58be26d25f9589

Groq APIにおけるモデルの指定

import os
from groq import Groq

client = Groq(api_key=os.environ.get("GROQ_API_KEY"))
response = client.chat.completions.create(
    model="your-model", # ここで使用するモデルを指定
    messages=messages,
)

指定可能なモデルの一覧
https://console.groq.com/docs/models

Llama-3.1-70Bを使う場合

import os
from groq import Groq

# Create the Groq client
client = Groq(api_key=os.environ.get("GROQ_API_KEY"))

# Set the system prompt
system_prompt = {
    "role": "system",
    "content": "あなたは日本語で回答する便利なアシスタントです。",
}

# Set the user prompt
user_input = "熱帯夜にぴったりの怖い話をしてください。"
user_prompt = {"role": "user", "content": user_input}

# Initialize the chat history
chat_history = [system_prompt, user_prompt]

response = client.chat.completions.create(
    model="llama-3.1-70b-versatile",
    messages=chat_history,
    max_tokens=1024,
)

# Print the response
print("Answer:", response.choices[0].message.content)

Llama3-70bを使う場合

response = client.chat.completions.create(
    model="llama3-70b-8192", # ここだけ変更
    messages=chat_history,
    max_tokens=1024,
)

結果

出力は以下のようになりました。

①llama-3.1-70b-versatileの回答

 夏の夜、闇に包まれたビル。最上階のルームで、少年がベッドに横になっていた。暑い夜で蒸し暑く、彼は隣の部屋の冷房の音を羨ましく思いながら汗をたくさんかいた。

すると、部屋の外で、ぞっこしょこッという音がした。ぞろぞろ、ぞろぞろ…。少年は何度も聞いた。そっとしていた自分の息が激しくなった。

「誰が何をやってるの?」

少年は叫びつけながらタオルで汗を拭き、ルームのドアを開けた。外、空気がいつもよりも冷えた。ぞろぞろという音はどこにも聞こえない。

少年は引き返したのでした。しかし、その時。

目の前のドアには、赤い文字で「熱帯夜にはひとりで寝んな」という文字が出ていた。少年は叫込み…

そして、少年はそのまま夜が明けるまで言い続けたのでした「この建物には誰もいません」

②llama3-70b-8192の回答

😱️️️️️️️️️️️

「闇の学校」

ある夏の夜、学校の学生たちは、夏休みの最後の夜に学校に残り、怖い話をして遊んでいた。突然、電気が消えて、学校は真っ暗になった。学生たちは光らせたライトで、校舎の廊下を歩き始めた。

すると、廊下の奥に、昔の生徒たちが書いたという「闇の学校」の伝承を記した紙を 발견した。伝承によれば、学校の創始者が、生徒たちを犠牲にして学校を建造したという恐ろしい噂があった。

学生たちは、怖がりながらも、学校の秘密を探り始めた。校舎の各部屋を探索していくうちに、不気味な音や、生徒たちの亡霊を目撃するようになった。

やがて、学生たちは、学校の創始者が、生徒たちを犠牲にして学校を建造したという噂が本当であることを知った。恐ろしい幻聴や、冷たい風が吹きつける中、学生たちは、学校から逃げ出そうとした。

だが、出口がどこにあるのかわからなかった。学校は、生徒たちの魂を閉じ込めようとしていたのだった。 studentたちは、最後の夜を過ごすため、連絡が取り合えなくなったまま、学校に取り残された…

(続きは、明日のお楽しみに! 😉

あくまでこの回答のみに対する定性的な評価です。

  • ①llama-3.1-70b-versatileは②llama3-70b-8192と比較して不自然な句点が少ない。②は句点が多い印象。
  • ②には日本語ではないハングルや英単語も含まれてしまっているが、①にはそのような誤りが見られない。
  • ただし①にも②にも日本語的に不自然な表現は含まれている。

まとめ

本記事ではGroq APIでLlama-3.1-70bを試してみました。
前バージョンのLlama3では日本語で質問しても回答に英単語が混ざっていたり、全ての回答が英語で返ってくることがありましたが、Llama-3.1ではそのような現象が起ききにくくなっているように感じました。
一方で、日本語的な不自然な表現もまだ含まれていそうです。
今後公式のLlamaモデルで英語以外の言語も自然に回答できるモデルが出るといいなあと思います🐻‍❄️

Discussion