File size: 1,647 Bytes
13ff3a0 0131ab9 e3e355a c47d747 0131ab9 13ff3a0 6b3d762 13ff3a0 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 |
import csv
import json
# Given mapping
mapping = {
"humaneval": "humaneval-python",
"multiple-lua": "lua",
"multiple-java": "java",
"multiple-jl": "julia",
"multiple-cpp": "cpp",
"multiple-rs": "rust",
"multiple-rkt": "racket",
"multiple-php": "php",
"multiple-r": "r",
"multiple-js": "javascript",
"multiple-d": "d",
"multiple-swift": "swift"
}
BASE_PATH = "/fsx/loubna/projects/pr/test-4"
# JSON Data (replace this with your actual loaded JSON)
json_path = f"/fsx/loubna/projects/pr/eval_tmp/StarCoder2-15B-results.json"
with open(json_path, "r") as f:
json_data = json.load(f)
parsed_data = json_data['results']
# Create a dictionary with column names as keys and empty values
csv_columns = ["Models", "Size (B)", "Throughput (tokens/s)", "Seq_length", "#Languages", "humaneval-python", "java", "javascript", "cpp", "php", "julia", "d", "lua", "r", "racket", "rust", "swift", "Throughput (tokens/s) bs=50", "Peak Memory (MB)"]
row_data = {col: '' for col in csv_columns}
# Fill the dictionary with data from the JSON
for item in parsed_data:
csv_col = mapping.get(item['task'])
if csv_col:
row_data[csv_col] = round(item['pass@1'] * 100, 2)
# Set model name under the 'Models' column
row_data['Models'] = json_data['meta']['model']
# Write to CSV
csv_file = f"{BASE_PATH}/data/raw_scores.csv"
with open(csv_file, 'a', newline='') as csvfile:
writer = csv.DictWriter(csvfile, fieldnames=row_data.keys())
writer.writerow(row_data)
# print last 3 rows in csv
with open(csv_file, 'r') as f:
lines = f.readlines()
for line in lines[-3:]:
print(line)
|