Verbalized-Sampling-Synthetic-Data-Generation
1
50 commits
2 linked in READMEs
updated Oct 29, 2025
This dataset showcases how Verbalized Sampling (VS) can be used to generate high-quality, diverse synthetic training data for mathematical reasoning tasks. From the paper Verbalized Sampling: How to Mitigate Mode Collapse and Unlock LLM Diversity.
The Synthetic Data Generation dataset contains mathematical problem-solution pairs generated by different methods using state-of-the-art LLMs. This dataset demonstrates:
Verbalized Sampling methods produce more diverse solution strategies while maintaining solution correctness, enabling creation of richer synthetic training datasets. Models like GPT-4.1 and Gemini-2.5-Flash generate complementary types of solutions when prompted with different methods.
Each config represents a different model used for generation:
gpt_4_1: Data generated using GPT-4.1gemini_2_5_flash: Data generated using Gemini-2.5-FlashEach split represents a different generation method:
Direct: Standard prompting for solution generationCoT: Chain-of-thought reasoningVS-Standard: Verbalized Sampling with probabilitiesVS-CoT: Verbalized Sampling with chain-of-thoughtVS-Multi: Combined verbalized sampling approachSequence: Sequential verbalized generationMulti-turn: Multi-turn verbalized samplingFields vary by source dataset but typically include:
model, method, source_datasetfields:
from datasets import load_dataset
# Load GPT-4.1 generated data with VS-Multi method
dataset = load_dataset(
"CHATS-Lab/Verbalized-Sampling-Synthetic-Data-Generation",
"gpt_4_1"
)
vs_multi_data = dataset["VS-Multi"]
print(f"Number of examples: {len(vs_multi_data)}")
print(f"Fields: {list(vs_multi_data.features.keys())}")
from datasets import load_dataset
# Load all methods for GPT-4.1
gpt_data = load_dataset(
"CHATS-Lab/Verbalized-Sampling-Synthetic-Data-Generation",
"gpt_4_1"
)
# Compare dataset sizes across methods
for method in ["Direct", "CoT", "VS-Standard", "VS-CoT", "VS-Multi", "Sequence", "Multi-turn"]:
if method in gpt_data:
print(f"{method}: {len(gpt_data[method])} examples")
from datasets import load_dataset, concatenate_datasets
# Load same method from different models
gpt_data = load_dataset(
"CHATS-Lab/Verbalized-Sampling-Synthetic-Data-Generation",
"gpt_4_1"
)["VS-CoT"]
gemini_data = load_dataset(
"CHATS-Lab/Verbalized-Sampling-Synthetic-Data-Generation",
"gemini_2_5_flash"
)["VS-CoT"]
# Combine for more diverse training data
combined = concatenate_datasets([gpt_data, gemini_data])
print(f"Combined VS-CoT data: {len(combined)} examples")
from datasets import load_dataset
from collections import Counter
def analyze_solution_diversity(dataset):
"""Analyze diversity of solutions"""
# This is a simple example - adapt based on your data fields
solution_lengths = []
unique_starts = set()
for example in dataset:
# Adapt field names based on your dataset
solution = example.get("solution", "") or example.get("answer", "")
solution_lengths.append(len(solution.split()))
# Track unique solution starts (first 5 words)
words = solution.split()[:5]
unique_starts.add(tuple(words))
return {
"total_examples": len(dataset),
"avg_solution_length": sum(solution_lengths) / len(solution_lengths) if solution_lengths else 0,
"unique_solution_starts": len(unique_starts),
"diversity_ratio": len(unique_starts) / len(dataset) if len(dataset) > 0 else 0
}
# Compare diversity across methods
gpt_data = load_dataset(
"CHATS-Lab/Verbalized-Sampling-Synthetic-Data-Generation",
"gpt_4_1"
)
for method in ["Direct", "VS-Multi"]:
if method in gpt_data:
stats = analyze_solution_diversity(gpt_data[method])
print(f"\n{method}:")
print(f" Examples: {stats['total_examples']}")
print(f" Avg solution length: {stats['avg_solution_length']:.1f} words")
print(f" Unique solution starts: {stats['unique_solution_starts']}")
print(f" Diversity ratio: {stats['diversity_ratio']:.2%}")
from datasets import load_dataset, concatenate_datasets
# Strategy 1: Use diverse methods from one model
gpt_data = load_dataset(
"CHATS-Lab/Verbalized-Sampling-Synthetic-Data-Generation",
"gpt_4_1"
)
# Combine multiple VS methods for maximum diversity
train_data = concatenate_datasets([
gpt_data["VS-CoT"],
gpt_data["VS-Multi"],
gpt_data["Sequence"]
])
# Strategy 2: Use same method from multiple models
gpt_vs_cot = load_dataset(
"CHATS-Lab/Verbalized-Sampling-Synthetic-Data-Generation",
"gpt_4_1"
)["VS-CoT"]
gemini_vs_cot = load_dataset(
"CHATS-Lab/Verbalized-Sampling-Synthetic-Data-Generation",
"gemini_2_5_flash"
)["VS-CoT"]
train_data = concatenate_datasets([gpt_vs_cot, gemini_vs_cot])
print(f"Training dataset size: {len(train_data)}")
Both models show strong mathematical reasoning capabilities with different solution styles.
This dataset is valuable for:
Best Practices:
Avoid:
This Agreement contains the terms and conditions that govern your access and use of the Verbalized-Sampling-Synthetic-Data-Generation Dataset.
Key Terms:
Subject to your compliance with these terms, we grant you a limited, non-exclusive, non-transferable, non-sublicensable license to use the dataset for research, development, and improvement of software, algorithms, machine learning models, techniques, and technologies for both research and commercial purposes.
Limitation of Liability: IN NO EVENT WILL WE BE LIABLE FOR ANY CONSEQUENTIAL, INCIDENTAL, EXEMPLARY, PUNITIVE, SPECIAL, OR INDIRECT DAMAGES ARISING OUT OF OR RELATING TO THIS AGREEMENT.
If you use this dataset in your research, please cite:
@misc{zhang2025verbalizedsamplingmitigatemode,
title={Verbalized Sampling: How to Mitigate Mode Collapse and Unlock LLM Diversity},
author={Jiayi Zhang and Simon Yu and Derek Chong and Anthony Sicilia and Michael R. Tomz and Christopher D. Manning and Weiyan Shi},
year={2025},
eprint={2510.01171},
archivePrefix={arXiv},
primaryClass={cs.CL},
url={https://arxiv.org/abs/2510.01171}
}
For questions or issues, please open an issue on our GitHub repository.
Verbalized-Sampling-Synthetic-Data-Generation
1
50 commits
2 linked in READMEs
updated Oct 29, 2025
This dataset showcases how Verbalized Sampling (VS) can be used to generate high-quality, diverse synthetic training data for mathematical reasoning tasks. From the paper Verbalized Sampling: How to Mitigate Mode Collapse and Unlock LLM Diversity.
The Synthetic Data Generation dataset contains mathematical problem-solution pairs generated by different methods using state-of-the-art LLMs. This dataset demonstrates:
Verbalized Sampling methods produce more diverse solution strategies while maintaining solution correctness, enabling creation of richer synthetic training datasets. Models like GPT-4.1 and Gemini-2.5-Flash generate complementary types of solutions when prompted with different methods.
Each config represents a different model used for generation:
gpt_4_1: Data generated using GPT-4.1gemini_2_5_flash: Data generated using Gemini-2.5-FlashEach split represents a different generation method:
Direct: Standard prompting for solution generationCoT: Chain-of-thought reasoningVS-Standard: Verbalized Sampling with probabilitiesVS-CoT: Verbalized Sampling with chain-of-thoughtVS-Multi: Combined verbalized sampling approachSequence: Sequential verbalized generationMulti-turn: Multi-turn verbalized samplingFields vary by source dataset but typically include:
model, method, source_datasetfields:
from datasets import load_dataset
# Load GPT-4.1 generated data with VS-Multi method
dataset = load_dataset(
"CHATS-Lab/Verbalized-Sampling-Synthetic-Data-Generation",
"gpt_4_1"
)
vs_multi_data = dataset["VS-Multi"]
print(f"Number of examples: {len(vs_multi_data)}")
print(f"Fields: {list(vs_multi_data.features.keys())}")
from datasets import load_dataset
# Load all methods for GPT-4.1
gpt_data = load_dataset(
"CHATS-Lab/Verbalized-Sampling-Synthetic-Data-Generation",
"gpt_4_1"
)
# Compare dataset sizes across methods
for method in ["Direct", "CoT", "VS-Standard", "VS-CoT", "VS-Multi", "Sequence", "Multi-turn"]:
if method in gpt_data:
print(f"{method}: {len(gpt_data[method])} examples")
from datasets import load_dataset, concatenate_datasets
# Load same method from different models
gpt_data = load_dataset(
"CHATS-Lab/Verbalized-Sampling-Synthetic-Data-Generation",
"gpt_4_1"
)["VS-CoT"]
gemini_data = load_dataset(
"CHATS-Lab/Verbalized-Sampling-Synthetic-Data-Generation",
"gemini_2_5_flash"
)["VS-CoT"]
# Combine for more diverse training data
combined = concatenate_datasets([gpt_data, gemini_data])
print(f"Combined VS-CoT data: {len(combined)} examples")
from datasets import load_dataset
from collections import Counter
def analyze_solution_diversity(dataset):
"""Analyze diversity of solutions"""
# This is a simple example - adapt based on your data fields
solution_lengths = []
unique_starts = set()
for example in dataset:
# Adapt field names based on your dataset
solution = example.get("solution", "") or example.get("answer", "")
solution_lengths.append(len(solution.split()))
# Track unique solution starts (first 5 words)
words = solution.split()[:5]
unique_starts.add(tuple(words))
return {
"total_examples": len(dataset),
"avg_solution_length": sum(solution_lengths) / len(solution_lengths) if solution_lengths else 0,
"unique_solution_starts": len(unique_starts),
"diversity_ratio": len(unique_starts) / len(dataset) if len(dataset) > 0 else 0
}
# Compare diversity across methods
gpt_data = load_dataset(
"CHATS-Lab/Verbalized-Sampling-Synthetic-Data-Generation",
"gpt_4_1"
)
for method in ["Direct", "VS-Multi"]:
if method in gpt_data:
stats = analyze_solution_diversity(gpt_data[method])
print(f"\n{method}:")
print(f" Examples: {stats['total_examples']}")
print(f" Avg solution length: {stats['avg_solution_length']:.1f} words")
print(f" Unique solution starts: {stats['unique_solution_starts']}")
print(f" Diversity ratio: {stats['diversity_ratio']:.2%}")
from datasets import load_dataset, concatenate_datasets
# Strategy 1: Use diverse methods from one model
gpt_data = load_dataset(
"CHATS-Lab/Verbalized-Sampling-Synthetic-Data-Generation",
"gpt_4_1"
)
# Combine multiple VS methods for maximum diversity
train_data = concatenate_datasets([
gpt_data["VS-CoT"],
gpt_data["VS-Multi"],
gpt_data["Sequence"]
])
# Strategy 2: Use same method from multiple models
gpt_vs_cot = load_dataset(
"CHATS-Lab/Verbalized-Sampling-Synthetic-Data-Generation",
"gpt_4_1"
)["VS-CoT"]
gemini_vs_cot = load_dataset(
"CHATS-Lab/Verbalized-Sampling-Synthetic-Data-Generation",
"gemini_2_5_flash"
)["VS-CoT"]
train_data = concatenate_datasets([gpt_vs_cot, gemini_vs_cot])
print(f"Training dataset size: {len(train_data)}")
Both models show strong mathematical reasoning capabilities with different solution styles.
This dataset is valuable for:
Best Practices:
Avoid:
This Agreement contains the terms and conditions that govern your access and use of the Verbalized-Sampling-Synthetic-Data-Generation Dataset.
Key Terms:
Subject to your compliance with these terms, we grant you a limited, non-exclusive, non-transferable, non-sublicensable license to use the dataset for research, development, and improvement of software, algorithms, machine learning models, techniques, and technologies for both research and commercial purposes.
Limitation of Liability: IN NO EVENT WILL WE BE LIABLE FOR ANY CONSEQUENTIAL, INCIDENTAL, EXEMPLARY, PUNITIVE, SPECIAL, OR INDIRECT DAMAGES ARISING OUT OF OR RELATING TO THIS AGREEMENT.
If you use this dataset in your research, please cite:
@misc{zhang2025verbalizedsamplingmitigatemode,
title={Verbalized Sampling: How to Mitigate Mode Collapse and Unlock LLM Diversity},
author={Jiayi Zhang and Simon Yu and Derek Chong and Anthony Sicilia and Michael R. Tomz and Christopher D. Manning and Weiyan Shi},
year={2025},
eprint={2510.01171},
archivePrefix={arXiv},
primaryClass={cs.CL},
url={https://arxiv.org/abs/2510.01171}
}
For questions or issues, please open an issue on our GitHub repository.