LLM: using html to visualize the perf result for Arc (#9228)
* LLM: using html to visualize the perf result for Arc * deploy the html file * add python license * reslove some comments
This commit is contained in:
parent
90162264a3
commit
ec9195da42
3 changed files with 47 additions and 5 deletions
5
.github/workflows/llm_performance_tests.yml
vendored
5
.github/workflows/llm_performance_tests.yml
vendored
|
|
@ -127,5 +127,8 @@ jobs:
|
||||||
cd python/llm/dev/benchmark/all-in-one
|
cd python/llm/dev/benchmark/all-in-one
|
||||||
export http_proxy=${HTTP_PROXY}
|
export http_proxy=${HTTP_PROXY}
|
||||||
export https_proxy=${HTTPS_PROXY}
|
export https_proxy=${HTTPS_PROXY}
|
||||||
taskset -c 0-$((THREAD_NUM - 1)) python run.py
|
python run.py
|
||||||
curl -T ./*.csv ${LLM_FTP_URL}/llm/ggml-actions/perf/
|
curl -T ./*.csv ${LLM_FTP_URL}/llm/ggml-actions/perf/
|
||||||
|
cd ../../../test/benchmark
|
||||||
|
python csv_to_html.py -f ../../dev/benchmark/all-in-one
|
||||||
|
cp ./*.html /mnt/disk1/nightly_perf/
|
||||||
|
|
|
||||||
|
|
@ -59,9 +59,9 @@ def run_model(repo_id, test_api, in_out_pairs, local_model_hub=None, warm_up=1,
|
||||||
for in_out_pair in in_out_pairs:
|
for in_out_pair in in_out_pairs:
|
||||||
if result:
|
if result:
|
||||||
results.append([repo_id,
|
results.append([repo_id,
|
||||||
np.mean(result[in_out_pair], axis=0)[0],
|
round(np.mean(result[in_out_pair], axis=0)[0]*1000.0, 2),
|
||||||
np.mean(result[in_out_pair], axis=0)[1],
|
round(np.mean(result[in_out_pair], axis=0)[1]*1000.0, 2),
|
||||||
np.mean(result[in_out_pair], axis=0)[2],
|
round(np.mean(result[in_out_pair], axis=0)[2]*1000.0, 2),
|
||||||
in_out_pair,
|
in_out_pair,
|
||||||
f'{int(np.mean(result[in_out_pair], axis=0)[3])}' +
|
f'{int(np.mean(result[in_out_pair], axis=0)[3])}' +
|
||||||
f'-{int(np.mean(result[in_out_pair], axis=0)[4])}',
|
f'-{int(np.mean(result[in_out_pair], axis=0)[4])}',
|
||||||
|
|
@ -545,7 +545,7 @@ if __name__ == '__main__':
|
||||||
for api in conf.test_api:
|
for api in conf.test_api:
|
||||||
for model in conf.repo_id:
|
for model in conf.repo_id:
|
||||||
run_model(model, api, conf['in_out_pairs'], conf['local_model_hub'], conf['warm_up'], conf['num_trials'], conf['num_beams'])
|
run_model(model, api, conf['in_out_pairs'], conf['local_model_hub'], conf['warm_up'], conf['num_trials'], conf['num_beams'])
|
||||||
df = pd.DataFrame(results, columns=['model', '1st token avg latency (s)', '2+ avg latency (s/token)', 'encoder time (s)',
|
df = pd.DataFrame(results, columns=['model', '1st token avg latency (ms)', '2+ avg latency (ms/token)', 'encoder time (ms)',
|
||||||
'input/output tokens', 'actual input/output tokens', 'num_beams'])
|
'input/output tokens', 'actual input/output tokens', 'num_beams'])
|
||||||
df.to_csv(f'{current_dir}/{api}-results-{today}.csv')
|
df.to_csv(f'{current_dir}/{api}-results-{today}.csv')
|
||||||
results = []
|
results = []
|
||||||
|
|
|
||||||
39
python/llm/test/benchmark/csv_to_html.py
Normal file
39
python/llm/test/benchmark/csv_to_html.py
Normal file
|
|
@ -0,0 +1,39 @@
|
||||||
|
#
|
||||||
|
# Copyright 2016 The BigDL Authors.
|
||||||
|
#
|
||||||
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
# you may not use this file except in compliance with the License.
|
||||||
|
# You may obtain a copy of the License at
|
||||||
|
#
|
||||||
|
# http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
#
|
||||||
|
# Unless required by applicable law or agreed to in writing, software
|
||||||
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
# See the License for the specific language governing permissions and
|
||||||
|
# limitations under the License.
|
||||||
|
#
|
||||||
|
|
||||||
|
# Python program to convert CSV to HTML Table
|
||||||
|
|
||||||
|
import os
|
||||||
|
import sys
|
||||||
|
import argparse
|
||||||
|
import pandas as pd
|
||||||
|
|
||||||
|
def main():
|
||||||
|
parser = argparse.ArgumentParser(description="convert .csv file to .html file")
|
||||||
|
parser.add_argument("-f", "--folder_path", type=str, dest="folder_path",
|
||||||
|
help="The directory which stores the .csv file", default="../../dev/benchmark/all-in-one")
|
||||||
|
args = parser.parse_args()
|
||||||
|
|
||||||
|
csv_files = []
|
||||||
|
for file_name in os.listdir(args.folder_path):
|
||||||
|
file_path = os.path.join(args.folder_path, file_name)
|
||||||
|
if os.path.isfile(file_path) and file_name.endswith(".csv"):
|
||||||
|
csv_files.append(file_path)
|
||||||
|
|
||||||
|
a = pd.read_csv(csv_files[0], index_col=0).to_html(csv_files[0].split("/")[-1].split(".")[0]+".html")
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
sys.exit(main())
|
||||||
Loading…
Reference in a new issue