llama-cpp-python 使ってみた
llama.cpp立ち上げて使ってたんですけど
llama-cpp-pythonの方が使いやすそうなので使ってみることにします。
Metalを有効にインストール
# Metal ( MPS )でインストールするには、インストールする前に `LLAMA_METAL = on`環境変数を設定します:
CMAKE_ARGS="-DLLAMA_METAL=on" pip install llama-cpp-python
コード↓
from llama_cpp import Llama
llm = Llama(
model_path="../LLMModels/ArrowPro-7B-KUJIRA.Q8_0.gguf",
#n_gpu_layers=-1, # Uncomment to use GPU acceleration
# seed=1337, # Uncomment to set a specific seed
# n_ctx=2048, # Uncomment to increase the context window
)
output = llm(
"地球環境についてあなたの考えをお聞かせください", # Prompt
max_tokens=2048, # Generate up to 32 tokens, set to None to generate up to the end of the context window
#stop=["Q:", "\n"], # Stop generating just before the model would generate a new question
echo=True # Echo the prompt back in the output
) # Generate a completion, can also call create_completion
print(output)
14.33 tokens per second.
nglを有効にしてみる
from llama_cpp import Llama
llm = Llama(
model_path="../LLMModels/ArrowPro-7B-KUJIRA.Q8_0.gguf",
n_gpu_layers=-1, # Uncomment to use GPU acceleration
# seed=1337, # Uncomment to set a specific seed
# n_ctx=2048, # Uncomment to increase the context window
)
output = llm(
"地球環境についてあなたの考えをお聞かせください", # Prompt
max_tokens=2048, # Generate up to 32 tokens, set to None to generate up to the end of the context window
#stop=["Q:", "\n"], # Stop generating just before the model would generate a new question
echo=True # Echo the prompt back in the output
) # Generate a completion, can also call create_completion
print(output)
41.0261845006 token per seconds
やはりGPUの方が早いっぽい
あとllama-cpp-python使ってる途中で
ARM64バイナリ利用した方が性能上がることが書いてあったから試してみることにした
ARM64バイナリを利用する手順
Miniforgeのインストール: Miniforgeは、ARM64アーキテクチャ向けに最適化されたCondaディストリビューションです。以下の手順でMiniforgeをインストールします。
wget https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge3-MacOSX-arm64.sh
bash Miniforge3-MacOSX-arm64.sh
シェルの再起動: インストールが完了したら、シェルを再起動します。これにより、Condaの設定が反映されます。
Condaのバージョン確認: 以下のコマンドを実行して、Condaが正しくインストールされていることを確認します。
conda --version
新しいPython環境の作成: ARM64に最適化されたPython環境を作成します。
conda create -n myenv python=3.10
環境のアクティベート: 作成した環境をアクティベートします。
conda activate venv
必要なパッケージのインストール: ARM64バイナリで利用可能なパッケージをインストールします。例えば、NumPyをインストールする場合は以下のようにします。
conda install numpy
condaを使う場合新しくvenvフォルダがプロジェクトに追加されるわけじゃなくて
conda info --envs
で確認することになるのでプロジェクトごとにvenvの名前変える必要があると思った
41.186294233 token per seconds
あんま変わらないな
やり方合ってるかな??
出力的に
ストリーミングじゃなくて
一気に来るから
あれ?止まった?
と思った次の瞬間にどっとテキストが降ってくる感じ
AITuberで使う場合は
ちょっとした間ができてしまうかも
しかし今回はtoken数を2048にしているから出力で重くなってる
実際に使うときは入力が増えて
出力はむしろ少なくしたい
実用レベルのレイテンシであって欲しいな!
この記事が気に入ったらサポートをしてみませんか?