Back to blog
    Ertas vs Modal Labs: Which Is Better for Agencies Fine-Tuning Client Models?
    ertasmodal-labscomparisonagencyfine-tuninggpu

    Ertas vs Modal Labs: Which Is Better for Agencies Fine-Tuning Client Models?

    Comparing Ertas and Modal Labs for AI agency fine-tuning workflows. Covers the GUI vs code divide, multi-client management, cost predictability, and GGUF deployment.

    EErtas Team·

    Modal Labs is what you use when you want to write Python decorators and get auto-scaling GPUs. Ertas is what you use when you want to upload a CSV and click Train. They address the same underlying need — GPU compute for fine-tuning — but for completely different users.

    For AI agencies specifically, the choice matters beyond personal preference. The platform you choose affects your team's ability to onboard non-ML members, manage multiple client models, predict monthly costs, and deliver GGUF files that clients can deploy locally.

    What Modal Labs Is

    Modal is serverless GPU infrastructure. The development experience is Python-first: you write a training script, add Modal decorators, and Modal handles spinning up GPU instances, installing dependencies, managing storage, and auto-scaling.

    A typical Modal fine-tuning setup looks like this:

    import modal
    
    app = modal.App("fine-tune-llm")
    image = modal.Image.debian_slim().pip_install("unsloth", "torch", "transformers")
    
    @app.function(gpu="A100", timeout=3600, image=image)
    def fine_tune(training_data_path: str):
        from unsloth import FastLanguageModel
        # your training code here
        model, tokenizer = FastLanguageModel.from_pretrained(
            model_name="unsloth/llama-3-8b-instruct",
            max_seq_length=2048,
        )
        # ... training loop ...
        model.save_pretrained("./output")
    
    @app.local_entrypoint()
    def main():
        fine_tune.remote("s3://your-bucket/train.jsonl")
    

    This is genuinely powerful. You get A100 access in minutes, your code runs exactly as written, and you pay only for what you use. If you are an ML engineer who wants total control over the training loop, Modal is excellent.

    If you are not an ML engineer — or if you need your non-technical account manager to run training jobs for client X without understanding PyTorch — Modal does not work.

    What Ertas Is

    Ertas is a visual fine-tuning platform. The workflow is: upload JSONL dataset → configure training in the UI → train on cloud GPUs → export GGUF → run locally. No Python, no YAML, no understanding of gradient accumulation required.

    For agencies specifically, Ertas adds client-labeled projects (each client's datasets and models are isolated), team seats (up to 15 on Agency Pro), concurrent job slots (up to 8), and per-client LoRA adapter management.

    Comparison Table

    DimensionErtasModal Labs
    InterfaceVisual web UIPython code
    Setup time~2 min~60 min (environment + code)
    ML expertise requiredNoneSignificant
    Team accessRole-based seats (5 on Agency)API key sharing / Python code access
    Client project managementBuilt-in, labeled per clientBuild it yourself
    GGUF exportOne-clickManual (llama.cpp convert.py)
    Local deployment supportYes (Ollama/LM Studio)No (you handle it)
    Cost modelMonthly subscription, fixedPer GPU-second, variable
    Cost predictabilityHighLow (depends on job length/GPU type)
    Concurrent jobsUp to 8 (Agency Pro)Unlimited (expensive)
    Custom training loopsNoYes (full Python)
    Experiment trackingVisual canvas, side-by-sideNone built-in (add Weights & Biases)
    Dataset toolsValidation, synthesis, evalBring your own
    Who it's forAgencies, non-ML buildersML engineers who want GPU compute

    The Agency Perspective

    Agencies have five requirements that differ from individual ML engineers:

    1. Non-ML team members need to participate. Your account manager needs to upload client data and run a retrain. Your project manager needs to see training results. Neither should need to understand Python decorators or Hugging Face data collators. Ertas works for them; Modal does not.

    2. Client data must be isolated. When you are fine-tuning models for 8 different clients, commingling their data in a shared Python environment is a serious risk. Ertas has client-labeled projects with explicit isolation. Modal has whatever you build.

    3. Costs need to be predictable. Agency billing runs on fixed retainers. If your underlying cost for a month of model maintenance ranges from $40 to $400 depending on how many jobs ran, margin planning becomes impossible. Ertas Agency at $69.50/month is fixed. Modal's per-second billing is not.

    4. GGUF output is usually required. Most agency clients want to run the model on their own infrastructure, not pay API costs indefinitely. One-click GGUF export in Ertas vs manual conversion from Modal checkpoints is a significant operational difference.

    5. Multiple concurrent jobs. When you have 10 clients with staggered retraining schedules, you need to run jobs simultaneously. Ertas Agency supports 3 concurrent jobs (Agency Pro: 8). Modal supports unlimited concurrency — but you build the queue management yourself.

    The Cost Math for an Agency

    Scenario: a small AI agency managing 8 active clients, each requiring 1-2 training runs per month plus evaluation.

    Modal Labs cost estimate:

    • 8 clients × 1.5 training runs × ~90 minutes on A100 = ~18 GPU-hours/month
    • A100 on Modal: ~$3/hour
    • Total compute: ~$54/month
    • Plus: developer time to write and maintain training scripts (ongoing)
    • Plus: building project management, evaluation tooling, GGUF conversion scripts

    Ertas Agency cost:

    • $69.50/month (Early Bird)
    • Includes 400 credits (comfortably covers 8 clients × 1.5 runs)
    • Project management, evaluation, GGUF export included
    • Non-ML team members can operate it

    On raw compute cost, Modal might be cheaper. But the total cost of ownership — including developer time to build and maintain the training infrastructure — shifts the comparison significantly.

    Cost CategoryModal LabsErtas Agency
    Monthly platform/compute~$40-80$69.50 (fixed)
    Dev hours/month to maintain3-5 hrs @ $75/hr0
    Project management layerBuild yourselfIncluded
    GGUF conversion toolingBuild yourselfIncluded
    Team seat accessAPI key only5 seats
    Total effective monthly cost~$265-455$69.50

    Same Fine-Tuning Job: Side-by-Side

    Task: Fine-tune Qwen 2.5 7B on 600 customer support examples for a client.

    Modal Labs workflow:

    1. Write training script using Unsloth + Modal decorators (~4 hours for first client, 1 hour for each subsequent client with reusable code)
    2. Upload data to S3 or Modal volume
    3. Run modal run train.py --data-path s3://...
    4. Wait 45-90 minutes
    5. Download checkpoint from Modal volume
    6. Run llama.cpp convert.py to export GGUF (~30 min including setup)
    7. Test GGUF with Ollama
    8. Total: 45-90 min training + 2-3 hours setup (first time) + 1 hour GGUF conversion

    Ertas workflow:

    1. Upload JSONL in browser
    2. Select Qwen 2.5 7B from model dropdown
    3. Configure training settings visually
    4. Click Train
    5. Wait 45-90 minutes (same underlying GPU time)
    6. Review evaluation metrics in UI
    7. Click Export GGUF
    8. Download and load in Ollama
    9. Total: 45-90 min training + 15 minutes active work

    When Modal Labs Wins

    • Your team consists of ML engineers who want to write custom training loops
    • You need exotic architectures (custom attention patterns, multi-modal, etc.)
    • You want to integrate directly with Weights & Biases or other ML tooling
    • You have existing PyTorch code you want to scale up
    • You are doing research that requires modifying the training loop

    When Ertas Wins

    • You are running an agency with non-ML team members
    • You need client data isolation and project management
    • You need GGUF output for local client deployment
    • You want predictable monthly costs for agency billing
    • You need 3+ concurrent jobs without managing a queue yourself
    • You want to onboard a new client in 30 minutes, not 3 hours

    Ship AI that runs on your users' devices.

    Ertas early bird pricing starts at $14.50/mo — locked in for life. Plans for builders and agencies.

    Further Reading

    Ship AI that runs on your users' devices.

    Early bird pricing starts at $14.50/mo — locked in for life. Plans for builders and agencies.

    Keep reading