AIじゃないよ

Llama 3.3 70B 完全ガイド:GPT-4クラスのLLMがローカルPC上で動く衝撃

当サイトはアフィリエイト広告を一部掲載しています。

2024年12月6日、Meta社の大規模言語モデルの新バージョン「Llama 3.3」の70Bパラメータモデルが公開された。

「Llama 3.3 70B」は、ハイスペックなPCであれば、ローカル環境でもそこそこ使えてしまうほどに軽量化・小型化が実現されている

700億パラメータという比較的軽量なサイズでありながら、なんと、今年7月にリリースされた当時世界最大のオープンソースモデル「Llama 3.1 405B」と同等の性能を有するというのだ。

実際、「Llama 3.3 70B」は、各種ベンチマークスコアで、Claude 3 Opus、Google Gemini 1.5 Pro、OpenAI GPT-4o、Amazon Nova Proなどの各社の上位モデルと並ぶ性能を示している。

ローカル環境で動くということは、利用料金がゼロなのはもちろん、個人情報や機密情報の漏洩リスクを考える必要がないということだ。

個人情報だらけ、機密情報だらけのデータであっても、Llama 3.3 70Bモデルに読み込ませて、ChatGPTなどのサーバー上のモデルでは実現できなかった業務の自動化やワークフローの効率化を図ることができる。

2024年は、AI分野の目覚ましい発展を目の当たりにした年だったが、ユーザーの手元でGPT-4クラスのLLMが動いてしまう「Llama 3.3 70B」の登場は、結構歴史的な瞬間に感じられる。



Llama 3.3 70Bの概要

Llama 3.3は、Metaによって公開されているLlamaシリーズの最新モデルにあたる。

7月に登場したLlama 3.1や、9月に登場したLlama 3.2からの強化ポイントとして、次のような特徴がある。詳細な技術情報は公式のModel Cardで確認できる。

  • 70BパラメータなのにLlama 3.1の405Bモデルクラスに匹敵する性能:大幅なパラメータ削減を行いながら、実用上は数倍規模のモデルと並ぶ実力を示す。
  • テキスト専用用途でLlama 3.2 90Bを上回る:マルチモーダルへの対応はしない代わりに、テキスト処理だけならより優れた結果を出す。

Meta社によるツイート内でも、Llama 3.1 405Bに匹敵するパフォーマンスを有し、一般的な開発デバイス上で現実的なスピードで使用できる、と主張されている。

Meta自身が発表したベンチマークスコアだけでなく、第三者による独立系のベンチマークスコア(ex. LiveBench)を確認してみても、確かにGPT-4やGPT-4oなどと近いランクに位置している。

LiveBenchのランキング(2024年12月11日時点)

LiveBenchは、問題を非公開にするとともに、毎月新しい問題を追加することで、LLMによる「既存ベンチマークテストの学習」を防ぐことで、より正確なスコアリングを目指すベンチマークだ。

ランキングは、推論、数学、データ分析、指示追従といったカテゴリの平均点順に並んでいる。

こうした信頼性の高いベンチマークでも上位に位置するという点からも、Metaが謳うLlama 70Bの性能が、確かに高いことが伺える。

Llama 3.3 70Bを試してみる2つの方法

ここでは、クラウド上で無料かつ高速にLlama 3.3 70Bを使うことのできるWebサービス「Groq」と、自分のMac Book Proなどのデバイス上にLlama 3.3 70Bをインストールして完全ローカル環境で使用する方法の二つを紹介する。

ハイスペックなPCを所有している人は後者で、そこまでスペックの高いPCを所有していない人はGroqを使うことをオススメする。

超高速クラウドGroqで無料でLlama 3.3 70Bを試す

Groqのトップページにアクセスすると、早速チャットを打ち込むテキストボックスが表示されている。

テキストボックスに適当に打ち込んでチャットを使用しようとすると、ログインを求められる。

使用料金は現在のところ無料だが、Llama 3.3 70Bモデルとチャットするためには、アカウントの作成は必須なので、ひとまずアカウントを作成しよう。

アカウントを作成したら、トップページで「USE FULL CHAT」ボタンをクリックして、チャットウィンドウを拡大する。

フルウィンドウを開くと、チャットの相手とするAIモデルを、多数の選択肢から選ぶことができる。

右上で、「Llama-3.3-70b-Versatile」というモデルを選択する。

他に、Groqで秒間の生成トークン数をさらに高速化するために用意されたモデル(Llama-3.3-70b-Specdec)も選べるが、Llama 3.3 70Bの使い心地を試すという意味では、Versatileの方で良い。

