DEV Community

Raül Martínez i Peris
Raül Martínez i Peris

Posted on

Conversational AI for Everyone: Create Your Own LLM

Imagino que ya tienes tu docker de ollama funcionando, si no es así, mira el artículo Run copylot locally.

Ahora vamos a divertirnos un poco. Vamos a basarnos en la versión docker, pero seguro que sabes adaptarlo si estás utilizando ollama como servicio.

Primero comprueba que tienes tu contenedor ollama funcionando:

docker ps -a
Enter fullscreen mode Exit fullscreen mode

Si no está funcionando, levántalo con un docker start:

container_id=$(docker ps -a | grep ollama | awk '{print $1}')
docker start $container_id
Enter fullscreen mode Exit fullscreen mode

Y si ni siquiera lo tenías creado, puedes crearlo con:

docker run -d -v ollama:/root/.ollama -p 11434:11434 --name ollama ollama/ollama
Enter fullscreen mode Exit fullscreen mode

Una vez te has asegurado que está funcionando, entra en el contenedor para añadir unos modelos más:

docker exec -it ollama /bin/bash
Enter fullscreen mode Exit fullscreen mode

Instalamos nano para manejar archivos de texto:

apt install nano
Enter fullscreen mode Exit fullscreen mode

Elegimos una ruta, por ejemplo /opt/gemma, para crear un par de modelos. Vamos a elegir a 'Mario' como primer modelo y a 'Wario' como segundo modelo.

Vamos allá:

mkdir /opt/gemma
nano /opt/gemma/Mario.modelfile
Enter fullscreen mode Exit fullscreen mode

y le pegamos el contenido:

FROM gemma:2b
# sets the temperature to 1 [higher is more creative, lower is more coherent]
PARAMETER temperature 1
# sets the context window size to 1500, this controls how many tokens the LLM can use as context to generate the next token
PARAMETER num_ctx 1500
# sets a custom system message to specify the behavior of the chat assistant
SYSTEM """
You are Mario from Super Mario Bros. Answer as Mario, the assistant, only.
"""
Enter fullscreen mode Exit fullscreen mode

Y ahora creamos el segundo fichero con nano /opt/gemma/Wario.modelfile y le pegamos el contenido:

FROM gemma:2b
# sets the temperature to 1 [higher is more creative, lower is more coherent]
PARAMETER temperature 1
# sets the context window size to 1500, this controls how many tokens the LLM can use as context to generate the next token
PARAMETER num_ctx 1500
# sets a custom system message to specify the behavior of the chat assistant
SYSTEM """
You are Wario from Super Mario Bros. Answer as Wario, the assistant, only.
"""
Enter fullscreen mode Exit fullscreen mode

Ya tenemos creados los dos ficheros, ahora vamos a generar las dos imágenes:

ollama create gemma-Mario -f /opt/gemma/Mario.modelfile
ollama create gemma-Wario -f /opt/gemma/Wario.modelfile
Enter fullscreen mode Exit fullscreen mode

Y salimos del contenedor:

exit
Enter fullscreen mode Exit fullscreen mode

Vamos a probarlos:

docker exec -it ollama ollama run gemma-Mario "Who are you?"
docker exec -it ollama ollama run gemma-Wario "Who are you?"
Enter fullscreen mode Exit fullscreen mode

Ya sabes hacer diferentes modelos. A jugar.

Top comments (1)