Local LLMをサクッと動作させてみる

こんにちは。
taanatsuです。

今回はLocal LLMを使ってみたくなったので、手元のMacでサクッと動かしてみます。

Local LLMとは?

ChatGPTやClaudeなどの生成系AIを手元のLocal環境で動かせるようにしたものです。
マシンスペックに左右はされますが、課金が不要なのは魅力的ですね。

環境

サンプル

実行環境準備

$ python3 -m venv venv
$ source venv/bin/activate

ライブラリの追加

今回はMeta社のllamaを使います。

$ pip install llama-cpp-python

サンプルコード

ひとまず main.py として保存します。

from llama_cpp import Llama

llm = Llama(
    model_path="Llama-3-ELYZA-JP-8B-q4_k_m.gguf",       # ダウンロード済みのModelファイルまでのパス
    chat_format="llama-3",                              # モデルとの対話形式を指定するパラメータ
    n_ctx=2048,                                         # モデルが一度に処理できるトークン(単語や文字の単位)の最大数
)

response = llm.create_chat_completion(
    messages=[
        {
            "role": "system",
            "content": "常に日本語で回答してください。",
        },
        {
            "role": "user",
            "content": "エキサイト株式会社のサービスについて教えて",
        },
    ],
    max_tokens=1024,
)

print(response["choices"][0]["message"]["content"])

コードは下記サイト様を参考にしました。

qiita.com

Modelのダウンロード

以下ページからダウンロードできます。(自己責任でお願いします)
必要なのは Llama-3-ELYZA-JP-8B-q4_k_m.gguf ファイルのみです。
main.pyと同じ階層においてください。

huggingface.co

実行

$ python main.py

実行結果

エキサイト株式会社は、日本のIT企業で、1997年に設立されました。同社は、インターネット関連サービスを中心に展開し、以下のようなサービスを提供しています。

1. ポータルサイト「エキサイト」: ニュース、天気、占い、求人、旅行、金融、など多数のコンテンツを提供する総合ポータルサイトです。
2. メールサービス「エキサイトメール」: フリーメールの提供をしています。@excite.co.jpのドメインでメールアドレスを取得することができます。
3. Webホスティング「エキサイトカラーホスティング」: Webサイトやブログを運営するために必要なWebサーバー、データベース、メールサーバーなどを提供するWebホスティングサービスです。
4. モバイルサービス「エキサイトモバイル」: モバイル向けのサービスで、メールやカレンダーなどを、パソコンと同期することができます。
5. 掲示板「エキサイト掲示板」: フォーラムやブログを提供し、ユーザー同士が情報交換やコミュニケーションを取ることができる場を提供しています。
6. オークション「エキサイトオークション」: オークション形式で商品を販売することができるサービスです。
7. 写真共有「エキサイトフォト」: 写真を共有することができるサービスで、アルバムの作成や共有、公開ができます。
8. ブログサービス「エキサイトブログ」: ブログの作成や運営をサポートするサービスで、簡単にブログを始めることができます。
9. アフィリエイト「エキサイトアフィリエイト」: 広告主の商品やサービスを紹介し、売上や成約に応じて報酬を得ることができるアフィリエイトプログラムです。

以上のように、エキサイト株式会社は、多様なインターネットサービスを提供し、ユーザーが便利に、楽しくインターネットを利用できる環境を整えています。

自分は中途入社なので知らないサービスもありますが、「エキサイト掲示板」は過去にあったのかはたまた終わってしまったサービスなのか……?
他にもちょこちょこ知らないサービスありますね。
若干情報が古い or 間違いがある気がしますが、それっぽく生成されていますね。

文章の要約などには結構使えそうです。

おわりに

まだまだAIは注目されていますね。
GPUマシンがなくともサクッとCPUで動かせる、しかもlocal環境で動かせるLLMも出てきて、今後の動向にも注目していきたいですね。

それではまた次回。