Agent Skillssynthetic-sciences/openscience › training-data-pipeline

training-data-pipeline

GitHub

用于从生产数据、前沿模型蒸馏和合成引导构建LLM专用训练集。涵盖日志格式化为SFT数据、质量验证、去重及训练/评估划分,支持JSONL标准格式适配Tinker等主流平台。

backend/cli/skills/ml-training/training-data-pipeline/SKILL.md synthetic-sciences/openscience

Trigger Scenarios

将生产日志格式化为SFT训练数据 使用前沿API进行模型蒸馏 准备微调所需的数据集 执行数据质量验证与去重 划分训练集与评估集

Install

npx skills add synthetic-sciences/openscience --skill training-data-pipeline -g -y
More Options

Non-standard path

npx skills add https://github.com/synthetic-sciences/openscience/tree/main/backend/cli/skills/ml-training/training-data-pipeline -g -y

Use without installing

npx skills use synthetic-sciences/openscience@training-data-pipeline

指定 Agent (Claude Code)

npx skills add synthetic-sciences/openscience --skill training-data-pipeline -a claude-code -g -y

安装 repo 全部 skill

npx skills add synthetic-sciences/openscience --all -g -y

预览 repo 内 skill

npx skills add synthetic-sciences/openscience --list

SKILL.md

Frontmatter
{
    "name": "training-data-pipeline",
    "tags": [
        "Training Data",
        "Data Pipeline",
        "Fine-Tuning",
        "Distillation",
        "Synthetic Data",
        "Production Data",
        "JSONL",
        "Data Quality"
    ],
    "author": "Synthetic Sciences",
    "license": "MIT",
    "version": "1.0.0",
    "category": "ml-training",
    "description": "Build training datasets for LLM specialization from production data, frontier model distillation, and synthetic bootstrapping. Use when formatting production logs into SFT data, distilling from frontier APIs, or preparing data for fine-tuning. Covers JSONL formatting, data quality validation, deduplication, and train\/eval splitting.",
    "dependencies": [
        "datasets",
        "transformers",
        "openai"
    ]
}

Training Data Pipeline

When to Use This Skill

Use this skill when you need to:

  • Format production logs into SFT training data (API logs, user corrections, accept/reject signals)
  • Distill from frontier models using batch APIs (OpenAI, Anthropic) to label production inputs
  • Bootstrap synthetic data when fewer than 1000 real examples exist
  • Validate data quality before training (dedup, schema check, diversity metrics)
  • Split data into train/eval sets with production data reserved for evaluation

Three Data Paths

Path When to Use Data Source Cost
A) Production data Have API logs or user feedback Your own production systems Free (already collected)
B) Frontier distillation Have production inputs but no labels OpenAI/Anthropic batch APIs ~50% of real-time API cost
C) Synthetic bootstrap < 1000 real examples Frontier model generation Varies by volume

Always prefer Path A — production data is the moat competitors can't replicate.

JSONL Chat Format

All training platforms (Tinker, Unsloth, TRL, Axolotl) accept this standard chat format:

{"messages": [{"role": "system", "content": "You are a helpful assistant."}, {"role": "user", "content": "What is 2+2?"}, {"role": "assistant", "content": "4"}]}
{"messages": [{"role": "user", "content": "Translate to French: Hello"}, {"role": "assistant", "content": "Bonjour"}]}

Format Rules

  • One JSON object per line, no trailing commas
  • messages array with role and content fields
  • Roles: system (optional, first only), user, assistant (alternating)
  • Multi-turn: alternate user/assistant pairs within a single messages array
  • UTF-8 encoding, no BOM
  • assistant messages are the training targets — everything else is context

Platform-Specific Notes

Tinker: Standard chat format above. Max 32K tokens per example. System message optional.

Unsloth/TRL: Same format. Also accepts {"prompt": "...", "completion": "..."} for simple pairs. Chat format preferred for multi-turn.

Axolotl: Supports multiple formats via config. Recommend chat_template type with standard JSONL.

Path A: Production Data Collection

From API Logs

If you log API requests/responses, convert them directly:

import json

