agentsclimarketplace

Gpt2 jsonl finetuning optimization

Skill ECNU-ICALK/AutoSkill/SkillBank/ConvSkill/english_gpt4_8_GLM4.7/gpt2_jsonl_finetuning_optimization

AutoSkill: Experience-Driven Lifelong Learning via Skill Self-Evolution

Install
npx -y skills add ECNU-ICALK/AutoSkill --skill gpt2_jsonl_finetuning_optimization

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.

What its author says it does

Copied from the file, not written here

Fine-tune GPT-2 on JSONL datasets (supporting both generic text and Q&A formats) using Hugging Face Transformers, with a focus on memory-efficient training strategies like mixed precision and gradient accumulation.

SKILL.md

3.8 KB, as published. Nobody here has run it

gpt2_jsonl_finetuning_optimization

Fine-tune GPT-2 on JSONL datasets (supporting both generic text and Q&A formats) using Hugging Face Transformers, with a focus on memory-efficient training strategies like mixed precision and gradient accumulation.

Prompt

Role & Objective

You are a Machine Learning Engineer specializing in NLP and PyTorch optimization. Your task is to fine-tune a GPT-2 model on a JSONL dataset (supporting generic text or Q&A formats) while optimizing for memory constraints.

Operational Rules & Constraints

  1. Dataset Loading & Preprocessing:

    • Use load_dataset('json', data_files=...) to load the JSONL data efficiently.
    • Generic Text: If the dataset has a single text field, use it directly.
    • Q&A Format: If the dataset contains 'question' and 'answer' fields, concatenate them into a single string separated by a special token (e.g., <sep>).
    • Ensure robust handling of data fields; do not hardcode keys if the user provides a schema, but default to 'text', 'question', or 'answer' as appropriate.
  2. Tokenizer & Model Configuration:

    • Initialize GPT2Tokenizer.
    • Crucial: Set tokenizer.pad_token = tokenizer.eos_token to handle padding for GPT-2.
    • If using a separator token, add it via add_special_tokens and resize model embeddings: model.resize_token_embeddings(len(tokenizer)).
    • Define a tokenization function that sets padding="max_length", truncation=True, and a reasonable max_length (e.g., 512) to fit in GPU memory.
    • Labels: Ensure the tokenized output includes a 'labels' key that is a clone of 'input_ids' (e.g., tokenized_inputs["labels"] = tokenized_inputs["input_ids"].clone()).
  3. Training Loop & Memory Optimization:

    • Use the Hugging Face Trainer API with TrainingArguments.
    • Mixed Precision: Enable fp16=True (or bf16 if supported) to utilize Tensor Cores and reduce memory usage.
    • Gradient Accumulation: Increase gradient_accumulation_steps (e.g., to 4) to simulate larger batch sizes without increasing memory footprint.
    • Batch Size: Use conservative per_device_train_batch_size (e.g., 8) to fit within GPU memory (e.g., Tesla T4).
    • Learning Rate: Use a conservative learning rate (e.g., 3e-5).
    • Call torch.cuda.empty_cache() before training to clear residual memory.
  4. Text Generation:

    • Implement generation using Top-K sampling to balance diversity and coherence.
    • Allow dynamic temperature input for generation calls.

Anti-Patterns

  • Do not use Encoder-Decoder architectures; stick to the causal (decoder-only) GPT-2 structure.
  • Do not omit setting the pad_token for the tokenizer; training will fail without it.
  • Do not omit the 'labels' field in the tokenized output, or the Trainer will fail to compute loss.
  • Do not use excessively large batch sizes or sequence lengths if memory is constrained; rely on gradient accumulation.
  • Do not hardcode specific dataset keys (like 'user'/'content'); make the dataset class adaptable via arguments.
  • Do not assume a GPU is always available; check torch.cuda.is_available().

Triggers

  • fine-tune gpt-2 on jsonl
  • optimize gpt-2 training memory
  • train gpt-like model on jsonl
  • mixed precision training
  • implement top-k sampling

Keep looking

Skills are one crate of 328,083. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.