chore: import upstream snapshot with attribution
This commit is contained in:
@@ -0,0 +1,64 @@
|
||||
import matplotlib.pyplot as plt
|
||||
import numpy as np
|
||||
from collections import defaultdict
|
||||
import json
|
||||
import torch
|
||||
import argparse
|
||||
import random
|
||||
from transformers import AutoTokenizer
|
||||
from tqdm import tqdm
|
||||
import sys
|
||||
|
||||
sys.set_int_max_str_digits(0)
|
||||
|
||||
|
||||
def plot_histogram(data, bins=10, x_label="Value", y_label="Frequency", title="Histogram", output_file="histogram.png"):
|
||||
plt.hist(data, bins=bins, edgecolor='black', alpha=0.7)
|
||||
plt.xlabel(x_label)
|
||||
plt.ylabel(y_label)
|
||||
plt.title(title)
|
||||
plt.grid(True)
|
||||
# plt.show()
|
||||
plt.savefig(output_file)
|
||||
|
||||
|
||||
def main():
|
||||
parser = argparse.ArgumentParser()
|
||||
parser.add_argument("--input_file", type=str, required=True)
|
||||
parser.add_argument("--tokenizer", type=str)
|
||||
parser.add_argument("--sample", type=int, default=-1)
|
||||
parser.add_argument("--output_file", type=str, default="histogram.png")
|
||||
args = parser.parse_args()
|
||||
|
||||
tokenizer = AutoTokenizer.from_pretrained(args.tokenizer)
|
||||
|
||||
data = json.load(open(args.input_file))
|
||||
if args.sample > 0:
|
||||
data = random.sample(data, args.sample)
|
||||
pos_data = []
|
||||
neg_data = []
|
||||
for item in data:
|
||||
# if not item["pos_code"] or not item["neg_code"]:
|
||||
# continue
|
||||
# pos_data.append(item["pos_code"][0])
|
||||
# neg_data.append(item["neg_code"][0])
|
||||
if not item["pos"] or not item["neg"]:
|
||||
continue
|
||||
pos_data.append(item["pos"][0])
|
||||
neg_data.append(item["neg"][0])
|
||||
|
||||
res = tokenizer(pos_data + neg_data, padding=False)
|
||||
half = len(pos_data)
|
||||
|
||||
pos_lengths = [len(res["input_ids"][i]) for i in range(half)]
|
||||
neg_lengths = [len(res["input_ids"][i]) for i in range(half, len(res["input_ids"]))]
|
||||
|
||||
diffs = [pos_lengths[i] - neg_lengths[i] for i in range(half)]
|
||||
|
||||
# plot_histogram(pos_lengths, bins=20, x_label="Length", y_label="Frequency", title="Positive Length Distribution", output_file="pos_histogram.png")
|
||||
# plot_histogram(neg_lengths, bins=20, x_label="Length", y_label="Frequency", title="Negative Length Distribution", output_file="neg_histogram.png")
|
||||
plot_histogram(diffs, bins=20, x_label="Difference", y_label="Frequency", title="Difference Length Distribution", output_file="diff_histogram.png")
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
Reference in New Issue
Block a user