Ubuntu TechHive
devops-in-the-age-of-ai-part-deux.md
DevOps in the Age of AI (Part Deux)
article.détail

DevOps in the Age of AI (Part Deux)

reading.progression 1 min de lecture

Description de DevOps à l'ère de l'IA

DevOps à l'ère de l'IA

Cycle de vie du modèle

graph LR
A [Model Training] --> B [Model Saving]
B --> C [Model + API Packaging - Docker Container]
C --> D [Serve via API]

Conversions de format de fichier de modèle (Facultatif)

graph LR
A(Tensorflow H5 Model) --> B(Convert to ONNX) --> C(ONNX Model)
D(Pytorch PT Model) --> E(Convert to ONNX) --> F(ONNX Model)
G(Python's Pickle Model) --> G(Python's Pickle Model)

Antécédents

Conditionnement et expédition de modèles

Modèles Open Source

Ollama

brew install ollama

ollama pull llama3.2

ollama serve

LlamaCpp

brew install llamacpp

llama-server --hf-repo hugging-quants/Llama-3.2-1B-Instruct-Q8_0-GGUF --hf-file llama-3.2-1b-instruct-q8_0.gguf -c 2048

Ollama dans Docker

FROM ollama/ollama:0.3.12

# Écouter sur toutes les interfaces, port 8080
ENV OLLAMA_HOST 0.0.0.0:8080

# Stocker les fichiers de poids du modèle dans /models
ENV OLLAMA_MODELS /models

# Réduire la verbosité des logs
ENV OLLAMA_DEBUG false

# Ne jamais décharger les poids du modèle du GPU
ENV OLLAMA_KEEP_ALIVE -1

# Stocker les poids du modèle dans l'image du conteneur
ENV MODEL gemma2:9b
RUN ollama serve & sleep 5 && ollama pull $MODEL

# Démarrer Ollama
ENTRYPOINT ["ollama", "serve"]

Variables prises en charge :

  • MODEL(variable de construction)

  • OLLAMA_HOST(variable d'exécution)

  • OLLAMA_NUM_PARALLEL(variable d'exécution)

LlamaCpp dans Docker

FROM ghcr.io/ggerganov/llama.cpp:server

# Créer des répertoires pour le serveur et les modèles
RUN mkdir -p /app/models

# Télécharger le fichier modèle dans /app/models

EXPOSE 8080

# Commande pour exécuter le serveur au démarrage du conteneur
ENTRYPOINT ["llama-server", "-m", "/app/models/llama-3.2-1b-instruct-q8_0.gguf", "-c", "2048"]

Documentation Docker de LlamaCpp

Portons vers Dagger et publions sur Google Cloud Registry

Dagger

brew install dagger

Example:
dagger call --interactive function-name --project-path=./path-to-project-in-repo \
   --src-dir=https://user:$GITHUB_TOKEN@github.com/user/reponame#branchname --image-name="gcr.io/organization/project/image-name"

Déployer l'application UI

npm run build

cd client

fly launch