DevOps en la Era de la IA
Ciclo de Vida del Modelo
Conversiones de formato de archivo de modelo (Opcional)
Trabajos Anteriores
Empaquetado y Envío de Modelos
Modelos de Código Abierto
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 en Docker
FROM ollama/ollama:0.3.12
# Escuchar en todas las interfaces, puerto 8080
ENV OLLAMA_HOST 0.0.0.0:8080
# Almacenar archivos de pesos del modelo en /models
ENV OLLAMA_MODELS /models
# Reducir la verbosidad del registro
ENV OLLAMA_DEBUG false
# Nunca descargar los pesos del modelo de la GPU
ENV OLLAMA_KEEP_ALIVE -1
# Almacenar los pesos del modelo en la imagen del contenedor
ENV MODEL gemma2:9b
RUN ollama serve & sleep 5 && ollama pull $MODEL
# Iniciar Ollama
ENTRYPOINT ["ollama", "serve"]
Variables admitidas:
-
MODEL(variable de compilación) -
OLLAMA_HOST(variable de tiempo de ejecución) -
OLLAMA_NUM_PARALLEL(variable de tiempo de ejecución)
LlamaCpp en Docker
FROM ghcr.io/ggerganov/llama.cpp:server
# Crear directorios para el servidor y los modelos
RUN mkdir -p /app/models
# Descargar archivo del modelo en /app/models
EXPOSE 8080
# Comando para ejecutar el servidor cuando se inicia el contenedor
ENTRYPOINT ["llama-server", "-m", "/app/models/llama-3.2-1b-instruct-q8_0.gguf", "-c", "2048"]
Documentación de Docker de LlamaCpp
Vamos a portar a Dagger y publicar en 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"
Implementar aplicación de interfaz de usuario
npm run build
cd client
fly launch
