はじめに
前回Ubuntu 22.04にIPEX-LLMをインストールしてOllamaを実行しました。touch-sp.hatenablog.com
今回いろいろなモデルでベンチマークを取りました。
ベンチマーク測定方法
別のPC(Windows PC)のPythonからAPI連携してベンチマークを取りました。Pythonスクリプト
urlは各自変更して下さい。import requests import json def post_request(): url = "http://192.168.10.12:11434/api/generate" data = { #"model": "phi3:latest", #"model": "phi3:14b-medium-4k-instruct-q4_K_M", "model": "codellama:13b-python-q6_K", "prompt": "how to make gui with 3 buttons in pyside6", "options": { "max_tokens": 500, "temperature": 0.5, } } response = requests.post(url, json=data) if response.status_code == 200: response_list = list(response.iter_lines()) decoded_line = json.loads(response_list[-1].decode('utf-8')) eval_count = decoded_line.get("eval_count") eval_duration = decoded_line.get("eval_duration") return eval_count, eval_duration if __name__ == "__main__": tokens_list = [] time_list = [] for _ in range(3): eval_count, eval_duration = post_request() tokens_list.append(eval_count) time_list.append(eval_duration) total_tokens = sum(tokens_list) total_time = sum(time_list) rate = (total_tokens / total_time) * 10**9 print(f"tokens per second: {rate:.2f} tokens/second")
結果
CPU(Intel Core i7 11700)とGPU(Intel Arc A770)を比較しています。phi3:3.8b (model size: 2.4GB)
CPUtokens per second: 14.11 tokens/second
GPU
tokens per second: 52.11 tokens/second
phi3:14b-medium-4k-instruct-q4_K_M (model size: 8.6GB)
CPUtokens per second: 4.21 tokens/second
GPU
tokens per second: 19.83 tokens/second
codellama:13b-python-q6_K (model size: 10GB)
CPUtokens per second: 3.39 tokens/second
GPU
tokens per second: 25.70 tokens/second
aya:35b-23-q4_0 (model size: 20GB)
Intel Arc A770のVRAM 16GBを超えているモデルです。「export OLLAMA_NUM_GPU=28」で実行しました。それ以上の数字を設定するとPCが固まりました。
CPUは測定していません。
GPU
tokens per second: 3.42 tokens/second
![このエントリーをはてなブックマークに追加](https://b.st-hatena.com/images/v4/public/entry-button/button-only@2x.png)