[0:00]Vamos a ver cómo utilizar un modelo de lenguaje, estilo chat GPT en nuestra PC, completamente gratis e ilimitado. Lo primero que vamos a hacer es buscar llama.cpp y entrar a su repositorio en GitHub. Llama.cpp es el programa que nos permite comúnmente cargar los modelos de lenguaje de pesos abiertos de manera eficiente para hardware de hogar. Existen otros programas, pero es para ejecutar los modelos de manera diferente y con mejor hardware, como directamente las librerías en Python, Transformer, VLM, etcétera. Aquí vamos a usar llama.cpp que de hecho, el LM Studio, o llama Han, lo que usan en el fondo es llama.cpp. Así que mejor usamos directamente este programa que se actualiza a cada ratito. Al día hay más de una actualización y pues que es bastante simple de utilizar. Aquí lo único que hice fue ir a release para ver cuáles son las versiones más recientes lanzadas. Tenemos esta versión en este momento y ahora que actualizan a cada rato no significa que a cada rato tenemos que descargar la nueva versión. Porque quizá arreglan cosas, añaden funcionamientos para nuevos modelos que quizá no estemos utilizando, así que no hace falta 100%. Muy bien, aquí cuál voy a descargar? Pues yo estoy en Windows, pero cuál de todo esto? Básicamente, casi cualquiera deberían de funcionar en mi PC. Sin embargo, dado que tengo tarjetas gráficas Nvidia, preferentemente voy a utilizar la versión CUDA. Tengo un Ryzen 5 5600G de procesador, 128 GB de RAM, que son cuatro módulos, cada uno de 32, DDR4, 3200 MHz, con dual channel activado. Dos RTX 3060 de 12 GB cada una y la GPU integrada del procesador, que es la que estamos utilizando para grabar y todo eso, dejando completamente libre las GPUs Nvidia. Eh, tenemos ahí 16 GB asignados de RAM. Muy bien, dentro de todas estas versiones, si no tenemos GPU, podemos utilizar directamente Windows X64 CPU. Por el contrario, podemos usar CUDA si tenemos Nvidia, podemos usar Vulkan si tenemos Nvidia, Intel o AMD, mas no necesariamente todas son compatibles, y ARM es para aquellos dispositivos Windows que no son PCs. Entonces, yo voy a descargar la que dice CUDA 13 y si no me funciona, pues después pruebo con CUDA 12. Ahora, que diga CUDA no significa que solo lo voy a poder utilizar con tarjetas gráficas Nvidia. Significa que voy a poder utilizar gráficas Nvidia, pero también CPU. Así que si en algún momento, por alguna extraña razón, no voy a utilizar mis gráficas o el modelo no cabe completo, pues también tengo la posibilidad de aquí dentro utilizar CPU. Al igual en la versión de Vulkan. Entonces, voy a dar clic aquí y pues con eso comienza la descarga del punto zip. Y también voy a dar clic a un lado para descargar las librerías CUDA. Una cosa es el entorno preparado para CUDA, otra cosa es incluir CUDA. Con estas dos cosas descargadas, lo siguiente que vamos a hacer es descomprimir ambos archivos en la misma carpeta. Así que, sencillamente, vamos a crear una carpeta, yo le voy a llamar llama.cpp, y aquí dentro voy a descomprimir todos los archivos de ambos punto zip. Ya metimos uno de ellos, ahora el otro, y después de ello, pues ya tenemos todo aquí funcionando. Tenemos todo llama.cpp en conjunto con las tres librerías de CUDA. Qué es lo siguiente que tenemos que hacer? Si damos un clic aquí mismo en la barra de dirección y ponemos CMD, vamos a poder abrir un CMD, una línea de comandos, directamente en esta carpeta. Qué es lo siguiente que tendría que hacer? Pues hay varias cosas aquí adentro que se pueden utilizar: llama CLI, llama server para comprimir modelos, quién sabe qué tanto, bueno, cuantizarlos, mejor dicho. Comúnmente lo que vamos a estar utilizando va a ser llama server, y de hecho con tabulación nos lo autocompleta: llama-server.exe. De acuerdo. Vamos a estar utilizando llama server, pero una cosa es utilizar llama server, y otra cosa es qué modelo vamos a cargar. Entonces para ello, directamente nos podemos ir a Hugging Face y por aquí lo que tenemos que hacer es buscar un modelo de pesos abiertos, claro está, en formato GGUF. Que es el formato que nos lo empaqueta fácil de utilizar dentro de llama.cpp y que además lo podemos tener cuantizado. Tener el modelo a una precisión menor de la que fue entrenado, perdiendo algo de calidad, pero perdiendo mucho tamaño, así que eso nos conviene comúnmente. En este momento que estoy grabando este video, abril de 2026, los modelos más populares de pesos abiertos, tanto en tamaños pequeños como tamaños enormes. Aunque hay otros enormes que también son buenos, pero no van a caber en nuestro hardware de hogar, son Qwen 3.5 y son Gemma 4. Gemma 4 para redacción, seguimiento de instrucciones y todo ello, por ejemplo, en idioma español, es excelentísimo. Y Qwen 3.5, no es que escriba mal en español, pero no es el mejor. La ventaja que tiene es que para temas más avanzados de ingeniería, ciencias, uso agéntico y todo ello, funciona mejor. Aquí, simplemente buscando Qwen 3.5, pues voy a intentar entrar a alguno del repositorio oficial de la gente de Qwen. De hecho es más, puedo escribir Qwen/Qwen 3.5, lo que sea. Vemos que hay varios de Qwen 3.5. Vamos a dar clic a alguno. Y qué sucede aquí? Pues que del lado derecho vamos a poder ver la colección completa de Qwen 3.5. Hay modelos muy grandes, 397 billions, que llegan a ocupar hasta 1 TB de memoria, 122 billions, 35, 27, 9, 4, 2, 0.8. Claramente, entre más pequeño, la calidad del modelo es menor, mas no significa que no os deje de funcionar. Hay que tener en cuenta que los modelos de por sí están preparados para temas mega complejos de ciencias, de ingeniería, cosas que a lo mejor nunca le vamos a pedir. Y que entonces, a lo mejor ni notamos la diferencia de calidad. Y dejando de lado eso, pues si no puedo cargar el más grande, pues no puedo cargar el más grande y listo. Eh, cómo vamos a saber más o menos qué tamaño tienen estos modelos una vez descargados? Dependiendo de la precisión. Comúnmente, a precisión completa, que es 16 bits, es en GB el doble de lo que pesa el de lo que tiene de billions el modelo. Entonces, en vez de 9B, pesa como 18 GB el modelo a precisión completa, que nunca, prácticamente, los vamos a ejecutar a precisión completa. Pero bueno, ahora, que el modelo pese aproximadamente 18 GB, no significa que por tener el espacio en el disco duro ya basta para poder cargar el modelo. Eso está bien para guardarlo, para almacenarlo, pero para ejecutarlo en el hardware en el que lo vayamos a ejecutar, debe de tener más espacio que lo que pesa el modelo. No 18, a lo mejor 30, por decir algo, porque no va a ser solo el modelo, sino toda la ejecución, todo el contexto de la conversación, entonces se ocuparía mucho, no? Aquí, aunque lo carguemos entre dos tarjetas gráficas, pues son 24. A lo mejor se me queda algo corto, más o menos, de acuerdo a qué tan grande tengamos el contexto de la conversación. Pero entonces qué vamos a hacer? Nada, nada en especial, porque casi nunca lo vamos a ejecutar a precisión completa. Comúnmente se ejecutan a precisión, en vez de 16 bits, a 4 bits. Claramente el modelo pierde algo de calidad, pero se sigue manteniendo prácticamente igual, en y vamos a notar casi diferencia, o a lo mejor ni la notamos, en calidad, pero sí en tamaño disminuye muchísimo. Si a 16 bits pesa como lo doble de los billions de parámetros, a 8 bits pesa aproximadamente la misma cantidad que los billions de parámetros, o sea, aproximadamente 9 GB. Y a 4 bits, poco más de la mitad de esos 9, o sea, una cuarta parte comparado con 16 bits, eh, digamos que más que una cuarta parte, que sería el 25%, digamos un 30 y poco por ciento. Entonces, tendríamos este modelo a 4 bits, pesando unos 4 o 5 GB. Así que, a pesar de que la disminución de tamaño es interesante, la disminución de calidad, no? De todos modos, claramente podemos cargar uno más pequeño a mayor precisión, o uno más grande a menor precisión. Qué conviene más comúnmente? Mientras no bajemos de 4 bits, conviene más, comúnmente, uno más grande a 4 bits, que uno más pequeño a 8 bits o 16 bits. Hablando de la misma colección de modelos, si nos vamos a otro, a Gemma, lo que sea, pues no son comparables simplemente así, no? Porque pues son arquitecturas diferentes. Pero dentro de la misma colección de modelos, me conviene más cargar el 9B a 4 bits, que el 4B a 8 bits, o que el 2B a 16 bits. A excepción para una tarea muy en concreto o un modelo muy en concreto que por alguna extraña que por alguna extraña razón le afecta más la cuantización, comúnmente, mientras no bajemos de 4 bits, conviene, más grande a 4 bits, que más pequeño a 8 bits o 16 bits. Entonces, dado que dijimos que este va a pesar aproximadamente unos 4 o 5 GB a 4 bits, pues vamos a entrar a este de por aquí, por qué? Porque este a un a 4 bits van a ser como 15 GB. Eh, en este hardware, si bien lo puedo ejecutar, pues no solo basta con que lo podamos ejecutar, sino que lo podamos ejecutar a buena velocidad y este son 27 billions de parámetros para predecir cada siguiente token. Hay algunos que son mezcla de expertos, en los que el modelo tiene cierto tamaño, 35 billions, pero para, pero para predecir cada siguiente token, en este caso son solo 3 billions activos. Que sean 3 billions activos, significa que si nuestro modelo completo cabe en memoria, la velocidad va a ser como de 3 billions activo, como si fuera el modelo muy pequeño, de 3 billions. Porque solo esa es la única parte activa, cada siguiente token se activan los expertos adecuados para producir dicho token y es más rápido. Sin embargo, seguimos necesitando toda esta memoria para que el modelo esté cargado completo. Eh, aún así, si tuviéramos el hardware suficiente, la memoria suficiente, es más rápido este de 35B que este de 27B, porque aquí para predecir cada siguiente token, se calcula a partir de los 27 billions. Acá a partir de 3, siempre otros 3 billions diferentes, pero siempre 3, que son tokens, las palabras que entiende el modelo. Puede a veces ser poco más de una palabra, a veces poco menos, a veces un guion, a veces un asterisco, qué se yo. Básicamente, las palabras, básicamente las palabras, pero no como la, pero no como las entendemos nosotros, sino como las entiende el modelo. Entonces, ya en resumidas cuentas, aquí vamos a cargar el Qwen 3.5 9B. Y el problema es que no lo vamos a ejecutar a precisión original ni en formato original, sino que lo vamos a querer cuantizado. En formato GGUF además. Antes de ello, simplemente revisar. Este es un modelo que puede ver imágenes, video y creo que también audio. Se puede tener activado o desactivado su cadena de razonamiento. Está preparado para 201 idiomas. Puede usar herramientas, o sea, hacer uso agéntico, llamar a funciones. Tiene nativamente hasta 256.000 tokens de ventana de contexto, expandible hasta 1 millón. Así que en general, pues es un modelo bastante bueno. Aquí está expandible hasta 1 millón de tokens la ventana de contexto. Ocupando más memoria, claro está, pero si de que podemos, podemos. Perfecto. Entonces, Qwen 3.5 9B. Recordemos una cosa: comúnmente, si tenemos una tarjeta gráfica, vamos a preferir cargar el modelo entre esa o esas tarjetas gráficas. En vez de tratar de cargarlo en RAM o un cacho en gráfica y otro cacho en RAM, si es que es un modelo muy grande. Por qué preferiríamos cargar únicamente en tarjeta gráfica? Porque es mucho más rápido. Y porque de todos modos, comúnmente, dado que los modelos son muy similares, aunque crezcan mucho de tamaño, a lo mejor la diferencia de calidad no compensa en lo más mínimo la diferencia de velocidad. Prefiero uno pequeñito que va a ser rápido por ser pequeño y porque se va a ejecutar además en un dispositivo rápido. Que uno grande que se va a ejecutar lento por ser grande y que además se va a ejecutar en RAM o dividido en distintas partes. Así que, por eso vamos a ejecutar este. Sino, pues el 4B o el 2B o el 0.8B. Solo tener en cuenta que el 2B y el 0.8B, de por sí aquí abajito nos aparecería un mensaje adicional, diciendo que esos son principalmente para prototipos. Son tan pequeñitos esos modelos que realmente ya no son para uso diario. No significa que no se puedan utilizar, significa que son más inestables su calidad de respuesta. Muy bien, este modelo entonces, si nos vamos aquí del lado derecho en Quantizations y damos clic, vamos a ver todas las personas que han cuantizado este modelo a distintas precisiones, con el objetivo, pues de que ocupe menos memoria. A nosotros, comúnmente, nos interesa en formato GGUF. Dos grupos de gente que comúnmente cuantiza estos modelos en la actualidad. Después de que la persona de DBLoke lo dejara de hacer hace un par de años, es la gente de Unsloth y Bartowsky. Cuál recomiendo yo como primera opción? Unsloth, aunque bueno, también aquí está de LM Studio, lo que sea. Vamos a entrar a Unsloth. Qwen 3.5 9B. Seguimos teniendo exactamente el mismo modelo, y de hecho, aún lo podemos cargar a precisión completa. Dijimos que el modelo es 9B, a precisión completa 16 bits, pesa como lo doble, 18 GB. En 8 bits, debería de pesar similar en GB a los billions. Por ejemplo, aquí tenemos Q8 9.53. Y dijimos que a 4 bits, poco más de la mitad, o un 30 y tantos por ciento, pues aquí tenemos cualquiera de 4 bits con 5. y algo GB de peso. Entonces, el que vamos a descargar y ejecutar va a ser, en este momento, este de por aquí. UD Q4 KXL. Qué significa todo esto? Básicamente, todos estos son a 2 bits, todos estos son a 3 bits, los siguientes son a 4 bits, de manera general, la mayoría de sus parámetros. Sin embargo, de acuerdo a los valores adicionales que veamos por aquí, puede significar que esa cuantización está preparado de forma más dinámica y específica para ese modelo. Con el objetivo de que sí, prácticamente todo el modelo esté cuantizado a 4 bits, pero que ciertas partes más relevantes del modelo, a lo mejor tengan mayor precisión o qué se yo, haciendo que siga teniendo prácticamente el mismo peso. Cualquiera de estos, con ligeras variaciones, pero que, pues, algunos tengan mucho mayor calidad, o sea, que pierdan menos calidad. Si de por sí decimos que aún en 4 bits, por ejemplo, Q4KM es el estándar típico de descarga y ejecución, si este, eh, de por sí, según nosotros, casi no pierde calidad, pues en esta de UDK Q4KXL aún menos pierde calidad. Aquí tenemos la documentación de Unsloth Dynamic, eso es el UD, de cómo preparan esas cuantizaciones, porque además no solo cambian de precisión los parámetros y cada parte del modelo a distinta precisión según corresponda para evitar perder calidad. No solo hacen eso, sino que además después le hacen una especie de pequeño fine tuning, un ajuste fino adicional al modelo, con el objetivo de volverlo a ajustar si es que algo después de la cuantización perdió calidad, se desajustó. Así que, bueno, básicamente este de aquí es el que vamos a querer descargar en este caso. Menos de 4 bits ya es una solución un poco más desesperada e inestable. En vez de intentar bajar de 4 bits, comúnmente lo que nos va a interesar es bajar a un modelo más pequeño, de billions de parámetros. Está bien que la cuantización ayuda bastante, pero bajar de 4 bits ya pierden mucha calidad comúnmente. Entonces, 4 bits UD Q4 KXL. Le puedo dar clic por aquí, y aquí me aparece el botón de descargar. De lo contrario, en Files and Versions, también por acá, voy a poder ver el que quiero y descargarlo. Este modelo tiene también visión de imágenes, comentábamos hace rato. Pues una cosa es cargar el modelo, otra cosa es, eh, cargar el modelo en conjunto con su visión de imágenes o encoder de imágenes para que el modelo las pueda ver. Si queremos hacer visión de imágenes, necesitamos descargar también alguno de estos. Cuál recomiendo comúnmente? El BF16. Ahora, tampoco es necesario bajar los archivos manualmente. Si aquí le damos en usar este modelo y nos vamos a la al elemento de la lista que dice llama.cpp, vamos a poder aquí tener el comando exacto para descargarlo y ejecutarlo ya directamente con llama server o llama CLI. Llama CLI es directamente en la terminal, llama server nos abre una interfaz web y un endpoint o API, estilo OpenAI, para hacer peticiones masivas con un código o qué se yo. Sin embargo, esto, pues va a descargar el modelo en alguna carpeta de nuestro sistema o de nuestra carpeta de usuario y va a ser más complicado estar viendo cuáles tenemos, cuáles no. Conviene más, pues, creo yo, directamente descargarlo normal y meterlo donde queramos y respaldarlo y todo lo que queramos. Entonces, Q4 KXL. Damos en descargar, y también vamos a descargar el encoder de visión. Esto entonces, en conjunto, va a estar pesando algo así como 6 GB, o poco más. Vamos a ver aquí cómo se descarga, y una vez que se haya terminado de descargar, dónde lo podemos meter? De hecho, donde queramos. Lo único que tenemos que hacer, pues es tratar de ser algo organizados, no? Eh, no porque llama.cpp lo requiere, sino pues para saber dónde tenemos las cosas. Entonces, podemos, de hecho, meterlo directamente dentro de la carpeta de llama.cpp. Es más, vamos a hacerlo así. Voy entonces a crear aquí una carpeta, Qwen 3.5 9B. Para saber qué es lo que tengo adentro. Y aquí adentro vamos a meter ambos archivos. El modelo de lenguaje y su encoder de visión. Ya casi termina la descarga, y pues una vez que termine, movemos entonces nuestros archivos. Y ya casi estamos listos para funcionar. Muy bien, ahí ya terminó. Entonces, venimos hacia descargas, seleccionamos ambos archivos, los voy a cortar con control X o como queramos, y básicamente el objetivo pues es llevarlos a la carpeta que nos interesa. Qwen 3.5 9B. De acuerdo, en ambas cosas son 6.41 GB. Esto es descargado, ejecutado va a ser más que eso. Esto en este momento vemos que debería de caber sin mayor problema en una sola de mis GPUs, RTX 3060 de 12 GB. Sino en RAM, sino entre las dos GPUs, qué se yo. Eh, con lo cual, pues, a pesar de estar cargando el 9B, no el 4B, que es el mínimo aún recomendado para todo tipo de cosas. Ya el 2B y el 0.8B, ahí sí tenemos más problema. Pues a pesar de estar cargando, a pesar de estar cargando este, con todo y su encoder de visión, cabe en una gráfica no de la generación actual de Nvidia, que es la 5000. Ni la 4000, la 3000, y no la 3090, ni 80, ni 70, sino la 60. Prácticamente la más gama baja, después de esta solo está la 3050, no de la generación actual, ni de la pasada, sino la antepasada. Con lo cual vemos que de por sí, pues, estos modelitos están bastante optimizados, en tamaños a los que los entrenan. Al mismo tiempo que con la cuantización, pues, aún más. Perfecto. Vamos a regresar a la carpeta de llama.cpp y de hecho, recordemos que aquí ya lo habíamos hecho, sino, pues, hagámoslo. Vamos a abrir el CMD, dando clic, bueno, escribiendo aquí CMD y presionando enter, sino, pues, hay otras formas. Y con el comando llama-server.exe, si nosotros aquí ponemos guion M y después la ruta exacta de dónde está nuestro modelo, ya con ello lo vamos a poder ejecutar. No significa que nos debamos de aprender el comando y que siempre debamos hacer este procedimiento. Después vamos a poder guardar un archivito que simplemente dándole doble clic, pues se meta el comando solo, por así decirlo. Pero bueno, aquí shift Q para empezar a escribir el nombre Qwen, y de hecho con tabulación, si no hay otra cosa similar, pues nos lo va a completar. Tabulación, ahí está. Pero esto es la carpeta, esto no es el nombre del archivo. Entonces, pongo un slash invertido, y vamos a ver cómo empieza el nombre de nuestro archivo, pues igual. Q, pongo tabulación y listo. Con esto ya vamos a cargar el modelo sin el encoder de visión. Hay más ajustes que podemos hacer, claro que sí. Podemos revisar toda la documentación de llama server, pero simplemente con esto ya lo podemos cargar. Vamos a probar, enter, va a empezar, detectó mis dos GPUs, lo que sea. Y aquí vemos cómo ya se cargó en una de las GPUs. De hecho, entre las dos GPUs, mejor dicho. Uf, pues, ocupa mucha memoria. Bueno, es que aquí lo que está pasando es que no solo se está cargando el modelo, sino que se cargó con toda su ventana de contexto nativa. Expandible hasta 1.010.000, pero nativamente 262.144. GPT4 era hasta de 32.000 y eso ya es un montón. Depende de nuestro tipo de uso, podemos requerir más, podemos requerir menos, pero entonces, pues, estamos viendo que tampoco es tan simple, no? Como el tamaño del archivo, porque aquí no estamos ni cerca de 6.41. Estamos en poco más de 16 GB, 8.8, 8.5. Así que, bueno, es algo a tener en cuenta. Entonces, si queremos cargar toda la ventana de contexto, pues necesitamos que, necesitamos pensar no solo en el tamaño del modelo, sino en lo que puede ocupar su contexto. Pero no hace falta cargar toda la ventana de contexto y además aquí se cargó toda porque cupo. Dado que nosotros no dimos ninguna especificación en concreta, en concreto, pues simplemente trató de aprovechar el máximo hardware rápido que hay. De lo contrario, nosotros lo podemos indicar o cargar un modelo más pequeño o qué se yo. De hecho, con control C, voy a cerrar el CMD, o bueno, mejor dicho, la ejecución. CLS para limpiar, si es que no queremos ver todo lo anterior. Con la flechita para arriba podemos ver los comandos anteriores. Y si aquí pongo espacio, guion C y espacio y cuántos, cuánto quiero de ventana de contexto? Imaginemos aproximadamente 8.000 tokens de ventana de contexto. Pues al momento de ejecutar, pues me va a ocupar mucho menos. Ahora, aún así, dado que me está detectando dos gráficas, lo intentó dividir entre las dos, pero vamos a ver ahora cuánto ocupa. 2.8, 3.7. Vemos que en general cabe en una sola. Cómo puedo hacer para dividirlo, o mejor dicho, para no dividirlo, para que esté en una sola? Pues si tenemos más de una, comúnmente, es mejor aprovecharlas. Depende. Pero bueno, main GPU 0, forma de división, ninguna. Listo. Presionamos enter, y ya está cargado en una única GPU. 6.1 GB del modelo sin el encoder de visión y con 8.192 tokens de ventana de contexto. Porque la, sino quiero indicar nada, pues no lo indico, y va a cargar pues lo máximo que quepa en esa única GPU. Enter, y de hecho por aquí vemos, cupo 129.280. Tampoco es que haya mucho problema. Sino, pues, un modelo más pequeño, qué se yo. También la ventana de contexto, su KV caché, se puede cuantizar, sin embargo, comúnmente no es recomendado. Eso sí hace que pierda mucha calidad del modelo y más en respuestas muy largas. Actualmente existen cosas como turbo quant, eh, que ya existe una versión simplificada dentro de llama.cpp. Sin embargo, turbo quant no es para ahorrar memoria. Turbo quant es para que casi no se pierda calidad, cuantizando la ventana de contexto. Casi no se pierda calidad, no que no se pierde. Entonces, el modelo está bien cuantizarlo, la KV caché o la ventana de contexto, casi nunca. Bueno, vamos a volver a cerrar, ya por último y después ya vamos a ejecutar. Y aquí simplemente vamos a cargar otra cosa. Guion MM y es para cargar el archivo encoder de visión. Pongo MM, presiono tabulador para que me lo complete, y no me lo está completando, entonces lo tengo que escribir yo. MMproj-BF16.gguf. Esperemos haberlo escrito bien. Presionamos enter, primero carga el modelo, luego el encoder de visión, y no cupo, parece ser. No cupo o qué pasó? Está mal el nombre. Dice que no está en el directorio. No noto que está mal en mi nombre que le puse. Pero bueno, intentando cambiarle el nombre, copio el verdadero nombre del archivo y regresamos. Click derecho, enter, y pues no noté qué tenía mal escrito. Ya, estoy entendiendo. Esto nos demuestra un claro ejemplo de por qué el objetivo va a ser guardar un archivo con el comando. Qué está sucediendo? Y por eso también no me lo autocompletaba. Estamos en la carpeta llama.cpp, no en la carpeta Qwen 3.5 9B. Entonces, así como hicimos con el modelo, tenemos que hacer con su encoder de visión. Vamos a comenzar escribiendo el nombre de la carpeta. Ahora sí me lo completa con el tabulador, diagonal invertida, MM, tabulador y listo. Ese era el problema. Presionamos enter, por eso no lo encontraba, porque, pues, no, en la carpeta de llama.cpp no está, está en una subcarpeta. Perfecto, ahí entonces tenemos el modelo cargado, tenemos el encoder de visión, y tenemos 129.280 de ventana de contexto, todo cabiendo en una única GPU. Puedo aprovechar la otra, claro está, eh, y RAM si es que no cabe. Si de por sí solo no caben las GPUs, después puedo utilizar RAM, qué se yo. Ya vimos que hay aquí, simplemente, de manera fácil, estamos viendo que de por sí hay un montón de ajustes que se pueden hacer. Aún aquí vimos muy pocos, pero estamos viendo más o menos el potencial, y pues le voy a cargar así, eh, que lo cargue como pueda entre la entre el mejor hardware que haya en mi PC. Simplemente que se ejecute llama server con el modelo y con el encoder de visión. Podemos activar, desactivar el razonamiento del modelo, cambiar sus parámetros de ejecución, todo eso. Entonces, ahí qué tendríamos que hacer? Pues revisar la documentación de donde descargamos el modelo, a lo mejor ahí mismo nos dan recomendaciones. Aquí, por ejemplo, para ejecutar Qwen 3.5 localmente, lee nuestra guía. Podemos entrar y, pues, nos da mucha información de distintos parámetros que podemos aplicar para que funcione mejor para código con razonamiento activo, sin ello, qué se yo. Eh, pero bueno, desde simplemente un comando así ya puede funcionar. Y si no, pues, revisar la guía de donde descargamos el modelo. Presionamos enter, y pues, dado que solo indiqué el nombre del modelo y el nombre del encoder de visión, lo que va a hacer es, por sí solo, tratar de aprovechar el mejor hardware y cargar, pues, lo máximo que pueda. Y aquí, entre las dos GPUs, trató de aprovecharlas, no lo va a volver necesariamente más lento. Bueno, sí, quizá por el cuello de botella, no tanto porque consuma mucha memoria, sino por el cuello de botella de comunicación. Pero si fuera en una sola gráfica, da igual cargarlo con 1000 que cargarlo con 10.000 que cargarlo con 100.000 de ventana de contexto. Solo consumiría más, pero debería de ser igual de rápido, a excepción de cuando ya nuestra conversación es muy larga y estamos utilizando todo ese hilo de conversación. Bien. Entonces, ahí, pues, trató de aprovechar el mejor hardware. Vemos que por sí solo no intenta usar RAM. Y nos cupo el modelo con todo y su encoder de visión y lo y la ventana de contexto completa, 262.144. Genial, para qué? Para prácticamente nunca utilizarla, pero bueno, a excepción usos agénticos muy largos o qué se yo. Ahora, qué vamos a hacer? Pues aquí luego de ejecutar llama server, estamos viendo que nos muestra una URL. La selecciono, le doy click derecho, la pego por acá, y tenemos, pues, una especie de chat en el que podemos empezar a hablar con el modelo. Sin embargo, no significa que esta sea la única ni la mejor forma en la que lo vayamos a utilizar, pero pues vemos ahí ya que es un modelo razonador. Podemos desactivar el razonamiento, podemos hacer otras cosas y aún en directo y dividido entre dos gráficas antiguas, que además está limitada en su potencia, en vez de 170 W las tengo a 100, y pues funciona bien. A unos 46 tokens por segundo. Vamos a ponerle algo rápido, simplemente para ver qué tal. Desarrolla una landing en HTML 5, o sea, HTML, CSS, JavaScript con Bootstrap y Bootstrap Icon, en tema light, no dark, de un servicio de hosting ultrarrápido, potenciado con IA. Vamos a ponerlo así, presionamos enter, y pues, de acuerdo al tipo de tarea, claramente se lo va a llevar más tiempo en su cadena de razonamiento o menos. Esto se lo podemos desactivar. Eh, simplemente existe un parámetro para ello, reasoning off, y listo. Podemos buscar simplemente el comando que queramos, qué se yo, o revisar la documentación, pero pues hay ciertas tareas que se ven bastante mejorada las respuestas finales a partir de un razonamiento previo. Como, por ejemplo, el código, la programación o las matemáticas o qué se yo. Para otras cosas quizá no hace falta. Listo, después de hacer su cadena de razonamiento, tratando de dedicar tokens previos a organizar mejor lo que quiere hacer y todo, pues comienza ahora sí a darnos la respuesta. Aquí tienes una landing page completa, moderna y responsiva. He utilizado Bootstrap 5.3 para la estructura y los componentes. Bootstrap icons para la iconografía, y CSS personalizado para darle ese toque "Ultra Moderno" y "Light". El código está todo en un solo archivo HTML para que sea fácil de probar (copia, guarda como .html y abre). Características del diseño: Tema Light, fondo blanco y gris claro, con acentos en azul eléctrico y degradados suaves. Enfoque en IA: Secciones dedicadas a "Optimización Predictiva" y "Caching Inteligente". Performance: Carga muy ligera gracias a las utilidades de Bootstrap. Conversión: Botones de llamada a la acción (CTA) claros y diseño de precios atractivo. Vemos que sigue generando a buena velocidad, aún dividido entre dos gráficas, aún mientras estamos grabando, qué se yo. Y pues, tenemos ventana de contexto para aburrir, a pesar de todo lo que ha estado escribiendo, en conjunto con el megacódigo que está haciendo, estamos apenas al 2% de toda la ventana de contexto. Qué sucede entonces si no tenemos GPU? Pues lo cargamos en CPU y RAM, solo que preferentemente a lo mejor un modelo más pequeñito para que sea rápido o un modelo grande que quepa en nuestra RAM, pero que sea mezcla de expertos. O entre GPU y RAM, o qué se yo. La ventaja es eso, la versatilidad que nos da llama.cpp comparado con las librerías nativas de ejecución, los modelos en precisión original y formato original, que es .safe tensors, en vez de .gguf. Aquí claramente, pues, toda la información de la landing va a ser inventado, porque, pues, no le dijimos nada en específico. Eh, simplemente queremos ver qué tal estructura, qué tal sigue instrucciones, qué tal responde en cuanto a velocidad y todo ello. Y ya está por terminar, ya simplemente está haciendo código JavaScript. Perfecto. Vemos que con este megacódigo que escribió por aquí, apenas vamos al 3% de toda la ventana de contexto que tenemos cargada, y se puede ampliar hasta 1.10.000. Eh, damos entonces click aquí para previsualizar, y pues aquí está lo que nos hizo. Aquí parece que se inventó el la clase, el nombre del icono que iba a poner, así que, pues, no apareció nada. Las imágenes pues son imágenes de stock de alguna de algún repositorio, no es que el modelo haya hecho las imágenes, y bastante bien, la verdad. No, no veo mayor problema. Vamos a ver si es responsivo. Sí, también. Esto de aquí de cerrar es de llama.cpp, porque estamos en modo previsualización. El menú, sí, bastante bien. Entonces, ya sabemos cómo descargar y ejecutar modelos en llama.cpp. Ya podemos empezar a utilizarlos por aquí sin mayor problema. Podemos continuar en la conversación, regenerar, editar, copiar. Hay ajustes por acá, conectar MCPEs. Sin embargo, lo que vamos a estar haciendo en siguientes directos va a ser tener un mejor entorno para potenciar el modelo al máximo. El modelo es bueno de por sí, pero conectado a herramientas y a otras cosas, lo puede hacer aún más para hacer, entre comillas, entrenamiento de modelos. Y también después vamos a ver cómo podemos desarrollar y automatizar tareas. Eh, no desarrollar aquí que nos responda con el código. Sino que lea, escriba, actualice, instale, borre archivos y todo ello, y que por sí solo use el navegador o que busque en Internet, o qué se yo, un montón de cosas. Pero en general, pues ya vemos por aquí, una manera aparentemente difícil, pero que realmente es muy simple. Qué hemos hecho? Descargar llama.cpp y en este caso en concreto, las librerías CUDA. Descomprimir ambas cosas en la misma carpeta, descargar el modelo, ya sea pequeña o más grande, y tener un comando, pues, para la ejecución. Entramos a la URL para ver todo en el navegador y empezar a utilizar y, pues, todo bien. Por último, control C, control C para cerrar. Flecha hacia arriba. Este comando que tenemos aquí, si no nos lo queremos aprender de memoria, ni siempre estarlo escribiendo, vamos a copiarlo, click derecho, y simplemente lo que vamos a hacer, esto no, es dentro de nuestra carpeta de llama.cpp, hagamos un archivo, que se llame, por ejemplo, Qwen 3.5 9B. Lo abrimos, aquí se me abre con Visual Studio Code, pero bueno, puede ser bloc de notas, pegamos nuestro comando, guardamos el archivo, y algo a tener en cuenta, para realmente poderlo ejecutar, o sea, no abrir y copiar y pegar el código. Sino que esto sirva para ejecutar, vamos a cambiar la extensión a punto bat. Punto bat. Presionamos enter, sí, y entonces, vamos a cerrar nuestro CMD. Simplemente dando doble click, pues, ejecuta el comando. Y listo. Y ya si no queremos estar siempre copiando la URL, si es que vamos a usar esto en el navegador, pues lo añadimos a favoritos. Sin embargo, esto no es la forma en la que lo vamos a estar utilizando, pero, pues, se puede, pero hay mejores cosas para sacarle más provecho. Podemos subir, ah, cierto, cierto, recordemos, también hasta le podemos subir imágenes. No a todos los modelos, sino a este en concreto, porque tiene visión y porque cargamos su encoder de visión. Vamos a poner esta imagen. Describe la imagen. Comienza su razonamiento, que dijimos que también se le puede desactivar. Y pues, ahí está. La imagen muestra una ilustración estilo vectorial y minimalista de un astronauta flotando en el espacio. Pues, bastante bien. Perfecto. Pues si quieres seguir viendo este tipo de videos, porque esto apenas es el comienzo, da like y suscríbete.

LLAMA CPP 🧠 INSTALA una IA tipo ChatGPT en tu PC GRATIS e ILIMITADA
Nichonauta
34m 17s5,961 words~30 min read
Auto-Generated
Watch on YouTube
Share
MORE TRANSCRIPTS