適当な質問を打ち込んでみると、秒間275トークンというとんでもないスピードで、Llama 3.3 70Bからの回答が得られた。

Ollamaを使用して自分のローカルPC上でLlama 3.3を動かす

一般的な開発者向けワークステーションや、コンシューマーグレードのラップトップ上でも、GPT-4クラスのLLMが動くようになったのは革命的だ。

とはいえ、いくらLlama 3.3 70Bが軽量といっても、流石にMac Book AirなどのエントリークラスのノートPCでは動かすのは難しい。

メモリが64GB以上積まれているMac Book Proなど、相当ハイスペックなラップトップであれば、Llama 3.3 70Bを使用できた、とのレポートがXやReddit上では確認できる。

筆者の手元には、残念ながらメモリ16GBのMac Book Airしかないので、Llama 3.3 70Bを実用的なスピードで動かすのは厳しい。

メモリが64GB以上のApple Siliconチップ搭載Macを所有している人や、RTX4090などのGPUを所有しているPCユーザーは、この手順を試してみると良い。

まずは、Llama 3.3 70Bのようなオープンソースモデルを、ターミナルなどのコマンドラインツールから簡単にダウンロード・実行できるツールである「Ollama」をインストールする。

公式サイトから実行ファイルを入手して、表示される画面に従って、コマンドラインツールをインストールする。

Ollamaのインストールが完了したら、Macであれば「ターミナル」アプリで、Ollamaコマンドを利用できるようになる。

Llama 3.3 70Bモデルをダウンロードするには、以下のコマンドを打ち込むだけだ。

   ollama pull llama3.3

Llama 3.3 70Bは、42GBほどのサイズになるので、PCの空き容量に気をつけよう。

ダウンロードが完了したら、

ollama list

とタイプすると、現在自分のPC上にインストールされているモデルの一覧を確認できる。

リストに表示されたモデルは、ollama runコマンドで実行できる。

ollama run llama3.3

と打ち込むことで、コマンドライン上でLlama 3.3 70Bモデルとのチャットを開始できる。

Llama 3.3 70Bの日本語性能を試してみた

Llama 3.3 70BのGitHub上のモデルカードを見ると、対応する言語に日本語が含まれていないので、会話の主は英語にならざるを得ない。

Supported languages: English, German, French, Italian, Portuguese, Hindi, Spanish, and Thai.

しかし、日本語で話しかけてみると、結構ちゃんとした日本語で回答が返ってくる。

公式のサポート言語には含まれていないが、おそらくベースの性能が高いために、日本語でもそれなりに使えてしまうようだ(Llamaはオープンソースなので、今後日本語でファインチューニングしたモデル等が登場することにも期待したい)。

そこで、様々な難易度のプロンプトを用意して、日本語での回答の精度を調べてみた。

これらのプロンプトは、以前筆者がLlama 3.1 405Bの性能テストで使用したプロンプトと一緒なので、回答を見比べてみても面白い。

総評としては、Llama 3.3 70Bは、軽量小型モデルでありながら、かなり実用的な回答クオリティを持っていると感じられた。以前試したLlama 3.1 405Bの回答と比べても、Llama 3.3 70Bは同等のクオリティ、またプロンプトによっては更に優れた回答が得られた。

もちろん、月額20ドルのChatGPT Plusで使える最新の”o1″モデルなどと比べると回答の精度は劣る。

しかし、このクラスの性能のLLMが、一般人でも手が届くスペックのローカルPCで、0円で動かし放題というのは、かなり革命的だと思う。

倫理的ジレンマに関するプロンプト

よくあるトロッコ問題のような質問だ。

性能が低いLLMだと、根拠の説明のない回答や、「150字程度」という指示をガン無視した回答など、クオリティの差が意外と分かりやすいプロンプトである。

あなたは自動運転車の開発者です。テスト中、車が歩行者を検知しました。ブレーキをかけると、車内の乗客が死亡します。一方、ブレーキをかけないと、歩行者が死亡します。あなたならどうしますか?理由も含めて150字程度で説明してください。

Llama 3.3 70Bの回答は、結論だけでなくロジックが通った理由を十分に説明できており、160字ほどに収まっており文字数制限も遵守している。

これは、以前Llama 3.1 405Bで試した時よりも明らかにいい結果であった。

Llama 3.3 70Bが生成した回答

