Víte, co mají společného moderní AI chatboti, generativní obrázky a aplikace pro analýzu dat v reálném čase? Všechny potřebují výpočetní výkon. A ne jen takový ledajaký – potřebují rychlost, škálovatelnost a ideálně fyzickou blízkost k uživateli, aby nebyla odezva pomalá.
Pokud se zajímáte o umělou inteligenci, pravděpodobně jste se už setkali s nástroji jako ChatGPT nebo Midjourney. Ale co dělat, když chcete vytvořit vlastní AI aplikaci? Kde ji běžíte?
Přichází Fly.io.
V tomto tutoriálu si vysvětlíme, proč je Fly.io v současnosti jedním z nejzajímavějších řešení pro vývojáře AI (umělé inteligence), a krok za krokem si ukážeme, jak na tuto platformu nasadit první aplikaci. Připravte se, vstoupíme do světa, kde se cloudoví giganti jako AWS bojí o své zákazníky.
Co je Fly.io a proč je revolucí pro AI?
Tradiční cloudové služby (tzv. hyperscalers) jako AWS, Google Cloud nebo Azure jsou mocné, ale často složité a drahé. Platíte za server, který běží 24 hodin denně, i když ho nikdo nepoužívá. Pro AI modely, které vyžadují silné GPU, to může znamenat astronomické účty.
Fly.io přistupuje k problému jinak. Je to Platform as a Service (PaaS), která využívá sítí fyzických serverů rozmístěných po celém světě. Jejich filozofie je jednoduchá: Spusťte aplikaci blízko uživatelům.
Pro začínámsAI.cz je ale klíčový jeden specifický aspekt: Fly Machines. Díky této technologii může Fly.io spouštět izolované kontejnery (například s AI modelem) na vyžádání. To znamená, že váš AI model může "spát" a probudit se pouze tehdy, když přijde požadavek. Platíte tedy pouze za vteřiny skutečného výpočtu, nikoliv za nicotnost.
Klíčové výhody Fly.io pro AI vývojáře:
- Eliminace studeného startu (Firecracker microVMs): Ačkoliv se jedná o kontejnery, Fly.io je spouští v lehkých virtuálních strojích, což zajišťuje extrémně rychlé startování.
- Podpora GPU: Můžete si vyžádat výkon grafických karet (např. NVIDIA A100) pro trénování nebo inferenci (spouštění) modelů jako Llama 3 nebo Stable Diffusion.
- Vektorové databáze (PostgreSQL + pgvector): Fly.io nabízí managed PostgreSQL, který obsahuje rozšíření
pgvector. To je pro AI zásadní – umožňuje vám vytvářet tzv. RAG (Retrieval-Augmented Generation) systémy, kde AI vyhledává v kontextu vašich vlastních dat, aniž byste potřebovali složitou externí databázi. - Nasazení kódem (CLI): Vše ovládáte z terminálu. Žádné klikání v prohlížeči.
Příprava prostředí: Co budete potřebovat
Než se pustíme do praktického příkladu, ujistěte se, že máte vše připraveno. Tento tutoriál předpokládá, že ovládáte základy terminálu.
- Účet na Fly.io: Zaregistrujte se na fly.io. (Noví uživatelé často dostávají kredit zdarma na vyzkoušení).
- Nainstalovaný
flyctl: Toto je příkazový řádek (CLI) nástroj Fly.io.
- Linux/macOS: Použijte instalační skript uvedený v dokumentaci.
- Windows: Stáhněte si
.exesoubor nebo použijte Winget.
- Docker: Fly.io je postaveno na kontejnerizaci. Budeme potřebovat Docker, abychom si aplikaci otestovali lokálně.
Praktický příklad: Nasazení jednoduché AI API
Vytvoříme jednoduchou Python aplikaci (pomocí knihovny Flask), která bude simulovat AI odpověď. V reálném scénáři by zde byl např. model Llama 3 nahráný z Hugging Face, ale pro účely tohoto tutoriálu zůstaneme u jednoduchého kódu, abychom pochopili princip nasazení.
Tento proces ukáže, jak snadné je dostat kód na internet.
Krok 1: Inicializace projektu
Otevřete terminál a vytvořte složku pro váš projekt:
mkdir fly-ai-demo
cd fly-ai-demo
Krok 2: Vytvoření aplikace
Vytvořte soubor app.py a vložte do něj následující kód. Toto je jednoduché API, které na požadavek odpoví "AI odpovědí".
from flask import Flask, jsonify
import time
app = Flask(__name__)
@app.route('/')
def home():
return jsonify({"message": "Vítejte na AI serveru běžícím na Fly.io!"})
@app.route('/generate')
def generate():
# Simulace výpočetně náročné operace AI (např. generování textu)
time.sleep(2)
return jsonify({"result": "Toto je vygenerovaný text od vašeho AI modelu."})
if __name__ == '__main__':
app.run(host='0.0.0.0', port=8080)
Krok 3: Definice Docker kontejneru
Aby Fly.io vědělo, jak vaši aplikaci spustit, musíme vytvořit soubor Dockerfile. Vytvořte ho ve stejné složce:
# Použijeme lehký Python image
FROM python:3.9-slim
# Nastavíme pracovní adresář
WORKDIR /app
# Zkopírujeme soubor se závislostmi (v našem případě jen requirements.txt)
COPY requirements.txt .
# Nainstalujeme závislosti
RUN pip install --no-cache-dir -r requirements.txt
# Zkopírujeme zbytek zdrojového kódu
COPY . .
# Příkaz pro spuštění aplikace
CMD ["python", "app.py"]
Nezapomeňte vytvořit i soubor requirements.txt:
Flask
gunicorn
Krok 4: Přihlášení a nasazení na Fly.io
Nyní přijde ta kouzelná část. Otevřete terminál ve složce s projektem.
- Přihlaste se:
fly auth login
Tento příkaz vás přesměruje do prohlížeče, kde se přihlásíte.
- Inicializujte Fly aplikaci:
fly launch
Fly.io se vás zeptá na několik otázek.
- App name: (nechte náhodný nebo zadejte
fly-ai-demo) - Region: Vyberte region blízko vás (např.
frapro Frankfurt neboamspro Amsterdam). - Deploy now? Zadejte
N(Ne), protože nejprve se podíváme na konfiguraci.
Příkaz vytvoří soubor fly.toml. Toto je srdce vaší konfigurace.
Krok 5: Úprava konfigurace pro AI
Otevřete soubor fly.toml v textovém editoru. Zde můžete definovat, jaké zdroje aplikace potřebujete. Pro naší ukázku to stačí takto:
app = "fly-ai-demo"
primary_region = "fra"
[build]
builder = "paketobuildpacks/builder:base"
[env]
PORT = "8080"
[http_service]
internal_port = 8080
force_https = true
auto_stop_machines = true
auto_start_machines = true
min_machines_running = 0
processes = ["app"]
Důležité pro AI: Všimněte si řádků auto_stop_machines a min_machines_running = 0.
Toto je klíč k úspoře peněz. Pokud na vaši AI aplikaci nikdo nepřistupuje, Fly.io ji vypne (stopne). Až přijde požadavek, během vteřin ji znovu nastartuje.
Krok 6: První nasazení
Nyní spusťte příkaz:
fly deploy
Sledujte výpis v terminálu. Uvidíte, jak Fly.io stahuje base image, sestavuje váš Docker kontejner a nahrává ho na jejich servery. Po chvíli uvidíte hlášku vN deployed.
Gratuluji! Vaše AI API je nyní online na internetu.
Krok 7: Testování
Zjistěte URL adresu vaší aplikace:
fly info
Nyní ji otestujte (nebo klikněte na URL v prohlížeči):
curl https://fly-ai-demo.fly.dev/generate
Měli byste dostat JSON odpověď: {"result": "Toto je vygenerovaný text od vašeho AI modelu."}.
Jak na Fly.io běží skutečné AI modely?
V příkladu výše jsme simulovali AI. Jak ale nasadit skutečný model, např. Llama 3 nebo Mistral?
Proces je velmi podobný, ale s několika úpravami v fly.toml a Dockerfile:
- GPU Hardware: V souboru
fly.tomlbyste v sekci[vm]specifikovali požadavek na GPU. Fly.io podporuje NVIDIA A100 a A40.
[vm]
size = "performance-8x" # Velikost serveru
gpu_kind = "a100-pcie-40gb" # Typ grafické karty
- Velikost kontejneru: AI modely jsou velké. Musíte zajistit, aby diskový prostor (v
fly.tomlpod[[mounts]]) byl dostatečně velký pro stažení modelu (např. 50GB+). - Inference Server: Místo Flasku byste v kontejneru běžil specializovaný server jako vLLM nebo Text Generation Inference (TGI). Tyto nástroje jsou optimalizované pro co nejrychlejší generování textu na GPU.
Tento přístup umožňuje běžet vašemu vlastnímu chatbotovi, který je nezávislý na OpenAI, a který máte pod plnou kontrolou.
Vektorové vyhledávání: Tajná zbraň pro RAG
Jak jsem zmínil v úvodu, Fly.io není jen o výpočtu. Je to i o datech. Pro pokročilé AI aplikace využívající metodu RAG (kde AI čerpá z vašich vlastních dokumentů) potřebujete vektorovou databázi.
Na Fly.io je to triviální. Vytvoříte si PostgreSQL databázi:
fly pg create -n ai-db
A v kódu aplikace (např. pomocí Python knihovny psycopg2) si zapnete rozšíření pgvector. Díky tomu můžete ukládat texty jako číselné vektory a vyhledávat podobné dokumenty pomocí sémantické shody. Vše běží na jedné platformě, což drasticky snižuje latenci (zpoždění) oproti volání externí databáze v jiném cloudu.
Kolik to stojí?
Pro začátečníky a experimentování je Fly.io velmi štědrý. Plán "Free" zahrnuje:
- 3 malé VMs (virtuální stroje)
- 3GB objektového úložiště
- Databáze (omezeně)
Pokud však začnete nasazovat AI modely na GPU, náklady se pohybují podle spotřeby. Platíte za GPU-hodiny. To je ideální pro startupy – nemusíte platit měsíční pronájem serveru za 10 000 Kč, pokud ho používáte jen na testování pár hodin v týdnu. Zaplatíte jen za ty hodiny.
Závěr: Je Fly.io budoucností AI infrastruktury?
Pokud se chcete v oblasti AI posunout od pouhého "bavlení se s ChatGPT" k tvorbě vlastních produktů, Fly.io nabízí neuvěřitelně příjemnou cestu. Spojuje v sobě jednoduchost serverless funkcí s výkonem plnohodnotných serverů.
Shrnutí výhod:
- Rychlost: Edge servery zajišťují nízkou latenci.
- Úspora: Platíte jen za CPU/GPU čas, kdy model skutečně pracuje.
- Jednoduchost: Nasazení jedním příkazem
fly deploy. - Vše na jednom místě: Databáze, úložiště i výpočet.
Jste připraveni postavit svůj první AI projekt? Nainstalujte si flyctl, zaregistrujte se a pusťte se do toho. Budlíte překvapeni, jak snadné může být nasazení inteligentní aplikace do cloudu.
Máte s Fly.io zkušenosti, nebo teprve začínáte? Podělte se o své dotazy v komentářích níže!