def api_log_to_training(log_entry):
    """Convert an API request/response log to training format."""
    messages = []

    # Add system prompt if present
    if log_entry.get("system_prompt"):
        messages.append({
            "role": "system",
            "content": log_entry["system_prompt"]
        })

    # Add the user's input
    messages.append({
        "role": "user",
        "content": log_entry["user_input"]
    })

    # Add the response (use corrected version if available)
    response = log_entry.get("corrected_response") or log_entry["api_response"]
    messages.append({
        "role": "assistant",
        "content": response
    })

    return {"messages": messages}

# Process logs
with open("api_logs.jsonl") as f, open("training_data.jsonl", "w") as out:
    for line in f:
        log = json.loads(line)
        example = api_log_to_training(log)
        out.write(json.dumps(example) + "\n")

From User Corrections

User corrections (edits to model output) are the highest-quality training signal:

def correction_to_training(original_input, corrected_output, system_prompt=None):
    """Convert a user correction into a training example.
    The corrected output becomes the training target."""
    messages = []
    if system_prompt:
        messages.append({"role": "system", "content": system_prompt})
    messages.append({"role": "user", "content": original_input})
    messages.append({"role": "assistant", "content": corrected_output})
    return {"messages": messages}

From Accept/Reject Signals

If users accept or reject model outputs, use accepted outputs as positive examples:

def filter_accepted(logs):
    """Keep only examples where user accepted the output."""
    accepted = []
    for log in logs:
        if log.get("user_action") == "accepted":
            accepted.append({
                "messages": [
                    {"role": "user", "content": log["input"]},
                    {"role": "assistant", "content": log["output"]}
                ]
            })
    return accepted

Path B: Frontier Distillation

Use frontier models to label your production inputs. Best when you have real inputs but no gold labels.

OpenAI Batch API (50% discount)

import json

def create_batch_file(inputs, system_prompt, model="gpt-4o"):
    """Create a batch file for OpenAI Batch API."""
    requests = []
    for i, user_input in enumerate(inputs):
        requests.append({
            "custom_id": f"request-{i}",
            "method": "POST",
            "url": "/v1/chat/completions",
            "body": {
                "model": model,
                "messages": [
                    {"role": "system", "content": system_prompt},
                    {"role": "user", "content": user_input}
                ],
                "max_tokens": 4096
            }
        })

    with open("batch_input.jsonl", "w") as f:
        for req in requests:
            f.write(json.dumps(req) + "\n")
    return "batch_input.jsonl"

# Submit batch
# openai api batches create -i batch_input.jsonl -e /v1/chat/completions -c 24h

Anthropic Batch API

import anthropic

client = anthropic.Anthropic()

def create_anthropic_batch(inputs, system_prompt, model="claude-sonnet-4-5-20250929"):
    """Create batch request for Anthropic Message Batches API."""
    requests = []
    for i, user_input in enumerate(inputs):
        requests.append({
            "custom_id": f"request-{i}",
            "params": {
                "model": model,
                "max_tokens": 4096,
                "system": system_prompt,
                "messages": [
                    {"role": "user", "content": user_input}
                ]
            }
        })

    batch = client.messages.batches.create(requests=requests)
    return batch.id

Processing Batch Results

def batch_results_to_training(results_file, inputs, system_prompt=None):
    """Convert batch API results into training JSONL."""
    training = []
    with open(results_file) as f:
        for line in f:
            result = json.loads(line)
            idx = int(result["custom_id"].split("-")[1])
            messages = []
            if system_prompt:
                messages.append({"role": "system", "content": system_prompt})
            messages.append({"role": "user", "content": inputs[idx]})
            # Extract assistant response from batch result
            content = result["response"]["body"]["choices"][0]["message"]["content"]
            messages.append({"role": "assistant", "content": content})
            training.append({"messages": messages})

    with open("distilled_training.jsonl", "w") as f:
        for example in training:
            f.write(json.dumps(example) + "\n")
    return len(training)

Path C: Synthetic Bootstrapping

Generate training data from scratch when you have < 1000 real examples. Use as a starting point, then replace with production data as it accumulates.

Seed Prompt Strategy

import openai

client = openai.OpenAI()

