ELYZAとLlama-3-ELYZA-JPモデルについて
ELYZAとは
ELYZAは、日本語の大規模言語モデル(LLM)を開発している企業であり、様々なAIソリューションを提供しています。特に日本語に特化したLLMの開発に力を入れており、そのモデルは無料デモとして公開されています。また、商用利用が可能な形での公開も行われており、研究や実務においても活用が期待されています。
Llama-3-ELYZA-JP-70B
- Llama-3-ELYZA-JP-70Bは、Llama 3をベースに日本語で追加学習を行った700億パラメータを持つモデルです。
- 無料デモが提供されており、試してみたい方はこちらから利用できます。
Llama-3-ELYZA-JP-8B
- Llama-3-ELYZA-JP-8Bは、80億パラメータを持つモデルで、商用利用が可能な形で一般公開されています。
- このモデルは、HuggingFace Hubからダウンロード可能です。
- ライセンスは、Llama 3 Community License に準拠しています。
ELYZAをローカルに構築する手順
ここでは、GPUがない環境で「Llama-3-ELYZA-JP-8B」を使用するための手順を解説します。
0.前提条件
- OS: Windows 11
- メモリ: 32GB
- CPU: Intel Core i7
- GPU: なし
- 開発環境: Python
1.LLMのダウンロード
GPUがない計算リソースの限られた環境を前提として、4bit量子化された「Llama-3-ELYZA-JP-8B-GGUF」を利用します。
以下の手順でダウンロードしてください。
-
HuggingFaceのモデルページにアクセスし、「Llama-3-ELYZA-JP-8B-q4_k_m.gguf」をダウンロードします。
- ファイルサイズ: 4.93GB
- ダウンロードには5分以上かかる場合があります。
-
ダウンロード後、モデルファイルを任意のパスに保存します。ここでは、
C:\LLMs\Llama-3-ELYZA-JP-8B-q4_k_m.gguf
に保存したと仮定して進めます。
2.LLMの利用方法
ダウンロードしたモデルをPythonスクリプトを使って利用します。以下のコードを任意のファイルに保存し、実行してください。
from llama_cpp import Llama
# モデルのロード
llm = Llama(
model_path="C:/LLMs/Llama-3-ELYZA-JP-8B-q4_k_m.gguf", # ダウンロードしたモデルのパス
chat_format="llama-3", # Llama 3のフォーマット指定
n_ctx=1024, # コンテキストの長さ
)
# チャットのリクエスト
response = llm.create_chat_completion(
messages=[
{
"role": "system",
"content": "あなたは誠実で優秀な日本人のアシスタントです。特に指示が無い場合は、常に日本語で回答してください。",
},
{
"role": "user",
"content": "カワウソについて、教えてください。",
},
],
max_tokens=1024, # 最大トークン数
)
# 結果の出力
print(response["choices"][0]["message"]["content"])
3.実行結果
このスクリプトを実行すると、以下のような出力が得られます。実行時間はおおよそ1~2分で、そのうち30秒~1分がモデルのロード時間です。ロード後は、create_chat_completion()
を繰り返し使うことができます。
出力例:
カワウソは、哺乳類の食肉目イタチ科に属する動物です。水生生物を主な食糧源としています。
以下に、カワウソの特徴を挙げます。
1. 外見: カワウソは、体長が約50-100cm、体重が約10-20kgの小型の哺乳類です。
2. 生息地: カワウソは、主にアジアとヨーロッパの河川、湖、湿地帯に生息しています。
3. 食性: カワウソは、魚、エビ、カニ、貝類などを捕食します。水中で泳ぎ回り、獲物を捕らえることができます。
4. 繁殖: カワウソは、春から夏にかけて繁殖期を迎え、1回の出産で2-8頭の幼獣を産みます。
5. 保護状況: カワウソは、絶滅危惧種に指定されています。生息地の破壊、水質汚染、捕獲、交通事故などが原因で、個体数が減少しています。
まとめ
この手順を利用すれば、Windows 11環境においてGPUがなくてもLlama-3-ELYZA-JP-8Bモデルを活用できます。ELYZAの日本語モデルは非常に強力であり、商用プロジェクトでも利用可能です。
より大規模なモデルや日本語に特化したLLMを使いたい方は、ぜひ試してみてください。