Created
April 14, 2025 17:57
-
-
Save yirenlu92/a60b4c2e6f35508e51839375fcf9db07 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<!doctype html> | |
<html lang="en"> | |
<head> | |
<meta name="sentry-trace" content="184e1175228e91ef19473c47ea93b5a2-313c6f856f8a9f68"/> | |
<meta name="baggage" content="sentry-environment=production,sentry-public_key=d75f7cb747cd4fe8ac03973ae3d39fec,sentry-trace_id=184e1175228e91ef19473c47ea93b5a2"/> | |
<script > | |
const f = window.fetch; | |
if(f){ | |
window._sentryFetchProxy = function(...a){return f(...a)} | |
window.fetch = function(...a){return window._sentryFetchProxy(...a)} | |
} | |
</script> | |
<meta charset="utf-8" /> | |
<meta name="viewport" content="width=device-width, initial-scale=1" /> | |
<meta name="format-detection" content="telephone=no" /> | |
<link rel="icon" href="/assets/favicon.ico" sizes="any" /> | |
<link rel="icon" href="/assets/favicon.svg" type="image/svg+xml" /> | |
<link rel="stylesheet" href="https://use.typekit.net/jcd8ppx.css" /> | |
<link href="../_app/immutable/assets/0.Dgqn9cFp.css" rel="stylesheet"> | |
<link href="../_app/immutable/assets/toast.DtBGfIEz.css" rel="stylesheet"> | |
<link href="../_app/immutable/assets/A.DbAi87x2.css" rel="stylesheet"> | |
<link href="../_app/immutable/assets/4.ZHVDw9dd.css" rel="stylesheet"> | |
<link href="../_app/immutable/assets/MarketingButton.BSCtccnG.css" rel="stylesheet"> | |
<link href="../_app/immutable/assets/Hamburger.MzeKVPWq.css" rel="stylesheet"> | |
<link href="../_app/immutable/assets/BlogLayout.CU24946s.css" rel="stylesheet"> | |
<link href="../_app/immutable/assets/MinimalTable.Borta4jg.css" rel="stylesheet"> | |
<link href="../_app/immutable/assets/CodeSample.DPZKnysX.css" rel="stylesheet"> | |
<link href="../_app/immutable/assets/chartUtils.DPSxvdJQ.css" rel="stylesheet"> | |
<link href="../_app/immutable/assets/SkeletonLineChart.DKWkA3EG.css" rel="stylesheet"> | |
<link href="../_app/immutable/assets/YoutubeEmbed.DrI9vHEd.css" rel="stylesheet"> | |
<link href="../_app/immutable/assets/MetricChart.BKfQAjRz.css" rel="stylesheet"> | |
<link href="../_app/immutable/assets/open-source-stt.BNlD1BFY.css" rel="stylesheet"> | |
<link href="../_app/immutable/assets/ExampleLink.D4gJ5yPU.css" rel="stylesheet"><title>Product Updates: L40Ss, proxy auth tokens, and Sandbox disk snapshotting | Modal Blog</title><!-- HEAD_svelte-1258swp_START --><!-- HEAD_svelte-1258swp_END --><!-- HEAD_svelte-17uliz2_START --><meta name="description" content="Welcome to another round of Modal Product Updates! Here's what's new this month."><meta property="og:type" content="website"><meta property="og:site_name" content="Modal"><meta property="og:title" content="Product Updates: L40Ss, proxy auth tokens, and Sandbox disk snapshotting"><meta property="og:description" content="Welcome to another round of Modal Product Updates! Here's what's new this month."><meta property="og:image" content="https://modal.com/docs/social-image.png?title=Product+Updates%3A+L40Ss%2C+proxy+auth+tokens%2C+and+Sandbox+disk+snapshotting&socialType=blog"><meta name="twitter:card" content="summary_large_image"><!-- HEAD_svelte-17uliz2_END --><!-- HEAD_svelte-1g5p2hi_START --><style lang="postcss" data-svelte-h="svelte-jopa83">body { | |
--tw-bg-opacity: 1 !important; | |
background-color: rgb(0 0 0 / var(--tw-bg-opacity, 1)) !important; | |
font-weight: 500; | |
letter-spacing: -0.36px; | |
--tw-text-opacity: 1 !important; | |
color: rgb(221 255 220 / var(--tw-text-opacity, 1)) !important; | |
font-feature-settings: "cv11" on | |
}</style><!-- HEAD_svelte-1g5p2hi_END --><!-- HEAD_svelte-150cf1q_START --><link rel="alternate" type="application/atom+xml" title="Modal Blog Feed" href="/blog/atom.xml"><!-- HEAD_svelte-150cf1q_END --> | |
</head> | |
<body class="dark" data-sveltekit-preload-data="hover"> | |
<div> <div class="min-h-screen"><div class="py-2 px-4 flex flex-col sm:flex-row justify-center bg-brand-green text-black text-sm font-medium"><div class="flex flex-col sm:flex-row sm:gap-x-4"><span data-svelte-h="svelte-mrp7ou">Startups get up to $50k in free compute credits.</span> <span class="flex items-center gap-x-1"><button class="underline" data-svelte-h="svelte-8k2jsc">Apply now</button> <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide-icon lucide lucide-arrow-right"><path d="M5 12h14"></path><path d="m12 5 7 7-7 7"></path></svg></span></div></div> <div class="sticky top-0 md:pt-6 pt-4 z-10"><div class="marketing-container"><nav class="flex justify-between items-center bg-dark-gray p-2.5 relative transition-all duration-300 rounded-3xl"><div class="ml-3"><a class="relative" href="/"> <div class="h-[22px] w-[118px]"><div class="svelte-1seavd2"><canvas class="svelte-1seavd2"></canvas> </div></div> <img class="h-[22px] w-[118px] absolute top-0" src="/_app/immutable/assets/logo.lottie.CgmMXf1s.png" alt="Modal logo"></a></div> <div class="hidden md:flex items-center text-sm gap-7 xl:gap-10"> <div class="hover:text-brand-green cursor-default -m-3 p-3">Use Cases | |
</div> <a href="/pricing" class="hover:text-brand-green">Pricing </a><a href="/customers" class="hover:text-brand-green">Customers </a><a href="/blog" class="hover:text-brand-green">Blog </a><a href="/docs" class="hover:text-brand-green">Docs </a><a href="/company" class="hover:text-brand-green hidden lg:block">Company </a></div> <div class="hidden md:flex items-center text-sm gap-7"><div class="flex flex-row items-center justify-between gap-x-4 text-lg md:text-sm"><a href="/login?next=%2Fapps" class="flex items-center text-light-green hover:text-brand-green whitespace-nowrap">Log In</a> <a class="relative group text-brand-green rounded-full flex items-center gap-2.5 pl-3 overflow-hidden" href="/signup?next=%2Fapps"> <span class="absolute inset-0 rounded-full bg-brand-green transform scale-x-0 origin-right transition-transform duration-150 ease-out group-hover:scale-x-100"></span> <span class="relative z-10 text-brand-green transition-colors duration-150 ease-in-out group-hover:text-black whitespace-nowrap" data-svelte-h="svelte-1w3fj0i">Sign Up</span> <span class="inline-block w-7 h-7 p-1.5 rounded-full bg-brand-green z-10"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide-icon lucide lucide-arrow-up-right w-full h-full stroke-black"><path d="M7 7h10v10"></path><path d="M7 17 17 7"></path></svg></span></a></div></div> <div class="mr-2 md:hidden text-light-green"><div style="display: contents; --color:currentColor; --layer-height:1.5px; --layer-width:18px; --layer-spacing:5px; --padding:4px;"> <button class="hamburger hamburger--spin svelte-jas1sv" aria-label="Hamburger menu"><span class="hamburger-box svelte-jas1sv" data-svelte-h="svelte-kk1wi2"><span class="hamburger-inner svelte-jas1sv"></span></span> </button></div></div></nav></div> <div class="fixed md:hidden inset-0 -z-10 h-full flex flex-col overflow-y-auto bg-black/70 backdrop-blur-xl opacity-0 pointer-events-none" style="padding-top: 72px; transition: opacity 300ms linear;"> </div></div> <div class="w-screen max-w-screen-lg mt-16 lg:mt-20 mb-32 px-4 mx-auto"><article class="max-w-[800px] mx-auto"> <div class="mb-6 lg:hidden"><a href="/blog" class="btn btn-sm inline-flex items-center gap-x-1"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide-icon lucide lucide-corner-down-right text-zinc-600 -ml-1"><polyline points="15 10 20 15 15 20"></polyline><path d="M4 4v7a4 4 0 0 0 4 4h12"></path></svg> <span class="text-zinc-400" data-svelte-h="svelte-1ndtzmc">All posts</span></a></div> <div class="relative flex justify-start gap-x-4 text-sm text-zinc-400 items-center"> <a href="/blog" class="btn btn-sm hidden lg:flex absolute -left-24 items-center gap-x-1"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide-icon lucide lucide-chevron-left text-zinc-600 -ml-1"><path d="m15 18-6-6 6-6"></path></svg> <span class="text-zinc-400" data-svelte-h="svelte-702xiv">Back</span></a> <div class="ml-0.5 hidden sm:block border rounded-full px-2.5 py-0.5 text-white border-light-green/30">News</div> <div class="flex gap-x-2"><span>January 21, 2025</span><span class="text-zinc-" data-svelte-h="svelte-10unc8k">•</span><span>5 minute read</span></div></div> <div class="marketing-h3 my-8 text-white">Product Updates: L40Ss, proxy auth tokens, and Sandbox disk snapshotting</div> <div class="mt-12"> <div class="svelte-1wfgth4"><h2 id="-introducing-l40s-gpus" data-svelte-h="svelte-kfpgio">🚀 Introducing L40S GPUs</h2> <p>NVIDIA L40S GPUs are <a class="text-primary hover:underline" href="/blog/introducing-l40s">now available</a> on Modal at $1.95/hr! With 48GB of DDR6 RAM and impressive CUDA and Tensor Core performance, the L40S offers significant advantages over our popular A10 GPUs:</p> <ul data-svelte-h="svelte-1m3knld"><li>2x more memory for running larger models and longer contexts</li> <li>Up to 40% faster for memory-bound tasks</li> <li>Over 100% speedup for compute-bound jobs using 16bit Tensor Cores</li></ul> <p data-svelte-h="svelte-83o1w0">Try it now by adding this decorator to your function: <code>@app.function(gpu="L40S")</code></p> <p> <img src="https://modal-cdn.com/l40s-benchmark.svg" alt="https://modal-cdn.com/l40s-benchmark.svg" class="my-6 mx-auto"> </p> <h2 id="proxy-auth-tokens" data-svelte-h="svelte-97wyfd">🔒 Proxy Auth Tokens</h2> <p>Modal now supports <a class="text-primary hover:underline" href="/docs/guide/webhook-proxy-auth">Proxy Auth tokens</a> for authenticating access to web endpoints! This means you can gate access to web endpoints and prevent unwanted usage from incurring charges.</p> <div class="my-6 not-prose"> <div class="relative"><div class="code scroller default svelte-uke634" style=""><div class="relative flex min-w-0"> <!-- HTML_TAG_START --><pre class="shiki dark-plus" style="background-color:#1E1E1E;color:#D4D4D4" tabindex="0"><code><span class="line"><span style="color:#DCDCAA">@app.function</span><span style="color:#D4D4D4">(</span><span style="color:#9CDCFE">gpu</span><span style="color:#D4D4D4">=</span><span style="color:#CE9178">"h100"</span><span style="color:#D4D4D4">)</span></span> | |
<span class="line"><span style="color:#DCDCAA">@modal.web_endpoint</span><span style="color:#D4D4D4">(</span><span style="color:#9CDCFE">requires_proxy_auth</span><span style="color:#D4D4D4">=</span><span style="color:#569CD6">True</span><span style="color:#D4D4D4">, </span><span style="color:#9CDCFE">docs</span><span style="color:#D4D4D4">=</span><span style="color:#569CD6">False</span><span style="color:#D4D4D4">)</span></span> | |
<span class="line"><span style="color:#569CD6">def</span><span style="color:#DCDCAA"> expensive_secret</span><span style="color:#D4D4D4">():</span></span> | |
<span class="line"><span style="color:#C586C0"> return</span><span style="color:#CE9178"> "I didn't care for 'The Godfather'. It insists upon itself."</span></span></code></pre><!-- HTML_TAG_END --> </div> <div class="copy-button absolute top-2 right-2 transition-opacity opacity-0 svelte-uke634"><button class="flex items-center leading-5 p-1 border transition-colors bg-dark-gray rounded text-zinc-200 border-white/20"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide-icon lucide lucide-copy ml-1"><rect width="14" height="14" x="8" y="8" rx="2" ry="2"></rect><path d="M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2"></path></svg> <span class="ml-1.5 pr-1 text-xs font-sans" data-svelte-h="svelte-12nw2zm">Copy</span></button></div></div> </div></div> <h2 id="file-system-api-and-disk-snapshotting-for-sandboxes" data-svelte-h="svelte-9ivvbn">📷 File System API and Disk Snapshotting for Sandboxes</h2> <p>The new <a class="text-primary hover:underline" href="/docs/guide/sandbox-files">Filesystem API</a> makes it seamless to read and write files in your Sandbox, and is especially good for getting files in and out of a Sandbox interactively.</p> <div class="my-6 not-prose"> <div class="relative"><div class="code scroller default svelte-uke634" style=""><div class="relative flex min-w-0"> <!-- HTML_TAG_START --><pre class="shiki dark-plus" style="background-color:#1E1E1E;color:#D4D4D4" tabindex="0"><code><span class="line"><span style="color:#D4D4D4">sb = modal.Sandbox.create(</span><span style="color:#9CDCFE">app</span><span style="color:#D4D4D4">=app)</span></span> | |
<span class="line"></span> | |
<span class="line"><span style="color:#D4D4D4">filepath = </span><span style="color:#CE9178">"/home/foo.bin"</span></span> | |
<span class="line"><span style="color:#C586C0">with</span><span style="color:#D4D4D4"> sb.open(filepath, </span><span style="color:#CE9178">"wb"</span><span style="color:#D4D4D4">) </span><span style="color:#C586C0">as</span><span style="color:#D4D4D4"> f:</span></span> | |
<span class="line"><span style="color:#D4D4D4"> f.write(</span><span style="color:#569CD6">b</span><span style="color:#CE9178">"Hello, World!"</span><span style="color:#D4D4D4">)</span></span> | |
<span class="line"></span> | |
<span class="line"><span style="color:#D4D4D4">f = sb.open(filepath)</span></span> | |
<span class="line"><span style="color:#DCDCAA">print</span><span style="color:#D4D4D4">(f.read())</span></span></code></pre><!-- HTML_TAG_END --> </div> <div class="copy-button absolute top-2 right-2 transition-opacity opacity-0 svelte-uke634"><button class="flex items-center leading-5 p-1 border transition-colors bg-dark-gray rounded text-zinc-200 border-white/20"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide-icon lucide lucide-copy ml-1"><rect width="14" height="14" x="8" y="8" rx="2" ry="2"></rect><path d="M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2"></path></svg> <span class="ml-1.5 pr-1 text-xs font-sans" data-svelte-h="svelte-12nw2zm">Copy</span></button></div></div> </div></div> <p>We are also introducing <a class="text-primary hover:underline" href="/docs/guide/sandbox-snapshots">disk</a> capabilities for Sandboxes, expanding on our existing function snapshotting feature. This enables you to:</p> <ol data-svelte-h="svelte-11pl45q"><li>Create snapshots of your Sandbox’s entire state</li> <li>Branch off from any snapshot to create new Sandbox instances</li> <li>Eliminate cold-start times by restoring from snapshots</li></ol> <h2 id="-client-updates" data-svelte-h="svelte-eviuip">👩💻 Client Updates</h2> <p data-svelte-h="svelte-1fimikb">Run <code>pip install --upgrade modal</code> to get the latest updates. Here are some of the highlights:</p> <ul><li data-svelte-h="svelte-jep7b7"><strong>Images:</strong> When using <code>Image.from_dockerfile()</code> or <code>image.dockerfile_commands()</code>, the system will now automatically look for and use a <code>.dockerignore</code> file.</li> <li><strong data-svelte-h="svelte-drubpe">Images:</strong><code data-svelte-h="svelte-1n5xhwu">FilePatternMatcher</code> has a <a class="text-primary hover:underline" href="/docs/reference/modal.FilePatternMatcher#from_file">new constructor</a> <code data-svelte-h="svelte-1jvfpbn">from_file</code> which allows you to read file matching patterns from a file instead of having to pass them in directly.</li> <li><strong data-svelte-h="svelte-stx2d3">Volumes:</strong> Modal Volumes can now be <a class="text-primary hover:underline" href="/docs/reference/cli/volume#modal-volume-rename">renamed</a> via the CLI (<code data-svelte-h="svelte-59r37l">modal volume rename</code>) or SDK (<code data-svelte-h="svelte-ffw2c5">modal.Volume.rename</code>).</li> <li data-svelte-h="svelte-irc2td"><strong>Sandboxes</strong>: Sandboxes now support <code>fsnotify-like</code> file watching and accept larger write payloads up to 1 GiB</li> <li><strong data-svelte-h="svelte-1kamiyt">Environment:</strong> The<code data-svelte-h="svelte-1ct1yt2">App.run</code> context manager has a new <code data-svelte-h="svelte-phdd0p">environment_name</code> <a class="text-primary hover:underline" href="/docs/reference/modal.App#run">parameter</a>.</li> <li><strong data-svelte-h="svelte-a59so2">VSCode:</strong> You can now <a class="text-primary hover:underline" href="/docs/reference/cli/launch#modal-launch-vscode">point</a> <code data-svelte-h="svelte-532n9s">modal launch vscode</code> at an arbitrary Dockerhub base image:</li></ul> <p data-svelte-h="svelte-1xgiwnm"><code>modal launch vscode --image=nvidia/cuda:12.4.0-devel-ubuntu22.04</code></p> <h2 id="-soc-2-type-2-certification" data-svelte-h="svelte-5e3ygm">🔐 SOC 2 Type 2 Certification</h2> <p>We’re pleased to announce <a class="text-primary hover:underline" href="/blog/soc2type2">the completion of our SOC 2 Type 2 certification</a>. If you would like to see the report or have more questions, please email <a class="text-primary hover:underline" href="mailto:[email protected]">[email protected]</a>.</p> <h2 id="-gpu-glossary" data-svelte-h="svelte-1yeljgn">📚 GPU Glossary</h2> <p> <img src="https://modal-cdn.com/cdnbot/gpu-glossary-streaming-multiprocessor48kg_mtn_a0e1fe04.webp" alt="https://modal-cdn.com/cdnbot/gpu-glossary-streaming-multiprocessor48kg_mtn_a0e1fe04.webp" class="my-6 mx-auto"> </p> <p>We work a lot with GPUs, and if you do too you probably know how hard it can be to find the information you need in the public documentation. So we put together a handy <a rel="nofollow" class="text-primary hover:underline" href="https://modal.com/gpu-glossary">GPU Glossary</a> that collects together quick explanations and high-quality resources for everything from Tensor Cores and Warp Schedulers to Compute Capabilities and the CUDA Toolkit.</p> <h2 id="-new-computational-bio-ocr-and-image-diffusion-resources" data-svelte-h="svelte-hhl7gc">🧬 New computational bio, OCR, and image diffusion resources</h2> <p> <img src="https://modal-cdn.com/cdnbot/e3m3-predicted-structureihuxe_c3_90f6339f.webp" alt="image.png" class="my-6 mx-auto"> </p> <ul><li><strong data-svelte-h="svelte-1fsnz1c">ESM3</strong>: recent model from Evolutionary Scale that can not only predict protein structures from sequences but also generate new proteins. <a class="text-primary hover:underline" href="/docs/examples/esm3">Protein folding dashboard example on Modal</a>.</li> <li><strong data-svelte-h="svelte-9im9yw">GOT:</strong> a 580M parameter OCR model that can better handle a variety of content formats. <a class="text-primary hover:underline" href="/docs/examples/doc_ocr_jobs">Example on Modal</a>.</li> <li>ICYMI, we hosted a webinar recently covering best practices on productionizing diffusion models. <a rel="nofollow" class="text-primary hover:underline" href="https://www.youtube.com/watch?v=iiuFht5VhGg">Here’s the video</a>.</li></ul> <h2 id="-fun-tidbits" data-svelte-h="svelte-95oq9l">🍭 Fun Tidbits</h2> <ul data-svelte-h="svelte-li9za6"><li>We’ve been hosting exclusive dinners for biotech founders and engineers! Reach out if you’d like to join our next one.</li></ul> </div></div></article></div> <section class="marketing-container my-24 md:my-40"><div class="grid md:grid-cols-2 gap-x-5 gap-y-10"> <video loop muted playsinline disablepictureinpicture class="w-full h-full " poster="https://modal-cdn.com/tmpk5brmwoa_0b5eb343.webp" style="object-fit: contain;"><source src="https://modal-cdn.com/landscape-vids/Modal_CTA.mp4" type="video/mp4"></video> <div class="flex flex-col justify-center items-center md:items-start"><h2 class="marketing-h2 mb-7 md:mb-14 text-center md:text-left max-w-lg" data-svelte-h="svelte-wxe803">Ship your first app in <span class="text-brand-green">minutes.</span></h2> <a href="/signup" rel="" class="btn-marketing svelte-14zw973 btn-primary" tabindex="0">Get Started</a> <p class="mt-6 text-sm text-light-green/60" data-svelte-h="svelte-d7a3nh">$30 / month free compute</p></div></div></section> <div class="marketing-container py-14"><div class="grid lg:grid-cols-2 gap-5"><div class="flex flex-col items-start"><a href="/" class="mb-12" data-svelte-h="svelte-13fjwo6"><img src="data:image/svg+xml,%3csvg%20width='368'%20height='192'%20viewBox='0%200%20368%20192'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M148.873%204L183.513%2064L111.922%20188C110.492%20190.47%20107.853%20192%20104.993%20192H40.3325C38.9025%20192%2037.5325%20191.62%2036.3325%20190.93C35.1325%20190.24%2034.1226%20189.24%2033.4026%20188L1.0725%20132C-0.3575%20129.53%20-0.3575%20126.48%201.0725%20124L70.3625%204C71.0725%202.76%2072.0925%201.76001%2073.2925%201.07001C74.4925%200.380007%2075.8625%200%2077.2925%200H141.952C144.812%200%20147.453%201.53%20148.883%204H148.873ZM365.963%20124L296.672%204C295.962%202.76%20294.943%201.76001%20293.743%201.07001C292.543%200.380007%20291.173%200%20289.743%200H225.083C222.223%200%20219.583%201.53%20218.153%204L183.513%2064L255.103%20188C256.533%20190.47%20259.173%20192%20262.033%20192H326.693C328.122%20192%20329.492%20191.62%20330.693%20190.93C331.893%20190.24%20332.902%20189.24%20333.622%20188L365.953%20132C367.383%20129.53%20367.383%20126.48%20365.953%20124H365.963Z'%20fill='%2362DE61'/%3e%3cpath%20d='M109.623%2064H183.523L148.883%204C147.453%201.53%20144.813%200%20141.953%200H77.2925C75.8625%200%2074.4925%200.380007%2073.2925%201.07001L109.623%2064Z'%20fill='url(%23paint0_linear_342_139)'/%3e%3cpath%20d='M109.623%2064L73.2925%201.07001C72.0925%201.76001%2071.0825%202.76%2070.3625%204L1.0725%20124C-0.3575%20126.48%20-0.3575%20129.52%201.0725%20132L33.4026%20188C34.1126%20189.24%2035.1325%20190.24%2036.3325%20190.93L109.613%2064H109.623Z'%20fill='url(%23paint1_linear_342_139)'/%3e%3cpath%20d='M183.513%2064H109.613L36.3325%20190.93C37.5325%20191.62%2038.9025%20192%2040.3325%20192H104.993C107.853%20192%20110.492%20190.47%20111.922%20188L183.513%2064Z'%20fill='%2309AF58'/%3e%3cpath%20d='M365.963%20132C366.673%20130.76%20367.033%20129.38%20367.033%20128H294.372L258.042%20190.93C259.242%20191.62%20260.612%20192%20262.042%20192H326.703C329.563%20192%20332.202%20190.47%20333.632%20188L365.963%20132Z'%20fill='%2309AF58'/%3e%3cpath%20d='M225.083%200C223.653%200%20222.283%200.380007%20221.083%201.07001L294.362%20128H367.023C367.023%20126.62%20366.663%20125.24%20365.953%20124L296.672%204C295.242%201.53%20292.603%200%20289.743%200H225.073H225.083Z'%20fill='url(%23paint2_linear_342_139)'/%3e%3cpath%20d='M258.033%20190.93L294.362%20128L221.083%201.07001C219.883%201.76001%20218.873%202.76%20218.153%204L183.513%2064L255.103%20188C255.813%20189.24%20256.833%20190.24%20258.033%20190.93Z'%20fill='url(%23paint3_linear_342_139)'/%3e%3cdefs%3e%3clinearGradient%20id='paint0_linear_342_139'%20x1='155.803'%20y1='80'%20x2='101.003'%20y2='-14.93'%20gradientUnits='userSpaceOnUse'%3e%3cstop%20stop-color='%23BFF9B4'/%3e%3cstop%20offset='1'%20stop-color='%2380EE64'/%3e%3c/linearGradient%3e%3clinearGradient%20id='paint1_linear_342_139'%20x1='8.62251'%20y1='174.93'%20x2='100.072'%20y2='16.54'%20gradientUnits='userSpaceOnUse'%3e%3cstop%20stop-color='%2380EE64'/%3e%3cstop%20offset='0.18'%20stop-color='%237BEB63'/%3e%3cstop%20offset='0.36'%20stop-color='%236FE562'/%3e%3cstop%20offset='0.55'%20stop-color='%235ADA60'/%3e%3cstop%20offset='0.74'%20stop-color='%233DCA5D'/%3e%3cstop%20offset='0.93'%20stop-color='%2318B759'/%3e%3cstop%20offset='1'%20stop-color='%2309AF58'/%3e%3c/linearGradient%3e%3clinearGradient%20id='paint2_linear_342_139'%20x1='340.243'%20y1='143.46'%20x2='248.793'%20y2='-14.93'%20gradientUnits='userSpaceOnUse'%3e%3cstop%20stop-color='%23BFF9B4'/%3e%3cstop%20offset='1'%20stop-color='%2380EE64'/%3e%3c/linearGradient%3e%3clinearGradient%20id='paint3_linear_342_139'%20x1='284.822'%20y1='175.47'%20x2='193.372'%20y2='17.0701'%20gradientUnits='userSpaceOnUse'%3e%3cstop%20stop-color='%2380EE64'/%3e%3cstop%20offset='0.18'%20stop-color='%237BEB63'/%3e%3cstop%20offset='0.36'%20stop-color='%236FE562'/%3e%3cstop%20offset='0.55'%20stop-color='%235ADA60'/%3e%3cstop%20offset='0.74'%20stop-color='%233DCA5D'/%3e%3cstop%20offset='0.93'%20stop-color='%2318B759'/%3e%3cstop%20offset='1'%20stop-color='%2309AF58'/%3e%3c/linearGradient%3e%3c/defs%3e%3c/svg%3e" alt="Modal logo" class="h-12"></a> <div class="mt-auto hidden lg:block"><div class="flex items-center gap-5 flex-wrap"><a class="social-btn svelte-1xztzl5" target="_blank" rel="noreferrer" href="https://x.com/modal_labs"><svg width="20" height="20" viewBox="0 0 300 271" xmlns="http://www.w3.org/2000/svg"><path d="m236 0h46l-101 115 118 156h-92.6l-72.5-94.8-83 94.8h-46l107-123-113-148h94.9l65.5 86.6zm-16.1 244h25.5l-165-218h-27.4z"></path></svg></a> <a class="social-btn svelte-1xztzl5" target="_blank" rel="noreferrer" href="https://www.linkedin.com/company/modal-labs/"><svg width="17" height="17" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 310 310"><path d="M72.16,99.73H9.927c-2.762,0-5,2.239-5,5v199.928c0,2.762,2.238,5,5,5H72.16c2.762,0,5-2.238,5-5V104.73 | |
C77.16,101.969,74.922,99.73,72.16,99.73z"></path><path d="M41.066,0.341C18.422,0.341,0,18.743,0,41.362C0,63.991,18.422,82.4,41.066,82.4 | |
c22.626,0,41.033-18.41,41.033-41.038C82.1,18.743,63.692,0.341,41.066,0.341z"></path><path d="M230.454,94.761c-24.995,0-43.472,10.745-54.679,22.954V104.73c0-2.761-2.238-5-5-5h-59.599 | |
c-2.762,0-5,2.239-5,5v199.928c0,2.762,2.238,5,5,5h62.097c2.762,0,5-2.238,5-5v-98.918c0-33.333,9.054-46.319,32.29-46.319 | |
c25.306,0,27.317,20.818,27.317,48.034v97.204c0,2.762,2.238,5,5,5H305c2.762,0,5-2.238,5-5V194.995 | |
C310,145.43,300.549,94.761,230.454,94.761z"></path></svg></a> <a class="social-btn svelte-1xztzl5" target="_blank" rel="noreferrer" href="https://modal.com/slack"><svg width="22" height="22" viewBox="0 0 512 512" xmlns="http://www.w3.org/2000/svg"><path d="M126.12,315.1A47.06,47.06,0,1,1,79.06,268h47.06Z"></path><path d="M149.84,315.1a47.06,47.06,0,0,1,94.12,0V432.94a47.06,47.06,0,1,1-94.12,0Z"></path><path d="M196.9,126.12A47.06,47.06,0,1,1,244,79.06v47.06Z"></path><path d="M196.9,149.84a47.06,47.06,0,0,1,0,94.12H79.06a47.06,47.06,0,0,1,0-94.12Z"></path><path d="M385.88,196.9A47.06,47.06,0,1,1,432.94,244H385.88Z"></path><path d="M362.16,196.9a47.06,47.06,0,0,1-94.12,0V79.06a47.06,47.06,0,1,1,94.12,0Z"></path><path d="M315.1,385.88A47.06,47.06,0,1,1,268,432.94V385.88Z"></path><path d="M315.1,362.16a47.06,47.06,0,0,1,0-94.12H432.94a47.06,47.06,0,1,1,0,94.12Z"></path></svg></a> <a class="social-btn svelte-1xztzl5" target="_blank" rel="noreferrer" href="https://github.com/modal-labs"><svg width="26" height="26" viewBox="0 0.5 16 16" xmlns="http://www.w3.org/2000/svg"><path d="M6.02 15.21C6.02 15.02 6.01 14.39 6.01 13.72C4 14.09 3.48 13.23 3.32 12.78C3.23 12.55 2.84 11.84 2.5 11.65C2.22 11.5 1.82 11.13 2.49 11.12C3.12 11.11 3.57 11.7 3.72 11.94C4.44 13.15 5.59 12.81 6.05 12.6C6.12 12.08 6.33 11.73 6.56 11.53C4.78 11.33 2.92 10.64 2.92 7.58C2.92 6.71 3.23 5.99 3.74 5.43C3.66 5.23 3.38 4.41 3.82 3.31C3.82 3.31 4.49 3.1 6.02 4.13C6.66 3.95 7.34 3.86 8.02 3.86C8.7 3.86 9.38 3.95 10.02 4.13C11.55 3.09 12.22 3.31 12.22 3.31C12.66 4.41 12.38 5.23 12.3 5.43C12.81 5.99 13.12 6.7 13.12 7.58C13.12 10.65 11.25 11.33 9.47 11.53C9.76 11.78 10.01 12.26 10.01 13.01C10.01 14.08 10 14.94 10 15.21Z"></path></svg></a> <a class="social-btn svelte-1xztzl5" target="_blank" rel="noreferrer" href="https://www.youtube.com/channel/UC477UdoLR2Js3RHhRWSXsQA"><svg width="22" height="22" viewBox="0 0 28.57 20" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" d="M27.9727 3.12324C27.6435 1.89323 26.6768 0.926623 25.4468 0.597366C23.2197 2.24288e-07 14.285 0 14.285 0C14.285 0 5.35042 2.24288e-07 3.12323 0.597366C1.89323 0.926623 0.926623 1.89323 0.597366 3.12324C2.24288e-07 5.35042 0 10 0 10C0 10 2.24288e-07 14.6496 0.597366 16.8768C0.926623 18.1068 1.89323 19.0734 3.12323 19.4026C5.35042 20 14.285 20 14.285 20C14.285 20 23.2197 20 25.4468 19.4026C26.6768 19.0734 27.6435 18.1068 27.9727 16.8768C28.5701 14.6496 28.5701 10 28.5701 10C28.5701 10 28.5677 5.35042 27.9727 3.12324Z | |
M11.4253 14.2854L18.8477 10.0004L11.4253 5.71533V14.2854Z"></path></svg></a> <p class="text-sm text-light-green/60 whitespace-nowrap" data-svelte-h="svelte-66zv9v">© Modal 2025</p> </div></div></div> <div class="grid sm:grid-cols-3 gap-x-5 text-sm"><div class="idxsec sm:col-span-2 svelte-trqgp2"><p class="svelte-trqgp2" data-svelte-h="svelte-glxhqm">Use Cases</p> <p class="svelte-trqgp2"><a class="idxlink svelte-trqgp2" href="/use-cases/language-models">Language Model Inference</a></p><p class="svelte-trqgp2"><a class="idxlink svelte-trqgp2" href="/use-cases/image-video-3d">Image, Video & 3D</a></p><p class="svelte-trqgp2"><a class="idxlink svelte-trqgp2" href="/use-cases/audio">Audio Processing</a></p><p class="svelte-trqgp2"><a class="idxlink svelte-trqgp2" href="/use-cases/fine-tuning">Fine-Tuning</a></p><p class="svelte-trqgp2"><a class="idxlink svelte-trqgp2" href="/use-cases/job-queues">Job Queues & Batch Processing</a></p><p class="svelte-trqgp2"><a class="idxlink svelte-trqgp2" href="/use-cases/sandboxes">Sandboxing Code</a></p><p class="svelte-trqgp2"><a class="idxlink svelte-trqgp2" href="/use-cases/comp-bio">Computational Biology</a></p></div> <div class="idxsec pt-16 sm:pt-0 svelte-trqgp2"><p class="svelte-trqgp2" data-svelte-h="svelte-19somxp">Resources</p> <p class="svelte-trqgp2"><a class="idxlink svelte-trqgp2" href="/docs/guide">Documentation</a></p><p class="svelte-trqgp2"><a class="idxlink svelte-trqgp2" href="/pricing">Pricing</a></p><p class="svelte-trqgp2"><a class="idxlink svelte-trqgp2" href="/slack">Slack Community</a></p><p class="svelte-trqgp2"><a class="idxlink svelte-trqgp2" href="/articles">Articles</a></p><p class="svelte-trqgp2"><a class="idxlink svelte-trqgp2" href="/gpu-glossary">GPU Glossary</a></p><p class="svelte-trqgp2"><a class="idxlink svelte-trqgp2" href="/library">Model Library</a></p></div> <div class="idxsec pt-16 sm:col-span-2 svelte-trqgp2"><p class="svelte-trqgp2" data-svelte-h="svelte-1y2zhmo">Popular Examples</p> <p class="svelte-trqgp2"><a class="idxlink svelte-trqgp2" href="/docs/examples/vllm_inference">Serve LLM APIs with vLLM</a></p><p class="svelte-trqgp2"><a class="idxlink svelte-trqgp2" href="/docs/examples/dreambooth_app">Create Custom Art of Your Pet</a></p><p class="svelte-trqgp2"><a class="idxlink svelte-trqgp2" href="/docs/examples/s3_bucket_mount">Analyze Parquet files from S3 with DuckDB</a></p><p class="svelte-trqgp2"><a class="idxlink svelte-trqgp2" href="/docs/examples/cloud_bucket_mount_loras">Run hundreds of LoRAs from one app</a></p><p class="svelte-trqgp2"><a class="idxlink svelte-trqgp2" href="/docs/examples/slack-finetune">Replace your CEO with an LLM</a></p></div> <div class="idxsec pt-16 svelte-trqgp2"><p class="svelte-trqgp2" data-svelte-h="svelte-1te6hbf">Company</p> <p class="svelte-trqgp2"><a class="idxlink svelte-trqgp2" href="/company">About</a></p><p class="svelte-trqgp2"><a class="idxlink svelte-trqgp2" href="/blog">Blog</a></p><p class="svelte-trqgp2"><a class="idxlink svelte-trqgp2" href="/careers">Careers</a></p><p class="svelte-trqgp2"><a class="idxlink svelte-trqgp2" href="/legal/privacy-policy">Privacy Policy</a></p><p class="svelte-trqgp2"><a class="idxlink svelte-trqgp2" href="/docs/guide/security">Security & Privacy</a></p><p class="svelte-trqgp2"><a class="idxlink svelte-trqgp2" href="/legal/terms">Terms</a></p></div></div></div> <div class="pt-16 lg:hidden"><div class="flex items-center gap-5 flex-wrap"><a class="social-btn svelte-1xztzl5" target="_blank" rel="noreferrer" href="https://x.com/modal_labs"><svg width="20" height="20" viewBox="0 0 300 271" xmlns="http://www.w3.org/2000/svg"><path d="m236 0h46l-101 115 118 156h-92.6l-72.5-94.8-83 94.8h-46l107-123-113-148h94.9l65.5 86.6zm-16.1 244h25.5l-165-218h-27.4z"></path></svg></a> <a class="social-btn svelte-1xztzl5" target="_blank" rel="noreferrer" href="https://www.linkedin.com/company/modal-labs/"><svg width="17" height="17" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 310 310"><path d="M72.16,99.73H9.927c-2.762,0-5,2.239-5,5v199.928c0,2.762,2.238,5,5,5H72.16c2.762,0,5-2.238,5-5V104.73 | |
C77.16,101.969,74.922,99.73,72.16,99.73z"></path><path d="M41.066,0.341C18.422,0.341,0,18.743,0,41.362C0,63.991,18.422,82.4,41.066,82.4 | |
c22.626,0,41.033-18.41,41.033-41.038C82.1,18.743,63.692,0.341,41.066,0.341z"></path><path d="M230.454,94.761c-24.995,0-43.472,10.745-54.679,22.954V104.73c0-2.761-2.238-5-5-5h-59.599 | |
c-2.762,0-5,2.239-5,5v199.928c0,2.762,2.238,5,5,5h62.097c2.762,0,5-2.238,5-5v-98.918c0-33.333,9.054-46.319,32.29-46.319 | |
c25.306,0,27.317,20.818,27.317,48.034v97.204c0,2.762,2.238,5,5,5H305c2.762,0,5-2.238,5-5V194.995 | |
C310,145.43,300.549,94.761,230.454,94.761z"></path></svg></a> <a class="social-btn svelte-1xztzl5" target="_blank" rel="noreferrer" href="https://modal.com/slack"><svg width="22" height="22" viewBox="0 0 512 512" xmlns="http://www.w3.org/2000/svg"><path d="M126.12,315.1A47.06,47.06,0,1,1,79.06,268h47.06Z"></path><path d="M149.84,315.1a47.06,47.06,0,0,1,94.12,0V432.94a47.06,47.06,0,1,1-94.12,0Z"></path><path d="M196.9,126.12A47.06,47.06,0,1,1,244,79.06v47.06Z"></path><path d="M196.9,149.84a47.06,47.06,0,0,1,0,94.12H79.06a47.06,47.06,0,0,1,0-94.12Z"></path><path d="M385.88,196.9A47.06,47.06,0,1,1,432.94,244H385.88Z"></path><path d="M362.16,196.9a47.06,47.06,0,0,1-94.12,0V79.06a47.06,47.06,0,1,1,94.12,0Z"></path><path d="M315.1,385.88A47.06,47.06,0,1,1,268,432.94V385.88Z"></path><path d="M315.1,362.16a47.06,47.06,0,0,1,0-94.12H432.94a47.06,47.06,0,1,1,0,94.12Z"></path></svg></a> <a class="social-btn svelte-1xztzl5" target="_blank" rel="noreferrer" href="https://github.com/modal-labs"><svg width="26" height="26" viewBox="0 0.5 16 16" xmlns="http://www.w3.org/2000/svg"><path d="M6.02 15.21C6.02 15.02 6.01 14.39 6.01 13.72C4 14.09 3.48 13.23 3.32 12.78C3.23 12.55 2.84 11.84 2.5 11.65C2.22 11.5 1.82 11.13 2.49 11.12C3.12 11.11 3.57 11.7 3.72 11.94C4.44 13.15 5.59 12.81 6.05 12.6C6.12 12.08 6.33 11.73 6.56 11.53C4.78 11.33 2.92 10.64 2.92 7.58C2.92 6.71 3.23 5.99 3.74 5.43C3.66 5.23 3.38 4.41 3.82 3.31C3.82 3.31 4.49 3.1 6.02 4.13C6.66 3.95 7.34 3.86 8.02 3.86C8.7 3.86 9.38 3.95 10.02 4.13C11.55 3.09 12.22 3.31 12.22 3.31C12.66 4.41 12.38 5.23 12.3 5.43C12.81 5.99 13.12 6.7 13.12 7.58C13.12 10.65 11.25 11.33 9.47 11.53C9.76 11.78 10.01 12.26 10.01 13.01C10.01 14.08 10 14.94 10 15.21Z"></path></svg></a> <a class="social-btn svelte-1xztzl5" target="_blank" rel="noreferrer" href="https://www.youtube.com/channel/UC477UdoLR2Js3RHhRWSXsQA"><svg width="22" height="22" viewBox="0 0 28.57 20" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" d="M27.9727 3.12324C27.6435 1.89323 26.6768 0.926623 25.4468 0.597366C23.2197 2.24288e-07 14.285 0 14.285 0C14.285 0 5.35042 2.24288e-07 3.12323 0.597366C1.89323 0.926623 0.926623 1.89323 0.597366 3.12324C2.24288e-07 5.35042 0 10 0 10C0 10 2.24288e-07 14.6496 0.597366 16.8768C0.926623 18.1068 1.89323 19.0734 3.12323 19.4026C5.35042 20 14.285 20 14.285 20C14.285 20 23.2197 20 25.4468 19.4026C26.6768 19.0734 27.6435 18.1068 27.9727 16.8768C28.5701 14.6496 28.5701 10 28.5701 10C28.5701 10 28.5677 5.35042 27.9727 3.12324Z | |
M11.4253 14.2854L18.8477 10.0004L11.4253 5.71533V14.2854Z"></path></svg></a> <p class="text-sm text-light-green/60 whitespace-nowrap" data-svelte-h="svelte-66zv9v">© Modal 2025</p> </div></div> </div></div> | |
<script nonce="v5ISqyaxpXR9/YA6GM6Tag=="> | |
{ | |
__sveltekit_1izh3jl = { | |
base: new URL("..", location).pathname.slice(0, -1) | |
}; | |
const element = document.currentScript.parentElement; | |
Promise.all([ | |
import("../_app/immutable/entry/start.zkcw9EIs.js"), | |
import("../_app/immutable/entry/app.MzJaG-Dj.js") | |
]).then(([kit, app]) => { | |
kit.start(app, element, { | |
node_ids: [0, 4, 5, 39], | |
data: [null,null,null,null], | |
form: null, | |
error: null | |
}); | |
}); | |
} | |
</script> | |
</div> | |
</body> | |
</html> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment