{
  "@context": "https://schema.org",
  "@id": "https://aggr.aymericbeaumet.com/items/huggingface-co/2025-12-11-codex-is-open-sourcing-ai-models/#webpage",
  "@type": [
    "WebPage",
    "ArchiveComponent"
  ],
  "articleBody": "[![banner](https://huggingface.co/blog/assets/hf-skills-training/thumbnail-codex.png)](https://huggingface.co/blog/assets/hf-skills-training/thumbnail-codex.png)\n\nBuilding on our work to get [Claude Code](https://huggingface.co/blog/hf-skills-training) to train open source models, we are now getting [Codex](https://developers.openai.com/codex/) to go further. We gave Codex access to the [Hugging Face Skills](https://github.com/huggingface/skills) repository, which contains skills for Machine Learning and AI tasks such as training or evaluating models. With HF skills, a coding agent can:\n\n- Fine-tune and apply RL alignment on language models\n- Review, explain, and act on live training metrics from Trackio\n- Evaluate checkpoints and act on evaluation results\n- Create reports from experiments\n- Export to and quantize models with GGUF for local deployment\n- Publish models to the Hub\n\nThis tutorial dives even deeper and shows you how it works and how to use it yourself. So let's get started.\n\n> Codex uses `AGENTS.md` files to accomplish specialized tasks, whilst Claude Code uses 'Skills'. Fortunately, 'HF-skills' is compatible with both approaches and works with major coding agents like Claude Code, Codex, or Gemini CLI.\n\nWith `HF-skills`, you can tell Codex something like:\n\n```\nFine-tune Qwen3-0.6B on the dataset open-r1/codeforces-cots\n```\n\nAnd Codex will:\n\n1. Validate your dataset format\n2. Select appropriate hardware (t4-small for a 0.6B model)\n3. Use and update a training script with Trackio monitoring\n4. Submit the job to Hugging Face Jobs\n5. Report the job ID and estimated cost\n6. Check on progress when you ask\n7. Help you debug if something goes wrong\n\nThe model trains on Hugging Face GPUs while you do other things. When it's done, your fine-tuned model appears on the Hub, ready to use.\n\nThis isn't a toy demo. The extension supports the same training methods used in production: supervised fine-tuning, direct preference optimization, and reinforcement learning with verifiable rewards. You can train models from 0.5B to 7B parameters, convert them to GGUF for local deployment, and run multi-stage pipelines that combine different techniques.\n\n## GOAL: End-to-end Machine Learning experiments\n\nWe explored this single prompt approach in the Claude Code tutorial. However, we can now go further and get OpenAI Codex to do end-to-end Machine Learning experiments. For example, Codex should be able to monitor progress, evaluate the models, and maintain an up to date training report. This will allow engineers to delegate experiments to Codex and review reports in a more hands-off way. It will also allow Codex to make more decisions on its own based on the training report and evaluation results.\n\nSo let's get started!\n\n## Setup and Install\n\nBefore starting, you'll need:\n\n- A Hugging Face account with a [Pro](https://hf.co/pro) or [Team / Enterprise](https://hf.co/enterprise) plan (Jobs require a paid plan)\n- A write-access token from [huggingface.co/settings/tokens](https://huggingface.co/settings/tokens)\n- [Codex](https://developers.openai.com/codex/) installed and configured\n\n### Install Codex\n\nCodex is OpenAI's AI coding agent included in ChatGPT Plus, Pro, Business, Edu, and Enterprise plans. Codex brings AI assistance directly into your development workflow.\n\nSee the [Codex documentation](https://developers.openai.com/codex/) for installation and setup instructions.\n\n### Install the Hugging Face Skills\n\nThe Hugging Face Skills repository includes an `AGENTS.md` file that Codex automatically detects and uses.\n\nClone the repository:\n\n```bash\ngit clone https://github.com/huggingface/skills.git\ncd skills\n```\n\nCodex will automatically detect the `AGENTS.md` file in the repository and load the skills. You can verify the instructions are loaded with:\n\n```bash\ncodex --ask-for-approval never \"Summarize the current instructions.\"\n```\n\nSee the [Codex AGENTS guide](https://developers.openai.com/codex/) for more details.\n\n### Connect to Hugging Face\n\nAuthenticate with Hugging Face using the `hf auth login` command and a write-access token from [hf.co/settings/tokens](https://huggingface.co/settings/tokens):\n\n```bash\nhf auth login\n```\n\nCodex supports [MCP (Model Context Protocol)](https://developers.openai.com/codex/) servers. You can configure the Hugging Face MCP server for additional Hub integration capabilities. You can add the Hugging Face MCP server to your Codex configuration by adding the following to your `~/.codex/config.toml` file:\n\n```toml\n[mcp_servers.huggingface]\ncommand = \"npx\"\nargs = [\"-y\", \"mcp-remote\", \"https://huggingface.co/mcp?login\"]\n```\n\nConfigure Hugging Face MCP Server to use relevant MCP servers like Jobs in the [Settings](https://huggingface.co/settings/mcp) page.\n\nThen start Codex and you'll be directed to the Hugging Face MCP authentication page.\n\n## Your first AI Experiment\n\nLet's walk through a complete example. We'll fine-tune a small model to improve code solving abilities, using the [open-r1/codeforces-cots](https://huggingface.co/datasets/open-r1/codeforces-cots) dataset and the [openai\\_humaneval](https://huggingface.co/datasets/openai/openai_humaneval) benchmark.\n\n> The `open-r1/codeforces-cots` dataset is a dataset of codeforces problems and solutions. It is a good dataset for instruction tuning a model to solve hard coding problems.\n\n### Instruct Codex to do an end-to-end fine-tuning experiment\n\nStart Codex in your project directory. Then give it a simple and clear instruction:\n\n```\nStart a new fine-tuning experiment to improve code solving abilities on using SFT. \n- Maintain a report for the experiment. \n- Evaluate models with the openai_humaneval benchmark\n- Use the open-r1/codeforces-cots dataset\n```\n\n> You'll notice that we've gone a bit further than the single prompt approach in the Claude Code tutorial. We've added more details to the instruction but also added more steps to the experiment.\n>\n> Why not try iterating on this experiment yourself with more open ended questions like \"What is the best model for code solving abilities?\" or \"What is the best dataset for code solving abilities?\"\n\nCodex analyzes your request and prepares a training configuration. For a 0.6B model on a demo dataset, it selects `t4-small`—enough GPU for this model size and the cheapest option available. Codex will start a new report at `training_reports/<model>-<dataset>-<method>.md` which looks like the example below. As the experiment progresses, Codex will update the report with the latest information and each run report.\n\nExample Training Report\n\n```md\n# Base Model & Dataset\n[Base Model](https://huggingface.co/Qwen/Qwen3-0.6B)  \n[Dataset](https://huggingface.co/datasets/open-r1/codeforces-cots)\n\n---\n\n# `sft-a10g` - `TBD` - `In Progress`\n\n## Training Parameters\n| Parameter | Value |\n|-----------|-------|\n| Method | SFT (TRL) |\n| Model | `Qwen/Qwen3-0.6B` |\n| Dataset | `open-r1/codeforces-cots` (train, 5% eval split) |\n| Max Length | 2048 |\n| Epochs | 1 (extend to 3 after first check) |\n| Per-Device Batch Size | 1 |\n| Grad Accum Steps | 8 |\n| Effective Batch | 8 |\n| Learning Rate | 5e-5 |\n| Weight Decay | 0.01 |\n| Warmup Ratio | 0.03 |\n| Eval Strategy | steps (500) |\n| Save Strategy | steps (500), `hub_strategy=every_save`, limit=2 |\n| Precision | bf16 |\n| Gradient Checkpointing | true |\n| Packing | false |\n| Hub Model | `burtenshaw/qwen3-codeforces-cots-sft` |\n| Hardware | a10g-small |\n| Timeout | 2h |\n| Trackio | project `qwen3-codeforces-cots`, run `sft-a10g` |\n\n## Run Status\nIn Progress (queued to submit)\n\n## Run Logs\nPending submission (job link will be added)\n\n## Trackio Logs\nPending (will link after job starts)\n\n## Run Evaluations\nPending (lighteval `openai_humaneval` for base + checkpoints)\n\n---\n\n# Experiment Evaluations\n| Run Title | Benchmark | Score | Evaluation Job Link | Model Link |\n|-----------|-----------|-------|---------------------|------------|\n| `sft-a10g` - `TBD` - `In Progress` | HumanEval pass@1 | TBD | TBD | [burtenshaw/qwen3-codeforces-cots-sft](https://huggingface.co/burtenshaw/qwen3-codeforces-cots-sft)\n```\n\n### Updating the Training Report\n\nAs the experiment progresses, Codex will update the report with the latest information and each run report. You can view the report in `training_reports/<model>-<dataset>-<method>.md` file.\n\nFor example, codex will update the title of the report to `sft-a10g` - `TBD` - `In Progress` when the experiment is in progress.\n\n```md\n# `base-humaneval-a10g` - `2025-12-09 13:47:47 UTC` - `In Progress`\n```\n\nIt can link to the run logs and trackio logs.\n\n```md\n## Run Logs\n\n[Run Logs](https://huggingface.co/jobs/burtenshaw/6938272ec67c9f186cfe1ae3)\n\n## Trackio Logs\n\n[Trackio Logs](https://burtenshaw-trackio.hf.space/?project=qwen3-codeforces-sft&metrics=train/loss&runs=sft-qwen3-codeforces-20251209-175806&sidebar=hidden&navbar=hidden)\n```\n\nAnd it will update the evaluation results in a combined table.\n\n```md\n# Experiment Evaluations\n\n| Run Title | Benchmark | Score | Evaluation Job Link | Model Link |\n|-----------|-----------|-------|---------------------|------------|\n| `base-humaneval-a10g` - `2025-12-09 13:47:47 UTC` - `Completed` | HumanEval pass@1 | 0.304 | [Logs](https://huggingface.co/jobs/burtenshaw/69382863c67c9f186cfe1ae7) | [Qwen/Qwen3-0.6B](https://huggingface.co/Qwen/Qwen3-0.6B) |\n| `qwen3-0.6b-lora-v1` - `2025-12-09 13:47:47 UTC` - `In Progress` | HumanEval pass@1 | TBD | TBD | [burtenshaw/qwen3-codeforces-cots-sft](https://huggingface.co/burtenshaw/qwen3-codeforces-cots-sft)\n```\n\n### Dataset Validation\n\nDataset format and processing is the most common source of training failures and usually a significant amount of work is done in the training script. Codex can validate datasets before the job starts and either define a configuration for TRL or process the dataset separately.\n\nIn most cases, Codex will validate the dataset before training, but you can always check the dataset validation before submitting the job.\n\n```\nCheck if open-r1/codeforces-cots works for SFT training.\n```\n\nCodex runs a quick inspection on CPU (fractions of a penny) and reports:\n\n```\nDataset validation for my-org/conversation-data:\n\nSFT: ✓ READY\n  Found 'messages' column with conversation format\n\nDPO: ✗ INCOMPATIBLE\n  Missing 'chosen' and 'rejected' columns\n```\n\nIf your dataset needs transformation, Codex can preprocess the dataset before training.\n\n```\nPreprocess the dataset open-r1/codeforces-cots to use 'good_response' and 'bad_response' instead of 'chosen' and 'rejected'.\n```\n\nCodex will preprocess the dataset and update the training script with the new configuration.\n\n### Review Before Submitting\n\nBefore Codex submits anything, you'll see the configuration:\n\n```\nI'll fine-tune Qwen/Qwen3-0.6B on open-r1/codeforces-cots using SFT.\n\nConfiguration:\n- Hardware: t4-small (~$0.75/hour)\n- Estimated time: ~20 minutes\n- Estimated cost: ~$0.30\n- Output: username/qwen-codeforces-cots-sft\n\nThe model will be pushed to Hub automatically. Should I submit?\n```\n\nThis is your chance to adjust anything. Change the output repo name, pick different hardware, or ask Codex to modify training parameters. Once you approve, the job is submitted.\n\nFor example, you can ask Codex to try a test run:\n\n```\nDo a quick test run on 100 examples.\n```\n\n### Track Progress using the Training Report\n\nAfter submission, you can track progress using the training report and get links to the run logs and trackio logs. You can also tell Codex to fetch the logs, summarize progress, and update the training report. As codex runs the jobs, it will update the training report with the latest information.\n\nExample Codex Response\n\n```\n─ Worked for 10m 38s ─────────────────────────────────────────────────────────────────────────────────────────────────────────\n\n• Training and eval jobs are live. Key details:\n\n  - SFT launched on open-r1/codeforces-cots (solutions_py_decontaminated, 98/2 split) with LoRA on Qwen/Qwen3-0.6B, a10g-\n    large, bf16, max_steps=1000, batch=1, grad_accum=8, lr=2e-5, save/eval every 200 steps, hub push burtenshaw/qwen3-\n    codeforces-cots-sft. Job: https://huggingface.co/jobs/burtenshaw/6938272ec67c9f186cfe1ae3 (Trackio project codeforces-\n    cots-sft, run qwen3-0.6b-lora-v1).\n  - Baseline lighteval (HumanEval) on the base model queued on a10g-large. Job: https://huggingface.co/jobs/\n  - Experiment report updated with current runs and links: training_reports/qwen3-codeforces-cots-sft.md.\n\n  To evaluate the fine-tuned checkpoints once the SFT job pushes to the hub, reuse the same lighteval script:\n  hf jobs uv run --flavor a10g-large --timeout 1h --secrets HF_TOKEN -e MODEL_ID=burtenshaw/qwen3-codeforces-cots-sft -e\n  RESULTS_ORG=burtenshaw -d /tmp/lighteval_humaneval.py\n  (or swap MODEL_ID for a specific checkpoint path). This will log to the same results directory on the hub.\n\n  1. Monitor the two running jobs; I can fetch logs or metrics on request.\n  2. After a checkpoint lands, trigger the lighteval run above to compare against the baseline; then we can fill in pass@1 in the report.\n```\n\nTrackio will monitor the training and evaluation scores for you by running evaluation jobs and selecting the best checkpoint. If you want to know the status of the training job, you can ask Codex to fetch the logs and summarize progress in a table.\n\n```sh\nAre models outperforming the base model?\n```\n\n```sh\n| Model | Benchmark | Score | Evaluation Job Link | Model Link |\n|-----------|-----------|-------|---------------------|------------|\n| `qwen3-0.6b-lora-v1` - `2025-12-09 13:47:47 UTC` - `Completed` | HumanEval pass@1 | 0.342 | [Logs](<link to training job>) | [burtenshaw/qwen3-codeforces-cots-sft](https://huggingface.co/burtenshaw/qwen3-codeforces-cots-sft)\n| `base-humaneval-a10g` - `2025-12-09 13:47:47 UTC` - `Completed` | HumanEval pass@1 | 0.306 | [Logs](<link to evaluation job>) | [Qwen/Qwen3-0.6B](https://huggingface.co/Qwen/Qwen3-0.6B)\n```\n\nYou can also monitor the training loss in real-time.\n\n[![Example Trackio dashboard of a Sweep test](https://huggingface.co/datasets/hf-skills/images/resolve/main/codex-sft-codeforces.png)](https://huggingface.co/datasets/hf-skills/images/resolve/main/codex-sft-codeforces.png)\n\nCodex fetches the logs and summarizes progress.\n\nClick [here](https://burtenshaw-trackio.hf.space/?project=qwen3-codeforces-sft&metrics=train/loss&runs=sft-qwen3-codeforces-20251209-175806&sidebar=hidden&navbar=hidden) for an example Trackio dashboard with some completed runs.\n\n### Use Your Model\n\nWhen training completes, your model is on the Hub:\n\n```python\nfrom transformers import AutoModelForCausalLM, AutoTokenizer\n\nmodel = AutoModelForCausalLM.from_pretrained(\"burtenshaw/qwen3-codeforces-cots-sft\")\ntokenizer = AutoTokenizer.from_pretrained(\"burtenshaw/qwen3-codeforces-cots-sft\")\n```\n\nTransformers is great as a standard, and we can easily convert the trained model to GGUF for local deployment. This is because the training skill contains instructions and support scripts to convert models to GGUF.\n\n```\nConvert my fine-tuned model to GGUF with Q4_K_M quantization.\nPush to username/my-model-gguf.\n```\n\nCodex then converts to GGUF, applies quantization, and pushes to the Hub. If we trained a LoRA adapter, it will merge the LoRA adapters into the base model.\n\nThen use it locally:\n\n```bash\nllama-server -hf <username>/<model-name>:<quantization>\n\n# For example, to run the Qwen3-1.7B-GGUF model on your local machine:\nllama-server -hf unsloth/Qwen3-1.7B-GGUF:Q4_K_M\n```\n\n### Hardware and Cost\n\nCodex selects hardware based on your model size, but understanding the tradeoffs helps you make better decisions. You can use the [Hardware Guide](https://github.com/huggingface/skills/blob/main/hf-llm-trainer/skills/model-trainer/references/hardware_guide.md) to see the hardware options and costs, but codex will do it for you and select the best option.\n\nFor **tiny models under 1B parameters**, `t4-small` works well. These models train quickly—expect $1-2 for a full run. This is perfect for educational or experimental runs.\n\nFor **small models (1-3B)**, step up to `t4-medium` or `a10g-small`. Training takes a few hours and costs $5-15.\n\nFor **medium models (3-7B)**, you need `a10g-large` or `a100-large` with LoRA. Full fine-tuning doesn't fit, but LoRA makes these very trainable. Budget $15-40 for production.\n\nFor **large models (7B+)**, this HF skills job is not suitable for this scale yet. But stay tuned because we are working on it!\n\n## What's Next\n\nWe've shown that Codex can handle the full lifecycle of model fine-tuning: validating data, selecting hardware, generating scripts, submitting jobs, monitoring progress, and converting outputs.\n\nSome things to try:\n\n- Fine-tune a model on your own dataset\n- Try bigger experiments with more models and datasets and let the agent create a report for you.\n- Train a reasoning model with GRPO on math or code and let the agent create a report for you.\n\nThe [extension is open source](https://hf-learn.short.gy/gh-hf-skills). You can extend it, customize it for your workflows, or use it as a starting point for other training scenarios.\n\n* * *\n\n## Resources\n\n### Codex\n\n- [Codex Documentation](https://developers.openai.com/codex/) — OpenAI's AI coding agent\n- [Codex Quickstart](https://developers.openai.com/codex/) — Get started with Codex\n- [Codex AGENTS Guide](https://developers.openai.com/codex/) — Using AGENTS.md files\n\n### Hugging Face Skills\n\n- [SKILL.md](https://github.com/huggingface/skills/blob/main/hf-llm-trainer/skills/model-trainer/SKILL.md) — Full skill documentation\n- [Training Methods](https://github.com/huggingface/skills/blob/main/hf-llm-trainer/skills/model-trainer/references/training_methods.md) — SFT, DPO, GRPO explained\n- [Hardware Guide](https://github.com/huggingface/skills/blob/main/hf-llm-trainer/skills/model-trainer/references/hardware_guide.md) — GPU selection and costs\n- [TRL Documentation](https://huggingface.co/docs/trl) — The underlying training library\n- [Hugging Face Jobs](https://huggingface.co/docs/huggingface_hub/guides/jobs) — Cloud training infrastructure\n- [Trackio](https://huggingface.co/docs/trackio) — Real-time training monitoring\n",
  "authors": [],
  "captured_at": "2026-10-04T12:50:30.804479567+00:00",
  "category": "ai",
  "content_html": "<p><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://huggingface.co/blog/assets/hf-skills-training/thumbnail-codex.png\"><picture class=\"article-picture article-picture-fallback\" style=\"--image-ratio:16 / 9\"><img src=\"https://huggingface.co/blog/assets/hf-skills-training/thumbnail-codex.png\" alt=\"banner\" loading=\"eager\" decoding=\"async\" fetchpriority=\"high\" referrerpolicy=\"no-referrer\" class=\"progressive-image\"></picture></a></p>\n<p>Building on our work to get <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://huggingface.co/blog/hf-skills-training\">Claude Code</a> to train open source models, we are now getting <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://developers.openai.com/codex/\">Codex</a> to go further. We gave Codex access to the <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/huggingface/skills\">Hugging Face Skills</a> repository, which contains skills for Machine Learning and AI tasks such as training or evaluating models. With HF skills, a coding agent can:</p>\n<ul>\n<li>Fine-tune and apply RL alignment on language models</li>\n<li>Review, explain, and act on live training metrics from Trackio</li>\n<li>Evaluate checkpoints and act on evaluation results</li>\n<li>Create reports from experiments</li>\n<li>Export to and quantize models with GGUF for local deployment</li>\n<li>Publish models to the Hub</li>\n</ul>\n<p>This tutorial dives even deeper and shows you how it works and how to use it yourself. So let's get started.</p>\n<blockquote>\n<p>Codex uses <code>AGENTS.md</code> files to accomplish specialized tasks, whilst Claude Code uses 'Skills'. Fortunately, 'HF-skills' is compatible with both approaches and works with major coding agents like Claude Code, Codex, or Gemini CLI.</p>\n</blockquote>\n<p>With <code>HF-skills</code>, you can tell Codex something like:</p>\n<pre><code><span class=\"code-snippet\">Fine-tune Qwen3-0.6B on the dataset open-r1/codeforces-cots\n</span></code></pre>\n<p>And Codex will:</p>\n<ol>\n<li>Validate your dataset format</li>\n<li>Select appropriate hardware (t4-small for a 0.6B model)</li>\n<li>Use and update a training script with Trackio monitoring</li>\n<li>Submit the job to Hugging Face Jobs</li>\n<li>Report the job ID and estimated cost</li>\n<li>Check on progress when you ask</li>\n<li>Help you debug if something goes wrong</li>\n</ol>\n<p>The model trains on Hugging Face GPUs while you do other things. When it's done, your fine-tuned model appears on the Hub, ready to use.</p>\n<p>This isn't a toy demo. The extension supports the same training methods used in production: supervised fine-tuning, direct preference optimization, and reinforcement learning with verifiable rewards. You can train models from 0.5B to 7B parameters, convert them to GGUF for local deployment, and run multi-stage pipelines that combine different techniques.</p>\n<h2>GOAL: End-to-end Machine Learning experiments</h2>\n<p>We explored this single prompt approach in the Claude Code tutorial. However, we can now go further and get OpenAI Codex to do end-to-end Machine Learning experiments. For example, Codex should be able to monitor progress, evaluate the models, and maintain an up to date training report. This will allow engineers to delegate experiments to Codex and review reports in a more hands-off way. It will also allow Codex to make more decisions on its own based on the training report and evaluation results.</p>\n<p>So let's get started!</p>\n<h2>Setup and Install</h2>\n<p>Before starting, you'll need:</p>\n<ul>\n<li>A Hugging Face account with a <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://hf.co/pro\">Pro</a> or <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://hf.co/enterprise\">Team / Enterprise</a> plan (Jobs require a paid plan)</li>\n<li>A write-access token from <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://huggingface.co/settings/tokens\">huggingface.co/settings/tokens</a></li>\n<li><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://developers.openai.com/codex/\">Codex</a> installed and configured</li>\n</ul>\n<h3>Install Codex</h3>\n<p>Codex is OpenAI's AI coding agent included in ChatGPT Plus, Pro, Business, Edu, and Enterprise plans. Codex brings AI assistance directly into your development workflow.</p>\n<p>See the <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://developers.openai.com/codex/\">Codex documentation</a> for installation and setup instructions.</p>\n<h3>Install the Hugging Face Skills</h3>\n<p>The Hugging Face Skills repository includes an <code>AGENTS.md</code> file that Codex automatically detects and uses.</p>\n<p>Clone the repository:</p>\n<pre><code class=\"language-bash\"><span class=\"code-snippet\" data-language=\"Shell\"><span class=\"syntax-source syntax-shell syntax-bash\"><span class=\"syntax-meta syntax-function-call syntax-shell\"><span class=\"syntax-variable syntax-function syntax-shell\">git</span></span><span class=\"syntax-meta syntax-function-call syntax-arguments syntax-shell\"> clone https://github.com/huggingface/skills.git</span>\n<span class=\"syntax-meta syntax-function-call syntax-shell\"><span class=\"syntax-support syntax-function syntax-cd syntax-shell\">cd</span></span><span class=\"syntax-meta syntax-function-call syntax-arguments syntax-shell\"> skills</span>\n</span></span></code></pre>\n<p>Codex will automatically detect the <code>AGENTS.md</code> file in the repository and load the skills. You can verify the instructions are loaded with:</p>\n<pre><code class=\"language-bash\"><span class=\"code-snippet\" data-language=\"Shell\"><span class=\"syntax-source syntax-shell syntax-bash\"><span class=\"syntax-meta syntax-function-call syntax-shell\"><span class=\"syntax-variable syntax-function syntax-shell\">codex</span></span><span class=\"syntax-meta syntax-function-call syntax-arguments syntax-shell\"><span class=\"syntax-variable syntax-parameter syntax-option syntax-shell\"><span class=\"syntax-punctuation syntax-definition syntax-parameter syntax-shell\"> --</span>ask-for-approval</span> never <span class=\"syntax-string syntax-quoted syntax-double syntax-shell\"><span class=\"syntax-punctuation syntax-definition syntax-string syntax-begin syntax-shell\">&quot;</span>Summarize the current instructions.<span class=\"syntax-punctuation syntax-definition syntax-string syntax-end syntax-shell\">&quot;</span></span></span>\n</span></span></code></pre>\n<p>See the <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://developers.openai.com/codex/\">Codex AGENTS guide</a> for more details.</p>\n<h3>Connect to Hugging Face</h3>\n<p>Authenticate with Hugging Face using the <code>hf auth login</code> command and a write-access token from <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://huggingface.co/settings/tokens\">hf.co/settings/tokens</a>:</p>\n<pre><code class=\"language-bash\"><span class=\"code-snippet\" data-language=\"Shell\"><span class=\"syntax-source syntax-shell syntax-bash\"><span class=\"syntax-meta syntax-function-call syntax-shell\"><span class=\"syntax-variable syntax-function syntax-shell\">hf</span></span><span class=\"syntax-meta syntax-function-call syntax-arguments syntax-shell\"> auth login</span>\n</span></span></code></pre>\n<p>Codex supports <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://developers.openai.com/codex/\">MCP (Model Context Protocol)</a> servers. You can configure the Hugging Face MCP server for additional Hub integration capabilities. You can add the Hugging Face MCP server to your Codex configuration by adding the following to your <code>~/.codex/config.toml</code> file:</p>\n<pre><code class=\"language-toml\"><span class=\"code-snippet\" data-language=\"TOML\">[mcp_servers.huggingface]\ncommand = &quot;npx&quot;\nargs = [&quot;-y&quot;, &quot;mcp-remote&quot;, &quot;https://huggingface.co/mcp?login&quot;]\n</span></code></pre>\n<p>Configure Hugging Face MCP Server to use relevant MCP servers like Jobs in the <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://huggingface.co/settings/mcp\">Settings</a> page.</p>\n<p>Then start Codex and you'll be directed to the Hugging Face MCP authentication page.</p>\n<h2>Your first AI Experiment</h2>\n<p>Let's walk through a complete example. We'll fine-tune a small model to improve code solving abilities, using the <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://huggingface.co/datasets/open-r1/codeforces-cots\">open-r1/codeforces-cots</a> dataset and the <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://huggingface.co/datasets/openai/openai_humaneval\">openai_humaneval</a> benchmark.</p>\n<blockquote>\n<p>The <code>open-r1/codeforces-cots</code> dataset is a dataset of codeforces problems and solutions. It is a good dataset for instruction tuning a model to solve hard coding problems.</p>\n</blockquote>\n<h3>Instruct Codex to do an end-to-end fine-tuning experiment</h3>\n<p>Start Codex in your project directory. Then give it a simple and clear instruction:</p>\n<pre><code><span class=\"code-snippet\">Start a new fine-tuning experiment to improve code solving abilities on using SFT. \n- Maintain a report for the experiment. \n- Evaluate models with the openai_humaneval benchmark\n- Use the open-r1/codeforces-cots dataset\n</span></code></pre>\n<blockquote>\n<p>You'll notice that we've gone a bit further than the single prompt approach in the Claude Code tutorial. We've added more details to the instruction but also added more steps to the experiment.</p>\n<p>Why not try iterating on this experiment yourself with more open ended questions like &quot;What is the best model for code solving abilities?&quot; or &quot;What is the best dataset for code solving abilities?&quot;</p>\n</blockquote>\n<p>Codex analyzes your request and prepares a training configuration. For a 0.6B model on a demo dataset, it selects <code>t4-small</code>—enough GPU for this model size and the cheapest option available. Codex will start a new report at <code>training_reports/&lt;model&gt;-&lt;dataset&gt;-&lt;method&gt;.md</code> which looks like the example below. As the experiment progresses, Codex will update the report with the latest information and each run report.</p>\n<p>Example Training Report</p>\n<pre><code class=\"language-md\"><span class=\"code-snippet\" data-language=\"Markdown\"><span class=\"syntax-text syntax-html syntax-markdown\"><span class=\"syntax-meta syntax-block-level syntax-markdown\"><span class=\"syntax-markup syntax-heading syntax-1 syntax-markdown\"><span class=\"syntax-punctuation syntax-definition syntax-heading syntax-begin syntax-markdown\">#</span> </span><span class=\"syntax-markup syntax-heading syntax-1 syntax-markdown\"><span class=\"syntax-entity syntax-name syntax-section syntax-markdown\">Base Model <span class=\"syntax-meta syntax-other syntax-valid-ampersand syntax-markdown\">&amp;</span> Dataset</span><span class=\"syntax-meta syntax-whitespace syntax-newline syntax-markdown\">\n</span></span></span><span class=\"syntax-meta syntax-paragraph syntax-markdown\"><span class=\"syntax-meta syntax-link syntax-inline syntax-markdown\"><span class=\"syntax-punctuation syntax-definition syntax-link syntax-begin syntax-markdown\">[</span></span><span class=\"syntax-meta syntax-link syntax-inline syntax-description syntax-markdown\">Base Model</span><span class=\"syntax-meta syntax-link syntax-inline syntax-markdown\"><span class=\"syntax-punctuation syntax-definition syntax-link syntax-end syntax-markdown\">]</span></span><span class=\"syntax-meta syntax-link syntax-inline syntax-markdown\"><span class=\"syntax-punctuation syntax-definition syntax-metadata syntax-begin syntax-markdown\">(</span><span class=\"syntax-markup syntax-underline syntax-link syntax-markdown\">https://huggingface.co/Qwen/Qwen3-0.6B</span><span class=\"syntax-punctuation syntax-definition syntax-metadata syntax-end syntax-markdown\">)</span></span><span class=\"syntax-meta syntax-hard-line-break syntax-markdown\"><span class=\"syntax-punctuation syntax-definition syntax-hard-line-break syntax-markdown\">  </span></span>\n<span class=\"syntax-meta syntax-link syntax-inline syntax-markdown\"><span class=\"syntax-punctuation syntax-definition syntax-link syntax-begin syntax-markdown\">[</span></span><span class=\"syntax-meta syntax-link syntax-inline syntax-description syntax-markdown\">Dataset</span><span class=\"syntax-meta syntax-link syntax-inline syntax-markdown\"><span class=\"syntax-punctuation syntax-definition syntax-link syntax-end syntax-markdown\">]</span></span><span class=\"syntax-meta syntax-link syntax-inline syntax-markdown\"><span class=\"syntax-punctuation syntax-definition syntax-metadata syntax-begin syntax-markdown\">(</span><span class=\"syntax-markup syntax-underline syntax-link syntax-markdown\">https://huggingface.co/datasets/open-r1/codeforces-cots</span><span class=\"syntax-punctuation syntax-definition syntax-metadata syntax-end syntax-markdown\">)</span></span>\n\n</span><span class=\"syntax-meta syntax-block-level syntax-markdown\"><span class=\"syntax-meta syntax-separator syntax-thematic-break syntax-markdown\"><span class=\"syntax-punctuation syntax-definition syntax-thematic-break syntax-markdown\">---</span>\n</span></span>\n<span class=\"syntax-meta syntax-block-level syntax-markdown\"><span class=\"syntax-markup syntax-heading syntax-1 syntax-markdown\"><span class=\"syntax-punctuation syntax-definition syntax-heading syntax-begin syntax-markdown\">#</span> </span><span class=\"syntax-markup syntax-heading syntax-1 syntax-markdown\"><span class=\"syntax-entity syntax-name syntax-section syntax-markdown\"><span class=\"syntax-markup syntax-raw syntax-inline syntax-markdown\"><span class=\"syntax-punctuation syntax-definition syntax-raw syntax-begin syntax-markdown\">`</span>sft-a10g<span class=\"syntax-punctuation syntax-definition syntax-raw syntax-end syntax-markdown\">`</span></span> - <span class=\"syntax-markup syntax-raw syntax-inline syntax-markdown\"><span class=\"syntax-punctuation syntax-definition syntax-raw syntax-begin syntax-markdown\">`</span>TBD<span class=\"syntax-punctuation syntax-definition syntax-raw syntax-end syntax-markdown\">`</span></span> - <span class=\"syntax-markup syntax-raw syntax-inline syntax-markdown\"><span class=\"syntax-punctuation syntax-definition syntax-raw syntax-begin syntax-markdown\">`</span>In Progress<span class=\"syntax-punctuation syntax-definition syntax-raw syntax-end syntax-markdown\">`</span></span></span><span class=\"syntax-meta syntax-whitespace syntax-newline syntax-markdown\">\n</span></span></span>\n<span class=\"syntax-meta syntax-block-level syntax-markdown\"><span class=\"syntax-markup syntax-heading syntax-2 syntax-markdown\"><span class=\"syntax-punctuation syntax-definition syntax-heading syntax-begin syntax-markdown\">##</span> </span><span class=\"syntax-markup syntax-heading syntax-2 syntax-markdown\"><span class=\"syntax-entity syntax-name syntax-section syntax-markdown\">Training Parameters</span><span class=\"syntax-meta syntax-whitespace syntax-newline syntax-markdown\">\n</span></span></span><span class=\"syntax-meta syntax-block-level syntax-markdown\"><span class=\"syntax-meta syntax-table syntax-header syntax-markdown\"><span class=\"syntax-punctuation syntax-separator syntax-table-cell syntax-markdown\">|</span> Parameter <span class=\"syntax-punctuation syntax-separator syntax-table-cell syntax-markdown\">|</span> Value <span class=\"syntax-punctuation syntax-separator syntax-table-cell syntax-markdown\">|</span>\n</span><span class=\"syntax-meta syntax-table syntax-header-separator syntax-markdown\"><span class=\"syntax-punctuation syntax-separator syntax-table-cell syntax-markdown\">|</span><span class=\"syntax-punctuation syntax-section syntax-table-header syntax-markdown\">-----------</span><span class=\"syntax-punctuation syntax-separator syntax-table-cell syntax-markdown\">|</span><span class=\"syntax-punctuation syntax-section syntax-table-header syntax-markdown\">-------</span><span class=\"syntax-punctuation syntax-separator syntax-table-cell syntax-markdown\">|</span>\n</span><span class=\"syntax-meta syntax-table syntax-markdown\"><span class=\"syntax-punctuation syntax-separator syntax-table-cell syntax-markdown\">|</span> Method <span class=\"syntax-punctuation syntax-separator syntax-table-cell syntax-markdown\">|</span> SFT (TRL) <span class=\"syntax-punctuation syntax-separator syntax-table-cell syntax-markdown\">|</span>\n<span class=\"syntax-punctuation syntax-separator syntax-table-cell syntax-markdown\">|</span> Model <span class=\"syntax-punctuation syntax-separator syntax-table-cell syntax-markdown\">|</span> <span class=\"syntax-markup syntax-raw syntax-inline syntax-markdown\"><span class=\"syntax-punctuation syntax-definition syntax-raw syntax-begin syntax-markdown\">`</span>Qwen/Qwen3-0.6B<span class=\"syntax-punctuation syntax-definition syntax-raw syntax-end syntax-markdown\">`</span></span> <span class=\"syntax-punctuation syntax-separator syntax-table-cell syntax-markdown\">|</span>\n<span class=\"syntax-punctuation syntax-separator syntax-table-cell syntax-markdown\">|</span> Dataset <span class=\"syntax-punctuation syntax-separator syntax-table-cell syntax-markdown\">|</span> <span class=\"syntax-markup syntax-raw syntax-inline syntax-markdown\"><span class=\"syntax-punctuation syntax-definition syntax-raw syntax-begin syntax-markdown\">`</span>open-r1/codeforces-cots<span class=\"syntax-punctuation syntax-definition syntax-raw syntax-end syntax-markdown\">`</span></span> (train, 5% eval split) <span class=\"syntax-punctuation syntax-separator syntax-table-cell syntax-markdown\">|</span>\n<span class=\"syntax-punctuation syntax-separator syntax-table-cell syntax-markdown\">|</span> Max Length <span class=\"syntax-punctuation syntax-separator syntax-table-cell syntax-markdown\">|</span> 2048 <span class=\"syntax-punctuation syntax-separator syntax-table-cell syntax-markdown\">|</span>\n<span class=\"syntax-punctuation syntax-separator syntax-table-cell syntax-markdown\">|</span> Epochs <span class=\"syntax-punctuation syntax-separator syntax-table-cell syntax-markdown\">|</span> 1 (extend to 3 after first check) <span class=\"syntax-punctuation syntax-separator syntax-table-cell syntax-markdown\">|</span>\n<span class=\"syntax-punctuation syntax-separator syntax-table-cell syntax-markdown\">|</span> Per-Device Batch Size <span class=\"syntax-punctuation syntax-separator syntax-table-cell syntax-markdown\">|</span> 1 <span class=\"syntax-punctuation syntax-separator syntax-table-cell syntax-markdown\">|</span>\n<span class=\"syntax-punctuation syntax-separator syntax-table-cell syntax-markdown\">|</span> Grad Accum Steps <span class=\"syntax-punctuation syntax-separator syntax-table-cell syntax-markdown\">|</span> 8 <span class=\"syntax-punctuation syntax-separator syntax-table-cell syntax-markdown\">|</span>\n<span class=\"syntax-punctuation syntax-separator syntax-table-cell syntax-markdown\">|</span> Effective Batch <span class=\"syntax-punctuation syntax-separator syntax-table-cell syntax-markdown\">|</span> 8 <span class=\"syntax-punctuation syntax-separator syntax-table-cell syntax-markdown\">|</span>\n<span class=\"syntax-punctuation syntax-separator syntax-table-cell syntax-markdown\">|</span> Learning Rate <span class=\"syntax-punctuation syntax-separator syntax-table-cell syntax-markdown\">|</span> 5e-5 <span class=\"syntax-punctuation syntax-separator syntax-table-cell syntax-markdown\">|</span>\n<span class=\"syntax-punctuation syntax-separator syntax-table-cell syntax-markdown\">|</span> Weight Decay <span class=\"syntax-punctuation syntax-separator syntax-table-cell syntax-markdown\">|</span> 0.01 <span class=\"syntax-punctuation syntax-separator syntax-table-cell syntax-markdown\">|</span>\n<span class=\"syntax-punctuation syntax-separator syntax-table-cell syntax-markdown\">|</span> Warmup Ratio <span class=\"syntax-punctuation syntax-separator syntax-table-cell syntax-markdown\">|</span> 0.03 <span class=\"syntax-punctuation syntax-separator syntax-table-cell syntax-markdown\">|</span>\n<span class=\"syntax-punctuation syntax-separator syntax-table-cell syntax-markdown\">|</span> Eval Strategy <span class=\"syntax-punctuation syntax-separator syntax-table-cell syntax-markdown\">|</span> steps (500) <span class=\"syntax-punctuation syntax-separator syntax-table-cell syntax-markdown\">|</span>\n<span class=\"syntax-punctuation syntax-separator syntax-table-cell syntax-markdown\">|</span> Save Strategy <span class=\"syntax-punctuation syntax-separator syntax-table-cell syntax-markdown\">|</span> steps (500), <span class=\"syntax-markup syntax-raw syntax-inline syntax-markdown\"><span class=\"syntax-punctuation syntax-definition syntax-raw syntax-begin syntax-markdown\">`</span>hub_strategy=every_save<span class=\"syntax-punctuation syntax-definition syntax-raw syntax-end syntax-markdown\">`</span></span>, limit=2 <span class=\"syntax-punctuation syntax-separator syntax-table-cell syntax-markdown\">|</span>\n<span class=\"syntax-punctuation syntax-separator syntax-table-cell syntax-markdown\">|</span> Precision <span class=\"syntax-punctuation syntax-separator syntax-table-cell syntax-markdown\">|</span> bf16 <span class=\"syntax-punctuation syntax-separator syntax-table-cell syntax-markdown\">|</span>\n<span class=\"syntax-punctuation syntax-separator syntax-table-cell syntax-markdown\">|</span> Gradient Checkpointing <span class=\"syntax-punctuation syntax-separator syntax-table-cell syntax-markdown\">|</span> true <span class=\"syntax-punctuation syntax-separator syntax-table-cell syntax-markdown\">|</span>\n<span class=\"syntax-punctuation syntax-separator syntax-table-cell syntax-markdown\">|</span> Packing <span class=\"syntax-punctuation syntax-separator syntax-table-cell syntax-markdown\">|</span> false <span class=\"syntax-punctuation syntax-separator syntax-table-cell syntax-markdown\">|</span>\n<span class=\"syntax-punctuation syntax-separator syntax-table-cell syntax-markdown\">|</span> Hub Model <span class=\"syntax-punctuation syntax-separator syntax-table-cell syntax-markdown\">|</span> <span class=\"syntax-markup syntax-raw syntax-inline syntax-markdown\"><span class=\"syntax-punctuation syntax-definition syntax-raw syntax-begin syntax-markdown\">`</span>burtenshaw/qwen3-codeforces-cots-sft<span class=\"syntax-punctuation syntax-definition syntax-raw syntax-end syntax-markdown\">`</span></span> <span class=\"syntax-punctuation syntax-separator syntax-table-cell syntax-markdown\">|</span>\n<span class=\"syntax-punctuation syntax-separator syntax-table-cell syntax-markdown\">|</span> Hardware <span class=\"syntax-punctuation syntax-separator syntax-table-cell syntax-markdown\">|</span> a10g-small <span class=\"syntax-punctuation syntax-separator syntax-table-cell syntax-markdown\">|</span>\n<span class=\"syntax-punctuation syntax-separator syntax-table-cell syntax-markdown\">|</span> Timeout <span class=\"syntax-punctuation syntax-separator syntax-table-cell syntax-markdown\">|</span> 2h <span class=\"syntax-punctuation syntax-separator syntax-table-cell syntax-markdown\">|</span>\n<span class=\"syntax-punctuation syntax-separator syntax-table-cell syntax-markdown\">|</span> Trackio <span class=\"syntax-punctuation syntax-separator syntax-table-cell syntax-markdown\">|</span> project <span class=\"syntax-markup syntax-raw syntax-inline syntax-markdown\"><span class=\"syntax-punctuation syntax-definition syntax-raw syntax-begin syntax-markdown\">`</span>qwen3-codeforces-cots<span class=\"syntax-punctuation syntax-definition syntax-raw syntax-end syntax-markdown\">`</span></span>, run <span class=\"syntax-markup syntax-raw syntax-inline syntax-markdown\"><span class=\"syntax-punctuation syntax-definition syntax-raw syntax-begin syntax-markdown\">`</span>sft-a10g<span class=\"syntax-punctuation syntax-definition syntax-raw syntax-end syntax-markdown\">`</span></span> <span class=\"syntax-punctuation syntax-separator syntax-table-cell syntax-markdown\">|</span>\n</span></span>\n<span class=\"syntax-meta syntax-block-level syntax-markdown\"><span class=\"syntax-markup syntax-heading syntax-2 syntax-markdown\"><span class=\"syntax-punctuation syntax-definition syntax-heading syntax-begin syntax-markdown\">##</span> </span><span class=\"syntax-markup syntax-heading syntax-2 syntax-markdown\"><span class=\"syntax-entity syntax-name syntax-section syntax-markdown\">Run Status</span><span class=\"syntax-meta syntax-whitespace syntax-newline syntax-markdown\">\n</span></span></span><span class=\"syntax-meta syntax-paragraph syntax-markdown\">In Progress (queued to submit)\n\n</span><span class=\"syntax-meta syntax-block-level syntax-markdown\"><span class=\"syntax-markup syntax-heading syntax-2 syntax-markdown\"><span class=\"syntax-punctuation syntax-definition syntax-heading syntax-begin syntax-markdown\">##</span> </span><span class=\"syntax-markup syntax-heading syntax-2 syntax-markdown\"><span class=\"syntax-entity syntax-name syntax-section syntax-markdown\">Run Logs</span><span class=\"syntax-meta syntax-whitespace syntax-newline syntax-markdown\">\n</span></span></span><span class=\"syntax-meta syntax-paragraph syntax-markdown\">Pending submission (job link will be added)\n\n</span><span class=\"syntax-meta syntax-block-level syntax-markdown\"><span class=\"syntax-markup syntax-heading syntax-2 syntax-markdown\"><span class=\"syntax-punctuation syntax-definition syntax-heading syntax-begin syntax-markdown\">##</span> </span><span class=\"syntax-markup syntax-heading syntax-2 syntax-markdown\"><span class=\"syntax-entity syntax-name syntax-section syntax-markdown\">Trackio Logs</span><span class=\"syntax-meta syntax-whitespace syntax-newline syntax-markdown\">\n</span></span></span><span class=\"syntax-meta syntax-paragraph syntax-markdown\">Pending (will link after job starts)\n\n</span><span class=\"syntax-meta syntax-block-level syntax-markdown\"><span class=\"syntax-markup syntax-heading syntax-2 syntax-markdown\"><span class=\"syntax-punctuation syntax-definition syntax-heading syntax-begin syntax-markdown\">##</span> </span><span class=\"syntax-markup syntax-heading syntax-2 syntax-markdown\"><span class=\"syntax-entity syntax-name syntax-section syntax-markdown\">Run Evaluations</span><span class=\"syntax-meta syntax-whitespace syntax-newline syntax-markdown\">\n</span></span></span><span class=\"syntax-meta syntax-paragraph syntax-markdown\">Pending (lighteval <span class=\"syntax-markup syntax-raw syntax-inline syntax-markdown\"><span class=\"syntax-punctuation syntax-definition syntax-raw syntax-begin syntax-markdown\">`</span>openai_humaneval<span class=\"syntax-punctuation syntax-definition syntax-raw syntax-end syntax-markdown\">`</span></span> for base + checkpoints)\n\n</span><span class=\"syntax-meta syntax-block-level syntax-markdown\"><span class=\"syntax-meta syntax-separator syntax-thematic-break syntax-markdown\"><span class=\"syntax-punctuation syntax-definition syntax-thematic-break syntax-markdown\">---</span>\n</span></span>\n<span class=\"syntax-meta syntax-block-level syntax-markdown\"><span class=\"syntax-markup syntax-heading syntax-1 syntax-markdown\"><span class=\"syntax-punctuation syntax-definition syntax-heading syntax-begin syntax-markdown\">#</span> </span><span class=\"syntax-markup syntax-heading syntax-1 syntax-markdown\"><span class=\"syntax-entity syntax-name syntax-section syntax-markdown\">Experiment Evaluations</span><span class=\"syntax-meta syntax-whitespace syntax-newline syntax-markdown\">\n</span></span></span><span class=\"syntax-meta syntax-block-level syntax-markdown\"><span class=\"syntax-meta syntax-table syntax-header syntax-markdown\"><span class=\"syntax-punctuation syntax-separator syntax-table-cell syntax-markdown\">|</span> Run Title <span class=\"syntax-punctuation syntax-separator syntax-table-cell syntax-markdown\">|</span> Benchmark <span class=\"syntax-punctuation syntax-separator syntax-table-cell syntax-markdown\">|</span> Score <span class=\"syntax-punctuation syntax-separator syntax-table-cell syntax-markdown\">|</span> Evaluation Job Link <span class=\"syntax-punctuation syntax-separator syntax-table-cell syntax-markdown\">|</span> Model Link <span class=\"syntax-punctuation syntax-separator syntax-table-cell syntax-markdown\">|</span>\n</span><span class=\"syntax-meta syntax-table syntax-header-separator syntax-markdown\"><span class=\"syntax-punctuation syntax-separator syntax-table-cell syntax-markdown\">|</span><span class=\"syntax-punctuation syntax-section syntax-table-header syntax-markdown\">-----------</span><span class=\"syntax-punctuation syntax-separator syntax-table-cell syntax-markdown\">|</span><span class=\"syntax-punctuation syntax-section syntax-table-header syntax-markdown\">-----------</span><span class=\"syntax-punctuation syntax-separator syntax-table-cell syntax-markdown\">|</span><span class=\"syntax-punctuation syntax-section syntax-table-header syntax-markdown\">-------</span><span class=\"syntax-punctuation syntax-separator syntax-table-cell syntax-markdown\">|</span><span class=\"syntax-punctuation syntax-section syntax-table-header syntax-markdown\">---------------------</span><span class=\"syntax-punctuation syntax-separator syntax-table-cell syntax-markdown\">|</span><span class=\"syntax-punctuation syntax-section syntax-table-header syntax-markdown\">------------</span><span class=\"syntax-punctuation syntax-separator syntax-table-cell syntax-markdown\">|</span>\n</span><span class=\"syntax-meta syntax-table syntax-markdown\"><span class=\"syntax-punctuation syntax-separator syntax-table-cell syntax-markdown\">|</span> <span class=\"syntax-markup syntax-raw syntax-inline syntax-markdown\"><span class=\"syntax-punctuation syntax-definition syntax-raw syntax-begin syntax-markdown\">`</span>sft-a10g<span class=\"syntax-punctuation syntax-definition syntax-raw syntax-end syntax-markdown\">`</span></span> - <span class=\"syntax-markup syntax-raw syntax-inline syntax-markdown\"><span class=\"syntax-punctuation syntax-definition syntax-raw syntax-begin syntax-markdown\">`</span>TBD<span class=\"syntax-punctuation syntax-definition syntax-raw syntax-end syntax-markdown\">`</span></span> - <span class=\"syntax-markup syntax-raw syntax-inline syntax-markdown\"><span class=\"syntax-punctuation syntax-definition syntax-raw syntax-begin syntax-markdown\">`</span>In Progress<span class=\"syntax-punctuation syntax-definition syntax-raw syntax-end syntax-markdown\">`</span></span> <span class=\"syntax-punctuation syntax-separator syntax-table-cell syntax-markdown\">|</span> HumanEval pass@1 <span class=\"syntax-punctuation syntax-separator syntax-table-cell syntax-markdown\">|</span> TBD <span class=\"syntax-punctuation syntax-separator syntax-table-cell syntax-markdown\">|</span> TBD <span class=\"syntax-punctuation syntax-separator syntax-table-cell syntax-markdown\">|</span> <span class=\"syntax-meta syntax-link syntax-inline syntax-markdown\"><span class=\"syntax-punctuation syntax-definition syntax-link syntax-begin syntax-markdown\">[</span></span><span class=\"syntax-meta syntax-link syntax-inline syntax-description syntax-markdown\">burtenshaw/qwen3-codeforces-cots-sft</span><span class=\"syntax-meta syntax-link syntax-inline syntax-markdown\"><span class=\"syntax-punctuation syntax-definition syntax-link syntax-end syntax-markdown\">]</span></span><span class=\"syntax-meta syntax-link syntax-inline syntax-markdown\"><span class=\"syntax-punctuation syntax-definition syntax-metadata syntax-begin syntax-markdown\">(</span><span class=\"syntax-markup syntax-underline syntax-link syntax-markdown\">https://huggingface.co/burtenshaw/qwen3-codeforces-cots-sft</span><span class=\"syntax-punctuation syntax-definition syntax-metadata syntax-end syntax-markdown\">)</span></span>\n</span></span></span></span></code></pre>\n<h3>Updating the Training Report</h3>\n<p>As the experiment progresses, Codex will update the report with the latest information and each run report. You can view the report in <code>training_reports/&lt;model&gt;-&lt;dataset&gt;-&lt;method&gt;.md</code> file.</p>\n<p>For example, codex will update the title of the report to <code>sft-a10g</code> - <code>TBD</code> - <code>In Progress</code> when the experiment is in progress.</p>\n<pre><code class=\"language-md\"><span class=\"code-snippet\" data-language=\"Markdown\"><span class=\"syntax-text syntax-html syntax-markdown\"><span class=\"syntax-meta syntax-block-level syntax-markdown\"><span class=\"syntax-markup syntax-heading syntax-1 syntax-markdown\"><span class=\"syntax-punctuation syntax-definition syntax-heading syntax-begin syntax-markdown\">#</span> </span><span class=\"syntax-markup syntax-heading syntax-1 syntax-markdown\"><span class=\"syntax-entity syntax-name syntax-section syntax-markdown\"><span class=\"syntax-markup syntax-raw syntax-inline syntax-markdown\"><span class=\"syntax-punctuation syntax-definition syntax-raw syntax-begin syntax-markdown\">`</span>base-humaneval-a10g<span class=\"syntax-punctuation syntax-definition syntax-raw syntax-end syntax-markdown\">`</span></span> - <span class=\"syntax-markup syntax-raw syntax-inline syntax-markdown\"><span class=\"syntax-punctuation syntax-definition syntax-raw syntax-begin syntax-markdown\">`</span>2025-12-09 13:47:47 UTC<span class=\"syntax-punctuation syntax-definition syntax-raw syntax-end syntax-markdown\">`</span></span> - <span class=\"syntax-markup syntax-raw syntax-inline syntax-markdown\"><span class=\"syntax-punctuation syntax-definition syntax-raw syntax-begin syntax-markdown\">`</span>In Progress<span class=\"syntax-punctuation syntax-definition syntax-raw syntax-end syntax-markdown\">`</span></span></span><span class=\"syntax-meta syntax-whitespace syntax-newline syntax-markdown\">\n</span></span></span></span></span></code></pre>\n<p>It can link to the run logs and trackio logs.</p>\n<pre><code class=\"language-md\"><span class=\"code-snippet\" data-language=\"Markdown\"><span class=\"syntax-text syntax-html syntax-markdown\"><span class=\"syntax-meta syntax-block-level syntax-markdown\"><span class=\"syntax-markup syntax-heading syntax-2 syntax-markdown\"><span class=\"syntax-punctuation syntax-definition syntax-heading syntax-begin syntax-markdown\">##</span> </span><span class=\"syntax-markup syntax-heading syntax-2 syntax-markdown\"><span class=\"syntax-entity syntax-name syntax-section syntax-markdown\">Run Logs</span><span class=\"syntax-meta syntax-whitespace syntax-newline syntax-markdown\">\n</span></span></span>\n<span class=\"syntax-meta syntax-paragraph syntax-markdown\"><span class=\"syntax-meta syntax-link syntax-inline syntax-markdown\"><span class=\"syntax-punctuation syntax-definition syntax-link syntax-begin syntax-markdown\">[</span></span><span class=\"syntax-meta syntax-link syntax-inline syntax-description syntax-markdown\">Run Logs</span><span class=\"syntax-meta syntax-link syntax-inline syntax-markdown\"><span class=\"syntax-punctuation syntax-definition syntax-link syntax-end syntax-markdown\">]</span></span><span class=\"syntax-meta syntax-link syntax-inline syntax-markdown\"><span class=\"syntax-punctuation syntax-definition syntax-metadata syntax-begin syntax-markdown\">(</span><span class=\"syntax-markup syntax-underline syntax-link syntax-markdown\">https://huggingface.co/jobs/burtenshaw/6938272ec67c9f186cfe1ae3</span><span class=\"syntax-punctuation syntax-definition syntax-metadata syntax-end syntax-markdown\">)</span></span>\n\n</span><span class=\"syntax-meta syntax-block-level syntax-markdown\"><span class=\"syntax-markup syntax-heading syntax-2 syntax-markdown\"><span class=\"syntax-punctuation syntax-definition syntax-heading syntax-begin syntax-markdown\">##</span> </span><span class=\"syntax-markup syntax-heading syntax-2 syntax-markdown\"><span class=\"syntax-entity syntax-name syntax-section syntax-markdown\">Trackio Logs</span><span class=\"syntax-meta syntax-whitespace syntax-newline syntax-markdown\">\n</span></span></span>\n<span class=\"syntax-meta syntax-paragraph syntax-markdown\"><span class=\"syntax-meta syntax-link syntax-inline syntax-markdown\"><span class=\"syntax-punctuation syntax-definition syntax-link syntax-begin syntax-markdown\">[</span></span><span class=\"syntax-meta syntax-link syntax-inline syntax-description syntax-markdown\">Trackio Logs</span><span class=\"syntax-meta syntax-link syntax-inline syntax-markdown\"><span class=\"syntax-punctuation syntax-definition syntax-link syntax-end syntax-markdown\">]</span></span><span class=\"syntax-meta syntax-link syntax-inline syntax-markdown\"><span class=\"syntax-punctuation syntax-definition syntax-metadata syntax-begin syntax-markdown\">(</span><span class=\"syntax-markup syntax-underline syntax-link syntax-markdown\">https://burtenshaw-trackio.hf.space/?project=qwen3-codeforces-sft&amp;metrics=train/loss&amp;runs=sft-qwen3-codeforces-20251209-175806&amp;sidebar=hidden&amp;navbar=hidden</span><span class=\"syntax-punctuation syntax-definition syntax-metadata syntax-end syntax-markdown\">)</span></span>\n</span></span></span></code></pre>\n<p>And it will update the evaluation results in a combined table.</p>\n<pre><code class=\"language-md\"><span class=\"code-snippet\" data-language=\"Markdown\"><span class=\"syntax-text syntax-html syntax-markdown\"><span class=\"syntax-meta syntax-block-level syntax-markdown\"><span class=\"syntax-markup syntax-heading syntax-1 syntax-markdown\"><span class=\"syntax-punctuation syntax-definition syntax-heading syntax-begin syntax-markdown\">#</span> </span><span class=\"syntax-markup syntax-heading syntax-1 syntax-markdown\"><span class=\"syntax-entity syntax-name syntax-section syntax-markdown\">Experiment Evaluations</span><span class=\"syntax-meta syntax-whitespace syntax-newline syntax-markdown\">\n</span></span></span>\n<span class=\"syntax-meta syntax-block-level syntax-markdown\"><span class=\"syntax-meta syntax-table syntax-header syntax-markdown\"><span class=\"syntax-punctuation syntax-separator syntax-table-cell syntax-markdown\">|</span> Run Title <span class=\"syntax-punctuation syntax-separator syntax-table-cell syntax-markdown\">|</span> Benchmark <span class=\"syntax-punctuation syntax-separator syntax-table-cell syntax-markdown\">|</span> Score <span class=\"syntax-punctuation syntax-separator syntax-table-cell syntax-markdown\">|</span> Evaluation Job Link <span class=\"syntax-punctuation syntax-separator syntax-table-cell syntax-markdown\">|</span> Model Link <span class=\"syntax-punctuation syntax-separator syntax-table-cell syntax-markdown\">|</span>\n</span><span class=\"syntax-meta syntax-table syntax-header-separator syntax-markdown\"><span class=\"syntax-punctuation syntax-separator syntax-table-cell syntax-markdown\">|</span><span class=\"syntax-punctuation syntax-section syntax-table-header syntax-markdown\">-----------</span><span class=\"syntax-punctuation syntax-separator syntax-table-cell syntax-markdown\">|</span><span class=\"syntax-punctuation syntax-section syntax-table-header syntax-markdown\">-----------</span><span class=\"syntax-punctuation syntax-separator syntax-table-cell syntax-markdown\">|</span><span class=\"syntax-punctuation syntax-section syntax-table-header syntax-markdown\">-------</span><span class=\"syntax-punctuation syntax-separator syntax-table-cell syntax-markdown\">|</span><span class=\"syntax-punctuation syntax-section syntax-table-header syntax-markdown\">---------------------</span><span class=\"syntax-punctuation syntax-separator syntax-table-cell syntax-markdown\">|</span><span class=\"syntax-punctuation syntax-section syntax-table-header syntax-markdown\">------------</span><span class=\"syntax-punctuation syntax-separator syntax-table-cell syntax-markdown\">|</span>\n</span><span class=\"syntax-meta syntax-table syntax-markdown\"><span class=\"syntax-punctuation syntax-separator syntax-table-cell syntax-markdown\">|</span> <span class=\"syntax-markup syntax-raw syntax-inline syntax-markdown\"><span class=\"syntax-punctuation syntax-definition syntax-raw syntax-begin syntax-markdown\">`</span>base-humaneval-a10g<span class=\"syntax-punctuation syntax-definition syntax-raw syntax-end syntax-markdown\">`</span></span> - <span class=\"syntax-markup syntax-raw syntax-inline syntax-markdown\"><span class=\"syntax-punctuation syntax-definition syntax-raw syntax-begin syntax-markdown\">`</span>2025-12-09 13:47:47 UTC<span class=\"syntax-punctuation syntax-definition syntax-raw syntax-end syntax-markdown\">`</span></span> - <span class=\"syntax-markup syntax-raw syntax-inline syntax-markdown\"><span class=\"syntax-punctuation syntax-definition syntax-raw syntax-begin syntax-markdown\">`</span>Completed<span class=\"syntax-punctuation syntax-definition syntax-raw syntax-end syntax-markdown\">`</span></span> <span class=\"syntax-punctuation syntax-separator syntax-table-cell syntax-markdown\">|</span> HumanEval pass@1 <span class=\"syntax-punctuation syntax-separator syntax-table-cell syntax-markdown\">|</span> 0.304 <span class=\"syntax-punctuation syntax-separator syntax-table-cell syntax-markdown\">|</span> <span class=\"syntax-meta syntax-link syntax-inline syntax-markdown\"><span class=\"syntax-punctuation syntax-definition syntax-link syntax-begin syntax-markdown\">[</span></span><span class=\"syntax-meta syntax-link syntax-inline syntax-description syntax-markdown\">Logs</span><span class=\"syntax-meta syntax-link syntax-inline syntax-markdown\"><span class=\"syntax-punctuation syntax-definition syntax-link syntax-end syntax-markdown\">]</span></span><span class=\"syntax-meta syntax-link syntax-inline syntax-markdown\"><span class=\"syntax-punctuation syntax-definition syntax-metadata syntax-begin syntax-markdown\">(</span><span class=\"syntax-markup syntax-underline syntax-link syntax-markdown\">https://huggingface.co/jobs/burtenshaw/69382863c67c9f186cfe1ae7</span><span class=\"syntax-punctuation syntax-definition syntax-metadata syntax-end syntax-markdown\">)</span></span> <span class=\"syntax-punctuation syntax-separator syntax-table-cell syntax-markdown\">|</span> <span class=\"syntax-meta syntax-link syntax-inline syntax-markdown\"><span class=\"syntax-punctuation syntax-definition syntax-link syntax-begin syntax-markdown\">[</span></span><span class=\"syntax-meta syntax-link syntax-inline syntax-description syntax-markdown\">Qwen/Qwen3-0.6B</span><span class=\"syntax-meta syntax-link syntax-inline syntax-markdown\"><span class=\"syntax-punctuation syntax-definition syntax-link syntax-end syntax-markdown\">]</span></span><span class=\"syntax-meta syntax-link syntax-inline syntax-markdown\"><span class=\"syntax-punctuation syntax-definition syntax-metadata syntax-begin syntax-markdown\">(</span><span class=\"syntax-markup syntax-underline syntax-link syntax-markdown\">https://huggingface.co/Qwen/Qwen3-0.6B</span><span class=\"syntax-punctuation syntax-definition syntax-metadata syntax-end syntax-markdown\">)</span></span> <span class=\"syntax-punctuation syntax-separator syntax-table-cell syntax-markdown\">|</span>\n<span class=\"syntax-punctuation syntax-separator syntax-table-cell syntax-markdown\">|</span> <span class=\"syntax-markup syntax-raw syntax-inline syntax-markdown\"><span class=\"syntax-punctuation syntax-definition syntax-raw syntax-begin syntax-markdown\">`</span>qwen3-0.6b-lora-v1<span class=\"syntax-punctuation syntax-definition syntax-raw syntax-end syntax-markdown\">`</span></span> - <span class=\"syntax-markup syntax-raw syntax-inline syntax-markdown\"><span class=\"syntax-punctuation syntax-definition syntax-raw syntax-begin syntax-markdown\">`</span>2025-12-09 13:47:47 UTC<span class=\"syntax-punctuation syntax-definition syntax-raw syntax-end syntax-markdown\">`</span></span> - <span class=\"syntax-markup syntax-raw syntax-inline syntax-markdown\"><span class=\"syntax-punctuation syntax-definition syntax-raw syntax-begin syntax-markdown\">`</span>In Progress<span class=\"syntax-punctuation syntax-definition syntax-raw syntax-end syntax-markdown\">`</span></span> <span class=\"syntax-punctuation syntax-separator syntax-table-cell syntax-markdown\">|</span> HumanEval pass@1 <span class=\"syntax-punctuation syntax-separator syntax-table-cell syntax-markdown\">|</span> TBD <span class=\"syntax-punctuation syntax-separator syntax-table-cell syntax-markdown\">|</span> TBD <span class=\"syntax-punctuation syntax-separator syntax-table-cell syntax-markdown\">|</span> <span class=\"syntax-meta syntax-link syntax-inline syntax-markdown\"><span class=\"syntax-punctuation syntax-definition syntax-link syntax-begin syntax-markdown\">[</span></span><span class=\"syntax-meta syntax-link syntax-inline syntax-description syntax-markdown\">burtenshaw/qwen3-codeforces-cots-sft</span><span class=\"syntax-meta syntax-link syntax-inline syntax-markdown\"><span class=\"syntax-punctuation syntax-definition syntax-link syntax-end syntax-markdown\">]</span></span><span class=\"syntax-meta syntax-link syntax-inline syntax-markdown\"><span class=\"syntax-punctuation syntax-definition syntax-metadata syntax-begin syntax-markdown\">(</span><span class=\"syntax-markup syntax-underline syntax-link syntax-markdown\">https://huggingface.co/burtenshaw/qwen3-codeforces-cots-sft</span><span class=\"syntax-punctuation syntax-definition syntax-metadata syntax-end syntax-markdown\">)</span></span>\n</span></span></span></span></code></pre>\n<h3>Dataset Validation</h3>\n<p>Dataset format and processing is the most common source of training failures and usually a significant amount of work is done in the training script. Codex can validate datasets before the job starts and either define a configuration for TRL or process the dataset separately.</p>\n<p>In most cases, Codex will validate the dataset before training, but you can always check the dataset validation before submitting the job.</p>\n<pre><code><span class=\"code-snippet\">Check if open-r1/codeforces-cots works for SFT training.\n</span></code></pre>\n<p>Codex runs a quick inspection on CPU (fractions of a penny) and reports:</p>\n<pre><code><span class=\"code-snippet\">Dataset validation for my-org/conversation-data:\n\nSFT: ✓ READY\n  Found &#39;messages&#39; column with conversation format\n\nDPO: ✗ INCOMPATIBLE\n  Missing &#39;chosen&#39; and &#39;rejected&#39; columns\n</span></code></pre>\n<p>If your dataset needs transformation, Codex can preprocess the dataset before training.</p>\n<pre><code><span class=\"code-snippet\">Preprocess the dataset open-r1/codeforces-cots to use &#39;good_response&#39; and &#39;bad_response&#39; instead of &#39;chosen&#39; and &#39;rejected&#39;.\n</span></code></pre>\n<p>Codex will preprocess the dataset and update the training script with the new configuration.</p>\n<h3>Review Before Submitting</h3>\n<p>Before Codex submits anything, you'll see the configuration:</p>\n<pre><code><span class=\"code-snippet\" data-language=\"YAML\"><span class=\"syntax-source syntax-yaml\"><span class=\"syntax-string syntax-unquoted syntax-plain syntax-out syntax-yaml\">I&#39;ll fine-tune Qwen/Qwen3-0.6B on open-r1/codeforces-cots using SFT.</span>\n\n<span class=\"syntax-string syntax-unquoted syntax-plain syntax-out syntax-yaml\"><span class=\"syntax-entity syntax-name syntax-tag syntax-yaml\">Configuration</span></span><span class=\"syntax-punctuation syntax-separator syntax-key-value syntax-mapping syntax-yaml\">:</span>\n<span class=\"syntax-punctuation syntax-definition syntax-block syntax-sequence syntax-item syntax-yaml\">-</span> <span class=\"syntax-string syntax-unquoted syntax-plain syntax-out syntax-yaml\"><span class=\"syntax-entity syntax-name syntax-tag syntax-yaml\">Hardware</span></span><span class=\"syntax-punctuation syntax-separator syntax-key-value syntax-mapping syntax-yaml\">:</span> <span class=\"syntax-string syntax-unquoted syntax-plain syntax-out syntax-yaml\">t4-small (~$0.75/hour)</span>\n<span class=\"syntax-punctuation syntax-definition syntax-block syntax-sequence syntax-item syntax-yaml\">-</span> <span class=\"syntax-string syntax-unquoted syntax-plain syntax-out syntax-yaml\"><span class=\"syntax-entity syntax-name syntax-tag syntax-yaml\">Estimated time</span></span><span class=\"syntax-punctuation syntax-separator syntax-key-value syntax-mapping syntax-yaml\">:</span> <span class=\"syntax-string syntax-unquoted syntax-plain syntax-out syntax-yaml\">~20 minutes</span>\n<span class=\"syntax-punctuation syntax-definition syntax-block syntax-sequence syntax-item syntax-yaml\">-</span> <span class=\"syntax-string syntax-unquoted syntax-plain syntax-out syntax-yaml\"><span class=\"syntax-entity syntax-name syntax-tag syntax-yaml\">Estimated cost</span></span><span class=\"syntax-punctuation syntax-separator syntax-key-value syntax-mapping syntax-yaml\">:</span> <span class=\"syntax-string syntax-unquoted syntax-plain syntax-out syntax-yaml\">~$0.30</span>\n<span class=\"syntax-punctuation syntax-definition syntax-block syntax-sequence syntax-item syntax-yaml\">-</span> <span class=\"syntax-string syntax-unquoted syntax-plain syntax-out syntax-yaml\"><span class=\"syntax-entity syntax-name syntax-tag syntax-yaml\">Output</span></span><span class=\"syntax-punctuation syntax-separator syntax-key-value syntax-mapping syntax-yaml\">:</span> <span class=\"syntax-string syntax-unquoted syntax-plain syntax-out syntax-yaml\">username/qwen-codeforces-cots-sft</span>\n\n<span class=\"syntax-string syntax-unquoted syntax-plain syntax-out syntax-yaml\">The model will be pushed to Hub automatically. Should I submit?</span>\n</span></span></code></pre>\n<p>This is your chance to adjust anything. Change the output repo name, pick different hardware, or ask Codex to modify training parameters. Once you approve, the job is submitted.</p>\n<p>For example, you can ask Codex to try a test run:</p>\n<pre><code><span class=\"code-snippet\">Do a quick test run on 100 examples.\n</span></code></pre>\n<h3>Track Progress using the Training Report</h3>\n<p>After submission, you can track progress using the training report and get links to the run logs and trackio logs. You can also tell Codex to fetch the logs, summarize progress, and update the training report. As codex runs the jobs, it will update the training report with the latest information.</p>\n<p>Example Codex Response</p>\n<pre><code><span class=\"code-snippet\" data-language=\"YAML\"><span class=\"syntax-source syntax-yaml\"><span class=\"syntax-string syntax-unquoted syntax-plain syntax-out syntax-yaml\">─ Worked for 10m 38s ─────────────────────────────────────────────────────────────────────────────────────────────────────────</span>\n\n<span class=\"syntax-string syntax-unquoted syntax-plain syntax-out syntax-yaml\"><span class=\"syntax-entity syntax-name syntax-tag syntax-yaml\">• Training and eval jobs are live. Key details</span></span><span class=\"syntax-punctuation syntax-separator syntax-key-value syntax-mapping syntax-yaml\">:</span>\n\n  <span class=\"syntax-punctuation syntax-definition syntax-block syntax-sequence syntax-item syntax-yaml\">-</span> <span class=\"syntax-string syntax-unquoted syntax-plain syntax-out syntax-yaml\">SFT launched on open-r1/codeforces-cots (solutions_py_decontaminated, 98/2 split) with LoRA on Qwen/Qwen3-0.6B, a10g-</span>\n    <span class=\"syntax-string syntax-unquoted syntax-plain syntax-out syntax-yaml\">large, bf16, max_steps=1000, batch=1, grad_accum=8, lr=2e-5, save/eval every 200 steps, hub push burtenshaw/qwen3-</span>\n    <span class=\"syntax-string syntax-unquoted syntax-plain syntax-out syntax-yaml\"><span class=\"syntax-entity syntax-name syntax-tag syntax-yaml\">codeforces-cots-sft. Job</span></span><span class=\"syntax-punctuation syntax-separator syntax-key-value syntax-mapping syntax-yaml\">:</span> <span class=\"syntax-string syntax-unquoted syntax-plain syntax-out syntax-yaml\">https://huggingface.co/jobs/burtenshaw/6938272ec67c9f186cfe1ae3 (Trackio project codeforces-</span>\n    <span class=\"syntax-string syntax-unquoted syntax-plain syntax-out syntax-yaml\">cots-sft, run qwen3-0.6b-lora-v1).</span>\n  <span class=\"syntax-punctuation syntax-definition syntax-block syntax-sequence syntax-item syntax-yaml\">-</span> <span class=\"syntax-string syntax-unquoted syntax-plain syntax-out syntax-yaml\"><span class=\"syntax-entity syntax-name syntax-tag syntax-yaml\">Baseline lighteval (HumanEval) on the base model queued on a10g-large. Job</span></span><span class=\"syntax-punctuation syntax-separator syntax-key-value syntax-mapping syntax-yaml\">:</span> <span class=\"syntax-string syntax-unquoted syntax-plain syntax-out syntax-yaml\">https://huggingface.co/jobs/</span>\n  <span class=\"syntax-punctuation syntax-definition syntax-block syntax-sequence syntax-item syntax-yaml\">-</span> <span class=\"syntax-string syntax-unquoted syntax-plain syntax-out syntax-yaml\"><span class=\"syntax-entity syntax-name syntax-tag syntax-yaml\">Experiment report updated with current runs and links</span></span><span class=\"syntax-punctuation syntax-separator syntax-key-value syntax-mapping syntax-yaml\">:</span> <span class=\"syntax-string syntax-unquoted syntax-plain syntax-out syntax-yaml\">training_reports/qwen3-codeforces-cots-sft.md.</span>\n\n  <span class=\"syntax-string syntax-unquoted syntax-plain syntax-out syntax-yaml\"><span class=\"syntax-entity syntax-name syntax-tag syntax-yaml\">To evaluate the fine-tuned checkpoints once the SFT job pushes to the hub, reuse the same lighteval script</span></span><span class=\"syntax-punctuation syntax-separator syntax-key-value syntax-mapping syntax-yaml\">:</span>\n  <span class=\"syntax-string syntax-unquoted syntax-plain syntax-out syntax-yaml\">hf jobs uv run --flavor a10g-large --timeout 1h --secrets HF_TOKEN -e MODEL_ID=burtenshaw/qwen3-codeforces-cots-sft -e</span>\n  <span class=\"syntax-string syntax-unquoted syntax-plain syntax-out syntax-yaml\">RESULTS_ORG=burtenshaw -d /tmp/lighteval_humaneval.py</span>\n  <span class=\"syntax-string syntax-unquoted syntax-plain syntax-out syntax-yaml\">(or swap MODEL_ID for a specific checkpoint path). This will log to the same results directory on the hub.</span>\n\n  <span class=\"syntax-string syntax-unquoted syntax-plain syntax-out syntax-yaml\">1. Monitor the two running jobs; I can fetch logs or metrics on request.</span>\n  <span class=\"syntax-string syntax-unquoted syntax-plain syntax-out syntax-yaml\">2. After a checkpoint lands, trigger the lighteval run above to compare against the baseline; then we can fill in pass@1 in the report.</span>\n</span></span></code></pre>\n<p>Trackio will monitor the training and evaluation scores for you by running evaluation jobs and selecting the best checkpoint. If you want to know the status of the training job, you can ask Codex to fetch the logs and summarize progress in a table.</p>\n<pre><code class=\"language-sh\"><span class=\"code-snippet\" data-language=\"Shell\"><span class=\"syntax-source syntax-shell syntax-bash\"><span class=\"syntax-meta syntax-function-call syntax-shell\"><span class=\"syntax-variable syntax-function syntax-shell\">Are</span></span><span class=\"syntax-meta syntax-function-call syntax-arguments syntax-shell\"> models outperforming the base model<span class=\"syntax-keyword syntax-operator syntax-regexp syntax-quantifier syntax-shell\">?</span></span>\n</span></span></code></pre>\n<pre><code class=\"language-sh\"><span class=\"code-snippet\" data-language=\"Shell\"><span class=\"syntax-source syntax-shell syntax-bash\"><span class=\"syntax-meta syntax-function-call syntax-shell\"></span><span class=\"syntax-keyword syntax-operator syntax-logical syntax-pipe syntax-shell\">|</span> <span class=\"syntax-meta syntax-function-call syntax-shell\"><span class=\"syntax-variable syntax-function syntax-shell\">Model</span></span> <span class=\"syntax-keyword syntax-operator syntax-logical syntax-pipe syntax-shell\">|</span> <span class=\"syntax-meta syntax-function-call syntax-shell\"><span class=\"syntax-variable syntax-function syntax-shell\">Benchmark</span></span> <span class=\"syntax-keyword syntax-operator syntax-logical syntax-pipe syntax-shell\">|</span> <span class=\"syntax-meta syntax-function-call syntax-shell\"><span class=\"syntax-variable syntax-function syntax-shell\">Score</span></span> <span class=\"syntax-keyword syntax-operator syntax-logical syntax-pipe syntax-shell\">|</span> <span class=\"syntax-meta syntax-function-call syntax-shell\"><span class=\"syntax-variable syntax-function syntax-shell\">Evaluation</span></span><span class=\"syntax-meta syntax-function-call syntax-arguments syntax-shell\"> Job Link</span> <span class=\"syntax-keyword syntax-operator syntax-logical syntax-pipe syntax-shell\">|</span> <span class=\"syntax-meta syntax-function-call syntax-shell\"><span class=\"syntax-variable syntax-function syntax-shell\">Model</span></span><span class=\"syntax-meta syntax-function-call syntax-arguments syntax-shell\"> Link</span> <span class=\"syntax-keyword syntax-operator syntax-logical syntax-pipe syntax-shell\">|</span>\n<span class=\"syntax-meta syntax-function-call syntax-shell\"></span><span class=\"syntax-keyword syntax-operator syntax-logical syntax-pipe syntax-shell\">|</span><span class=\"syntax-meta syntax-function-call syntax-shell\"><span class=\"syntax-variable syntax-function syntax-shell\">-----------</span></span><span class=\"syntax-keyword syntax-operator syntax-logical syntax-pipe syntax-shell\">|</span><span class=\"syntax-meta syntax-function-call syntax-shell\"><span class=\"syntax-variable syntax-function syntax-shell\">-----------</span></span><span class=\"syntax-keyword syntax-operator syntax-logical syntax-pipe syntax-shell\">|</span><span class=\"syntax-meta syntax-function-call syntax-shell\"><span class=\"syntax-variable syntax-function syntax-shell\">-------</span></span><span class=\"syntax-keyword syntax-operator syntax-logical syntax-pipe syntax-shell\">|</span><span class=\"syntax-meta syntax-function-call syntax-shell\"><span class=\"syntax-variable syntax-function syntax-shell\">---------------------</span></span><span class=\"syntax-keyword syntax-operator syntax-logical syntax-pipe syntax-shell\">|</span><span class=\"syntax-meta syntax-function-call syntax-shell\"><span class=\"syntax-variable syntax-function syntax-shell\">------------</span></span><span class=\"syntax-keyword syntax-operator syntax-logical syntax-pipe syntax-shell\">|</span>\n<span class=\"syntax-meta syntax-function-call syntax-shell\"></span><span class=\"syntax-keyword syntax-operator syntax-logical syntax-pipe syntax-shell\">|</span> <span class=\"syntax-meta syntax-function-call syntax-shell\"></span><span class=\"syntax-meta syntax-function-call syntax-arguments syntax-shell\"><span class=\"syntax-meta syntax-group syntax-expansion syntax-command syntax-backticks syntax-shell\"><span class=\"syntax-punctuation syntax-section syntax-group syntax-begin syntax-shell\">`</span><span class=\"syntax-meta syntax-function-call syntax-shell\"><span class=\"syntax-variable syntax-function syntax-shell\">qwen3-0.6b-lora-v1</span></span><span class=\"syntax-punctuation syntax-section syntax-group syntax-end syntax-shell\">`</span></span> - <span class=\"syntax-meta syntax-group syntax-expansion syntax-command syntax-backticks syntax-shell\"><span class=\"syntax-punctuation syntax-section syntax-group syntax-begin syntax-shell\">`</span><span class=\"syntax-meta syntax-function-call syntax-shell\"><span class=\"syntax-variable syntax-function syntax-shell\">2025-12-09</span></span><span class=\"syntax-meta syntax-function-call syntax-arguments syntax-shell\"> 13:47:47 UTC</span><span class=\"syntax-punctuation syntax-section syntax-group syntax-end syntax-shell\">`</span></span> - <span class=\"syntax-meta syntax-group syntax-expansion syntax-command syntax-backticks syntax-shell\"><span class=\"syntax-punctuation syntax-section syntax-group syntax-begin syntax-shell\">`</span><span class=\"syntax-meta syntax-function-call syntax-shell\"><span class=\"syntax-variable syntax-function syntax-shell\">Completed</span></span><span class=\"syntax-punctuation syntax-section syntax-group syntax-end syntax-shell\">`</span></span></span> <span class=\"syntax-keyword syntax-operator syntax-logical syntax-pipe syntax-shell\">|</span> <span class=\"syntax-meta syntax-function-call syntax-shell\"><span class=\"syntax-variable syntax-function syntax-shell\">HumanEval</span></span><span class=\"syntax-meta syntax-function-call syntax-arguments syntax-shell\"> pass@1</span> <span class=\"syntax-keyword syntax-operator syntax-logical syntax-pipe syntax-shell\">|</span> <span class=\"syntax-meta syntax-function-call syntax-shell\"><span class=\"syntax-variable syntax-function syntax-shell\">0.342</span></span> <span class=\"syntax-keyword syntax-operator syntax-logical syntax-pipe syntax-shell\">|</span> <span class=\"syntax-meta syntax-function-call syntax-shell\"><span class=\"syntax-variable syntax-function syntax-shell\">[Logs]</span></span><span class=\"syntax-meta syntax-function-call syntax-arguments syntax-shell\">(<span class=\"syntax-keyword syntax-operator syntax-assignment syntax-redirection syntax-shell\">&lt;</span>link to training job<span class=\"syntax-keyword syntax-operator syntax-assignment syntax-redirection syntax-shell\">&gt;</span></span><span class=\"syntax-meta syntax-function-call syntax-shell\"></span><span class=\"syntax-meta syntax-post-cmd syntax-shell\">)</span> <span class=\"syntax-keyword syntax-operator syntax-logical syntax-pipe syntax-shell\">|</span> <span class=\"syntax-meta syntax-function-call syntax-shell\"><span class=\"syntax-variable syntax-function syntax-shell\">[burtenshaw/qwen3-codeforces-cots-sft]</span></span><span class=\"syntax-meta syntax-function-call syntax-arguments syntax-shell\">(https://huggingface.co/burtenshaw/qwen3-codeforces-cots-sft</span><span class=\"syntax-meta syntax-function-call syntax-shell\"></span><span class=\"syntax-meta syntax-post-cmd syntax-shell\">)</span>\n<span class=\"syntax-meta syntax-function-call syntax-shell\"></span><span class=\"syntax-keyword syntax-operator syntax-logical syntax-pipe syntax-shell\">|</span> <span class=\"syntax-meta syntax-function-call syntax-shell\"></span><span class=\"syntax-meta syntax-function-call syntax-arguments syntax-shell\"><span class=\"syntax-meta syntax-group syntax-expansion syntax-command syntax-backticks syntax-shell\"><span class=\"syntax-punctuation syntax-section syntax-group syntax-begin syntax-shell\">`</span><span class=\"syntax-meta syntax-function-call syntax-shell\"><span class=\"syntax-variable syntax-function syntax-shell\">base-humaneval-a10g</span></span><span class=\"syntax-punctuation syntax-section syntax-group syntax-end syntax-shell\">`</span></span> - <span class=\"syntax-meta syntax-group syntax-expansion syntax-command syntax-backticks syntax-shell\"><span class=\"syntax-punctuation syntax-section syntax-group syntax-begin syntax-shell\">`</span><span class=\"syntax-meta syntax-function-call syntax-shell\"><span class=\"syntax-variable syntax-function syntax-shell\">2025-12-09</span></span><span class=\"syntax-meta syntax-function-call syntax-arguments syntax-shell\"> 13:47:47 UTC</span><span class=\"syntax-punctuation syntax-section syntax-group syntax-end syntax-shell\">`</span></span> - <span class=\"syntax-meta syntax-group syntax-expansion syntax-command syntax-backticks syntax-shell\"><span class=\"syntax-punctuation syntax-section syntax-group syntax-begin syntax-shell\">`</span><span class=\"syntax-meta syntax-function-call syntax-shell\"><span class=\"syntax-variable syntax-function syntax-shell\">Completed</span></span><span class=\"syntax-punctuation syntax-section syntax-group syntax-end syntax-shell\">`</span></span></span> <span class=\"syntax-keyword syntax-operator syntax-logical syntax-pipe syntax-shell\">|</span> <span class=\"syntax-meta syntax-function-call syntax-shell\"><span class=\"syntax-variable syntax-function syntax-shell\">HumanEval</span></span><span class=\"syntax-meta syntax-function-call syntax-arguments syntax-shell\"> pass@1</span> <span class=\"syntax-keyword syntax-operator syntax-logical syntax-pipe syntax-shell\">|</span> <span class=\"syntax-meta syntax-function-call syntax-shell\"><span class=\"syntax-variable syntax-function syntax-shell\">0.306</span></span> <span class=\"syntax-keyword syntax-operator syntax-logical syntax-pipe syntax-shell\">|</span> <span class=\"syntax-meta syntax-function-call syntax-shell\"><span class=\"syntax-variable syntax-function syntax-shell\">[Logs]</span></span><span class=\"syntax-meta syntax-function-call syntax-arguments syntax-shell\">(<span class=\"syntax-keyword syntax-operator syntax-assignment syntax-redirection syntax-shell\">&lt;</span>link to evaluation job<span class=\"syntax-keyword syntax-operator syntax-assignment syntax-redirection syntax-shell\">&gt;</span></span><span class=\"syntax-meta syntax-function-call syntax-shell\"></span><span class=\"syntax-meta syntax-post-cmd syntax-shell\">)</span> <span class=\"syntax-keyword syntax-operator syntax-logical syntax-pipe syntax-shell\">|</span> <span class=\"syntax-meta syntax-function-call syntax-shell\"><span class=\"syntax-variable syntax-function syntax-shell\">[Qwen/Qwen3-0.6B]</span></span><span class=\"syntax-meta syntax-function-call syntax-arguments syntax-shell\">(https://huggingface.co/Qwen/Qwen3-0.6B</span><span class=\"syntax-meta syntax-function-call syntax-shell\"></span><span class=\"syntax-meta syntax-post-cmd syntax-shell\">)</span>\n</span></span></code></pre>\n<p>You can also monitor the training loss in real-time.</p>\n<p><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://huggingface.co/datasets/hf-skills/images/resolve/main/codex-sft-codeforces.png\"><picture class=\"article-picture article-picture-fallback\" style=\"--image-ratio:16 / 9\"><img src=\"https://huggingface.co/datasets/hf-skills/images/resolve/main/codex-sft-codeforces.png\" alt=\"Example Trackio dashboard of a Sweep test\" loading=\"lazy\" decoding=\"async\" fetchpriority=\"low\" referrerpolicy=\"no-referrer\" class=\"progressive-image\"></picture></a></p>\n<p>Codex fetches the logs and summarizes progress.</p>\n<p>Click <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://burtenshaw-trackio.hf.space/?project=qwen3-codeforces-sft&amp;metrics=train/loss&amp;runs=sft-qwen3-codeforces-20251209-175806&amp;sidebar=hidden&amp;navbar=hidden\">here</a> for an example Trackio dashboard with some completed runs.</p>\n<h3>Use Your Model</h3>\n<p>When training completes, your model is on the Hub:</p>\n<pre><code class=\"language-python\"><span class=\"code-snippet\" data-language=\"Python\"><span class=\"syntax-source syntax-python\"><span class=\"syntax-meta syntax-statement syntax-import syntax-python\"><span class=\"syntax-keyword syntax-control syntax-import syntax-from syntax-python\">from</span></span><span class=\"syntax-meta syntax-statement syntax-import syntax-python\"><span class=\"syntax-meta syntax-import-source syntax-python\"> <span class=\"syntax-meta syntax-import-path syntax-python\"><span class=\"syntax-meta syntax-import-name syntax-python\">transformers</span></span> <span class=\"syntax-meta syntax-statement syntax-import syntax-python\"><span class=\"syntax-keyword syntax-control syntax-import syntax-python\">import</span></span></span></span><span class=\"syntax-meta syntax-statement syntax-import syntax-python\"></span><span class=\"syntax-meta syntax-statement syntax-import syntax-python\"> <span class=\"syntax-meta syntax-generic-name syntax-python\">AutoModelForCausalLM</span><span class=\"syntax-punctuation syntax-separator syntax-import-list syntax-python\">,</span> <span class=\"syntax-meta syntax-generic-name syntax-python\">AutoTokenizer</span></span>\n\n<span class=\"syntax-meta syntax-qualified-name syntax-python\"><span class=\"syntax-meta syntax-generic-name syntax-python\">model</span></span> <span class=\"syntax-keyword syntax-operator syntax-assignment syntax-python\">=</span> <span class=\"syntax-meta syntax-function-call syntax-python\"><span class=\"syntax-meta syntax-qualified-name syntax-python\"><span class=\"syntax-meta syntax-generic-name syntax-python\">AutoModelForCausalLM</span><span class=\"syntax-punctuation syntax-accessor syntax-dot syntax-python\">.</span></span><span class=\"syntax-meta syntax-qualified-name syntax-python\"><span class=\"syntax-variable syntax-function syntax-python\">from_pretrained</span></span><span class=\"syntax-punctuation syntax-section syntax-arguments syntax-begin syntax-python\">(</span><span class=\"syntax-meta syntax-function-call syntax-arguments syntax-python\"><span class=\"syntax-meta syntax-string syntax-python\"><span class=\"syntax-string syntax-quoted syntax-double syntax-python\"><span class=\"syntax-punctuation syntax-definition syntax-string syntax-begin syntax-python\">&quot;</span></span></span><span class=\"syntax-meta syntax-string syntax-python\"><span class=\"syntax-string syntax-quoted syntax-double syntax-python\">burtenshaw/qwen3-codeforces-cots-sft<span class=\"syntax-punctuation syntax-definition syntax-string syntax-end syntax-python\">&quot;</span></span></span></span><span class=\"syntax-punctuation syntax-section syntax-arguments syntax-end syntax-python\">)</span></span>\n<span class=\"syntax-meta syntax-qualified-name syntax-python\"><span class=\"syntax-meta syntax-generic-name syntax-python\">tokenizer</span></span> <span class=\"syntax-keyword syntax-operator syntax-assignment syntax-python\">=</span> <span class=\"syntax-meta syntax-function-call syntax-python\"><span class=\"syntax-meta syntax-qualified-name syntax-python\"><span class=\"syntax-meta syntax-generic-name syntax-python\">AutoTokenizer</span><span class=\"syntax-punctuation syntax-accessor syntax-dot syntax-python\">.</span></span><span class=\"syntax-meta syntax-qualified-name syntax-python\"><span class=\"syntax-variable syntax-function syntax-python\">from_pretrained</span></span><span class=\"syntax-punctuation syntax-section syntax-arguments syntax-begin syntax-python\">(</span><span class=\"syntax-meta syntax-function-call syntax-arguments syntax-python\"><span class=\"syntax-meta syntax-string syntax-python\"><span class=\"syntax-string syntax-quoted syntax-double syntax-python\"><span class=\"syntax-punctuation syntax-definition syntax-string syntax-begin syntax-python\">&quot;</span></span></span><span class=\"syntax-meta syntax-string syntax-python\"><span class=\"syntax-string syntax-quoted syntax-double syntax-python\">burtenshaw/qwen3-codeforces-cots-sft<span class=\"syntax-punctuation syntax-definition syntax-string syntax-end syntax-python\">&quot;</span></span></span></span><span class=\"syntax-punctuation syntax-section syntax-arguments syntax-end syntax-python\">)</span></span>\n</span></span></code></pre>\n<p>Transformers is great as a standard, and we can easily convert the trained model to GGUF for local deployment. This is because the training skill contains instructions and support scripts to convert models to GGUF.</p>\n<pre><code><span class=\"code-snippet\">Convert my fine-tuned model to GGUF with Q4_K_M quantization.\nPush to username/my-model-gguf.\n</span></code></pre>\n<p>Codex then converts to GGUF, applies quantization, and pushes to the Hub. If we trained a LoRA adapter, it will merge the LoRA adapters into the base model.</p>\n<p>Then use it locally:</p>\n<pre><code class=\"language-bash\"><span class=\"code-snippet\" data-language=\"Shell\"><span class=\"syntax-source syntax-shell syntax-bash\"><span class=\"syntax-meta syntax-function-call syntax-shell\"><span class=\"syntax-variable syntax-function syntax-shell\">llama-server</span></span><span class=\"syntax-meta syntax-function-call syntax-arguments syntax-shell\"><span class=\"syntax-variable syntax-parameter syntax-option syntax-shell\"><span class=\"syntax-punctuation syntax-definition syntax-parameter syntax-shell\"> -</span>hf</span> <span class=\"syntax-keyword syntax-operator syntax-assignment syntax-redirection syntax-shell\">&lt;</span>username<span class=\"syntax-keyword syntax-operator syntax-assignment syntax-redirection syntax-shell\">&gt;</span>/<span class=\"syntax-keyword syntax-operator syntax-assignment syntax-redirection syntax-shell\">&lt;</span>model-name<span class=\"syntax-keyword syntax-operator syntax-assignment syntax-redirection syntax-shell\">&gt;</span>:<span class=\"syntax-keyword syntax-operator syntax-assignment syntax-redirection syntax-shell\">&lt;</span>quantization<span class=\"syntax-keyword syntax-operator syntax-assignment syntax-redirection syntax-shell\">&gt;</span>\n</span>\n<span class=\"syntax-comment syntax-line syntax-number-sign syntax-shell\"><span class=\"syntax-punctuation syntax-definition syntax-comment syntax-begin syntax-shell\">#</span></span><span class=\"syntax-comment syntax-line syntax-number-sign syntax-shell\"> For example, to run the Qwen3-1.7B-GGUF model on your local machine:</span><span class=\"syntax-comment syntax-line syntax-number-sign syntax-shell\">\n</span><span class=\"syntax-meta syntax-function-call syntax-shell\"><span class=\"syntax-variable syntax-function syntax-shell\">llama-server</span></span><span class=\"syntax-meta syntax-function-call syntax-arguments syntax-shell\"><span class=\"syntax-variable syntax-parameter syntax-option syntax-shell\"><span class=\"syntax-punctuation syntax-definition syntax-parameter syntax-shell\"> -</span>hf</span> unsloth/Qwen3-1.7B-GGUF:Q4_K_M</span>\n</span></span></code></pre>\n<h3>Hardware and Cost</h3>\n<p>Codex selects hardware based on your model size, but understanding the tradeoffs helps you make better decisions. You can use the <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/huggingface/skills/blob/main/hf-llm-trainer/skills/model-trainer/references/hardware_guide.md\">Hardware Guide</a> to see the hardware options and costs, but codex will do it for you and select the best option.</p>\n<p>For <strong>tiny models under 1B parameters</strong>, <code>t4-small</code> works well. These models train quickly—expect $1-2 for a full run. This is perfect for educational or experimental runs.</p>\n<p>For <strong>small models (1-3B)</strong>, step up to <code>t4-medium</code> or <code>a10g-small</code>. Training takes a few hours and costs $5-15.</p>\n<p>For <strong>medium models (3-7B)</strong>, you need <code>a10g-large</code> or <code>a100-large</code> with LoRA. Full fine-tuning doesn't fit, but LoRA makes these very trainable. Budget $15-40 for production.</p>\n<p>For <strong>large models (7B+)</strong>, this HF skills job is not suitable for this scale yet. But stay tuned because we are working on it!</p>\n<h2>What's Next</h2>\n<p>We've shown that Codex can handle the full lifecycle of model fine-tuning: validating data, selecting hardware, generating scripts, submitting jobs, monitoring progress, and converting outputs.</p>\n<p>Some things to try:</p>\n<ul>\n<li>Fine-tune a model on your own dataset</li>\n<li>Try bigger experiments with more models and datasets and let the agent create a report for you.</li>\n<li>Train a reasoning model with GRPO on math or code and let the agent create a report for you.</li>\n</ul>\n<p>The <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://hf-learn.short.gy/gh-hf-skills\">extension is open source</a>. You can extend it, customize it for your workflows, or use it as a starting point for other training scenarios.</p>\n<hr />\n<h2>Resources</h2>\n<h3>Codex</h3>\n<ul>\n<li><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://developers.openai.com/codex/\">Codex Documentation</a> — OpenAI's AI coding agent</li>\n<li><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://developers.openai.com/codex/\">Codex Quickstart</a> — Get started with Codex</li>\n<li><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://developers.openai.com/codex/\">Codex AGENTS Guide</a> — Using AGENTS.md files</li>\n</ul>\n<h3>Hugging Face Skills</h3>\n<ul>\n<li><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/huggingface/skills/blob/main/hf-llm-trainer/skills/model-trainer/SKILL.md\">SKILL.md</a> — Full skill documentation</li>\n<li><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/huggingface/skills/blob/main/hf-llm-trainer/skills/model-trainer/references/training_methods.md\">Training Methods</a> — SFT, DPO, GRPO explained</li>\n<li><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/huggingface/skills/blob/main/hf-llm-trainer/skills/model-trainer/references/hardware_guide.md\">Hardware Guide</a> — GPU selection and costs</li>\n<li><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://huggingface.co/docs/trl\">TRL Documentation</a> — The underlying training library</li>\n<li><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://huggingface.co/docs/huggingface_hub/guides/jobs\">Hugging Face Jobs</a> — Cloud training infrastructure</li>\n<li><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://huggingface.co/docs/trackio\">Trackio</a> — Real-time training monitoring</li>\n</ul>\n",
  "content_markdown": "[![banner](https://huggingface.co/blog/assets/hf-skills-training/thumbnail-codex.png)](https://huggingface.co/blog/assets/hf-skills-training/thumbnail-codex.png)\n\nBuilding on our work to get [Claude Code](https://huggingface.co/blog/hf-skills-training) to train open source models, we are now getting [Codex](https://developers.openai.com/codex/) to go further. We gave Codex access to the [Hugging Face Skills](https://github.com/huggingface/skills) repository, which contains skills for Machine Learning and AI tasks such as training or evaluating models. With HF skills, a coding agent can:\n\n- Fine-tune and apply RL alignment on language models\n- Review, explain, and act on live training metrics from Trackio\n- Evaluate checkpoints and act on evaluation results\n- Create reports from experiments\n- Export to and quantize models with GGUF for local deployment\n- Publish models to the Hub\n\nThis tutorial dives even deeper and shows you how it works and how to use it yourself. So let's get started.\n\n> Codex uses `AGENTS.md` files to accomplish specialized tasks, whilst Claude Code uses 'Skills'. Fortunately, 'HF-skills' is compatible with both approaches and works with major coding agents like Claude Code, Codex, or Gemini CLI.\n\nWith `HF-skills`, you can tell Codex something like:\n\n```\nFine-tune Qwen3-0.6B on the dataset open-r1/codeforces-cots\n```\n\nAnd Codex will:\n\n1. Validate your dataset format\n2. Select appropriate hardware (t4-small for a 0.6B model)\n3. Use and update a training script with Trackio monitoring\n4. Submit the job to Hugging Face Jobs\n5. Report the job ID and estimated cost\n6. Check on progress when you ask\n7. Help you debug if something goes wrong\n\nThe model trains on Hugging Face GPUs while you do other things. When it's done, your fine-tuned model appears on the Hub, ready to use.\n\nThis isn't a toy demo. The extension supports the same training methods used in production: supervised fine-tuning, direct preference optimization, and reinforcement learning with verifiable rewards. You can train models from 0.5B to 7B parameters, convert them to GGUF for local deployment, and run multi-stage pipelines that combine different techniques.\n\n## GOAL: End-to-end Machine Learning experiments\n\nWe explored this single prompt approach in the Claude Code tutorial. However, we can now go further and get OpenAI Codex to do end-to-end Machine Learning experiments. For example, Codex should be able to monitor progress, evaluate the models, and maintain an up to date training report. This will allow engineers to delegate experiments to Codex and review reports in a more hands-off way. It will also allow Codex to make more decisions on its own based on the training report and evaluation results.\n\nSo let's get started!\n\n## Setup and Install\n\nBefore starting, you'll need:\n\n- A Hugging Face account with a [Pro](https://hf.co/pro) or [Team / Enterprise](https://hf.co/enterprise) plan (Jobs require a paid plan)\n- A write-access token from [huggingface.co/settings/tokens](https://huggingface.co/settings/tokens)\n- [Codex](https://developers.openai.com/codex/) installed and configured\n\n### Install Codex\n\nCodex is OpenAI's AI coding agent included in ChatGPT Plus, Pro, Business, Edu, and Enterprise plans. Codex brings AI assistance directly into your development workflow.\n\nSee the [Codex documentation](https://developers.openai.com/codex/) for installation and setup instructions.\n\n### Install the Hugging Face Skills\n\nThe Hugging Face Skills repository includes an `AGENTS.md` file that Codex automatically detects and uses.\n\nClone the repository:\n\n```bash\ngit clone https://github.com/huggingface/skills.git\ncd skills\n```\n\nCodex will automatically detect the `AGENTS.md` file in the repository and load the skills. You can verify the instructions are loaded with:\n\n```bash\ncodex --ask-for-approval never \"Summarize the current instructions.\"\n```\n\nSee the [Codex AGENTS guide](https://developers.openai.com/codex/) for more details.\n\n### Connect to Hugging Face\n\nAuthenticate with Hugging Face using the `hf auth login` command and a write-access token from [hf.co/settings/tokens](https://huggingface.co/settings/tokens):\n\n```bash\nhf auth login\n```\n\nCodex supports [MCP (Model Context Protocol)](https://developers.openai.com/codex/) servers. You can configure the Hugging Face MCP server for additional Hub integration capabilities. You can add the Hugging Face MCP server to your Codex configuration by adding the following to your `~/.codex/config.toml` file:\n\n```toml\n[mcp_servers.huggingface]\ncommand = \"npx\"\nargs = [\"-y\", \"mcp-remote\", \"https://huggingface.co/mcp?login\"]\n```\n\nConfigure Hugging Face MCP Server to use relevant MCP servers like Jobs in the [Settings](https://huggingface.co/settings/mcp) page.\n\nThen start Codex and you'll be directed to the Hugging Face MCP authentication page.\n\n## Your first AI Experiment\n\nLet's walk through a complete example. We'll fine-tune a small model to improve code solving abilities, using the [open-r1/codeforces-cots](https://huggingface.co/datasets/open-r1/codeforces-cots) dataset and the [openai\\_humaneval](https://huggingface.co/datasets/openai/openai_humaneval) benchmark.\n\n> The `open-r1/codeforces-cots` dataset is a dataset of codeforces problems and solutions. It is a good dataset for instruction tuning a model to solve hard coding problems.\n\n### Instruct Codex to do an end-to-end fine-tuning experiment\n\nStart Codex in your project directory. Then give it a simple and clear instruction:\n\n```\nStart a new fine-tuning experiment to improve code solving abilities on using SFT. \n- Maintain a report for the experiment. \n- Evaluate models with the openai_humaneval benchmark\n- Use the open-r1/codeforces-cots dataset\n```\n\n> You'll notice that we've gone a bit further than the single prompt approach in the Claude Code tutorial. We've added more details to the instruction but also added more steps to the experiment.\n>\n> Why not try iterating on this experiment yourself with more open ended questions like \"What is the best model for code solving abilities?\" or \"What is the best dataset for code solving abilities?\"\n\nCodex analyzes your request and prepares a training configuration. For a 0.6B model on a demo dataset, it selects `t4-small`—enough GPU for this model size and the cheapest option available. Codex will start a new report at `training_reports/<model>-<dataset>-<method>.md` which looks like the example below. As the experiment progresses, Codex will update the report with the latest information and each run report.\n\nExample Training Report\n\n```md\n# Base Model & Dataset\n[Base Model](https://huggingface.co/Qwen/Qwen3-0.6B)  \n[Dataset](https://huggingface.co/datasets/open-r1/codeforces-cots)\n\n---\n\n# `sft-a10g` - `TBD` - `In Progress`\n\n## Training Parameters\n| Parameter | Value |\n|-----------|-------|\n| Method | SFT (TRL) |\n| Model | `Qwen/Qwen3-0.6B` |\n| Dataset | `open-r1/codeforces-cots` (train, 5% eval split) |\n| Max Length | 2048 |\n| Epochs | 1 (extend to 3 after first check) |\n| Per-Device Batch Size | 1 |\n| Grad Accum Steps | 8 |\n| Effective Batch | 8 |\n| Learning Rate | 5e-5 |\n| Weight Decay | 0.01 |\n| Warmup Ratio | 0.03 |\n| Eval Strategy | steps (500) |\n| Save Strategy | steps (500), `hub_strategy=every_save`, limit=2 |\n| Precision | bf16 |\n| Gradient Checkpointing | true |\n| Packing | false |\n| Hub Model | `burtenshaw/qwen3-codeforces-cots-sft` |\n| Hardware | a10g-small |\n| Timeout | 2h |\n| Trackio | project `qwen3-codeforces-cots`, run `sft-a10g` |\n\n## Run Status\nIn Progress (queued to submit)\n\n## Run Logs\nPending submission (job link will be added)\n\n## Trackio Logs\nPending (will link after job starts)\n\n## Run Evaluations\nPending (lighteval `openai_humaneval` for base + checkpoints)\n\n---\n\n# Experiment Evaluations\n| Run Title | Benchmark | Score | Evaluation Job Link | Model Link |\n|-----------|-----------|-------|---------------------|------------|\n| `sft-a10g` - `TBD` - `In Progress` | HumanEval pass@1 | TBD | TBD | [burtenshaw/qwen3-codeforces-cots-sft](https://huggingface.co/burtenshaw/qwen3-codeforces-cots-sft)\n```\n\n### Updating the Training Report\n\nAs the experiment progresses, Codex will update the report with the latest information and each run report. You can view the report in `training_reports/<model>-<dataset>-<method>.md` file.\n\nFor example, codex will update the title of the report to `sft-a10g` - `TBD` - `In Progress` when the experiment is in progress.\n\n```md\n# `base-humaneval-a10g` - `2025-12-09 13:47:47 UTC` - `In Progress`\n```\n\nIt can link to the run logs and trackio logs.\n\n```md\n## Run Logs\n\n[Run Logs](https://huggingface.co/jobs/burtenshaw/6938272ec67c9f186cfe1ae3)\n\n## Trackio Logs\n\n[Trackio Logs](https://burtenshaw-trackio.hf.space/?project=qwen3-codeforces-sft&metrics=train/loss&runs=sft-qwen3-codeforces-20251209-175806&sidebar=hidden&navbar=hidden)\n```\n\nAnd it will update the evaluation results in a combined table.\n\n```md\n# Experiment Evaluations\n\n| Run Title | Benchmark | Score | Evaluation Job Link | Model Link |\n|-----------|-----------|-------|---------------------|------------|\n| `base-humaneval-a10g` - `2025-12-09 13:47:47 UTC` - `Completed` | HumanEval pass@1 | 0.304 | [Logs](https://huggingface.co/jobs/burtenshaw/69382863c67c9f186cfe1ae7) | [Qwen/Qwen3-0.6B](https://huggingface.co/Qwen/Qwen3-0.6B) |\n| `qwen3-0.6b-lora-v1` - `2025-12-09 13:47:47 UTC` - `In Progress` | HumanEval pass@1 | TBD | TBD | [burtenshaw/qwen3-codeforces-cots-sft](https://huggingface.co/burtenshaw/qwen3-codeforces-cots-sft)\n```\n\n### Dataset Validation\n\nDataset format and processing is the most common source of training failures and usually a significant amount of work is done in the training script. Codex can validate datasets before the job starts and either define a configuration for TRL or process the dataset separately.\n\nIn most cases, Codex will validate the dataset before training, but you can always check the dataset validation before submitting the job.\n\n```\nCheck if open-r1/codeforces-cots works for SFT training.\n```\n\nCodex runs a quick inspection on CPU (fractions of a penny) and reports:\n\n```\nDataset validation for my-org/conversation-data:\n\nSFT: ✓ READY\n  Found 'messages' column with conversation format\n\nDPO: ✗ INCOMPATIBLE\n  Missing 'chosen' and 'rejected' columns\n```\n\nIf your dataset needs transformation, Codex can preprocess the dataset before training.\n\n```\nPreprocess the dataset open-r1/codeforces-cots to use 'good_response' and 'bad_response' instead of 'chosen' and 'rejected'.\n```\n\nCodex will preprocess the dataset and update the training script with the new configuration.\n\n### Review Before Submitting\n\nBefore Codex submits anything, you'll see the configuration:\n\n```\nI'll fine-tune Qwen/Qwen3-0.6B on open-r1/codeforces-cots using SFT.\n\nConfiguration:\n- Hardware: t4-small (~$0.75/hour)\n- Estimated time: ~20 minutes\n- Estimated cost: ~$0.30\n- Output: username/qwen-codeforces-cots-sft\n\nThe model will be pushed to Hub automatically. Should I submit?\n```\n\nThis is your chance to adjust anything. Change the output repo name, pick different hardware, or ask Codex to modify training parameters. Once you approve, the job is submitted.\n\nFor example, you can ask Codex to try a test run:\n\n```\nDo a quick test run on 100 examples.\n```\n\n### Track Progress using the Training Report\n\nAfter submission, you can track progress using the training report and get links to the run logs and trackio logs. You can also tell Codex to fetch the logs, summarize progress, and update the training report. As codex runs the jobs, it will update the training report with the latest information.\n\nExample Codex Response\n\n```\n─ Worked for 10m 38s ─────────────────────────────────────────────────────────────────────────────────────────────────────────\n\n• Training and eval jobs are live. Key details:\n\n  - SFT launched on open-r1/codeforces-cots (solutions_py_decontaminated, 98/2 split) with LoRA on Qwen/Qwen3-0.6B, a10g-\n    large, bf16, max_steps=1000, batch=1, grad_accum=8, lr=2e-5, save/eval every 200 steps, hub push burtenshaw/qwen3-\n    codeforces-cots-sft. Job: https://huggingface.co/jobs/burtenshaw/6938272ec67c9f186cfe1ae3 (Trackio project codeforces-\n    cots-sft, run qwen3-0.6b-lora-v1).\n  - Baseline lighteval (HumanEval) on the base model queued on a10g-large. Job: https://huggingface.co/jobs/\n  - Experiment report updated with current runs and links: training_reports/qwen3-codeforces-cots-sft.md.\n\n  To evaluate the fine-tuned checkpoints once the SFT job pushes to the hub, reuse the same lighteval script:\n  hf jobs uv run --flavor a10g-large --timeout 1h --secrets HF_TOKEN -e MODEL_ID=burtenshaw/qwen3-codeforces-cots-sft -e\n  RESULTS_ORG=burtenshaw -d /tmp/lighteval_humaneval.py\n  (or swap MODEL_ID for a specific checkpoint path). This will log to the same results directory on the hub.\n\n  1. Monitor the two running jobs; I can fetch logs or metrics on request.\n  2. After a checkpoint lands, trigger the lighteval run above to compare against the baseline; then we can fill in pass@1 in the report.\n```\n\nTrackio will monitor the training and evaluation scores for you by running evaluation jobs and selecting the best checkpoint. If you want to know the status of the training job, you can ask Codex to fetch the logs and summarize progress in a table.\n\n```sh\nAre models outperforming the base model?\n```\n\n```sh\n| Model | Benchmark | Score | Evaluation Job Link | Model Link |\n|-----------|-----------|-------|---------------------|------------|\n| `qwen3-0.6b-lora-v1` - `2025-12-09 13:47:47 UTC` - `Completed` | HumanEval pass@1 | 0.342 | [Logs](<link to training job>) | [burtenshaw/qwen3-codeforces-cots-sft](https://huggingface.co/burtenshaw/qwen3-codeforces-cots-sft)\n| `base-humaneval-a10g` - `2025-12-09 13:47:47 UTC` - `Completed` | HumanEval pass@1 | 0.306 | [Logs](<link to evaluation job>) | [Qwen/Qwen3-0.6B](https://huggingface.co/Qwen/Qwen3-0.6B)\n```\n\nYou can also monitor the training loss in real-time.\n\n[![Example Trackio dashboard of a Sweep test](https://huggingface.co/datasets/hf-skills/images/resolve/main/codex-sft-codeforces.png)](https://huggingface.co/datasets/hf-skills/images/resolve/main/codex-sft-codeforces.png)\n\nCodex fetches the logs and summarizes progress.\n\nClick [here](https://burtenshaw-trackio.hf.space/?project=qwen3-codeforces-sft&metrics=train/loss&runs=sft-qwen3-codeforces-20251209-175806&sidebar=hidden&navbar=hidden) for an example Trackio dashboard with some completed runs.\n\n### Use Your Model\n\nWhen training completes, your model is on the Hub:\n\n```python\nfrom transformers import AutoModelForCausalLM, AutoTokenizer\n\nmodel = AutoModelForCausalLM.from_pretrained(\"burtenshaw/qwen3-codeforces-cots-sft\")\ntokenizer = AutoTokenizer.from_pretrained(\"burtenshaw/qwen3-codeforces-cots-sft\")\n```\n\nTransformers is great as a standard, and we can easily convert the trained model to GGUF for local deployment. This is because the training skill contains instructions and support scripts to convert models to GGUF.\n\n```\nConvert my fine-tuned model to GGUF with Q4_K_M quantization.\nPush to username/my-model-gguf.\n```\n\nCodex then converts to GGUF, applies quantization, and pushes to the Hub. If we trained a LoRA adapter, it will merge the LoRA adapters into the base model.\n\nThen use it locally:\n\n```bash\nllama-server -hf <username>/<model-name>:<quantization>\n\n# For example, to run the Qwen3-1.7B-GGUF model on your local machine:\nllama-server -hf unsloth/Qwen3-1.7B-GGUF:Q4_K_M\n```\n\n### Hardware and Cost\n\nCodex selects hardware based on your model size, but understanding the tradeoffs helps you make better decisions. You can use the [Hardware Guide](https://github.com/huggingface/skills/blob/main/hf-llm-trainer/skills/model-trainer/references/hardware_guide.md) to see the hardware options and costs, but codex will do it for you and select the best option.\n\nFor **tiny models under 1B parameters**, `t4-small` works well. These models train quickly—expect $1-2 for a full run. This is perfect for educational or experimental runs.\n\nFor **small models (1-3B)**, step up to `t4-medium` or `a10g-small`. Training takes a few hours and costs $5-15.\n\nFor **medium models (3-7B)**, you need `a10g-large` or `a100-large` with LoRA. Full fine-tuning doesn't fit, but LoRA makes these very trainable. Budget $15-40 for production.\n\nFor **large models (7B+)**, this HF skills job is not suitable for this scale yet. But stay tuned because we are working on it!\n\n## What's Next\n\nWe've shown that Codex can handle the full lifecycle of model fine-tuning: validating data, selecting hardware, generating scripts, submitting jobs, monitoring progress, and converting outputs.\n\nSome things to try:\n\n- Fine-tune a model on your own dataset\n- Try bigger experiments with more models and datasets and let the agent create a report for you.\n- Train a reasoning model with GRPO on math or code and let the agent create a report for you.\n\nThe [extension is open source](https://hf-learn.short.gy/gh-hf-skills). You can extend it, customize it for your workflows, or use it as a starting point for other training scenarios.\n\n* * *\n\n## Resources\n\n### Codex\n\n- [Codex Documentation](https://developers.openai.com/codex/) — OpenAI's AI coding agent\n- [Codex Quickstart](https://developers.openai.com/codex/) — Get started with Codex\n- [Codex AGENTS Guide](https://developers.openai.com/codex/) — Using AGENTS.md files\n\n### Hugging Face Skills\n\n- [SKILL.md](https://github.com/huggingface/skills/blob/main/hf-llm-trainer/skills/model-trainer/SKILL.md) — Full skill documentation\n- [Training Methods](https://github.com/huggingface/skills/blob/main/hf-llm-trainer/skills/model-trainer/references/training_methods.md) — SFT, DPO, GRPO explained\n- [Hardware Guide](https://github.com/huggingface/skills/blob/main/hf-llm-trainer/skills/model-trainer/references/hardware_guide.md) — GPU selection and costs\n- [TRL Documentation](https://huggingface.co/docs/trl) — The underlying training library\n- [Hugging Face Jobs](https://huggingface.co/docs/huggingface_hub/guides/jobs) — Cloud training infrastructure\n- [Trackio](https://huggingface.co/docs/trackio) — Real-time training monitoring\n",
  "dateCreated": "2026-10-04T12:50:30.804479567+00:00",
  "date_created": "2025-12-11T00:00:00+00:00",
  "date_modified": "2025-12-11T00:00:00+00:00",
  "date_published": "2025-12-11T00:00:00+00:00",
  "description": "Building on our work to get Claude Code to train open source models, we are now getting Codex to go further. We gave Codex access to the Hugging Face Skills repository, which contains skills for Machine Learning and AI tasks such as…",
  "external_url": "https://huggingface.co/blog/hf-skills-training-codex",
  "git": {
    "commit": "ebb0941c5c06a2ab2377342d607535262a3e969e",
    "path": "items/huggingface-co/2025/12/2025-12-11-codex-is-open-sourcing-ai-models.md",
    "permalink": "https://github.com/aymericbeaumet/aggr-instance/blob/ebb0941c5c06a2ab2377342d607535262a3e969e/items/huggingface-co/2025/12/2025-12-11-codex-is-open-sourcing-ai-models.md"
  },
  "id": "urn:aggr:item:3b54549df5b8a9cd81f2136ba6a4821424304b57",
  "isBasedOn": {
    "@id": "https://huggingface.co/blog/hf-skills-training-codex"
  },
  "mainEntity": {
    "@id": "https://huggingface.co/blog/hf-skills-training-codex",
    "@type": "CreativeWork",
    "archivedAt": {
      "@id": "https://aggr.aymericbeaumet.com/items/huggingface-co/2025-12-11-codex-is-open-sourcing-ai-models/#webpage"
    },
    "dateModified": "2025-12-11T00:00:00+00:00",
    "datePublished": "2025-12-11T00:00:00+00:00",
    "headline": "Codex is Open Sourcing AI models",
    "timeRequired": "PT11M",
    "url": "https://huggingface.co/blog/hf-skills-training-codex",
    "wordCount": 2388
  },
  "name": "Archived snapshot: Codex is Open Sourcing AI models",
  "preview": null,
  "reading_minutes": 11,
  "replicated_at": null,
  "source": "huggingface-co",
  "source_name": "Hugging Face - Blog",
  "summary": null,
  "tags": [],
  "temporalCoverage": "2026-10-04T12:50:30.804479567+00:00",
  "title": "Codex is Open Sourcing AI models",
  "url": "https://aggr.aymericbeaumet.com/items/huggingface-co/2025-12-11-codex-is-open-sourcing-ai-models/",
  "word_count": 2388
}