def generate_synthetic_examples(task_description, seed_examples, n=500, model="gpt-4o"):
    """Generate diverse synthetic training examples from seed examples."""

    meta_prompt = f"""You are generating training data for an LLM that will be fine-tuned for:
{task_description}

Here are {len(seed_examples)} real examples of the desired behavior:
{json.dumps(seed_examples[:5], indent=2)}

Generate a NEW, diverse example. The input should cover a different scenario than
the seeds. The output should match the quality and style of the examples above.

Return JSON: {{"input": "...", "output": "..."}}"""

    examples = []
    for i in range(n):
        response = client.chat.completions.create(
            model=model,
            messages=[{"role": "user", "content": meta_prompt}],
            response_format={"type": "json_object"},
            temperature=0.9,  # High temp for diversity
        )
        example = json.loads(response.choices[0].message.content)
        examples.append({
            "messages": [
                {"role": "user", "content": example["input"]},
                {"role": "assistant", "content": example["output"]}
            ]
        })
    return examples

Diversity Strategies

  • Vary temperature (0.7-1.0) across generation batches
  • Use different frontier models (GPT-4o, Claude, Gemini) to reduce model-specific bias
  • Seed with representative prompts from different categories/difficulty levels
  • Include edge cases and adversarial examples explicitly in seed prompts

Data Quality Validation

Schema Validation

def validate_jsonl(filepath):
    """Validate JSONL training file format."""
    errors = []
    valid = 0
    with open(filepath) as f:
        for i, line in enumerate(f, 1):
            try:
                obj = json.loads(line)
            except json.JSONDecodeError as e:
                errors.append(f"Line {i}: Invalid JSON — {e}")
                continue

            if "messages" not in obj:
                errors.append(f"Line {i}: Missing 'messages' key")
                continue

            msgs = obj["messages"]
            if not isinstance(msgs, list) or len(msgs) < 2:
                errors.append(f"Line {i}: 'messages' must be a list with >= 2 entries")
                continue

            # Check roles
            has_user = any(m.get("role") == "user" for m in msgs)
            has_assistant = any(m.get("role") == "assistant" for m in msgs)
            if not has_user or not has_assistant:
                errors.append(f"Line {i}: Must have at least one user and one assistant message")
                continue

            for j, msg in enumerate(msgs):
                if "role" not in msg or "content" not in msg:
                    errors.append(f"Line {i}, message {j}: Missing 'role' or 'content'")
                elif msg["role"] not in ("system", "user", "assistant"):
                    errors.append(f"Line {i}, message {j}: Invalid role '{msg['role']}'")

            valid += 1

    return {"valid": valid, "errors": errors, "total": valid + len(errors)}

Deduplication (MinHash)

from datasketch import MinHash, MinHashLSH

def deduplicate_dataset(examples, threshold=0.8):
    """Remove near-duplicate examples using MinHash LSH."""
    lsh = MinHashLSH(threshold=threshold, num_perm=128)
    unique = []

    for i, ex in enumerate(examples):
        # Hash the assistant's response (training target)
        text = ex["messages"][-1]["content"]
        m = MinHash(num_perm=128)
        for word in text.lower().split():
            m.update(word.encode("utf-8"))

        key = f"doc-{i}"
        if not lsh.query(m):
            lsh.insert(key, m)
            unique.append(ex)

    removed = len(examples) - len(unique)
    print(f"Removed {removed} duplicates ({removed/len(examples)*100:.1f}%)")
    return unique

Diversity Metrics

from collections import Counter

def distinct_n(texts, n=2):
    """Calculate distinct-n metric (ratio of unique n-grams to total n-grams)."""
    total_ngrams = Counter()
    for text in texts:
        words = text.lower().split()
        ngrams = [tuple(words[i:i+n]) for i in range(len(words)-n+1)]
        total_ngrams.update(ngrams)
    if sum(total_ngrams.values()) == 0:
        return 0
    return len(total_ngrams) / sum(total_ngrams.values())

def dataset_diversity_report(examples):
    """Generate diversity metrics for a training dataset."""
    responses = [ex["messages"][-1]["content"] for ex in examples]
    inputs = [m["content"] for ex in examples for m in ex["messages"] if m["role"] == "user"]

    report = {
        "total_examples": len(examples),
        "avg_response_length": sum(len(r.split()) for r in responses) / len(responses),
        "avg_input_length": sum(len(i.split()) for i in inputs) / len(inputs),
        "distinct_1": distinct_n(responses, 1),
        "distinct_2": distinct_n(responses, 2),
        "distinct_3": distinct_n(responses, 3),
    }
    return report

