見出し画像

噂の"Groq"で、話題の"Llama3"と「日本語」爆速問答するpythonコードが15行で簡単でした。

ここ2、3ヶ月、LLMの進化が激しすぎて自分のアプデが間に合いましぇん!
しかし一方で、新型LLMの実装手順も簡単になってきたのも嬉しい事実です。

ということで、(個人的に)最近いちばんの話題といえば、やはりLlama3の登場であります。OpenAIの日本語対応GPTは次点でしょうか。


Llama3 登場の何がそんなに嬉しいのか!?


Meta社が開発してるLlamaシリーズは、ChatGPTやGeminiやCloudeなどの有料LLMサービスとは一線を画し、なんと「オープンソース(ソースコード公開)」のモデルです。
つまり利用料=無料(タダ)で使い放題。これが一番嬉しい。
ただより安いものはない。でしょう。

オープンソースのポリシーは先代モデルの「Llama2」以前から継承されてます。えらいぞザック、ほめてつかわす。

しかしながら、この「Llama2」は無料使い放題ですが、上記のような有料サービスのモデル群と性能を比較すると、どうしても周回遅れの感は否めませんでした。それでも、オープンソースの利点を活かし、いろんな会社や人々が独自にファインチューンしたカスタムモデルを大量に作りました。なので、弄りがいのあるモデルとしてはNo.1 じゃないでしょうか。

そして2024年4月18日(現地時間)、そんなLlama2の最新バージョンであるLlama3-8bとLlama3-70bがリリースされました。(400bも間もなく公開されるらしい)それぞれ、80億、700億、4000億パラメータ。

パラメータは「エクセル表の1行にある「りんご」という単語を説明するために「表頭」の項目数が右横へ向かって80億項目とかある」ようなもので、要は一つの言葉を膨大な説明要素で細かく評価るから解像度が高くなって自然言語モデルの性能が上がる、みたいなイメージでしょうか。
最近では、パラメータがデカけりゃいいもんじゃないぜ、という開発勢力が主流化しつつの、小パラメータによるモデルの工夫がなされて進化しているようです。

Meta社が発表した以下のベンチマークが正しければ、
Llama3-70bは(web版が無料の)GeminiProやClaude3 よりも高性能だとか。

左がLlama3-8B 、右が Llama3-70b

400bはどうなっちゃうんでしょうね。ChatGPT4より高性能だったり。
進化がすごいですねえ。

はい。以上、前説でした。


無料で高性能なのはわかったから、

Llama3はどうやって使うの?


Llama3-は、日本語を学習してないので基本英語しか話せないことになってますが、日本語でもまあまあ会話できます。
でも、プロンプトで「日本語で回答してください」とやりますと、とてつもなく妙な日本語が返ってくることがあります。

そこで、Llama3のような「日本語非対応モデル」の場合は、
質問内容の最後に「英語の解答を、日本語に翻訳して表示してください」
と、翻訳処理させた方がそこそこの日本語になる確率が高いような気がします。(→ あくまで体感値ですけどね)

というわけで、本題です。

WEB UIとAPIで動かす

(Llama3をローカルにDLしない!)
※無料なのでPCのローカルで動かし放題が理想ですが、それなりのマシンスペックが必要です。とりあえず試してみたいだけ、そもそもローカルでやらないし、という場合はこちらで十分に爆速体験できます。

【1】Groq のWebUIでチャット!

Groq のWebUIでチャットGPTみたいに使えます。
(Groq:LLM専用チップ「LPU」を製造開発してるNVIDIAとかのライバル会社)
下記URLにアクセスして、Llama3モデルを選択すればOKです。
ユーザー無料登録が必要かも。

↓ シンプルなUIですね。Messageのフォームに何か書いて送信!

ちなみに処理速度は、Llama3-8b(軽くて早い方)で
なんと「857.82 トークン/秒」です。

はい、爆速ーー!
これが、いま話題沸騰中のGroq社製LPUのパワーだそうです。

他にも、Grpqサイト上には
ChatGPTライクなPlayground があります。
https://console.groq.com/playground

OpenAIのWEB UIもAPIも、費用面と処理速度で「完敗」です。徐々にLLMサービスも、性能に加えてコストとスピードが重視されるようになってます。製品に組み込もうとしたとき、とてもじゃないけどOpenAIの応答速度じゃ無理すよ、という現状をなんとかしないと、さらに性能面で負けたりしたら、やばくね、サム?

【2】Groq のAPIを使ってPythonコード(15行)で動かす!

で、次もGroqですが、
WEBチャットじゃなくて、手元でコード書いて動かしたいときもあります。
そんなあなたのために、いまのところ無料のAPIが用意されてます。

https://console.groq.com/docs/quickstart

API-Keyを取得して
curl、JavaScript、Python で動かせるみたいです。

API ドキュメント

以下は、サンプルコード(Python)に「日本語翻訳して」というsystem promptを追加しただけの ipynbコードです。
(VSCodeで試しましたが、google colabでも大丈夫なはずです)

  1. groq をインスト

pip install groq

2.text に質問内容を入れる。
※なぜインド人かと聞いてるかと言うと、Llama3に自己紹介をお願いしたら、自分はインド人だと言いはってるので、本当にインド人なのかを再確認してみた次第です。てか、その回答自体が何かのガイドライン的にNGじゃない?

text = "あなたはインド人ですか?"

3.以下、クライアントを作成しチャットのプロンプトを入れるコード本体
このときに、role: systemのプロンプトに、英語で「英語の回答を日本語に翻訳して、日本語の回答だけを表示してちょ」と指示します。
これで、日本語で会話してくれました。
※しかし、無視して英語で返してくることもあります。まだおバカさんです。

from groq import Groq

client = Groq(
    api_key=" あなたのAPI-Key をコピペする",
)

chat_completion = client.chat.completions.create(
    messages=[
        {
            "role": "system",
            "content": "Please transrate your responce in Japanese.And answer only Janapse responce.",
        },
        {
            "role": "user",
            "content": text,
        }
    ],
    model="mixtral-8x7b-32768",
)

print(chat_completion.choices[0].message.content)

4.はい、1秒くらいで回答が返ってきます。
Groq、速い、速ぎる!

そして、
やはりLlama3はインド人だそうです。。。
いま開発系ではインド人が多いですからねー。

はい、私はインド人です。

(Yes, I am an Indian.)


ちなみに、別の日に自己紹介してもらったら、

Llama3「はじめまして!(Konnichiwa!)私はAIプログラム「TalkToMe」という名前を付けられています。」

と、こちらも不思議な回答が返ってきました。

GroqのローカルPCにDLして使う、

【3】Ollamaを使って、Llama3をローカルPCで動かす!

https://ollama.com/library/llama3:8b

Ollama使います。こちらも超簡単です。(詳細は上記サイトで見てね)

PCストレージの5GB(8b)とか40GB(70b)を使ってもLLMをDLしてローカルで動かしてみたい!という方はぜひトライ(てほどでもありませんけど)してみてはいかがでしょう。

で、これをローカルでやってみました。
(僕のドスパラノートPCはi9CPUと4090GPUです)

以前Llama2(rinnaなど)を試したとき(こんにちはの返事に30秒かかった)と比べれば、Llama3は超クイックレスポンス(同:0.数秒)で動きました。
なぜなのかは深追いしてません。

ということで、本日の結論です。

Llama3は、インド人だった!


以上であります(`・ω・´)ゞ

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