🎉

Llama3.2をローカル環境(macOS)でサクッと動かしてみる

2024/09/30に公開

Llama 3.2をローカル環境で動かしてみた


Dall-E 3で作成

はじめに

先日Meta社より発表があったLlama 3.2を動かしてみました。Llama 3.2は前バージョンから大幅に改善され、特に小規模モデルの性能向上が注目されています。主な改善点として、文脈理解の向上、多言語サポートの強化、そして推論速度の改善が挙げられます。
この記事では、Llama 3.2の3Bモデル(3 Billion パラメータ)をローカル環境で簡単に実行する方法を紹介します。

アップデートの詳細については以下の記事にまとめていますのでご確認ください。
https://zenn.dev/shirochan/articles/e2fce912ca7cbf
https://zenn.dev/shirochan/articles/bfd1d6021c4f28

前提条件

使用するツール

今回はollamaを使用します。
https://ollama.com/

dockerの環境が事前に準備済みであること、dockerコマンドが利用できることが前提です。

実行環境

項目 仕様
マシン MacBook Air
CPU Apple M2
メモリ 16GB
OS Sonoma 14.7

実践

ollamaの準備

ollamaは、ローカル環境で様々な大規模言語モデル(LLM)を簡単に実行できるオープンソースのツールです。今回は、Docker上でollamaを準備し、Llama 3.2を実行します。

Docker環境の確認

まず、以下のコマンドでDocker環境が正しく設定されていることを確認します:

docker --version

ollamaコンテナの起動

次に、ollamaのDockerコンテナを起動します:

docker run -d -v ollama:/root/.ollama -p 11434:11434 --name ollama ollama/ollama

このコマンドの各部分の説明:

  • -d: バックグラウンドで実行
  • -v ollama:/root/.ollama: データの永続化
  • -p 11434:11434: ポートマッピング
  • --name ollama: コンテナ名の指定

GPU(NVIDIA/AMDなど)を使用する場合は、ollamaのDocker Hubを参考に適切なコマンドを実行してください。

モデルの実行と情報確認

dockerの環境が用意できたらLlama 3.2を実行し、モデル情報を確認します:

docker exec -it ollama ollama run llama3.2

デフォルトでは3Bが起動します。
1Bのモデルを起動させたい場合は:

docker exec -it ollama ollama run llama3.2:1b

としてコマンドを実行してください。

https://ollama.com/blog/llama3.2

モデルが起動したら、以下のコマンドでモデル情報を確認できます:

>>> /show info
  Model
    architecture        llama
    parameters          3.2B
    context length      131072
    embedding length    3072
    quantization        Q4_K_M

  Parameters
    stop    "<|start_header_id|>"
    stop    "<|end_header_id|>"
    stop    "<|eot_id|>"

  License
    LLAMA 3.2 COMMUNITY LICENSE AGREEMENT
    Llama 3.2 Version Release Date: September 25, 2024

この情報から、使用しているモデルが3.2Bパラメータを持つLlama 3.2であることが確認できます。

英語での動作確認

まずは英語で質問を投げてみます。

>>> what can you do ?
I'm an AI assistant, so I can help with a wide range of tasks and answer questions on various topics. Here are some examples:

1. **Answering questions**: I can provide information on history, science, technology, literature, arts, culture, health, and more.
2. **Language translation**: I can translate text from one language to another, including popular languages such as Spanish, French, German, Chinese, and many others.
3. **Writing assistance**: I can help with writing tasks, such as suggesting alternative phrases, providing grammar and spell check, and even generating text on a given topic.
4. **Conversation**: I can have a conversation with you, answering your questions and engaging in discussions on various topics.
5. **Jokes and humor**: I can share jokes, puns, and other forms of humor to brighten up your day!
6. **Trivia and games**: I can play simple games like Hangman or 20 Questions, and provide trivia answers on a wide range of topics.

What sounds interesting to you?

日本語での動作確認

次に日本語で質問してみます。

>>> あなたは何ができますか?
私は、以下のようなことができます。

1. **質問に答えます**: 歴史、科学、技術、文学、芸術、文化、健康などの幅広いトピックについて、答えを提供します。
2. **言語翻訳**: さまざまな言語からテキストを翻訳してくれます。日本語からの英語への翻訳も可能です。
3. **文書助け**: テキストに Suggestions を提供して、格調が高く美しく見えるようにします。また、グレーメリットチェックや、文章の整理もできます。
4. **会話**: 会話に参加し、質問を回答して、議論しましょう。
5. **笑いとユーモア**:笑いを誘って、ピューブリティーな質問を答えます。
6. **トランジットゲーム**: 20 questionsやHangmanなど、単純なゲームをプレイすることができます。

どんな機能が有用でしょうか?

問題なく動作していることが確認できます。

まとめ

軽量版がリリースされたLlama 3.2をローカル環境で実行してみました。ollamaにはLlama 3.2の1B/3Bモデルが既に登録されており、非常に簡単に試すことができました。

より大規模なモデル(11B/90B)を試したい場合は、Hugging Faceなどを利用するとよいでしょう。ただし、これらのモデルはより多くのリソース(メモリ、計算能力)を必要とするため、使用する際はご注意ください。

また、Open WebUIを利用すれば、Web UI上でのLlama 3.2の操作も可能です。これにより、より直感的なインターフェースでモデルを操作できます。

Discussion