¡Buenas! Bienvenidos al disperso. Disperso tiempo es caso. Un podcast que se graba y
después se procesa en local, no en la nube.
Pues sí, así es. Ya sabéis que este podcast, en la medida en que me es posible, se
procesa en local, en mi ordenador o en algunos de los ordenadores que tengo por
aquí. Básicamente, por ejemplo, a la hora de hacer las transcripciones se utiliza un
software que, al final, por debajo lo que tiene es Whisper. Whisper es uno de esos,
bueno, pues, inteligencias artificiales, como lo llaman ahora, aunque sabéis que no me
gusta mucho el nombre. Al final son máquinas de inferencia, como decíamos en un
episodio anterior. Pero bueno, el caso es que es una de estas herramientas que
liberó OpenEye en aquellos momentos en que la parte de Open tenía más sentido que
ahora y que esté lo mejor que hay a la hora de pasar de lenguaje hablado a
lenguaje escrita. Quería probar a hacer más cosas en local y para ello me
puse a utilizar o a intentar utilizar LLMS pero de forma local. Vamos a ver, bueno,
LLM, ya sabéis que es Learned Language Model, lo que son pues ChagPT. ChagPT es un LLM,
un LLM que está preparado especialmente para conversar y para responder a las
preguntas que le hacemos. Partamos para empezar de que tengo un entorno bastante
limitado. Tengo un ordenador que tiene ya sus años, es un i5 de, bueno,
generación ya antigua y que tiene 8 gigas de memoria. Así que tampoco puedo
permitirme muchos lujos. Aquí no corre DeepSync ni nada parecido. El tipo de LLMS
de modelos generativos que puedo ejecutar en mi ordenador son modelos limitados.
Son modelos que además voy a tener que tirar de paciencia ya que no puedo
tirar de procesador. Y para ello lo que he usado es ham.i.
Ham.i, su gerencia es adminsmarcel, por cierto, que lo utiliza y lo había
recomendado en algún otro podcast. Bueno, pues ham.i lo que nos proporciona es por
un lado una interfaz parecida a la que estamos acostumbrados a ver en
herramientas como ChagPT o tantos otros. Bueno, pues al final una
interfaz en la que puedas escribir y te pueda proporcionar respuestas.
Ham.i está disponible para Windows, para Mac y para Linux, que es lo que me
interesaba. De hecho, en Debian directamente te proporciona un
dev que instala directamente en tu distribución. Aparte de lo que se
contaba, de que tiene el cuadro de chat, lo que también tiene es otra opción
en que te dejas seleccionar el modelo con el que haces la pregunta, el
modelo que vas a usar. Y de hecho tiene un buscador y puedes
buscar ahí entre varios modelos. En principio me pareció que tenía
una selección escasa, pero no no entiendo muy bien si es un problema
del programa o es un problema del usuario del programa, pero
dependiendo de cómo entrará veía más o menos modelos. El caso es que no,
no es escasa, hay un montón de ellos. Y además puedes importar
cualquier modelo en formato gguf. ¿Qué es eso de gguf?
A la hora de definir un modelo se puede definir de distintas formas.
Hay un montón de ficheros que conforman un modelo y gguf es un
empaquetado que se han inventado para poder proporcionar un único
fichero en el que esté todo el necesario para poder importar un
modelo. Hay otros empaquetados. Por lo visto esto sería parecido.
Tomáslo con todas las consideraciones y cuidados que hagan falta,
pero es parecido a lo que ocurre con el vídeo. Que al final tú tienes
avi que es un contenedor y dentro la película está codificada
en distintos formatos o están ahí también dentro de los subtítulos,
etcétera. Y todo ello dentro de ese contenedor es lo que te permite
ver la película con todas sus características. Bueno, como
decía, aquí también te permite importar modelos en formato
gguf. Que puedes encontrar, por ejemplo, en Hagenface. Hagenface es
una web seguramente de las más importantes que tiene
multitud de modelos y variaciones de modelos, de inteligencias
artificiales de modelos generativos. Y que, por cierto, es
europea, algo de lo que podemos estar orgullosos. Por debajo
de todo esto, al final lo que tenemos es Oyama. Oyama es
una interfaz de comandos que sirve para, pues bueno, lo que
quieres hacer con estas inteligencias artificiales, que al
final es cargarles en memoria y lanzarles comandos y que te
los responda, ¿no? Hanai sería un recubrimiento que hace que
sea bonito y que sea más fácil de usar por encima de
Oyama, que es, bueno, quien realmente está haciendo el
trabajo por debajo. Una cosa que me ha parecido chula de todo
esto, sobre todo teniendo en cuenta las limitaciones con
las que me movía, es que Han.ight muestra un carterito de
aviso, como quien dice, un icono al lado de cada modelo que va a
ser complicado que puedas ejecutar, ¿vale? Porque bien,
porque puede ser muy grande o te va a funcionar lento,
etcétera, ¿no? Bueno, eso te ayuda a no perder tiempo con
cosas que de otra forma, pues tampoco vas a poder
utilizar. Bueno, como os decía, al tener tan poca memoria
y procesador, pues tienes que utilizar modelos
generativos, lms, pequeños. Y más que pequeños, la palabra es
específicos. ¿Qué quiere decir eso? Todo este revolución de
los chat GP3 y etcétera ha venido, sobre todo, inicialmente
con estos modelos grandes, enormes de lenguaje que
podían hacer de todo. Pero claro, a medida que hemos
visto que era necesario poder adaptar estos modelos de
lenguaje a dispositivos que a lo mejor no se han
tan poderosos como pueden ser nuestros teléfonos,
aunque también os diré. Mi teléfono es casi más potente
que mi portátil ahora mismo. Pero bueno, el caso es que
a medida que hemos tenido que adaptar estos modelos
a dispositivos más limitados, se ha visto que se puede
disminuir la capacidad del tamaño de estos modelos,
obteniendo un rendimiento bastante interesante,
siempre que mantengas la funcionalidad del mismo,
bastante acotado. Y que los datos de entrenamiento,
los datos de los que se han nutrido, bueno, pues
estén bien elegidos. Digamos que cuando el modelo
es un modelo enorme de lenguaje, no importa tanto
que haya más más orilla por ahí, porque el
conjunto global de datos y la capacidad de
proceso va a hacer que sea capaz de sacar
las cosas más o menos bien. Pero cuando
estamos hablando de un modelo pequeño, no
puedes perder tiempo, esfuerzo, capacidad,
con datos que no necesitas. El caso es que a la hora
de meterme con este tema, pues, vi que había
LLMS que estaban marcados como IT y otros que
no. Y resulta que es que los que están
marcados como IT se refieren a que están
preparados para interactuar. Son modelos en
los que se espera que haya una
interacción, que haya un cambio entre una
persona, generalmente, y el modelo de
forma que esté preparado para seguir
instrucciones y para devolver respuestas.
Y, sin embargo, otros modelos que a lo
mejor no tienen esto, lo que están más
preparados es a lo que realmente se ha
dicho muchas veces, que es como se
inició todo este tema de los modelos
grandes de lenguaje y las herramientas
generativas, que son autocompletadores,
que tú le das un inicio de un
texto, o lo que sea, y ellos lo
continúan, lo completan, en la manera
en que creen que es más adecuado. En ese
sentido, por ejemplo, estuve viendo que
había modelos como Distilbert, o en
general todos los que son de la familia
vert, que están
preparados para ser utilizados
programáticamente. Estos modelos no
están pensados para meterlos en un
interfaz de tipo chat, y que por lo
esto son de lo que llaman un modelo de
tipo encoder. No son el tipo de
modelo típico que le decimos
Cuéntame un cuento y el te suelta un
cuento, sino que más bien sirve para
analizar un texto, no para generarlo, y
qué significado de analizar un
texto, que a lo mejor le pasa a un
texto, y él te dice, por ejemplo,
función de la cultura de despedido
también, el sentimiento que
expresa ese texto, si es un texto
triste, alegre, de enfadado, para
extrañatorias, para hacer un
resúmenes. Como veis, se trata
al ir a especificidades, ya nos
encontramos con cosas que tienen
funcionalidades muy específicas, y
que no es lo que el común de los
mortales entiende por un chat gpt.
Pero bueno, este no era el tipo de
modelo con el que quería probar, no
era el tipo de modelo que quería
meter, así que estos los aparte. Y me
metí más con modelos que son
modelos preparados para funcionar en
ordenadores, bueno, ordenadores,
máquinas, dispositivos, con
recursos limitados. Y, por ejemplo,
empecé con, bueno, uno de los que
probé fueron los modelos, sí, THI,
¿vale? Son los modelos de
Microsoft, que sacó como modelos
abiertos, podríamos decir, y que
son sus modelos más pequeños, más
mínimos. Por ejemplo, que yo
probé era de dos billones de
parámetros, ya sabéis, estas
cosas de los americanos, que son
en realidad dos mil millones de
parámetros. Bueno, pero este en
particular creo que era como dos
millones o menos, vale, menos
de hecho. Y que por lo que vi en la
frichada, Heimfeis, etcétera, decía
que tenía un buen rendimiento para
su tamaño. Así que, bueno, lo
levanté, me armé de paciencia,
empecé a hablar con él y mi
experiencia no fue la mejor del
mundo. ¿Por qué? Porque en
realidad, como decía estos
modelos, al ser específicos
están más preparados para
segunque cosas. Y seguramente
por mi torpeza, el modelo que
elegí estaba más preparado, no
tanto para conversar como para
trabajar con él. El modelo, a
medida que yo le preguntaba
cosas, él intentaba contestarme y
lo que intentaba también buscar
era acciones a realizar, no sé,
decía, y voy a arrancar el
programa de texto. Bueno, en
realidad no iba a arrancar
nada, pero digamos que el
modelo estaba siempre intentando
hacer algo en un sistema.
Viendo esto, entendí que no era
eso lo que yo estaba buscando.
Prove a utilizar Mistral. Mistral
es un modelo con 7 billones de
parámetros ahí. Ya estábamos
en el límite, o bueno, estábamos
en límite de lo que yo
en este ordenador puedo
llegar a utilizar. De hecho,
creo que este sobrepasa el
límite. De hecho, no tuve
paciencia para obtener una
respuesta, porque lo intenté, se
levantó correctamente, etcétera,
y al preguntarle, pues no acaba
de darme una respuesta. De hecho,
prove modelos cuantizados, que es
un modelo cuantizado. Digamos
que es un modelo comprimido,
resumiendo muchísimo. Un
arred neuronal de este tipo,
lo que tiene son un montón de...
voy a resumir mucho, pero
imaginamos que es un arred con
muchos nodos y en cada nodo
hay un número. Pues en un arred
normal, ese número a lo mejor
tiene 8 dígitos. Una
cuantización implica coger ese
número y quitarle, por ejemplo,
la mitad y quedarte sólo con
4 números. Al quedarte sólo con
4 números, el total del tamaño
que ocupa esa red acaba de
reducirse la mitad. Y como esos
números que he quitado son los
números del final, es muy
posible que los resultados que
proporcionen, bueno, no sean
los mismos, pero se acerquen
mucho. Entonces, esa es la
gracia de los modelos
cuantizados. Y con esta
herramienta, con esta
funcionalidad, puedes conseguir
que modelos muy potentes se
puedan ejecutar en sistemas que
no son tan potentes. Bueno,
pues intenté con Mistral tirar
de modelos cuantizados, y de
nuevo, seguramente por la
torpeza del usuario y no
tanto por las capacidades del
ordenador, pero no he
conseguido que funcionen los
modelos cuantizados. He tenido
mala experiencia con este y
con algún otro modelo
cuantizado que he probado. No
sé qué deciros, es ni
experiencia. Seguramente mucha
gente haya podido utilizar
modelos cuantizados, rechuce,
que se han usado, y por
ejemplo, con todo el tema
de DeepSeq, etcétera,
DeepSeq como tal, el modelo
enorme, no se puede usar en
un ordenador cualquiera,
pero modelos cuantizados de
DeepSeq, sí se pueden
utilizar en ordenadores
con tarjetas gráficas
tochas, de esas buenas, de
las que valen dinero, pero
que al fin y al cabo, son una
tarjeta en un ordenador, no
necesitas tener un servidor de
la NASA para ejecutarlo. Y
bueno, volviendo al tema de
lo que yo estaba intentando,
lo que yo estaba buscando, me
fui a los modelos de Google.
Los modelos de Google, ya
los que tengáis teléfonos de
Pixel, etcétera, sabréis
que existe Gemini, que es el
nuevo asistente, lo podemos
llamar, la inteligencia
artificial, como lo viene a
llamar. El caso es que Gemini
es la versión cerrada, como
dice, pero Google también
tiene una versión abierta que
se llama Gemma. Y dentro de
Gemma, uno de los...
Tienes también de distintos
tamaños, y el que tiene más
pequeño es el de dos
billones de embalgamentos,
dos mil millones. Que es el
que mejor me ha funcionado
personalmente. 50
instación, ¿vale? Directamente
el modelo como es. Me ha
funcionado unos cinco
tocas por segundo, que
seguramente aquí muchos
se lleven la mano a la cabeza,
pero para lo que yo quiera
hacer no es un problema,
principalmente porque lo
que yo quiero hacer no es
trabajar en el momento. Lo
que a mí me gustaría es
automatizar el tema de que
me proporcione un resumen
del episodio, que me
proporcione leads o ideas
para poner Twitch o
mensajes en redes, para
promocionarlo, etcétera.
Y entonces eso va a
ser automatizado. Y luego
esto lo tengo muy claro,
además, es que siempre
van a ser sugerencias.
Nunca va a ser algo que
se haga automáticamente.
Yo voy a tomar la última
decisión, siempre voy a
revisarlo y cambiarlo
seguramente, por lo que he
visto. Esto no está
como para poder dejar que
funcione con lo que
con lo que le metes, pero
es el que, bueno, me seguía,
me respondía, me seguía
las inscripciones que le
pasaban, le pasé una
transcripción. Me da la
impresión de que la ventana
de mensajes se le quedó
corta y se quedó con la
última parte de la transcripción,
porque, bueno, no
me acababa bien el resumen.
Entonces, tengo que tenerlo
en cuenta y tengo que revisar
a ver para asegurarme de que
cuando le pasa una transcripción,
a lo mejor tengo que pasar
en varias partes, etcétera,
para asegurarme de que lo
tenga entero.
Y luego, otra cosa que me
ha pasado con Gemma es que
solía tener tendencia a
responderme en inglés y cosas
así. Entonces, tengo que
avisarle, tengo que
incluirle en el prompt,
en la pregunta que
estoy haciendo para que me
dé la respuesta, que
quiero mis respuestas en
castellano, etcétera.
Incluso aún así, cuando le
pido las respuestas en
castellano, me hablan
inglés y luego lo que es
el mensaje, etcétera, me lo
ponen en castellano.
Entonces esa es la
experiencia que tenía con
Gemma. Aparte, y de este
no tengo notas, porque ya lo
hice después de tomar notas,
probé con Open Yama.
Open Yama 3.2, que era
un modelo también, creo que
de 2, 3, creo que estaba
por 4 billones en parámetros.
O sea, no es tan grande
como Mistral, pero tampoco
es tan pequeño como Gemma.
Y en este caso, además,
también me aseguré de no
tener, porque como decía,
esto es muy dependiente de la
gamentidad de memoria que tengas
disponible, etcétera.
Y me aseguré de no
tener nada abierto.
Y entonces Open Yama,
sin cuantización, en este
modelo bastante pequeño,
me ha funcionado también muy
bien.
En este caso, me aguantaba
mucho mejor el tema de
responderme en castellano
y de... bueno, era bastante
ágil respondiendo.
Así que tengo que hacer
algunas pruebas más, pero
Gemma, Open Yama,
alguno de estos será los
que... los que utilicen.
Bueno, me llevará tiempo,
todavía eso no va a ser
de un día para otro.
Pero, como conclusiones,
me gustaría
sacar algunas conclusiones
de este... de este trabajo,
de este tiempo que he dedicado, ¿no?
Me parece que es interesante
poder ejecutar modelos
de forma local
y poder ejecutarlos de esta forma.
Un ordenador que al
fin y al cabo,
seguramente muchos de vosotros
tengáis o tengáis algo mejor.
Por varias razones,
pues, por una parte,
porque nos estamos
asegurando de que lo que
estamos ejecutando,
nos está ejecutándose
en un centro de datos,
debes ver dónde
y que, por lo tanto,
los datos que estamos proporcionando
no se están luego usando
para ver qué.
Esto os aseguro
que lo que ejecutas
no sale de vuestro ordenador,
a menos que vosotros quedáis.
¿Qué más es interesante
con respecto al tema
de ejecutarlos en forma local?
Bueno, al ser una ejecución
de más específica,
más preparada, más propia,
quieras que no,
la cantidad de energía
necesaria para hacerlo
es mucho menor.
Además, seguramente,
la mayoría de vosotros
no dispongáis de cpds en casa.
Y el tema del gasto energético
en los cpds
es porque hay que mantenerlos
pues bastante fresquitos,
vale, para que las máquinas
no salgan ardiendo.
Y bueno, ya en alguna ocasión,
en algún episodio más adelante,
me gustaría tratar esto
más en detalle
todo el tema este,
pero dejémoslo
en que ejecutar
tus modelos de forma local
parece ser un poco más ecológico.
Otra cosa interesante de esto
es que los resultados,
a lo mejor, no son los mejores.
Seguramente, si se los pides a Dixie,
que hacía GPT,
4.0 ms la que hay en saca ahora,
sean más mejores,
más específicos,
más verboses,
desde más información, etcétera.
Pero para sacar leads
para redes sociales
o para proponerte hashtags,
a hacer pequeños resumos, etcétera,
no necesitas un ordenador de la NASA.
Es un poco la conclusión
a la que llego.
Y al final, muchas veces, para mí,
por lo menos,
el tema de la inteligencia artificial,
lo que tienes, es un acompañante,
una ayuda.
Y en este caso, ese es el uso
que le puedes dar
con una cantidad de esfuerzo pequeño.
Entonces, bueno,
te ayuda a superar
ese miedo a la hoja en blanco.
Os recomendaría,
por lo menos, si os apetece,
si os da interés este tema,
visitaros ham.ai
y hacer vuestras propias pruebas.
Además, en función de vuestro ordenador,
podéis elegir modelos más o menos potentes
y veréis que los resultados
son más o menos chulos.
Y en cualquier caso,
al estar más cerca de cómo funcionan estas cosas,
seguro que aprendéis mucho más o, bueno,
descubrí cosas que hasta ahora
ni os habíais planteado
de cómo funcionan estas máquinas del demonio.
Así podamos combatir también
cierta tendencia que estoy detectando.
Bueno, pues, a la intolerancia,
directamente desde el desconocimiento,
en muchos casos,
de cómo funcionan estos softwares
y de realmente qué uso pueden tener
y qué cosas son todo humo.
Espero que el episodio os haya servido
y, bueno, volveremos.
Volveremos por la idea
que poco me gusta llamarlo así,
o en general,
sobre los modelos de lenguaje
o modelos generativos.
Y bueno, aquí acaba este episodio del podcast,
que hasta ahora estaba mi cabeza
y que ahora está en la de todos vosotros.
Así que, tratadlo bien
y compartidlo si os ha gustado.
Podéis encontrar medios de contacto,
formar suscribiros al podcast, etc.
En tiempoescaso.com
y espero que nos escuchemos pronto.
En el laberinto
5 caminos se abren ante ti.
Cultura, lucha libre,
accesibilidad,
experiencias y evidencias.
El laberinto del minotauro
VK, en el que cada día
recordas un sendero
en no más de 15 minutos.
Búscalo en tu reproductor de podcast.