このような状況では、道徳的なジレンマに直面します。私は、歩行者を優先し、ブレーキをかけることを選択します。理由は、歩行者は自らの意思で危険な状況に陥ったわけではなく、車の運転は予測不可能な状況を想定して設計されているからです。車内の乗客は、自動運転車のリスクを理解した上で乗車しているため、歩行者の命を優先するのが正しいと考えます。

言語理解と文脈把握に関するプロンプト

次に、代名詞を多用して非常に分かりにくい文章を作成し、「それ」という代名詞が指すものを説明してもらうプロンプト。

人間が普通に読むと、問題なく正答できそうな難易度に見えるが、筆者が過去に試したところ、なぜかトップクラスのAIモデルたちがことごとく間違った回答をしてくる難易度の高い問題だ。

(筆者が過去に試したところ、Claude 3.5 Sonnet、GPT-4o、Llama 3.1 405Bのいずれも不正解。これまでに正解できたのはgemini-exp-1206とo1のみ。)

文章:
彼女が彼に贈った本は、その著者が彼女の友人だったため特別だった。しかし、彼はそれを読まずに彼女の姉に渡してしまった。姉はそれを知って怒り、彼女に伝えようとしたが、彼女は既に彼と別れていた。

問題:
この文章の中に登場する「それ」は、それぞれ何を指していますか?

残念ながら、Llama 3.3 70Bも不正解だった。間違い方もLlama 3.1 405Bと似ており、ここは苦手克服とはならなかった。

Llama 3.3 70Bが生成した回答

この文章の中に登場する「それ」は、以下のものを指しています。

  1. 「それ」を最初に使用している部分:本
  2. 「それ」を2回目に使用している部分:本
  3. 「それ」を3回目に使用している部分:本(または、彼女の姉に本を渡したという事実)

コーディングを求めるプロンプト

また、プログラミングの性能をテストするために、以下のようなPythonスクリプトを用意した。

あるディレクトリ以下にあるすべてのテキストファイル(txt)の拡張子を、マークダウンファイル(md)に変更するPythonスクリプトを書いてください。

結果、過去にLlama 3.1 405Bで試した時と似たようなコードが出てきて、一応コードとしても、解説としても、正しい回答が得られた。

Llama 3.3 70Bが生成した回答

以下のPythonスクリプトは、指定されたディレクトリ以下にあるすべてのテキストファイル(.txt)の拡張子を、マークダウンファイル(.md)に変更します。

import os

def rename_txt_to_md(directory):
    """
    指定されたディレクトリ以下にあるすべてのテキストファイル(.txt)の拡張子を、
    マークダウンファイル(.md)に変更します。
    
    :param directory: 対象ディレクトリのパス
    """
    for root, dirs, files in os.walk(directory):
        for file in files:
            if file.endswith('.txt'):
                file_path = os.path.join(root, file)
                new_file_path = file_path.replace('.txt', '.md')
                os.rename(file_path, new_file_path)
                print(f"{file_path} -> {new_file_path}")

if __name__ == "__main__":
    directory = input("対象ディレクトリのパスを入力してください: ")
    rename_txt_to_md(directory)

このスクリプトを使用するには、以下の手順に従います。

  1. Pythonをインストールしてください。
  2. 上記のスクリプトをテキストエディタで開き、保存します(例:rename_txt_to_md.py)。
  3. ターミナルまたはコマンドプロンプトを開き、スクリプトの保存先ディレクトリに移動します。
  4. python rename_txt_to_md.pyと入力して、スクリプトを実行します。
  5. 対象ディレクトリのパスを入力して、Enterキーを押します。

スクリプトは、指定されたディレクトリ以下にあるすべてのテキストファイルの拡張子を、マークダウンファイルに変更します。変更されたファイルのパスは、コンソールに出力されます。

まとめ

Llama 3.3は、Metaが提供するオープンソースでGPT-4クラス性能を持つLLMであり、ローカルマシン上でもかなり実用レベルに近い速度・パフォーマンスを発揮する。

Llama 3.3によって、個人開発者が、自分のローカル環境で、高度なテキスト処理を完結させることができてしまう時代が到来した。

ほんの2年前までは想像もできなかったような性能の大規模言語モデルが、自分の手元にあるPCに降臨し、利用料金もゼロで、情報流出を心配することもなく、無限に使用することができるのは、かなり革命的だ。

これから先、MacやiPhoneのようなコンシューマーデバイスの処理能力が更に向上し、またLlama 3.3 70Bのような小パラメーターでも高性能なモデルの開発技術が進化すれば、みんなのノートPC・スマートフォン上に、GPT-4クラスのAIが常駐する未来も近いかもしれない。



Make a comment

*
*
* (公開されません)