mirror of
https://github.com/wassname/Judgemark-v2lp.git
synced 2026-08-11 11:12:53 +08:00
results
This commit is contained in:
@@ -1,3 +1,5 @@
|
||||
results/
|
||||
outputs/
|
||||
.env
|
||||
.vscode
|
||||
backup
|
||||
|
||||
@@ -1,11 +1,32 @@
|
||||
Fork of judgemark to see if using weighted logprob, or ranklogprob work better than the current method
|
||||
|
||||
|
||||
Results
|
||||
|
||||
| Method | Final Judgemark (raw) | Final Judgemark (cal) |
|
||||
| --------------------------- | --------------------- | --------------------- |
|
||||
| **Normed logp** | 0.673 | 0.736 |
|
||||
| Weighted | 0.635 | 0.660 |
|
||||
| argmax (regular) | 0.635 | 0.659 |
|
||||
| ranked (without stretching) | 0.336 | 0.284 |
|
||||
|
||||
Here normed logp, takes the logprobs of the choices [0,10] for each raning. Then it normalises each rating `logprobs - logprobs.mean()`. Then it use kendall's tau to see which is consistent with a high score.
|
||||
|
||||
TODO try norm then weight
|
||||
|
||||
Changes
|
||||
- openrouters only
|
||||
- get logprobs
|
||||
- added options
|
||||
- `--score-weighted`
|
||||
- `--score-ranklog`
|
||||
- [x] openrouters only
|
||||
- [x] get logprobs
|
||||
- [x] also get weighted and ranklogprobs and their scores
|
||||
|
||||
|
||||
note the rererence scores are https://old.reddit.com/r/LocalLLaMA/comments/1cd2jco/judgemark_how_well_a_llm_judge_can_evaluate/
|
||||
|
||||
correlation with arena elo
|
||||
correlation with eq-bench
|
||||
standard deviation of the test model scores (indicates reliable separation over multiple test items)
|
||||
cluster analysis (ANOVA f-statistic)
|
||||
|
||||
|
||||
models
|
||||
- meta-llama/llama-3.2-3b-instruct
|
||||
@@ -14,16 +35,27 @@ models
|
||||
- nousresearch/hermes-3-llama-3.1-405b
|
||||
|
||||
```bash
|
||||
python judgemark_v2.py \
|
||||
# test
|
||||
uv run python judgemark_v2.py \
|
||||
--judge-model "meta-llama/llama-3.2-3b-instruct" \
|
||||
--samples-file data/judgemark_v2.1_samples.json \
|
||||
--prompts-file data/judge_prompts.json \
|
||||
--runs-file my_judgemark_runs.json \
|
||||
--runs-file outputs/my_judgemark_runs.json \
|
||||
--threads 1 \
|
||||
--num-runs 1 \
|
||||
--save-raw-judge-output
|
||||
|
||||
uv run python judgemark_v2.py \
|
||||
--judge-model "deepseek/deepseek-chat-v3-0324" \
|
||||
--samples-file data/judgemark_v2.1_samples.json \
|
||||
--prompts-file data/judge_prompts.json \
|
||||
--runs-file outputs/my_judgemark_runs2.json \
|
||||
--num-runs 1 \
|
||||
--save-raw-judge-output
|
||||
```
|
||||
|
||||
nbs/01_res.ipunb
|
||||
|
||||
## Results
|
||||
|
||||
TODO
|
||||
|
||||
@@ -71,8 +71,8 @@ def parse_args():
|
||||
parser.add_argument(
|
||||
'--save-raw-judge-output',
|
||||
action='store_true',
|
||||
default=True,
|
||||
help='If set, store the raw judge model output in the results JSON (default: true)'
|
||||
default=False,
|
||||
help='If set, store the raw judge model output in the results JSON (default: false)'
|
||||
)
|
||||
parser.add_argument(
|
||||
'--score-weighted',
|
||||
@@ -83,7 +83,7 @@ def process_sample(model_name: str, iteration_key: str, item_id: str, item_text:
|
||||
|
||||
if save_raw_judge_output:
|
||||
storage_dict["judge_response"] = judge_response
|
||||
storage_dict["logprobs"] = logprobs
|
||||
storage_dict["logp"] = logp
|
||||
|
||||
iteration_dict[item_id] = storage_dict
|
||||
runs[run_key]["results"][model_name][iteration_key] = iteration_dict
|
||||
@@ -111,7 +111,7 @@ def process_sample(model_name: str, iteration_key: str, item_id: str, item_text:
|
||||
})
|
||||
save_json_file(runs, runs_file)
|
||||
|
||||
def finalize_scores_and_compute_judgemark(runs: dict, run_key: str, samples_data: dict):
|
||||
def finalize_scores_and_compute_judgemark(runs: dict, run_key: str, samples_data: dict, score_key="aggregated_score_raw"):
|
||||
"""
|
||||
Compute metrics for both raw and calibrated scores, including stability tests,
|
||||
normalized components, and detailed distributions.
|
||||
@@ -142,8 +142,8 @@ def finalize_scores_and_compute_judgemark(runs: dict, run_key: str, samples_data
|
||||
|
||||
for item_id, item_info in it_val.items():
|
||||
if (isinstance(item_info, dict) and
|
||||
"aggregated_score_raw" in item_info):
|
||||
raw_score = item_info["aggregated_score_raw"]
|
||||
score_key in item_info):
|
||||
raw_score = item_info[score_key]
|
||||
|
||||
# Collect raw score globally
|
||||
raw_scores_by_model_all[model_name].append(raw_score)
|
||||
@@ -185,7 +185,7 @@ def finalize_scores_and_compute_judgemark(runs: dict, run_key: str, samples_data
|
||||
continue
|
||||
for item_id, item_info in it_val.items():
|
||||
if (isinstance(item_info, dict) and
|
||||
"aggregated_score_raw" in item_info):
|
||||
score_key in item_info):
|
||||
item_info["aggregated_score_calibrated"] = calibrated[idx]
|
||||
idx += 1
|
||||
|
||||
@@ -351,7 +351,7 @@ def finalize_scores_and_compute_judgemark(runs: dict, run_key: str, samples_data
|
||||
run_data["final_judgemark_score"] = final_score_calibrated
|
||||
|
||||
# 10. Create visualizations + logs
|
||||
create_side_by_side_score_charts(run_data, run_data["judge_model"], samples_data)
|
||||
create_side_by_side_score_charts(run_data, run_data["judge_model"], samples_data, method=score_key[:3])
|
||||
|
||||
log_score_summary(
|
||||
"RAW SCORES",
|
||||
@@ -366,6 +366,10 @@ def finalize_scores_and_compute_judgemark(runs: dict, run_key: str, samples_data
|
||||
|
||||
logger.info(f"Final Judgemark (raw) = {final_score_raw:.3f}")
|
||||
logger.info(f"Final Judgemark (cal) = {final_score_calibrated:.3f}")
|
||||
return {
|
||||
"final_judgemark_score_raw": final_score_raw,
|
||||
"final_judgemark_score_calibrated": final_score_calibrated,
|
||||
}
|
||||
|
||||
|
||||
def sanitize_model_name(name: str) -> str:
|
||||
@@ -467,7 +471,7 @@ def run_judgemark_v2(
|
||||
try:
|
||||
if num_threads <= 1:
|
||||
# Single-threaded mode
|
||||
for item in items_to_process:
|
||||
for item in tqdm(items_to_process):
|
||||
if should_exit:
|
||||
break
|
||||
process_sample(
|
||||
@@ -542,7 +546,9 @@ def run_judgemark_v2(
|
||||
lock, num_threads
|
||||
)
|
||||
# Compute final stats
|
||||
finalize_scores_and_compute_judgemark(runs, run_key, samples_data)
|
||||
finalize_scores_and_compute_judgemark(runs, run_key, samples_data, score_key="aggregated_score_raw")
|
||||
finalize_scores_and_compute_judgemark(runs, run_key, samples_data, score_key="aggregated_score_weighted")
|
||||
finalize_scores_and_compute_judgemark(runs, run_key, samples_data, score_key="aggregated_score_ranked")
|
||||
|
||||
# Save final
|
||||
save_json_file(runs, runs_file)
|
||||
|
||||
@@ -9,9 +9,11 @@ STABILITY_ITEMS = [
|
||||
STABILITY_REPS = 100
|
||||
|
||||
# Reference scores for correlation
|
||||
# note the rererence scores are https://old.reddit.com/r/LocalLLaMA/comments/1cd2jco/judgemark_how_well_a_llm_judge_can_evaluate/
|
||||
# correlation with arena elo https://huggingface.co/spaces/lmarena-ai/chatbot-arena-leaderboard
|
||||
REFERENCE_MODEL_SCORES = {
|
||||
"DeepSeek-R1": 1430, # !! need to update this
|
||||
"gpt-4o-2024-11-20": 1402,
|
||||
"DeepSeek-R1": 1357,
|
||||
"gemini-1.5-pro-002": 1333,
|
||||
"gemini-1.5-pro-001": 1276,
|
||||
"claude-3-5-sonnet-20240620": 1243,
|
||||
|
||||
@@ -335,9 +335,16 @@ def compute_ranked_score(logp):
|
||||
outs = {}
|
||||
choices = np.arange(11) # Choices are 0-10
|
||||
for metric, logp_arr in logp.items():
|
||||
res = kendalltau(choices, logp_arr, variant='b')
|
||||
# res = kendalltau(choices, logp_arr, variant='b')
|
||||
|
||||
# lets just use the common numbers 1,3,5,7,9, as some models like to skip some
|
||||
res = kendalltau(choices[1::2], logp_arr[1::2], variant='b')
|
||||
# print(res.correlation, res.pvalue, res2.correlation, res2.pvalue)
|
||||
# correlation weighted by pvalue
|
||||
decision =(res.correlation-0.5)*res.pvalue+0.5
|
||||
|
||||
|
||||
decision = (res.correlation+1)*5 # scale to 0-10
|
||||
# decision = (2*decision*res.pvalue).clip(0, 10)
|
||||
outs[metric] = decision.item()
|
||||
|
||||
return outs
|
||||
|
||||
@@ -8,7 +8,7 @@ from scipy.stats import spearmanr, theilslopes
|
||||
from judgemark_v2lp.config.constants import NEGATIVE_MARKERS, MODEL_NAME_REPLACEMENTS
|
||||
|
||||
|
||||
def create_side_by_side_score_charts(run_data: Dict, judge_model: str, samples_data: Dict):
|
||||
def create_side_by_side_score_charts(run_data: Dict, judge_model: str, samples_data: Dict, method: str = "raw"):
|
||||
"""
|
||||
Produces two figures:
|
||||
• Figure #1 with three subplots side-by-side:
|
||||
@@ -143,12 +143,16 @@ def create_side_by_side_score_charts(run_data: Dict, judge_model: str, samples_d
|
||||
|
||||
# Adjust layout with more space
|
||||
plt.tight_layout(rect=[0, 0.03, 1, 0.95])
|
||||
|
||||
plt.savefig(f"results/charts/judgemark_3chart_{sanitized_judge}.png",
|
||||
bbox_inches='tight',
|
||||
dpi=150,
|
||||
pad_inches=0.5)
|
||||
plt.close(fig1)
|
||||
|
||||
if plt.get_backend() == "inline":
|
||||
# In Jupyter, we show the figure inline
|
||||
plt.show()
|
||||
else:
|
||||
plt.savefig(f"results/charts/judgemark_3chart_{method}_{sanitized_judge}.png",
|
||||
bbox_inches='tight',
|
||||
dpi=150,
|
||||
pad_inches=0.5)
|
||||
plt.close(fig1)
|
||||
|
||||
# -------------------------------------------------------------------
|
||||
# 2) Second Figure: A 4×4 grid of scatter plots (per-model),
|
||||
@@ -236,5 +240,9 @@ def create_side_by_side_score_charts(run_data: Dict, judge_model: str, samples_d
|
||||
axes2[row, col].axis("off")
|
||||
|
||||
plt.tight_layout()
|
||||
plt.savefig(f"results/charts/judgemark_scattergrid_{sanitized_judge}.png", bbox_inches='tight', dpi=200)
|
||||
plt.close(fig2)
|
||||
if plt.get_backend() == "inline":
|
||||
# In Jupyter, we show the figure inline
|
||||
plt.show()
|
||||
else:
|
||||
plt.savefig(f"results/charts/judgemark_scattergrid_{method}_{sanitized_judge}.png", bbox_inches='tight', dpi=200)
|
||||
plt.close(fig2)
|
||||
|
||||
@@ -0,0 +1,67 @@
|
||||
{
|
||||
"cells": [
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": null,
|
||||
"id": "bdc690c6",
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"\n",
|
||||
"from judgemark_v2lp.utils.file_io import load_json_file, save_json_file\n",
|
||||
"from judgemark_v2lp.benchmark import sanitize_model_name, finalize_scores_and_compute_judgemark\n",
|
||||
"import uuid\n",
|
||||
"from tqdm import tqdm\n"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": null,
|
||||
"id": "edd6567d",
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"run_id=None\n",
|
||||
"\n",
|
||||
"samples_file = \"../data/judgemark_v2.1_samples.json\"\n",
|
||||
"samples_data = load_json_file(samples_file)\n",
|
||||
"json_file = \"outputs/my_judgemark_runs.json\"\n",
|
||||
"runs = load_json_file(json_file)\n",
|
||||
"runs.keys()\n"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": null,
|
||||
"id": "337ad718",
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"judge_model="
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": null,
|
||||
"id": "5a0834fe",
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"sanitized_jm = sanitize_model_name(judge_model)\n",
|
||||
"base_id = run_id if run_id else str(uuid.uuid4())\n",
|
||||
"run_key = f\"{base_id}__{sanitized_jm}\"\n",
|
||||
"# Compute final stats\n",
|
||||
"finalize_scores_and_compute_judgemark(runs, run_key, samples_data, score_key=\"aggregated_score_raw\")\n",
|
||||
"finalize_scores_and_compute_judgemark(runs, run_key, samples_data, score_key=\"aggregated_score_weighted\")\n",
|
||||
"finalize_scores_and_compute_judgemark(runs, run_key, samples_data, score_key=\"aggregated_score_ranked\")"
|
||||
]
|
||||
}
|
||||
],
|
||||
"metadata": {
|
||||
"language_info": {
|
||||
"name": "python"
|
||||
}
|
||||
},
|
||||
"nbformat": 4,
|
||||
"nbformat_minor": 5
|
||||
}
|
||||
File diff suppressed because one or more lines are too long
@@ -5,8 +5,10 @@ description = "**Judgemark V2** is a benchmark that evaluates how well a languag
|
||||
readme = "README.md"
|
||||
requires-python = ">=3.10"
|
||||
dependencies = [
|
||||
"great-tables>=0.18.0",
|
||||
"loguru>=0.7.3",
|
||||
"matplotlib>=3.7",
|
||||
"polars>=1.31.0",
|
||||
"python-dotenv>=1.1.1",
|
||||
"scipy>=1.10",
|
||||
"transformers>=4.26",
|
||||
|
||||
@@ -0,0 +1,41 @@
|
||||
# 2025-07-23 23:57:26
|
||||
using meta-llama_llama-3_2-3b-instruct
|
||||
|
||||
aggregated_score_raw
|
||||
Final Judgemark (raw) = 0.088
|
||||
Final Judgemark (cal) = 0.089
|
||||
|
||||
|
||||
aggregated_score_weighted
|
||||
Final Judgemark (raw) = 0.089
|
||||
Final Judgemark (cal) = 0.102
|
||||
|
||||
aggregated_score_ranked
|
||||
Final Judgemark (raw) = 0.034
|
||||
Final Judgemark (cal) = 0.030
|
||||
#
|
||||
|
||||
Hm maybe I should try without p value, maybe with restricted scale
|
||||
got to load the saved logp from the runfile
|
||||
|
||||
# 2025-07-25 19:30:21
|
||||
|
||||
Withdeepseek
|
||||
|
||||
Normed logp
|
||||
Final Judgemark (raw) = 0.673
|
||||
Final Judgemark (cal) = 0.736
|
||||
|
||||
Weighted
|
||||
Final Judgemark (raw) = 0.635
|
||||
Final Judgemark (cal) = 0.660
|
||||
|
||||
argmax
|
||||
Final Judgemark (raw) = 0.635
|
||||
Final Judgemark (cal) = 0.659
|
||||
|
||||
normal ranked (without stretching)
|
||||
|
||||
normed and weighted
|
||||
Final Judgemark (raw) = 0.624
|
||||
Final Judgemark (cal) = 0.645
|
||||
@@ -24,6 +24,15 @@ wheels = [
|
||||
{ url = "https://files.pythonhosted.org/packages/25/8a/c46dcc25341b5bce5472c718902eb3d38600a903b14fa6aeecef3f21a46f/asttokens-3.0.0-py3-none-any.whl", hash = "sha256:e3078351a059199dd5138cb1c706e6430c05eff2ff136af5eb4790f9d28932e2", size = 26918, upload-time = "2024-11-30T04:30:10.946Z" },
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "babel"
|
||||
version = "2.17.0"
|
||||
source = { registry = "https://pypi.org/simple" }
|
||||
sdist = { url = "https://files.pythonhosted.org/packages/7d/6b/d52e42361e1aa00709585ecc30b3f9684b3ab62530771402248b1b1d6240/babel-2.17.0.tar.gz", hash = "sha256:0c54cffb19f690cdcc52a3b50bcbf71e07a808d1c80d549f2459b9d2cf0afb9d", size = 9951852, upload-time = "2025-02-01T15:17:41.026Z" }
|
||||
wheels = [
|
||||
{ url = "https://files.pythonhosted.org/packages/b7/b8/3fe70c75fe32afc4bb507f75563d39bc5642255d1d94f1f23604725780bf/babel-2.17.0-py3-none-any.whl", hash = "sha256:4d0b53093fdfb4b21c92b5213dba5a1b23885afa8383709427046b21c366e5f2", size = 10182537, upload-time = "2025-02-01T15:17:37.39Z" },
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "certifi"
|
||||
version = "2025.7.14"
|
||||
@@ -172,6 +181,15 @@ wheels = [
|
||||
{ url = "https://files.pythonhosted.org/packages/e6/75/49e5bfe642f71f272236b5b2d2691cf915a7283cc0ceda56357b61daa538/comm-0.2.2-py3-none-any.whl", hash = "sha256:e6fb86cb70ff661ee8c9c14e7d36d6de3b4066f1441be4063df9c5009f0a64d3", size = 7180, upload-time = "2024-03-12T16:53:39.226Z" },
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "commonmark"
|
||||
version = "0.9.1"
|
||||
source = { registry = "https://pypi.org/simple" }
|
||||
sdist = { url = "https://files.pythonhosted.org/packages/60/48/a60f593447e8f0894ebb7f6e6c1f25dafc5e89c5879fdc9360ae93ff83f0/commonmark-0.9.1.tar.gz", hash = "sha256:452f9dc859be7f06631ddcb328b6919c67984aca654e5fefb3914d54691aed60", size = 95764, upload-time = "2019-10-04T15:37:39.817Z" }
|
||||
wheels = [
|
||||
{ url = "https://files.pythonhosted.org/packages/b1/92/dfd892312d822f36c55366118b95d914e5f16de11044a27cf10a7d71bbbf/commonmark-0.9.1-py2.py3-none-any.whl", hash = "sha256:da2f38c92590f83de410ba1a3cbceafbc74fee9def35f9251ba9a971d6d66fd9", size = 51068, upload-time = "2019-10-04T15:37:37.674Z" },
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "contourpy"
|
||||
version = "1.3.2"
|
||||
@@ -304,6 +322,18 @@ wheels = [
|
||||
{ url = "https://files.pythonhosted.org/packages/7b/8f/c4d9bafc34ad7ad5d8dc16dd1347ee0e507a52c3adb6bfa8887e1c6a26ba/executing-2.2.0-py2.py3-none-any.whl", hash = "sha256:11387150cad388d62750327a53d3339fad4888b39a6fe233c3afbb54ecffd3aa", size = 26702, upload-time = "2025-01-22T15:41:25.929Z" },
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "faicons"
|
||||
version = "0.2.2"
|
||||
source = { registry = "https://pypi.org/simple" }
|
||||
dependencies = [
|
||||
{ name = "htmltools" },
|
||||
]
|
||||
sdist = { url = "https://files.pythonhosted.org/packages/06/e8/c12ef85c4444616ab1c1e96d5ecbadc8046d40b34797308846a2cfc06c80/faicons-0.2.2.tar.gz", hash = "sha256:6b7d7b19180179b6b83783f91bf6c9311c0f00ae0f97d41be1d24d9942361659", size = 604434, upload-time = "2024-01-16T23:27:21.634Z" }
|
||||
wheels = [
|
||||
{ url = "https://files.pythonhosted.org/packages/65/3c/1db1b0f878319bb227f35a0fca7cad64e1f528b518bcab1a708da305c86d/faicons-0.2.2-py3-none-any.whl", hash = "sha256:d45d7c2635b53582a3375c67d7e975a28a91d2c16ef5f6b5033b5cdd507224b6", size = 607225, upload-time = "2024-01-16T23:27:19.475Z" },
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "filelock"
|
||||
version = "3.18.0"
|
||||
@@ -363,6 +393,26 @@ wheels = [
|
||||
{ url = "https://files.pythonhosted.org/packages/2f/e0/014d5d9d7a4564cf1c40b5039bc882db69fd881111e03ab3657ac0b218e2/fsspec-2025.7.0-py3-none-any.whl", hash = "sha256:8b012e39f63c7d5f10474de957f3ab793b47b45ae7d39f2fb735f8bbe25c0e21", size = 199597, upload-time = "2025-07-15T16:05:19.529Z" },
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "great-tables"
|
||||
version = "0.18.0"
|
||||
source = { registry = "https://pypi.org/simple" }
|
||||
dependencies = [
|
||||
{ name = "babel" },
|
||||
{ name = "commonmark" },
|
||||
{ name = "faicons" },
|
||||
{ name = "htmltools" },
|
||||
{ name = "importlib-metadata" },
|
||||
{ name = "importlib-resources" },
|
||||
{ name = "numpy", version = "2.2.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" },
|
||||
{ name = "numpy", version = "2.3.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" },
|
||||
{ name = "typing-extensions" },
|
||||
]
|
||||
sdist = { url = "https://files.pythonhosted.org/packages/49/3f/7cb44926c661fd1cd6c3a773aa858dca70bd57fbdded31b597f1e8d1a850/great_tables-0.18.0.tar.gz", hash = "sha256:7e5773e878ba20f2aa2e00e511f8aae2bc31bdda90a6441756d0719276d7b164", size = 12541288, upload-time = "2025-07-10T15:16:19.971Z" }
|
||||
wheels = [
|
||||
{ url = "https://files.pythonhosted.org/packages/df/0e/1b5649e637b456ffd76bd7e83eb7abd12203030ca8b3262199c46754b965/great_tables-0.18.0-py3-none-any.whl", hash = "sha256:24fff29aa73a7e8018e871786dc9384111864cbc38eea5a409861ea3d8c4d880", size = 1386145, upload-time = "2025-07-10T15:16:18.24Z" },
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "hf-xet"
|
||||
version = "1.1.5"
|
||||
@@ -378,6 +428,19 @@ wheels = [
|
||||
{ url = "https://files.pythonhosted.org/packages/f0/55/ef77a85ee443ae05a9e9cba1c9f0dd9241eb42da2aeba1dc50f51154c81a/hf_xet-1.1.5-cp37-abi3-win_amd64.whl", hash = "sha256:73e167d9807d166596b4b2f0b585c6d5bd84a26dea32843665a8b58f6edba245", size = 2738931, upload-time = "2025-06-20T21:48:39.482Z" },
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "htmltools"
|
||||
version = "0.6.0"
|
||||
source = { registry = "https://pypi.org/simple" }
|
||||
dependencies = [
|
||||
{ name = "packaging" },
|
||||
{ name = "typing-extensions" },
|
||||
]
|
||||
sdist = { url = "https://files.pythonhosted.org/packages/cd/1d/c568d17e9fb5ad5aa0ca3531c58d36fe69deb8eee4e53ff6425c1f99f210/htmltools-0.6.0.tar.gz", hash = "sha256:e8a3fb023d748935035db7ff17f620612ffc814a6a80b6ae388f7b7ab182adf7", size = 97152, upload-time = "2024-10-29T20:21:43.378Z" }
|
||||
wheels = [
|
||||
{ url = "https://files.pythonhosted.org/packages/0a/ba/aa99706246f1938ca905eb6eeb7db832ac2e157aa4b805acb5cd4cd1791a/htmltools-0.6.0-py3-none-any.whl", hash = "sha256:072a274ff5e2851e0acce13fc5bb2bbdbbad8268dc8b123f881c05012ce7dce0", size = 84954, upload-time = "2024-10-29T20:21:42.067Z" },
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "huggingface-hub"
|
||||
version = "0.33.4"
|
||||
@@ -406,6 +469,27 @@ wheels = [
|
||||
{ url = "https://files.pythonhosted.org/packages/76/c6/c88e154df9c4e1a2a66ccf0005a88dfb2650c1dffb6f5ce603dfbd452ce3/idna-3.10-py3-none-any.whl", hash = "sha256:946d195a0d259cbba61165e88e65941f16e9b36ea6ddb97f00452bae8b1287d3", size = 70442, upload-time = "2024-09-15T18:07:37.964Z" },
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "importlib-metadata"
|
||||
version = "8.7.0"
|
||||
source = { registry = "https://pypi.org/simple" }
|
||||
dependencies = [
|
||||
{ name = "zipp" },
|
||||
]
|
||||
sdist = { url = "https://files.pythonhosted.org/packages/76/66/650a33bd90f786193e4de4b3ad86ea60b53c89b669a5c7be931fac31cdb0/importlib_metadata-8.7.0.tar.gz", hash = "sha256:d13b81ad223b890aa16c5471f2ac3056cf76c5f10f82d6f9292f0b415f389000", size = 56641, upload-time = "2025-04-27T15:29:01.736Z" }
|
||||
wheels = [
|
||||
{ url = "https://files.pythonhosted.org/packages/20/b0/36bd937216ec521246249be3bf9855081de4c5e06a0c9b4219dbeda50373/importlib_metadata-8.7.0-py3-none-any.whl", hash = "sha256:e5dd1551894c77868a30651cef00984d50e1002d06942a7101d34870c5f02afd", size = 27656, upload-time = "2025-04-27T15:29:00.214Z" },
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "importlib-resources"
|
||||
version = "6.5.2"
|
||||
source = { registry = "https://pypi.org/simple" }
|
||||
sdist = { url = "https://files.pythonhosted.org/packages/cf/8c/f834fbf984f691b4f7ff60f50b514cc3de5cc08abfc3295564dd89c5e2e7/importlib_resources-6.5.2.tar.gz", hash = "sha256:185f87adef5bcc288449d98fb4fba07cea78bc036455dd44c5fc4a2fe78fed2c", size = 44693, upload-time = "2025-01-03T18:51:56.698Z" }
|
||||
wheels = [
|
||||
{ url = "https://files.pythonhosted.org/packages/a4/ed/1f1afb2e9e7f38a545d628f864d562a5ae64fe6f7a10e28ffb9b185b4e89/importlib_resources-6.5.2-py3-none-any.whl", hash = "sha256:789cfdc3ed28c78b67a06acb8126751ced69a3d5f79c095a98298cd8a760ccec", size = 37461, upload-time = "2025-01-03T18:51:54.306Z" },
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "ipykernel"
|
||||
version = "6.30.0"
|
||||
@@ -527,8 +611,10 @@ name = "judgemark-v2lp"
|
||||
version = "0.1.0"
|
||||
source = { editable = "." }
|
||||
dependencies = [
|
||||
{ name = "great-tables" },
|
||||
{ name = "loguru" },
|
||||
{ name = "matplotlib" },
|
||||
{ name = "polars" },
|
||||
{ name = "python-dotenv" },
|
||||
{ name = "scipy", version = "1.15.3", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" },
|
||||
{ name = "scipy", version = "1.16.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" },
|
||||
@@ -543,8 +629,10 @@ dev = [
|
||||
|
||||
[package.metadata]
|
||||
requires-dist = [
|
||||
{ name = "great-tables", specifier = ">=0.18.0" },
|
||||
{ name = "loguru", specifier = ">=0.7.3" },
|
||||
{ name = "matplotlib", specifier = ">=3.7" },
|
||||
{ name = "polars", specifier = ">=1.31.0" },
|
||||
{ name = "python-dotenv", specifier = ">=1.1.1" },
|
||||
{ name = "scipy", specifier = ">=1.10" },
|
||||
{ name = "transformers", specifier = ">=4.26" },
|
||||
@@ -1036,6 +1124,20 @@ wheels = [
|
||||
{ url = "https://files.pythonhosted.org/packages/fe/39/979e8e21520d4e47a0bbe349e2713c0aac6f3d853d0e5b34d76206c439aa/platformdirs-4.3.8-py3-none-any.whl", hash = "sha256:ff7059bb7eb1179e2685604f4aaf157cfd9535242bd23742eadc3c13542139b4", size = 18567, upload-time = "2025-05-07T22:47:40.376Z" },
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "polars"
|
||||
version = "1.31.0"
|
||||
source = { registry = "https://pypi.org/simple" }
|
||||
sdist = { url = "https://files.pythonhosted.org/packages/fd/f5/de1b5ecd7d0bd0dd87aa392937f759f9cc3997c5866a9a7f94eabf37cd48/polars-1.31.0.tar.gz", hash = "sha256:59a88054a5fc0135386268ceefdbb6a6cc012d21b5b44fed4f1d3faabbdcbf32", size = 4681224, upload-time = "2025-06-18T12:00:46.24Z" }
|
||||
wheels = [
|
||||
{ url = "https://files.pythonhosted.org/packages/3d/6e/bdd0937653c1e7a564a09ae3bc7757ce83fedbf19da600c8b35d62c0182a/polars-1.31.0-cp39-abi3-macosx_10_12_x86_64.whl", hash = "sha256:ccc68cd6877deecd46b13cbd2663ca89ab2a2cb1fe49d5cfc66a9cef166566d9", size = 34511354, upload-time = "2025-06-18T11:59:40.048Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/77/fe/81aaca3540c1a5530b4bc4fd7f1b6f77100243d7bb9b7ad3478b770d8b3e/polars-1.31.0-cp39-abi3-macosx_11_0_arm64.whl", hash = "sha256:a94c5550df397ad3c2d6adc212e59fd93d9b044ec974dd3653e121e6487a7d21", size = 31377712, upload-time = "2025-06-18T11:59:45.104Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/b8/d9/5e2753784ea30d84b3e769a56f5e50ac5a89c129e87baa16ac0773eb4ef7/polars-1.31.0-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ada7940ed92bea65d5500ae7ac1f599798149df8faa5a6db150327c9ddbee4f1", size = 35050729, upload-time = "2025-06-18T11:59:48.538Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/20/e8/a6bdfe7b687c1fe84bceb1f854c43415eaf0d2fdf3c679a9dc9c4776e462/polars-1.31.0-cp39-abi3-manylinux_2_24_aarch64.whl", hash = "sha256:b324e6e3e8c6cc6593f9d72fe625f06af65e8d9d47c8686583585533a5e731e1", size = 32260836, upload-time = "2025-06-18T11:59:52.543Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/6e/f6/9d9ad9dc4480d66502497e90ce29efc063373e1598f4bd9b6a38af3e08e7/polars-1.31.0-cp39-abi3-win_amd64.whl", hash = "sha256:3fd874d3432fc932863e8cceff2cff8a12a51976b053f2eb6326a0672134a632", size = 35156211, upload-time = "2025-06-18T11:59:55.805Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/40/4b/0673a68ac4d6527fac951970e929c3b4440c654f994f0c957bd5556deb38/polars-1.31.0-cp39-abi3-win_arm64.whl", hash = "sha256:62ef23bb9d10dca4c2b945979f9a50812ac4ace4ed9e158a6b5d32a7322e6f75", size = 31469078, upload-time = "2025-06-18T11:59:59.242Z" },
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "prompt-toolkit"
|
||||
version = "3.0.51"
|
||||
@@ -1624,3 +1726,12 @@ sdist = { url = "https://files.pythonhosted.org/packages/b3/8f/705086c9d734d3b66
|
||||
wheels = [
|
||||
{ url = "https://files.pythonhosted.org/packages/e1/07/c6fe3ad3e685340704d314d765b7912993bcb8dc198f0e7a89382d37974b/win32_setctime-1.2.0-py3-none-any.whl", hash = "sha256:95d644c4e708aba81dc3704a116d8cbc974d70b3bdb8be1d150e36be6e9d1390", size = 4083, upload-time = "2024-12-07T15:28:26.465Z" },
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "zipp"
|
||||
version = "3.23.0"
|
||||
source = { registry = "https://pypi.org/simple" }
|
||||
sdist = { url = "https://files.pythonhosted.org/packages/e3/02/0f2892c661036d50ede074e376733dca2ae7c6eb617489437771209d4180/zipp-3.23.0.tar.gz", hash = "sha256:a07157588a12518c9d4034df3fbbee09c814741a33ff63c05fa29d26a2404166", size = 25547, upload-time = "2025-06-08T17:06:39.4Z" }
|
||||
wheels = [
|
||||
{ url = "https://files.pythonhosted.org/packages/2e/54/647ade08bf0db230bfea292f893923872fd20be6ac6f53b2b936ba839d75/zipp-3.23.0-py3-none-any.whl", hash = "sha256:071652d6115ed432f5ce1d34c336c0adfd6a884660d1e9712a256d3d3bd4b14e", size = 10276, upload-time = "2025-06-08T17:06:38.034Z" },
|
||||
]
|
||||
|
||||
Reference in New Issue
Block a user