Pengchong1113 commited on
Commit
72b0375
·
1 Parent(s): 028ed9a

Add evaluation scripts and result artifacts

Browse files
evaluation/custom_argument_eval_metrics.json ADDED
@@ -0,0 +1,79 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "n_examples": 48,
3
+ "accuracy": 0.6666666666666666,
4
+ "macro_f1": 0.6626780626780626,
5
+ "classification_report": {
6
+ "claim": {
7
+ "precision": 1.0,
8
+ "recall": 0.5,
9
+ "f1-score": 0.6666666666666666,
10
+ "support": 12.0
11
+ },
12
+ "counter_claim": {
13
+ "precision": 0.7333333333333333,
14
+ "recall": 0.9166666666666666,
15
+ "f1-score": 0.8148148148148148,
16
+ "support": 12.0
17
+ },
18
+ "premise": {
19
+ "precision": 0.7142857142857143,
20
+ "recall": 0.8333333333333334,
21
+ "f1-score": 0.7692307692307693,
22
+ "support": 12.0
23
+ },
24
+ "unknown": {
25
+ "precision": 0.38461538461538464,
26
+ "recall": 0.4166666666666667,
27
+ "f1-score": 0.4,
28
+ "support": 12.0
29
+ },
30
+ "accuracy": 0.6666666666666666,
31
+ "macro avg": {
32
+ "precision": 0.7080586080586081,
33
+ "recall": 0.6666666666666666,
34
+ "f1-score": 0.6626780626780626,
35
+ "support": 48.0
36
+ },
37
+ "weighted avg": {
38
+ "precision": 0.7080586080586079,
39
+ "recall": 0.6666666666666666,
40
+ "f1-score": 0.6626780626780627,
41
+ "support": 48.0
42
+ }
43
+ },
44
+ "confusion_matrix": {
45
+ "labels": [
46
+ "claim",
47
+ "counter_claim",
48
+ "premise",
49
+ "unknown"
50
+ ],
51
+ "matrix": [
52
+ [
53
+ 6,
54
+ 0,
55
+ 0,
56
+ 6
57
+ ],
58
+ [
59
+ 0,
60
+ 11,
61
+ 0,
62
+ 1
63
+ ],
64
+ [
65
+ 0,
66
+ 1,
67
+ 10,
68
+ 1
69
+ ],
70
+ [
71
+ 0,
72
+ 3,
73
+ 4,
74
+ 5
75
+ ]
76
+ ]
77
+ },
78
+ "predictions_csv": "evaluation\\custom_argument_eval_predictions.csv"
79
+ }
evaluation/custom_argument_eval_predictions.csv ADDED
@@ -0,0 +1,49 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ example_id,topic,parent_text,current_text,gold_label,rationale,probe_type,pred_label,correct,source_url
2
+ eval_001,AI in education,,Universities should allow students to use generative AI tools in coursework.,claim,Root-level debatable position.,root_claim,unknown,False,
3
+ eval_002,AI in education,Universities should allow students to use generative AI tools in coursework.,AI tools should be banned from graded assignments because they make authorship impossible to verify.,counter_claim,Directly opposes the parent position.,direct_disagreement,counter_claim,True,
4
+ eval_003,AI in education,AI tools should be banned from graded assignments because they make authorship impossible to verify.,Detection systems have produced false positives against students who did not use AI.,premise,Gives a supporting reason against relying on bans or detection.,evidence_reason,premise,True,
5
+ eval_004,AI in education,Detection systems have produced false positives against students who did not use AI.,Do you have a source for that claim?,unknown,Question requesting evidence rather than making an argument.,question,premise,False,
6
+ eval_005,Remote work,,Remote work should remain the default for knowledge workers.,claim,Standalone debatable stance.,root_claim,unknown,False,
7
+ eval_006,Remote work,Remote work should remain the default for knowledge workers.,That ignores how much junior employees learn from being around experienced coworkers in person.,counter_claim,Challenges the parent claim by introducing a drawback.,implicit_disagreement,counter_claim,True,
8
+ eval_007,Remote work,That ignores how much junior employees learn from being around experienced coworkers in person.,New hires often rely on informal conversations to understand team norms and priorities.,premise,Supports the parent objection with an explanatory reason.,supporting_explanation,premise,True,
9
+ eval_008,Remote work,Remote work should remain the default for knowledge workers.,My company tried something similar for a while.,unknown,"Mentions a personal situation but does not clearly state a claim, objection, or supporting reason.",ambiguous_anecdote,unknown,True,
10
+ eval_009,Public transport,,Cities should make public transport free for residents.,claim,Policy position that can be debated.,root_claim,claim,True,
11
+ eval_010,Public transport,Cities should make public transport free for residents.,"Free fares would not solve poor service frequency, which is the main reason many people avoid buses.",counter_claim,Challenges the usefulness of the parent proposal.,direct_disagreement,counter_claim,True,
12
+ eval_011,Public transport,Cities should make public transport free for residents.,"Fare collection systems are expensive to maintain, so removing fares can reduce administrative costs.",premise,Provides a reason supporting free public transport.,cost_reason,premise,True,
13
+ eval_012,Public transport,"Fare collection systems are expensive to maintain, so removing fares can reduce administrative costs.",Interesting point.,unknown,Short acknowledgement with no argumentative content.,short_acknowledgement,counter_claim,False,
14
+ eval_013,School uniforms,,School uniforms improve equality among students.,claim,A clear position on a policy issue.,root_claim,claim,True,
15
+ eval_014,School uniforms,School uniforms improve equality among students.,"They may reduce visible clothing differences, but they do not address deeper income inequality.",counter_claim,Partially concedes then challenges the parent claim.,partial_concession,counter_claim,True,
16
+ eval_015,School uniforms,School uniforms improve equality among students.,"When everyone wears the same clothes, students are less likely to be judged for expensive brands.",premise,Supports the parent claim with a causal explanation.,causal_reason,premise,True,
17
+ eval_016,School uniforms,"They may reduce visible clothing differences, but they do not address deeper income inequality.","Exactly, that is what I meant.",unknown,Agreement without a new reason or claim.,agreement_only,premise,False,
18
+ eval_017,Nuclear energy,,Nuclear energy should be expanded as part of climate policy.,claim,Standalone policy claim.,root_claim,claim,True,
19
+ eval_018,Nuclear energy,Nuclear energy should be expanded as part of climate policy.,Building new nuclear plants takes too long to help with urgent emissions targets.,counter_claim,Objects to the parent proposal.,direct_disagreement,counter_claim,True,
20
+ eval_019,Nuclear energy,Nuclear energy should be expanded as part of climate policy.,Nuclear plants produce electricity with very low operational carbon emissions.,premise,Evidence-like support for expanding nuclear energy.,factual_support,premise,True,
21
+ eval_020,Nuclear energy,Building new nuclear plants takes too long to help with urgent emissions targets.,That depends on the country and the project.,unknown,Vague qualification without enough detail to function as a claim or evidence.,vague_reply,counter_claim,False,
22
+ eval_021,Social media,,Social media platforms should verify users before allowing political advertising.,claim,Debatable moderation policy proposal.,root_claim,claim,True,
23
+ eval_022,Social media,Social media platforms should verify users before allowing political advertising.,That would create privacy risks for activists and people living under authoritarian governments.,counter_claim,Raises a direct objection to the parent proposal.,risk_objection,counter_claim,True,
24
+ eval_023,Social media,Social media platforms should verify users before allowing political advertising.,Verified identity requirements can make coordinated foreign influence campaigns harder to hide.,premise,Supports the parent claim with a benefit.,supporting_reason,premise,True,
25
+ eval_024,Social media,That would create privacy risks for activists and people living under authoritarian governments.,lol no one cares,unknown,Dismissive comment without a clear argumentative role.,low_quality,unknown,True,
26
+ eval_025,Four-day workweek,,A four-day workweek should become standard for full-time jobs.,claim,Clear standalone claim.,root_claim,unknown,False,
27
+ eval_026,Four-day workweek,A four-day workweek should become standard for full-time jobs.,"Some hospitals, restaurants, and factories cannot compress work without reducing service coverage.",counter_claim,Challenges the general feasibility of the parent claim.,scope_objection,counter_claim,True,
28
+ eval_027,Four-day workweek,A four-day workweek should become standard for full-time jobs.,Several pilot programs reported stable productivity and higher employee satisfaction.,premise,Provides empirical-style support.,empirical_support,premise,True,
29
+ eval_028,Four-day workweek,Several pilot programs reported stable productivity and higher employee satisfaction.,Which pilot programs are you referring to?,unknown,"Clarifying question, not a claim or premise.",question,counter_claim,False,
30
+ eval_029,Phone bans in schools,,High schools should ban smartphones during class hours.,claim,Debatable school policy position.,root_claim,claim,True,
31
+ eval_030,Phone bans in schools,High schools should ban smartphones during class hours.,A strict ban would also block students from using accessibility tools and translation apps.,counter_claim,Direct objection to the proposed ban.,exception_objection,counter_claim,True,
32
+ eval_031,Phone bans in schools,High schools should ban smartphones during class hours.,Teachers often lose instructional time when students check notifications during lessons.,premise,Supports the ban with a classroom-management reason.,supporting_reason,premise,True,
33
+ eval_032,Phone bans in schools,A strict ban would also block students from using accessibility tools and translation apps.,"Maybe, but I am not sure how that would work in practice.",unknown,Hesitant response that does not make a clear opposing claim or provide concrete support.,uncertain_reply,premise,False,
34
+ eval_033,Meat consumption,,Governments should tax meat to reduce environmental damage.,claim,Policy claim.,root_claim,claim,True,
35
+ eval_034,Meat consumption,Governments should tax meat to reduce environmental damage.,That policy would hit low-income families harder than wealthy households.,counter_claim,Raises an equity objection to the parent policy.,equity_objection,counter_claim,True,
36
+ eval_035,Meat consumption,Governments should tax meat to reduce environmental damage.,Livestock production contributes substantially to methane emissions and land use.,premise,Supports the parent claim with an environmental reason.,factual_support,premise,True,
37
+ eval_036,Meat consumption,Livestock production contributes substantially to methane emissions and land use.,I like burgers though.,unknown,Personal preference that does not engage the argument.,off_topic_or_weak,unknown,True,
38
+ eval_037,Online anonymity,,Online anonymity is necessary for free expression.,claim,General debatable position.,root_claim,unknown,False,
39
+ eval_038,Online anonymity,Online anonymity is necessary for free expression.,Anonymous accounts also make harassment and coordinated abuse harder to punish.,counter_claim,Challenges the parent by naming a serious downside.,downside_objection,counter_claim,True,
40
+ eval_039,Online anonymity,Online anonymity is necessary for free expression.,Whistleblowers may only speak publicly if their real identity is protected.,premise,Supports the need for anonymity with a concrete case.,example_support,counter_claim,False,
41
+ eval_040,Online anonymity,Anonymous accounts also make harassment and coordinated abuse harder to punish.,This thread is getting repetitive.,unknown,Meta-comment about the discussion rather than an argument.,meta_comment,unknown,True,
42
+ eval_041,Vibecoding and creativity,,CMV: Vibecoding will limit creativity in the future,claim,Real CMV title presenting the OP's debatable position.,reddit_root_claim,unknown,False,https://www.reddit.com/r/changemyview/comments/1t8tcia/cmv_vibecoding_will_limit_creativity_in_the_future/
43
+ eval_042,Vibecoding and creativity,I think we will also see more and more designs of these apps/experiences become increasingly similar.,"Creativity shouldn't be sought in coming up with unique UIs, but in the functionality.",claim,Real CMV reply introducing a new claim about how creativity should be defined.,reddit_reply_claim,unknown,False,https://www.reddit.com/r/changemyview/comments/1t8tcia/cmv_vibecoding_will_limit_creativity_in_the_future/
44
+ eval_043,Vibecoding and creativity,CMV: Vibecoding will limit creativity in the future,"While I agree that vibecoding in the hands of someone that doesn't understand the underlying systems is unlikely to produce anything creative, I think that in the hands of an experienced developer it can enhance creativity by speeding up the implementations of well known problems, leaving more time to try to solve more niche ones.",counter_claim,Real CMV reply that partially concedes but directly challenges the OP's overall claim.,reddit_counterclaim,counter_claim,True,https://www.reddit.com/r/changemyview/comments/1t8tcia/cmv_vibecoding_will_limit_creativity_in_the_future/
45
+ eval_044,Vibecoding and creativity,CMV: Vibecoding will limit creativity in the future,I think that is actually the opposite: vibe coding drastically reduces the level of expertise needed to prototype and implement ideas. The creativity will come from people using the tools as they try new and varied things.,counter_claim,Directly opposes the root claim by arguing that vibe coding can increase creativity rather than limit it.,reddit_counterclaim,unknown,False,https://www.reddit.com/r/changemyview/comments/1t8tcia/cmv_vibecoding_will_limit_creativity_in_the_future/
46
+ eval_045,Vibecoding and creativity,"While I agree that vibecoding in the hands of someone that doesn't understand the underlying systems is unlikely to produce anything creative, I think that in the hands of an experienced developer it can enhance creativity by speeding up the implementations of well known problems, leaving more time to try to solve more niche ones.","When game engines like Unity became popular, the fact that it was easier to create games led to a boom of copypasta derivative content, but also a boom of creative, experimental indie games that weren't viable before.",premise,Real CMV reply giving an analogy/evidence in support of the counter-claim.,reddit_premise,premise,True,https://www.reddit.com/r/changemyview/comments/1t8tcia/cmv_vibecoding_will_limit_creativity_in_the_future/
47
+ eval_046,Vibecoding and creativity,I think that is actually the opposite: vibe coding drastically reduces the level of expertise needed to prototype and implement ideas. The creativity will come from people using the tools as they try new and varied things.,"Right now people are still figuring out how to use these tools, but the more people get comfortable, the more they will figure out how to guide towards unique and interesting results.",premise,Supports the parent counter-claim by explaining why creativity may increase over time.,reddit_premise,unknown,False,https://www.reddit.com/r/changemyview/comments/1t8tcia/cmv_vibecoding_will_limit_creativity_in_the_future/
48
+ eval_047,Vibecoding and creativity,"While I agree that vibecoding in the hands of someone that doesn't understand the underlying systems is unlikely to produce anything creative, I think that in the hands of an experienced developer it can enhance creativity by speeding up the implementations of well known problems, leaving more time to try to solve more niche ones.",Do you mean creative in terms of code or creative in general?,unknown,"Real CMV clarification question rather than a claim, counter-claim, or premise.",reddit_question,premise,False,https://www.reddit.com/r/changemyview/comments/1t8tcia/cmv_vibecoding_will_limit_creativity_in_the_future/
49
+ eval_048,Vibecoding and creativity,"I think you are just not creative enough in your vibe coding. Try these agent instructions: You are the world's greatest surfer, but also a distributed systems expert.",Hes yankin yer chain mate,unknown,"Real CMV colloquial aside explaining another comment, not a substantive argument role.",reddit_aside,unknown,True,https://www.reddit.com/r/changemyview/comments/1t8tcia/cmv_vibecoding_will_limit_creativity_in_the_future/
evaluation/custom_argument_eval_review.md ADDED
@@ -0,0 +1,54 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Custom Argument Evaluation Set Review
2
+
3
+ This file is a human-readable review version of custom_argument_eval.jsonl with the latest model predictions from custom_argument_eval_predictions.csv.
4
+
5
+ | ID | Topic | Source | Parent Text | Current Text | Gold Label | Predicted Label | Correct | Rationale | Probe Type |
6
+ |---|---|---|---|---|---|---|---|---|---|
7
+ | eval_001 | AI in education | | | Universities should allow students to use generative AI tools in coursework. | claim | unknown | False | Root-level debatable position. | root_claim |
8
+ | eval_002 | AI in education | | Universities should allow students to use generative AI tools in coursework. | AI tools should be banned from graded assignments because they make authorship impossible to verify. | counter_claim | counter_claim | True | Directly opposes the parent position. | direct_disagreement |
9
+ | eval_003 | AI in education | | AI tools should be banned from graded assignments because they make authorship impossible to verify. | Detection systems have produced false positives against students who did not use AI. | premise | premise | True | Gives a supporting reason against relying on bans or detection. | evidence_reason |
10
+ | eval_004 | AI in education | | Detection systems have produced false positives against students who did not use AI. | Do you have a source for that claim? | unknown | premise | False | Question requesting evidence rather than making an argument. | question |
11
+ | eval_005 | Remote work | | | Remote work should remain the default for knowledge workers. | claim | unknown | False | Standalone debatable stance. | root_claim |
12
+ | eval_006 | Remote work | | Remote work should remain the default for knowledge workers. | That ignores how much junior employees learn from being around experienced coworkers in person. | counter_claim | counter_claim | True | Challenges the parent claim by introducing a drawback. | implicit_disagreement |
13
+ | eval_007 | Remote work | | That ignores how much junior employees learn from being around experienced coworkers in person. | New hires often rely on informal conversations to understand team norms and priorities. | premise | premise | True | Supports the parent objection with an explanatory reason. | supporting_explanation |
14
+ | eval_008 | Remote work | | Remote work should remain the default for knowledge workers. | My company tried something similar for a while. | unknown | unknown | True | Mentions a personal situation but does not clearly state a claim, objection, or supporting reason. | ambiguous_anecdote |
15
+ | eval_009 | Public transport | | | Cities should make public transport free for residents. | claim | claim | True | Policy position that can be debated. | root_claim |
16
+ | eval_010 | Public transport | | Cities should make public transport free for residents. | Free fares would not solve poor service frequency, which is the main reason many people avoid buses. | counter_claim | counter_claim | True | Challenges the usefulness of the parent proposal. | direct_disagreement |
17
+ | eval_011 | Public transport | | Cities should make public transport free for residents. | Fare collection systems are expensive to maintain, so removing fares can reduce administrative costs. | premise | premise | True | Provides a reason supporting free public transport. | cost_reason |
18
+ | eval_012 | Public transport | | Fare collection systems are expensive to maintain, so removing fares can reduce administrative costs. | Interesting point. | unknown | counter_claim | False | Short acknowledgement with no argumentative content. | short_acknowledgement |
19
+ | eval_013 | School uniforms | | | School uniforms improve equality among students. | claim | claim | True | A clear position on a policy issue. | root_claim |
20
+ | eval_014 | School uniforms | | School uniforms improve equality among students. | They may reduce visible clothing differences, but they do not address deeper income inequality. | counter_claim | counter_claim | True | Partially concedes then challenges the parent claim. | partial_concession |
21
+ | eval_015 | School uniforms | | School uniforms improve equality among students. | When everyone wears the same clothes, students are less likely to be judged for expensive brands. | premise | premise | True | Supports the parent claim with a causal explanation. | causal_reason |
22
+ | eval_016 | School uniforms | | They may reduce visible clothing differences, but they do not address deeper income inequality. | Exactly, that is what I meant. | unknown | premise | False | Agreement without a new reason or claim. | agreement_only |
23
+ | eval_017 | Nuclear energy | | | Nuclear energy should be expanded as part of climate policy. | claim | claim | True | Standalone policy claim. | root_claim |
24
+ | eval_018 | Nuclear energy | | Nuclear energy should be expanded as part of climate policy. | Building new nuclear plants takes too long to help with urgent emissions targets. | counter_claim | counter_claim | True | Objects to the parent proposal. | direct_disagreement |
25
+ | eval_019 | Nuclear energy | | Nuclear energy should be expanded as part of climate policy. | Nuclear plants produce electricity with very low operational carbon emissions. | premise | premise | True | Evidence-like support for expanding nuclear energy. | factual_support |
26
+ | eval_020 | Nuclear energy | | Building new nuclear plants takes too long to help with urgent emissions targets. | That depends on the country and the project. | unknown | counter_claim | False | Vague qualification without enough detail to function as a claim or evidence. | vague_reply |
27
+ | eval_021 | Social media | | | Social media platforms should verify users before allowing political advertising. | claim | claim | True | Debatable moderation policy proposal. | root_claim |
28
+ | eval_022 | Social media | | Social media platforms should verify users before allowing political advertising. | That would create privacy risks for activists and people living under authoritarian governments. | counter_claim | counter_claim | True | Raises a direct objection to the parent proposal. | risk_objection |
29
+ | eval_023 | Social media | | Social media platforms should verify users before allowing political advertising. | Verified identity requirements can make coordinated foreign influence campaigns harder to hide. | premise | premise | True | Supports the parent claim with a benefit. | supporting_reason |
30
+ | eval_024 | Social media | | That would create privacy risks for activists and people living under authoritarian governments. | lol no one cares | unknown | unknown | True | Dismissive comment without a clear argumentative role. | low_quality |
31
+ | eval_025 | Four-day workweek | | | A four-day workweek should become standard for full-time jobs. | claim | unknown | False | Clear standalone claim. | root_claim |
32
+ | eval_026 | Four-day workweek | | A four-day workweek should become standard for full-time jobs. | Some hospitals, restaurants, and factories cannot compress work without reducing service coverage. | counter_claim | counter_claim | True | Challenges the general feasibility of the parent claim. | scope_objection |
33
+ | eval_027 | Four-day workweek | | A four-day workweek should become standard for full-time jobs. | Several pilot programs reported stable productivity and higher employee satisfaction. | premise | premise | True | Provides empirical-style support. | empirical_support |
34
+ | eval_028 | Four-day workweek | | Several pilot programs reported stable productivity and higher employee satisfaction. | Which pilot programs are you referring to? | unknown | counter_claim | False | Clarifying question, not a claim or premise. | question |
35
+ | eval_029 | Phone bans in schools | | | High schools should ban smartphones during class hours. | claim | claim | True | Debatable school policy position. | root_claim |
36
+ | eval_030 | Phone bans in schools | | High schools should ban smartphones during class hours. | A strict ban would also block students from using accessibility tools and translation apps. | counter_claim | counter_claim | True | Direct objection to the proposed ban. | exception_objection |
37
+ | eval_031 | Phone bans in schools | | High schools should ban smartphones during class hours. | Teachers often lose instructional time when students check notifications during lessons. | premise | premise | True | Supports the ban with a classroom-management reason. | supporting_reason |
38
+ | eval_032 | Phone bans in schools | | A strict ban would also block students from using accessibility tools and translation apps. | Maybe, but I am not sure how that would work in practice. | unknown | premise | False | Hesitant response that does not make a clear opposing claim or provide concrete support. | uncertain_reply |
39
+ | eval_033 | Meat consumption | | | Governments should tax meat to reduce environmental damage. | claim | claim | True | Policy claim. | root_claim |
40
+ | eval_034 | Meat consumption | | Governments should tax meat to reduce environmental damage. | That policy would hit low-income families harder than wealthy households. | counter_claim | counter_claim | True | Raises an equity objection to the parent policy. | equity_objection |
41
+ | eval_035 | Meat consumption | | Governments should tax meat to reduce environmental damage. | Livestock production contributes substantially to methane emissions and land use. | premise | premise | True | Supports the parent claim with an environmental reason. | factual_support |
42
+ | eval_036 | Meat consumption | | Livestock production contributes substantially to methane emissions and land use. | I like burgers though. | unknown | unknown | True | Personal preference that does not engage the argument. | off_topic_or_weak |
43
+ | eval_037 | Online anonymity | | | Online anonymity is necessary for free expression. | claim | unknown | False | General debatable position. | root_claim |
44
+ | eval_038 | Online anonymity | | Online anonymity is necessary for free expression. | Anonymous accounts also make harassment and coordinated abuse harder to punish. | counter_claim | counter_claim | True | Challenges the parent by naming a serious downside. | downside_objection |
45
+ | eval_039 | Online anonymity | | Online anonymity is necessary for free expression. | Whistleblowers may only speak publicly if their real identity is protected. | premise | counter_claim | False | Supports the need for anonymity with a concrete case. | example_support |
46
+ | eval_040 | Online anonymity | | Anonymous accounts also make harassment and coordinated abuse harder to punish. | This thread is getting repetitive. | unknown | unknown | True | Meta-comment about the discussion rather than an argument. | meta_comment |
47
+ | eval_041 | Vibecoding and creativity | https://www.reddit.com/r/changemyview/comments/1t8tcia/cmv_vibecoding_will_limit_creativity_in_the_future/ | | CMV: Vibecoding will limit creativity in the future | claim | unknown | False | Real CMV title presenting the OP's debatable position. | reddit_root_claim |
48
+ | eval_042 | Vibecoding and creativity | https://www.reddit.com/r/changemyview/comments/1t8tcia/cmv_vibecoding_will_limit_creativity_in_the_future/ | I think we will also see more and more designs of these apps/experiences become increasingly similar. | Creativity shouldn't be sought in coming up with unique UIs, but in the functionality. | claim | unknown | False | Real CMV reply introducing a new claim about how creativity should be defined. | reddit_reply_claim |
49
+ | eval_043 | Vibecoding and creativity | https://www.reddit.com/r/changemyview/comments/1t8tcia/cmv_vibecoding_will_limit_creativity_in_the_future/ | CMV: Vibecoding will limit creativity in the future | While I agree that vibecoding in the hands of someone that doesn't understand the underlying systems is unlikely to produce anything creative, I think that in the hands of an experienced developer it can enhance creativity by speeding up the implementations of well known problems, leaving more time to try to solve more niche ones. | counter_claim | counter_claim | True | Real CMV reply that partially concedes but directly challenges the OP's overall claim. | reddit_counterclaim |
50
+ | eval_044 | Vibecoding and creativity | https://www.reddit.com/r/changemyview/comments/1t8tcia/cmv_vibecoding_will_limit_creativity_in_the_future/ | CMV: Vibecoding will limit creativity in the future | I think that is actually the opposite: vibe coding drastically reduces the level of expertise needed to prototype and implement ideas. The creativity will come from people using the tools as they try new and varied things. | counter_claim | unknown | False | Directly opposes the root claim by arguing that vibe coding can increase creativity rather than limit it. | reddit_counterclaim |
51
+ | eval_045 | Vibecoding and creativity | https://www.reddit.com/r/changemyview/comments/1t8tcia/cmv_vibecoding_will_limit_creativity_in_the_future/ | While I agree that vibecoding in the hands of someone that doesn't understand the underlying systems is unlikely to produce anything creative, I think that in the hands of an experienced developer it can enhance creativity by speeding up the implementations of well known problems, leaving more time to try to solve more niche ones. | When game engines like Unity became popular, the fact that it was easier to create games led to a boom of copypasta derivative content, but also a boom of creative, experimental indie games that weren't viable before. | premise | premise | True | Real CMV reply giving an analogy/evidence in support of the counter-claim. | reddit_premise |
52
+ | eval_046 | Vibecoding and creativity | https://www.reddit.com/r/changemyview/comments/1t8tcia/cmv_vibecoding_will_limit_creativity_in_the_future/ | I think that is actually the opposite: vibe coding drastically reduces the level of expertise needed to prototype and implement ideas. The creativity will come from people using the tools as they try new and varied things. | Right now people are still figuring out how to use these tools, but the more people get comfortable, the more they will figure out how to guide towards unique and interesting results. | premise | unknown | False | Supports the parent counter-claim by explaining why creativity may increase over time. | reddit_premise |
53
+ | eval_047 | Vibecoding and creativity | https://www.reddit.com/r/changemyview/comments/1t8tcia/cmv_vibecoding_will_limit_creativity_in_the_future/ | While I agree that vibecoding in the hands of someone that doesn't understand the underlying systems is unlikely to produce anything creative, I think that in the hands of an experienced developer it can enhance creativity by speeding up the implementations of well known problems, leaving more time to try to solve more niche ones. | Do you mean creative in terms of code or creative in general? | unknown | premise | False | Real CMV clarification question rather than a claim, counter-claim, or premise. | reddit_question |
54
+ | eval_048 | Vibecoding and creativity | https://www.reddit.com/r/changemyview/comments/1t8tcia/cmv_vibecoding_will_limit_creativity_in_the_future/ | I think you are just not creative enough in your vibe coding. Try these agent instructions: You are the world's greatest surfer, but also a distributed systems expert. | Hes yankin yer chain mate | unknown | unknown | True | Real CMV colloquial aside explaining another comment, not a substantive argument role. | reddit_aside |
evaluation/evaluate_custom.py ADDED
@@ -0,0 +1,154 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from __future__ import annotations
2
+
3
+ import argparse
4
+ import csv
5
+ import json
6
+ from pathlib import Path
7
+
8
+ from sklearn.metrics import (
9
+ accuracy_score,
10
+ classification_report,
11
+ confusion_matrix,
12
+ f1_score,
13
+ )
14
+
15
+ from src import LABEL2ID, predict
16
+
17
+
18
+ LABELS = list(LABEL2ID.keys())
19
+
20
+
21
+ def load_jsonl(path: Path) -> list[dict]:
22
+ rows = []
23
+ with path.open(encoding="utf-8") as f:
24
+ for line_no, line in enumerate(f, start=1):
25
+ if not line.strip():
26
+ continue
27
+ row = json.loads(line)
28
+ missing = {
29
+ "example_id",
30
+ "parent_text",
31
+ "current_text",
32
+ "gold_label",
33
+ } - set(row)
34
+ if missing:
35
+ raise ValueError(
36
+ f"{path}:{line_no} missing fields: {sorted(missing)}"
37
+ )
38
+ if row["gold_label"] not in LABEL2ID:
39
+ raise ValueError(
40
+ f"{path}:{line_no} invalid label: {row['gold_label']}"
41
+ )
42
+ rows.append(row)
43
+ return rows
44
+
45
+
46
+ def evaluate(
47
+ dataset_path: Path,
48
+ checkpoint_dir: str,
49
+ output_csv: Path,
50
+ ) -> dict:
51
+ rows = load_jsonl(dataset_path)
52
+ y_true = []
53
+ y_pred = []
54
+ predictions = []
55
+
56
+ for row in rows:
57
+ pred = predict(
58
+ text=row["current_text"],
59
+ parent_text=row.get("parent_text", ""),
60
+ checkpoint_dir=checkpoint_dir,
61
+ )
62
+ gold = row["gold_label"]
63
+ y_true.append(gold)
64
+ y_pred.append(pred)
65
+ predictions.append({
66
+ **row,
67
+ "pred_label": pred,
68
+ "correct": gold == pred,
69
+ })
70
+
71
+ output_csv.parent.mkdir(parents=True, exist_ok=True)
72
+ fieldnames = []
73
+ for prediction in predictions:
74
+ for key in prediction:
75
+ if key not in fieldnames:
76
+ fieldnames.append(key)
77
+
78
+ with output_csv.open("w", newline="", encoding="utf-8") as f:
79
+ writer = csv.DictWriter(f, fieldnames=fieldnames)
80
+ writer.writeheader()
81
+ writer.writerows(predictions)
82
+
83
+ report = classification_report(
84
+ y_true,
85
+ y_pred,
86
+ labels=LABELS,
87
+ zero_division=0,
88
+ output_dict=True,
89
+ )
90
+ matrix = confusion_matrix(y_true, y_pred, labels=LABELS)
91
+ return {
92
+ "n_examples": len(rows),
93
+ "accuracy": accuracy_score(y_true, y_pred),
94
+ "macro_f1": f1_score(y_true, y_pred, labels=LABELS, average="macro"),
95
+ "classification_report": report,
96
+ "confusion_matrix": {
97
+ "labels": LABELS,
98
+ "matrix": matrix.tolist(),
99
+ },
100
+ "predictions_csv": str(output_csv),
101
+ }
102
+
103
+
104
+ def main() -> None:
105
+ parser = argparse.ArgumentParser(
106
+ description="Evaluate the argument role classifier on a custom JSONL set."
107
+ )
108
+ parser.add_argument(
109
+ "--dataset",
110
+ default="evaluation/custom_argument_eval.jsonl",
111
+ type=Path,
112
+ )
113
+ parser.add_argument("--checkpoint", default="models/best")
114
+ parser.add_argument(
115
+ "--output-csv",
116
+ default="evaluation/custom_argument_eval_predictions.csv",
117
+ type=Path,
118
+ )
119
+ parser.add_argument(
120
+ "--output-json",
121
+ default="evaluation/custom_argument_eval_metrics.json",
122
+ type=Path,
123
+ )
124
+ args = parser.parse_args()
125
+
126
+ metrics = evaluate(args.dataset, args.checkpoint, args.output_csv)
127
+ args.output_json.write_text(
128
+ json.dumps(metrics, indent=2),
129
+ encoding="utf-8",
130
+ )
131
+
132
+ print(f"Examples: {metrics['n_examples']}")
133
+ print(f"Accuracy: {metrics['accuracy']:.4f}")
134
+ print(f"Macro-F1: {metrics['macro_f1']:.4f}")
135
+ print("\nClassification report:")
136
+ print(
137
+ classification_report(
138
+ [r["gold_label"] for r in load_jsonl(args.dataset)],
139
+ [
140
+ r["pred_label"]
141
+ for r in csv.DictReader(
142
+ args.output_csv.open(encoding="utf-8")
143
+ )
144
+ ],
145
+ labels=LABELS,
146
+ zero_division=0,
147
+ )
148
+ )
149
+ print(f"Saved predictions to {args.output_csv}")
150
+ print(f"Saved metrics to {args.output_json}")
151
+
152
+
153
+ if __name__ == "__main__":
154
+ main()
evaluation/figures/confusion_matrix.png ADDED
evaluation/figures/label_distribution.png ADDED
evaluation/plot_results.py ADDED
@@ -0,0 +1,109 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from __future__ import annotations
2
+
3
+ import argparse
4
+ import csv
5
+ import json
6
+ from collections import Counter
7
+ from pathlib import Path
8
+
9
+ import matplotlib.pyplot as plt
10
+ import numpy as np
11
+
12
+
13
+ LABELS = ["claim", "counter_claim", "premise", "unknown"]
14
+
15
+
16
+ def plot_confusion_matrix(metrics_path: Path, output_path: Path) -> None:
17
+ metrics = json.loads(metrics_path.read_text(encoding="utf-8"))
18
+ labels = metrics["confusion_matrix"]["labels"]
19
+ matrix = np.array(metrics["confusion_matrix"]["matrix"])
20
+
21
+ fig, ax = plt.subplots(figsize=(7, 6))
22
+ im = ax.imshow(matrix, cmap="Blues")
23
+ ax.set_title("Confusion Matrix")
24
+ ax.set_xlabel("Predicted label")
25
+ ax.set_ylabel("Gold label")
26
+ ax.set_xticks(range(len(labels)), labels, rotation=30, ha="right")
27
+ ax.set_yticks(range(len(labels)), labels)
28
+
29
+ max_value = matrix.max() if matrix.size else 0
30
+ for i in range(matrix.shape[0]):
31
+ for j in range(matrix.shape[1]):
32
+ value = matrix[i, j]
33
+ color = "white" if value > max_value / 2 else "black"
34
+ ax.text(j, i, str(value), ha="center", va="center", color=color)
35
+
36
+ fig.colorbar(im, ax=ax, fraction=0.046, pad=0.04)
37
+ fig.tight_layout()
38
+ fig.savefig(output_path, dpi=200)
39
+ plt.close(fig)
40
+
41
+
42
+ def plot_label_distribution(predictions_path: Path, output_path: Path) -> None:
43
+ with predictions_path.open(encoding="utf-8") as f:
44
+ rows = list(csv.DictReader(f))
45
+
46
+ gold_counts = Counter(row["gold_label"] for row in rows)
47
+ pred_counts = Counter(row["pred_label"] for row in rows)
48
+ x = np.arange(len(LABELS))
49
+ width = 0.38
50
+
51
+ fig, ax = plt.subplots(figsize=(8, 5))
52
+ ax.bar(
53
+ x - width / 2,
54
+ [gold_counts[label] for label in LABELS],
55
+ width,
56
+ label="Gold",
57
+ color="#4C78A8",
58
+ )
59
+ ax.bar(
60
+ x + width / 2,
61
+ [pred_counts[label] for label in LABELS],
62
+ width,
63
+ label="Predicted",
64
+ color="#F58518",
65
+ )
66
+ ax.set_title("Gold vs Predicted Label Distribution")
67
+ ax.set_ylabel("Number of examples")
68
+ ax.set_xticks(x, LABELS, rotation=30, ha="right")
69
+ ax.legend()
70
+ ax.set_ylim(0, max(max(gold_counts.values()), max(pred_counts.values())) + 3)
71
+ fig.tight_layout()
72
+ fig.savefig(output_path, dpi=200)
73
+ plt.close(fig)
74
+
75
+
76
+ def main() -> None:
77
+ parser = argparse.ArgumentParser(
78
+ description="Plot custom evaluation results."
79
+ )
80
+ parser.add_argument(
81
+ "--metrics",
82
+ default="evaluation/custom_argument_eval_metrics.json",
83
+ type=Path,
84
+ )
85
+ parser.add_argument(
86
+ "--predictions",
87
+ default="evaluation/custom_argument_eval_predictions.csv",
88
+ type=Path,
89
+ )
90
+ parser.add_argument(
91
+ "--output-dir",
92
+ default="evaluation/figures",
93
+ type=Path,
94
+ )
95
+ args = parser.parse_args()
96
+
97
+ args.output_dir.mkdir(parents=True, exist_ok=True)
98
+ confusion_path = args.output_dir / "confusion_matrix.png"
99
+ distribution_path = args.output_dir / "label_distribution.png"
100
+
101
+ plot_confusion_matrix(args.metrics, confusion_path)
102
+ plot_label_distribution(args.predictions, distribution_path)
103
+
104
+ print(f"Saved {confusion_path}")
105
+ print(f"Saved {distribution_path}")
106
+
107
+
108
+ if __name__ == "__main__":
109
+ main()