Train/Eval Split

import random

def split_dataset(examples, eval_ratio=0.1, production_indices=None):
    """Split dataset into train/eval, keeping production data in eval for ground truth.

    Args:
        examples: List of training examples
        eval_ratio: Fraction of data for evaluation (default 10%)
        production_indices: Indices of real production examples (always go to eval)
    """
    production_indices = set(production_indices or [])
    synthetic = [ex for i, ex in enumerate(examples) if i not in production_indices]
    production = [ex for i, ex in enumerate(examples) if i in production_indices]

    # Production data goes to eval (ground truth)
    eval_set = list(production)

    # Fill remaining eval budget from synthetic
    remaining_eval = max(0, int(len(examples) * eval_ratio) - len(eval_set))
    random.shuffle(synthetic)
    eval_set.extend(synthetic[:remaining_eval])
    train_set = synthetic[remaining_eval:]

    print(f"Train: {len(train_set)}, Eval: {len(eval_set)} "
          f"({len(production)} production + {len(eval_set)-len(production)} synthetic)")
    return train_set, eval_set

Common Issues

Issue Cause Fix
JSONDecodeError Trailing commas or malformed JSON Run validate_jsonl() and fix flagged lines
Tokenizer mismatch Data tokenized for wrong model Always use target model's tokenizer for length checks
Training loss doesn't decrease Data too noisy or contradictory Filter low-quality examples, check for duplicates
Model repeats training data Overfitting on small dataset Add more diverse examples, reduce epochs
Data leakage Eval examples appear in training Use split_dataset() with production_indices
Encoding errors Non-UTF-8 characters text.encode('utf-8', errors='replace').decode('utf-8')
Examples too long Exceeds model context Truncate or split long conversations, check tokenizer limits

Quick Start Checklist

  1. Identify data source: Production logs (A), frontier distillation (B), or synthetic (C)
  2. Format to JSONL: Standard chat format with messages array
  3. Validate: Run validate_jsonl() on the output file
  4. Deduplicate: Run MinHash dedup with 0.8 threshold
  5. Check diversity: Run dataset_diversity_report(), aim for distinct-2 > 0.5
  6. Split: 90/10 train/eval, production data in eval set
  7. Count tokens: Verify no examples exceed model's context window
  8. Proceed to training: Load tinker or unsloth skill for next step

Version History

  • e9844a4 Current 2026-07-11 17:31

Dependencies

Same Skill Collection

