CoolFace
Datasetpublic

cahlen/cdg-trending_JasonIsaacs_WaltonGoggins_100

Jason Isaacs & Walton Goggins: The absurdity of awards season and the pressure to perform - Generated by Conversation Dataset Generator This dataset was generated using the Conversation Dataset Generator script available at https://cahlen.github.io/conversation-dataset-generator/. Generation Parameters Number of Conversations Requested: 100 Number of Conversations Successfully Generated: 100 Total Turns: 1078 Model ID: meta-llama/Meta-Llama-3-8B-Instruct… See the full description on the dataset page: https://huggingface.co/datasets/cahlen/cdg-trending_JasonIsaacs_WaltonGoggins_100.

sourceHugging Faceunknownupdated 1y agoView on Hugging Face
0likes4downloads
Dataset Card

Jason Isaacs & Walton Goggins: The absurdity of awards season and the pressure to perform - Generated by Conversation Dataset Generator

This dataset was generated using the Conversation Dataset Generator script available at https://cahlen.github.io/conversation-dataset-generator/.

Generation Parameters

  • —Number of Conversations Requested: 100
  • —Number of Conversations Successfully Generated: 100
  • —Total Turns: 1078
  • —Model ID: meta-llama/Meta-Llama-3-8B-Instruct
  • —Generation Mode: Mode: Creative Brief (--creative-brief "A discussion between Jason Isaacs and Walton Goggins about the trending on-set tensions and feud rumors during the filming of 'White Lotus'.")
  • —Persona 1 Search Term: Jason Isaacs White Lotus arguments on set
  • —Persona 2 Search Term: Walton Goggins feud rumors White Lotus
  • —Note: Personas were generated once from the brief. Topic/Scenario/Style were varied for each example based on this brief. Parameters below reflect the last successful example.
  • —Topic: The absurdity of awards season and the pressure to perform
  • —Scenario: At a private industry event, surrounded by industry insiders and pretentious types
  • —Style: Witty repartee, sarcastic asides, and a hint of exasperation
  • —Included Points: feud, rumors, tension, set life, co-stars, professionalism, honesty, humor

Personas

Jason Isaacs Jason Isaacs Description: A seasoned actor known for his intense roles, Jason has a sharp tongue and a quick wit. He's often sarcastic, with a hint of British wit, and isn't afraid to speak his mind. He tends to interrupt when excited, and his words are laced with a dry, observational humor. He's a bit of a perfectionist, which can lead to frustration when things don't go according to plan. -> maps to role: human

Walton Goggins Walton Goggins Description: A southern charmer with a laid-back demeanor, Walton is a chameleon on screen. He's got a smooth, honey-toned voice and a charming smile. He's a bit of a jokester, often cracking wise and making light of situations. He's also fiercely loyal to his co-stars and will fiercely defend them when necessary. His drawling drawl can be soothing, but also has a tendency to make his words seem a bit too smooth. -> maps to role: gpt

Usage

To use this dataset:

1. Clone the repository:

bash
git lfs install
git clone https://huggingface.co/datasets/cahlen/cdg-trending_JasonIsaacs_WaltonGoggins_100

2. Load in Python:

python
from datasets import load_dataset

dataset = load_dataset("cahlen/cdg-trending_JasonIsaacs_WaltonGoggins_100")

# Access the data (e.g., the training split)
print(dataset['train'][0])

LoRA Training Example (Basic)

Below is a basic example of how you might use this dataset to fine-tune a small model like google/gemma-2b-it using LoRA with the PEFT and TRL libraries.

Note: This requires installing additional libraries: pip install -U transformers datasets accelerate peft trl bitsandbytes torch

python
import torch
from datasets import load_dataset
from peft import LoraConfig, get_peft_model, prepare_model_for_kbit_training
from transformers import AutoModelForCausalLM, AutoTokenizer, TrainingArguments, BitsAndBytesConfig
from trl import SFTTrainer

# 1. Load the dataset
dataset_id = "cahlen/cdg-trending_JasonIsaacs_WaltonGoggins_100"
dataset = load_dataset(dataset_id)

# 2. Load Base Model & Tokenizer (using a small model like Gemma 2B)
model_id = "google/gemma-2b-it"

# Quantization Config (optional, for efficiency)
quantization_config = BitsAndBytesConfig(
    load_in_4bit=True,
    bnb_4bit_quant_type="nf4",
    bnb_4bit_compute_dtype=torch.bfloat16 # or torch.float16
)

# Tokenizer
tokenizer = AutoTokenizer.from_pretrained(model_id, trust_remote_code=True)
# Set padding token if necessary (Gemma's is <pad>)
if tokenizer.pad_token is None:
    tokenizer.pad_token = tokenizer.eos_token
    tokenizer.pad_token_id = tokenizer.eos_token_id

# Model
model = AutoModelForCausalLM.from_pretrained(
    model_id,
    quantization_config=quantization_config,
    device_map="auto", # Automatically place model shards
    trust_remote_code=True
)

# Prepare model for k-bit training if using quantization
model = prepare_model_for_kbit_training(model)

# 3. LoRA Configuration
lora_config = LoraConfig(
    r=8, # Rank
    lora_alpha=16,
    target_modules=["q_proj", "k_proj", "v_proj", "o_proj"], # Adjust based on model architecture
    lora_dropout=0.05,
    bias="none",
    task_type="CAUSAL_LM"
)

model = get_peft_model(model, lora_config)
model.print_trainable_parameters()

# 4. Training Arguments (minimal example)
training_args = TrainingArguments(
    output_dir="./lora-adapter-Jason Isaacs-Walton Goggins", # Choose a directory
    per_device_train_batch_size=1,
    gradient_accumulation_steps=4,
    learning_rate=2e-4,
    num_train_epochs=1, # Use 1 epoch for a quick demo
    logging_steps=10,
    save_steps=50, # Save adapter periodically
    fp16=False, # Use bf16 if available, otherwise fp16
    bf16=torch.cuda.is_bf16_supported(),
    optim="paged_adamw_8bit", # Use paged optimizer for efficiency
    report_to="none" # Disable wandb/tensorboard for simple example
)

# 5. Create SFTTrainer
trainer = SFTTrainer(
    model=model,
    train_dataset=dataset['train'], # Assumes 'train' split exists
    peft_config=lora_config,
    tokenizer=tokenizer,
    args=training_args,
    max_seq_length=512, # Adjust as needed
    dataset_text_field="content", # Use content field directly 
    packing=True, # Pack sequences for efficiency
)

# 6. Train
print("Starting LoRA training...")
trainer.train()

### 7. Save the LoRA adapter
# Use a fixed string for the example output directory
trainer.save_model("./lora-adapter-output-directory") 
print(f"LoRA adapter saved to ./lora-adapter-output-directory")

Dataset Format (JSON Lines source)

Each row in the dataset contains the following keys:

  • —conversation_id: Unique identifier for the conversation
  • —turn_number: The sequential number of the turn within a conversation
  • —role: Either 'human' or 'gpt' indicating who is speaking
  • —speakername: The actual name of the speaker (e.g., '{finalpersona1}' or '{final_persona2}')
  • —topic: The conversation topic
  • —scenario: The scenario in which the conversation takes place
  • —style: The stylistic direction for the conversation
  • —include_points: Specific points to include in the conversation
  • —content: The actual text content of the turn