simonko912's picture
download
raw
1.29 kB
from datasets import load_dataset
from collections import defaultdict
# ======================
# Load dataset
# ======================
dataset = load_dataset(
"simonko912/chan-shitpost-3",
split="train",
streaming=True
)
# ======================
# Group by thread
# ======================
threads = defaultdict(list)
for ex in dataset:
if ex["text"] and len(ex["text"].strip()) > 0:
threads[ex["thread_id"]].append(ex)
# ======================
# Build SmolLM2 ChatML
# ======================
def build_chatml(posts, max_messages=50):
posts = sorted(posts, key=lambda x: x["position_in_thread"])
chat = ""
for i, post in enumerate(posts[:max_messages]):
role = "user" if i % 2 == 0 else "assistant"
content = post["text"].strip()
if len(content) < 2:
continue
chat += f"<|im_start|>{role}\n{content}<|im_end|>\n"
# IMPORTANT: leave open assistant for training completion
chat += "<|im_start|>assistant\n"
return {"text": chat}
# ======================
# Convert all threads
# ======================
train_data = []
for thread_id, posts in threads.items():
if len(posts) < 2:
continue
train_data.append(build_chatml(posts))
print("Conversations built:", len(train_data))

Xet Storage Details

Size:
1.29 kB
·
Xet hash:
3d60116979c171059dade81203516bd8d6ecbc4e5d0288b16a7d2215b29cfd15

Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.