.openscience/skill/bun-file-io/SKILL.md
backend/cli/skills/biology/anndata/SKILL.md
backend/cli/skills/biology/benchling-integration/SKILL.md
backend/cli/skills/biology/bioimage-analysis/SKILL.md
backend/cli/skills/biology/bioservices/SKILL.md
backend/cli/skills/biology/cancer-genomics-analysis/SKILL.md
backend/cli/skills/biology/clinical-imaging/SKILL.md
backend/cli/skills/biology/clinical-reports/SKILL.md
backend/cli/skills/biology/cobrapy/SKILL.md
backend/cli/skills/biology/curated-bio-datasets/SKILL.md
backend/cli/skills/biology/deeptools/SKILL.md
backend/cli/skills/biology/dnanexus-integration/SKILL.md
backend/cli/skills/biology/etetoolkit/SKILL.md
backend/cli/skills/biology/flow-cytometry-analysis/SKILL.md
backend/cli/skills/biology/flowio/SKILL.md
backend/cli/skills/biology/gget/SKILL.md
backend/cli/skills/biology/glycobiology/SKILL.md
backend/cli/skills/biology/histolab/SKILL.md
backend/cli/skills/biology/immunology-assays/SKILL.md
backend/cli/skills/biology/latchbio-integration/SKILL.md
backend/cli/skills/biology/microbial-dynamics/SKILL.md
backend/cli/skills/biology/molecular-cloning/SKILL.md
backend/cli/skills/biology/neurokit2/SKILL.md
backend/cli/skills/biology/neuropixels-analysis/SKILL.md
backend/cli/skills/biology/omero-integration/SKILL.md
backend/cli/skills/biology/opentrons-integration/SKILL.md
backend/cli/skills/biology/pathml/SKILL.md
backend/cli/skills/biology/pharmacology-wetlab/SKILL.md
backend/cli/skills/biology/protocolsio-integration/SKILL.md
backend/cli/skills/biology/pydeseq2/SKILL.md
backend/cli/skills/biology/pyhealth/SKILL.md
backend/cli/skills/biology/pylabrobot/SKILL.md
backend/cli/skills/biology/pysam/SKILL.md
backend/cli/skills/biology/scanpy/SKILL.md
backend/cli/skills/biology/scikit-bio/SKILL.md
backend/cli/skills/biology/scikit-survival/SKILL.md
backend/cli/skills/biology/scvi-tools/SKILL.md
backend/cli/skills/biology/synthetic-biology/SKILL.md
backend/cli/skills/biology/treatment-plans/SKILL.md
backend/cli/skills/chemistry/admet-prediction/SKILL.md
backend/cli/skills/chemistry/admet-reasoning/SKILL.md
backend/cli/skills/chemistry/binding-affinity/SKILL.md
backend/cli/skills/chemistry/datamol/SKILL.md
backend/cli/skills/chemistry/deepchem/SKILL.md
backend/cli/skills/chemistry/denovo-design/SKILL.md
backend/cli/skills/chemistry/diffdock/SKILL.md
backend/cli/skills/chemistry/drug-design/SKILL.md
backend/cli/skills/chemistry/hypogenic/SKILL.md
backend/cli/skills/chemistry/matchms/SKILL.md
backend/cli/skills/chemistry/medchem/SKILL.md
backend/cli/skills/chemistry/molecular-docking/SKILL.md
backend/cli/skills/chemistry/molecular-optimization/SKILL.md
backend/cli/skills/chemistry/molecular-rag/SKILL.md
backend/cli/skills/chemistry/molecule-visualization/SKILL.md
backend/cli/skills/chemistry/molfeat/SKILL.md
backend/cli/skills/chemistry/pocket-detection/SKILL.md
backend/cli/skills/chemistry/pyopenms/SKILL.md
backend/cli/skills/chemistry/pytdc/SKILL.md
backend/cli/skills/chemistry/rdkit/SKILL.md
backend/cli/skills/chemistry/smiles-validation/SKILL.md
backend/cli/skills/chemistry/structure-prediction/SKILL.md
backend/cli/skills/chemistry/torchdrug/SKILL.md
backend/cli/skills/cloud-compute/fireworks-ai/SKILL.md
backend/cli/skills/cloud-compute/lambda-labs/SKILL.md
backend/cli/skills/cloud-compute/modal-ml-training/SKILL.md
backend/cli/skills/cloud-compute/modal-research-gpu/SKILL.md
backend/cli/skills/cloud-compute/modal/SKILL.md
backend/cli/skills/cloud-compute/skypilot/SKILL.md
backend/cli/skills/cloud-compute/tensorpool/SKILL.md
backend/cli/skills/cloud-compute/tinker-training-cost/SKILL.md
backend/cli/skills/cloud-compute/tinker/SKILL.md
backend/cli/skills/cloud-compute/together-ai/SKILL.md
backend/cli/skills/coding/arboreto/SKILL.md
backend/cli/skills/coding/audiocraft/SKILL.md
backend/cli/skills/coding/denario/SKILL.md
backend/cli/skills/coding/gtars/SKILL.md
backend/cli/skills/coding/multi-objective-optimization/SKILL.md
backend/cli/skills/coding/networkx/SKILL.md
backend/cli/skills/coding/pymc/SKILL.md
backend/cli/skills/coding/pymoo/SKILL.md
backend/cli/skills/coding/scikit-learn/SKILL.md
backend/cli/skills/coding/simpy/SKILL.md
backend/cli/skills/coding/slime/SKILL.md
backend/cli/skills/coding/statistical-analysis/SKILL.md
backend/cli/skills/coding/statsmodels/SKILL.md
backend/cli/skills/coding/torch_geometric/SKILL.md
backend/cli/skills/coding/umap-learn/SKILL.md
backend/cli/skills/data-engineering/aeon/SKILL.md
backend/cli/skills/data-engineering/dask/SKILL.md
backend/cli/skills/data-engineering/hdf5-pde-data-loading/SKILL.md
backend/cli/skills/data-engineering/hugging-face-datasets/SKILL.md
backend/cli/skills/data-engineering/polars/SKILL.md
backend/cli/skills/data-engineering/vaex/SKILL.md
backend/cli/skills/data-engineering/zarr-python/SKILL.md
backend/cli/skills/databases/alphafold-database/SKILL.md
backend/cli/skills/databases/biorxiv-database/SKILL.md
backend/cli/skills/databases/brenda-database/SKILL.md
backend/cli/skills/databases/cellxgene-census/SKILL.md
backend/cli/skills/databases/chembl-database/SKILL.md
backend/cli/skills/databases/clinicaltrials-database/SKILL.md
backend/cli/skills/databases/clinpgx-database/SKILL.md
backend/cli/skills/databases/clinvar-database/SKILL.md
backend/cli/skills/databases/cosmic-database/SKILL.md
backend/cli/skills/databases/datacommons-client/SKILL.md
backend/cli/skills/databases/drugbank-database/SKILL.md
backend/cli/skills/databases/ena-database/SKILL.md
backend/cli/skills/databases/ensembl-database/SKILL.md
backend/cli/skills/databases/fda-database/SKILL.md
backend/cli/skills/databases/gene-database/SKILL.md
backend/cli/skills/databases/gwas-database/SKILL.md
backend/cli/skills/databases/hmdb-database/SKILL.md
backend/cli/skills/databases/imaging-data-commons/SKILL.md
backend/cli/skills/databases/kegg-database/SKILL.md
backend/cli/skills/databases/metabolomics-workbench-database/SKILL.md
backend/cli/skills/databases/openalex-database/SKILL.md
backend/cli/skills/databases/opentargets-database/SKILL.md
backend/cli/skills/databases/pdb-database/SKILL.md
backend/cli/skills/databases/pubchem-database/SKILL.md
backend/cli/skills/databases/pubmed-database/SKILL.md
backend/cli/skills/databases/reactome-database/SKILL.md
backend/cli/skills/databases/string-database/SKILL.md
backend/cli/skills/databases/uniprot-database/SKILL.md
backend/cli/skills/databases/zinc-database/SKILL.md
backend/cli/skills/document-parsing/liteparse/SKILL.md
backend/cli/skills/llm-tools/autogpt/SKILL.md
backend/cli/skills/llm-tools/blip-2/SKILL.md
backend/cli/skills/llm-tools/chroma/SKILL.md
backend/cli/skills/llm-tools/clip/SKILL.md
backend/cli/skills/llm-tools/constitutional-ai/SKILL.md
backend/cli/skills/llm-tools/crewai/SKILL.md
backend/cli/skills/llm-tools/dspy/SKILL.md
backend/cli/skills/llm-tools/faiss/SKILL.md
backend/cli/skills/llm-tools/guidance/SKILL.md
backend/cli/skills/llm-tools/hugging-face-cli/SKILL.md
backend/cli/skills/llm-tools/hugging-face-tool-builder/SKILL.md
backend/cli/skills/llm-tools/huggingface-tokenizers/SKILL.md
backend/cli/skills/llm-tools/instructor/SKILL.md
backend/cli/skills/llm-tools/langchain/SKILL.md
backend/cli/skills/llm-tools/langsmith/SKILL.md
backend/cli/skills/llm-tools/llamaguard/SKILL.md
backend/cli/skills/llm-tools/llamaindex/SKILL.md
backend/cli/skills/llm-tools/llava/SKILL.md
backend/cli/skills/llm-tools/llm-as-judge-evaluation/SKILL.md
backend/cli/skills/llm-tools/long-context/SKILL.md
backend/cli/skills/llm-tools/nemo-guardrails/SKILL.md
backend/cli/skills/llm-tools/outlines/SKILL.md
backend/cli/skills/llm-tools/pinecone/SKILL.md
backend/cli/skills/llm-tools/qdrant/SKILL.md
backend/cli/skills/llm-tools/segment-anything/SKILL.md
backend/cli/skills/llm-tools/sentence-transformers/SKILL.md
backend/cli/skills/llm-tools/sentencepiece/SKILL.md
backend/cli/skills/llm-tools/stable-diffusion/SKILL.md
backend/cli/skills/llm-tools/transformers/SKILL.md
backend/cli/skills/llm-tools/whisper/SKILL.md
backend/cli/skills/ml-inference/gguf/SKILL.md
backend/cli/skills/ml-inference/groq/SKILL.md
backend/cli/skills/ml-inference/llama-cpp/SKILL.md
backend/cli/skills/ml-inference/miles/SKILL.md
backend/cli/skills/ml-inference/phoenix/SKILL.md
backend/cli/skills/ml-inference/sglang/SKILL.md
backend/cli/skills/ml-inference/speculative-decoding/SKILL.md
backend/cli/skills/ml-inference/tensorrt-llm/SKILL.md
backend/cli/skills/ml-inference/vllm/SKILL.md
backend/cli/skills/ml-training/accelerate/SKILL.md
backend/cli/skills/ml-training/awq/SKILL.md
backend/cli/skills/ml-training/axolotl/SKILL.md
backend/cli/skills/ml-training/bigcode-evaluation-harness/SKILL.md
backend/cli/skills/ml-training/bitsandbytes/SKILL.md
backend/cli/skills/ml-training/colab-finetuning/SKILL.md
backend/cli/skills/ml-training/deepspeed/SKILL.md
backend/cli/skills/ml-training/flash-attention/SKILL.md
backend/cli/skills/ml-training/geniml/SKILL.md
backend/cli/skills/ml-training/gptq/SKILL.md
backend/cli/skills/ml-training/grpo-rl-training/SKILL.md
backend/cli/skills/ml-training/hqq/SKILL.md
backend/cli/skills/ml-training/hugging-face-evaluation/SKILL.md
backend/cli/skills/ml-training/knowledge-distillation/SKILL.md
backend/cli/skills/ml-training/litgpt/SKILL.md
backend/cli/skills/ml-training/llama-factory/SKILL.md
backend/cli/skills/ml-training/lm-evaluation-harness/SKILL.md
backend/cli/skills/ml-training/mamba/SKILL.md
backend/cli/skills/ml-training/megatron-core/SKILL.md
backend/cli/skills/ml-training/ml-benchmark-evaluation/SKILL.md
backend/cli/skills/ml-training/mlflow/SKILL.md
backend/cli/skills/ml-training/model-economics/SKILL.md
backend/cli/skills/ml-training/model-merging/SKILL.md
backend/cli/skills/ml-training/model-pruning/SKILL.md
backend/cli/skills/ml-training/moe-training/SKILL.md
backend/cli/skills/ml-training/nanogpt/SKILL.md
backend/cli/skills/ml-training/nemo-curator/SKILL.md
backend/cli/skills/ml-training/nnsight/SKILL.md
backend/cli/skills/ml-training/openrlhf/SKILL.md
backend/cli/skills/ml-training/peft/SKILL.md
backend/cli/skills/ml-training/prime-intellect-lab/SKILL.md
backend/cli/skills/ml-training/pufferlib/SKILL.md
backend/cli/skills/ml-training/pytorch-fsdp/SKILL.md
backend/cli/skills/ml-training/pytorch-lightning/SKILL.md
backend/cli/skills/ml-training/pyvene/SKILL.md
backend/cli/skills/ml-training/rwkv/SKILL.md
backend/cli/skills/ml-training/saelens/SKILL.md
backend/cli/skills/ml-training/simpo/SKILL.md
backend/cli/skills/ml-training/stable-baselines3/SKILL.md
backend/cli/skills/ml-training/tensorboard/SKILL.md
backend/cli/skills/ml-training/torchforge/SKILL.md
backend/cli/skills/ml-training/torchtitan/SKILL.md
backend/cli/skills/ml-training/transformer-lens/SKILL.md
backend/cli/skills/ml-training/trl-fine-tuning/SKILL.md
backend/cli/skills/ml-training/unsloth/SKILL.md
backend/cli/skills/ml-training/verl/SKILL.md
backend/cli/skills/other/hugging-face-trackio/SKILL.md
backend/cli/skills/other/labarchive-integration/SKILL.md
backend/cli/skills/other/skill-installer/SKILL.md
backend/cli/skills/physics/astropy/SKILL.md
backend/cli/skills/physics/autoregressive-neural-pde-solver/SKILL.md
backend/cli/skills/physics/bayesian-inference/SKILL.md
backend/cli/skills/physics/conservation-law-discovery/SKILL.md
backend/cli/skills/physics/dimensional-analysis/SKILL.md
backend/cli/skills/physics/dynamical-systems/SKILL.md
backend/cli/skills/physics/fluid-dynamics/SKILL.md
backend/cli/skills/physics/fluidsim/SKILL.md
backend/cli/skills/physics/hamiltonian-mechanics/SKILL.md
backend/cli/skills/physics/neural-operator/SKILL.md
backend/cli/skills/physics/ode-solver/SKILL.md
backend/cli/skills/physics/pde-solver/SKILL.md
backend/cli/skills/physics/physics-databases/SKILL.md
backend/cli/skills/physics/physics-fitting/SKILL.md
backend/cli/skills/physics/physics-visualization/SKILL.md
backend/cli/skills/physics/pinn-training/SKILL.md
backend/cli/skills/physics/shock-capturing-neural-operators/SKILL.md
backend/cli/skills/physics/sindy-identification/SKILL.md
backend/cli/skills/physics/spectral-analysis/SKILL.md
backend/cli/skills/physics/statistical-mechanics/SKILL.md
backend/cli/skills/physics/symbolic-regression/SKILL.md
backend/cli/skills/physics/wave-propagation/SKILL.md
backend/cli/skills/quantum/cirq/SKILL.md
backend/cli/skills/quantum/pennylane/SKILL.md
backend/cli/skills/quantum/qiskit/SKILL.md
backend/cli/skills/quantum/qutip/SKILL.md
backend/cli/skills/research/hypothesis-generation/SKILL.md
backend/cli/skills/research/initialize-atlas-graph/SKILL.md
backend/cli/skills/research/market-research-reports/SKILL.md
backend/cli/skills/research/peer-review/SKILL.md
backend/cli/skills/research/research-grants/SKILL.md
backend/cli/skills/research/research-lookup/SKILL.md
backend/cli/skills/research/scientific-brainstorming/SKILL.md
backend/cli/skills/research/scientific-critical-thinking/SKILL.md
backend/cli/skills/visualization/dna-visualization/SKILL.md
backend/cli/skills/visualization/matplotlib/SKILL.md
backend/cli/skills/visualization/plotly/SKILL.md
backend/cli/skills/visualization/protein-diagram/SKILL.md
backend/cli/skills/visualization/scientific-visualization/SKILL.md
backend/cli/skills/visualization/seaborn/SKILL.md
backend/cli/skills/writing/citation-management/SKILL.md
backend/cli/skills/writing/hugging-face-paper-publisher/SKILL.md
backend/cli/skills/writing/latex-posters/SKILL.md
backend/cli/skills/writing/literature-review/SKILL.md
backend/cli/skills/writing/ml-paper-writing/SKILL.md
backend/cli/skills/writing/pptx-posters/SKILL.md
backend/cli/skills/writing/scientific-writing/SKILL.md
backend/cli/skills/writing/venue-templates/SKILL.md
backend/cli/skills/biology/clinical-decision-support/SKILL.md
backend/cli/skills/biology/esm/SKILL.md
backend/cli/skills/biology/lamindb/SKILL.md
backend/cli/skills/biology/pydicom/SKILL.md
backend/cli/skills/coding/exploratory-data-analysis/SKILL.md
backend/cli/skills/coding/matlab/SKILL.md
backend/cli/skills/coding/shap/SKILL.md
backend/cli/skills/coding/sympy/SKILL.md
backend/cli/skills/data-engineering/geopandas/SKILL.md
backend/cli/skills/ml-training/hugging-face-model-trainer/SKILL.md
backend/cli/skills/other/get-available-resources/SKILL.md
backend/cli/skills/other/hugging-face-jobs/SKILL.md
backend/cli/skills/other/iso-13485-certification/SKILL.md

Metadata

Files
0
Version
e9844a4
Hash
28f7f7fc
Indexed
2026-07-11 17:31

Home - Wiki
Copyright © 2011-2026 iteam. Current version is 2.155.2. UTC+08:00, 2026-07-14 09:26
浙ICP备14020137号-1 $Map of visitor$