{"id":748,"date":"2025-11-26T22:32:34","date_gmt":"2025-11-26T21:32:34","guid":{"rendered":"https:\/\/jagumiel.xyz\/blog\/?p=748"},"modified":"2025-11-26T22:32:34","modified_gmt":"2025-11-26T21:32:34","slug":"llm-en-orange-pi-rv2-ia-generativa-en-risc-v","status":"publish","type":"post","link":"https:\/\/jagumiel.xyz\/blog\/2025\/11\/26\/llm-en-orange-pi-rv2-ia-generativa-en-risc-v\/","title":{"rendered":"LLM en Orange Pi RV2: IA generativa en RISC-V"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\">Introducci\u00f3n<\/h2>\n\n\n\n<p>Hace solo un par de a\u00f1os, la idea de ejecutar un <strong>LLM (Large Language Model)<\/strong>\u2014esa inteligencia artificial que potencia asistentes como ChatGPT o Gemini\u2014en un sistema <a href=\"https:\/\/jagumiel.xyz\/blog\/2019\/01\/25\/soc-fpga-la-union-de-cpu-%c2%b5c-y-fpga\/\" target=\"_blank\" rel=\"noopener nofollow sponsored ugc\" title=\"SoC-FPGA: CPU y FPGA integrados en un solo chip\">embebido<\/a> del tama\u00f1o de una tarjeta de cr\u00e9dito que ronda los 60 euros sonaba a ciencia ficci\u00f3n. Y ni que decir tiene si adem\u00e1s se trata de una arquitectura RISC-V. Pero la <strong>Orange Pi RV2<\/strong> lleg\u00f3 para romper todos los esquemas.<\/p>\n\n\n\n<p>Esta placa de desarrollo apareci\u00f3 a principios de 2025 e incorpora un <strong>SoC Ky X1<\/strong> con un procesador RISC-V de 8 n\u00facleos. Adem\u00e1s, dice contar con un acelerador neuronal dedicado, prometiendo<strong> 2 TOPS<\/strong> (2 billones de operaciones por segundo). Aunque algunas webs lo describen como una NPU, en realidad se trata de un bloque de hardware especializado dentro del chip: un co-procesador matem\u00e1tico que acelera operaciones tensoriales o convoluciones mediante vectorizaci\u00f3n, pero no es una NPU independiente. Pero lo que s\u00ed es cierto es que est\u00e1 dise\u00f1ada para desplegar modelos de <strong>inteligencia artificial en el borde<\/strong> (<em>AI on-the-edge<\/em>).<\/p>\n\n\n\n<div id=\"attachment_753\" style=\"width: 1021px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/jagumiel.xyz\/blog\/wp-content\/uploads\/2025\/11\/1-orange_pi_rv2_foto_real.png\">\n<img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-753\" class=\"aligncenter size-full wp-image-753\" \n     src=\"https:\/\/jagumiel.xyz\/blog\/wp-content\/uploads\/2025\/11\/1-orange_pi_rv2_foto_real.png\" \n     alt=\"Fotograf\u00eda real de una Orange Pi RV2 con doble puerto Ethernet y antena WiFi y acelerador de IA para ejecuci\u00f3n de LLM\" \n     width=\"1011\" height=\"650\" srcset=\"https:\/\/jagumiel.xyz\/blog\/wp-content\/uploads\/2025\/11\/1-orange_pi_rv2_foto_real.png 1011w, https:\/\/jagumiel.xyz\/blog\/wp-content\/uploads\/2025\/11\/1-orange_pi_rv2_foto_real-300x193.png 300w, https:\/\/jagumiel.xyz\/blog\/wp-content\/uploads\/2025\/11\/1-orange_pi_rv2_foto_real-768x494.png 768w, https:\/\/jagumiel.xyz\/blog\/wp-content\/uploads\/2025\/11\/1-orange_pi_rv2_foto_real-150x96.png 150w\" sizes=\"auto, (max-width: 1011px) 100vw, 1011px\" \/>\n<\/a><p id=\"caption-attachment-753\" class=\"wp-caption-text\">Imagen 1. Vista frontal de la Orange Pi RV2, usada en este art\u00edculo para ejecutar localmente un modelo de lenguaje (LLM) como Qwen2-1.5B en RISC-V.<\/p><\/div>\n\n\n\n<p>Orange Pi liber\u00f3 recientemente software y modelos optimizados para desplegar un LLM en la RV2, lo que me dio la excusa perfecta para experimentar. En este post, te cuento <strong>c\u00f3mo logr\u00e9 hacer correr un modelo de IA generativa de forma local en esta Orange Pi RV2<\/strong> y, lo m\u00e1s importante, <strong>qu\u00e9 tal fue la experiencia<\/strong>. \u00bfEstamos ante el inicio de una nueva era de accesibilidad para la IA? \u00a1Vamos a descubrirlo!<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Orange Pi RV2: Una aproximaci\u00f3n a este SBC<\/h2>\n\n\n\n<p>Antes de entrar en materia, conviene repasar las principales caracter\u00edsticas de esta sistema embebido.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Hardware<\/h3>\n\n\n\n<p>En el apartado de puertos, encontramos tres USB 3.0 Tipo-A para perif\u00e9ricos de alta velocidad, complementados con un cuarto puerto USB 2.0 Tipo-A ideal para teclado o rat\u00f3n. Para la visualizaci\u00f3n y el audio, cuenta con una salida HDMI y un conector de audio de 3,5 mm, ofreciendo la experiencia b\u00e1sica de un miniordenador.<\/p>\n\n\n\n<p>Sin embargo, donde realmente destaca es en su capacidad de expansi\u00f3n y red. Posee dos puertos Gigabit Ethernet, abriendo las puertas a proyectos en los que busquemos usarla como <em>router <\/em>o <em>firewall<\/em>. El almacenamiento puede gestionarse a trav\u00e9s de una ranura para memoria microSD, pero podemos ir m\u00e1s all\u00e1, instalando un SSD NVMe en la ranura M.2 2280 a trav\u00e9s de PCIe 2.0 x2, lo que servir\u00e1 para trabajar con los pesados archivos de los modelos de IA.<\/p>\n\n\n\n<p>Para proyectos de visi\u00f3n por computador cuenta con dos conectores MIPI-CSI, d\u00f3nde se pueden conectar dos c\u00e1maras, as\u00ed como un conector MIPI-DSI para conectar una pantalla. Si queremos integrar sensores, actuadores, o establecer comunicaciones, la Orange Pi RV2 dispone de un cabezal GPIO de 26 pines. Y lo mejor de todo, la placa se alimenta mediante un puerto USB Tipo-C, por lo que podremos alimentarla con un cargador de m\u00f3vil o una <em>powerbank<\/em>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Variedad de im\u00e1genes<\/h3>\n\n\n\n<p>Esta versatilidad de hardware se ve potenciada por una variedad de im\u00e1genes listas para utilizar. Para nuestro experimento con LLMs la elecci\u00f3n l\u00f3gica fue Ubuntu, por ser un entorno de prop\u00f3sito general, familiar y con un amplio soporte. No obstante, su potencial no se limita a esto. La RV2 tambi\u00e9n acepta sistemas especializados como OpenWRT, lo que, unido a sus dos puertos de red Gigabit, la convierte en una plataforma excelente para construir <em>routers <\/em>personalizados o <em>appliances <\/em>de red, como ya adelant\u00e1bamos.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Pasos para instalar y ejecutar un modelo LLM en la RV2<\/h2>\n\n\n\n<p>Para esta primera prueba, me decant\u00e9 por uno de los modelos proporcionados por la comunidad de Orange Pi: <strong>Qwen2-1.5B<\/strong>, un modelo de lenguaje abierto de 1.500 millones de par\u00e1metros desarrollado por Alibaba. Era la opci\u00f3n perfecta: lo suficientemente reciente como para ser competente, y lo suficientemente ligero (en su versi\u00f3n cuantizada a 4 bits ocupa unos ~1,2 GB) para ser manejable en los 8 GB de RAM de la RV2.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Preparando el entorno<\/h3>\n\n\n\n<p>Con la Orange Pi RV2 ya funcionando con Ubuntu 24.04 y conectada a internet, lo primero fue clonar el <a href=\"https:\/\/github.com\/thanhtantran\/RiscV-KyX1-LLM-Demo\" target=\"_blank\" rel=\"noopener nofollow\" title=\"Demo LLM AI on RISC-V KyX1 Orange Pi RV2 \">repositorio <code>RiscV-KyX1-LLM-Demo<\/code> desde GitHub<\/a>. Este repositorio es el kit de herramientas esencial, ya que contiene todos los scripts y la base para ejecutar varios modelos compatibles con el SoC Ky X1.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>git clone https:\/\/github.com\/thanhtantran\/RiscV-KyX1-LLM-Demo\ncd RiscV-KyX1-LLM-Demo\/python<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Instalando el Motor de Inferencia: ONNX Runtime Adaptado<\/h3>\n\n\n\n<p>Orange Pi suministr\u00f3 binarios de una versi\u00f3n de <strong>ONNX Runtime<\/strong> adaptada a este chip. En particular, se proporcionan dos archivos wheel:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>onnxruntime_genai-0.4.0.dev1-linux_riscv64.whl<\/code>: Una versi\u00f3n especial de ONNX Runtime para IA generativa.<\/li>\n\n\n\n<li><code>ky_ort-1.2.2-linux_riscv64.whl<\/code>: Lo que parece ser el \u00abproveedor\u00bb o driver que permite ejecutar los modelos utilizando el acelerador neuronal \u00abKy\u00bb del Ky X1.<\/li>\n<\/ul>\n\n\n\n<p>Para instalarlos ejecut\u00e9 el siguiente comando (usando <code>pip3<\/code> en Python 3.12 incluido con Ubuntu):<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>pip3 install .\/onnxruntime_genai-0.4.0.dev1-cp312-cp312-linux_riscv64.whl \\\n             .\/ky_ort-1.2.2-cp312-cp312-linux_riscv64.whl  --break-system-packages<\/code><\/pre>\n\n\n\n<p><strong>Nota:<\/strong><em> La opci\u00f3n <code>--break-system-packages<\/code> fue necesaria para instalar los paquetes a nivel de sistema. Una alternativa m\u00e1s limpia ser\u00eda usar un entorno virtual de Python.<\/em><\/p>\n\n\n\n<p>Tambi\u00e9n, como indican las instrucciones, agregu\u00e9 la carpeta de binarios de Python al PATH:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>export PATH=\"$PATH:\/home\/orangepi\/.local\/bin\"<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Descargar el modelo LLM cuantizado preparado:<\/h3>\n\n\n\n<p>El repositorio incluye un script muy \u00fatil, <code>download_models.sh<\/code>, que automatiza la descarga de los modelos ya convertidos y optimizados. Estos modelos han sido previamente cuantizados (pesos en 4 bits) y empaquetados listos para ONNX en la RV2.<\/p>\n\n\n\n<p>Primero, asegur\u00e9 de tener la utilidad <code>gdown<\/code> para descargar de Google Drive, y luego ejecut\u00e9 el script:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>pip3 install gdown \nsudo chmod +x download_models.sh\n.\/download_models.sh<\/code><\/pre>\n\n\n\n<p>El script es interactivo: te pide el ID de Google Drive del modelo que quieres. Tras introducir el ID correspondiente a <code>qwen2-int4-1.5b<\/code>, el script se puso en marcha, descargando y descomprimiendo autom\u00e1ticamente el modelo en la carpeta <code>models\/<\/code>. \u00a1Y listo para usar! Con esto el modelo de la IA estaba en su sitio.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Ejecutar el LLM en modo inferencia interactiva<\/h3>\n\n\n\n<p>Finalmente lleg\u00f3 el momento de la verdad. El repositorio trae un script de inferencia llamado <code>llm_qa.py<\/code> que permite cargar el modelo y entablar un di\u00e1logo por consola (un estilo de <em>chatbot<\/em> sencillo). Para lanzar el modelo Qwen2 1.5B utilic\u00e9 la siguiente orden, tal como indica la documentaci\u00f3n<a href=\"https:\/\/orangepi.vn\/huong-dan-cai-dat-va-chay-llm-ai-tren-orange-pi-rv2-voi-risc-v-kyx1.html?srsltid=AfmBOopf7d5CPm_0wzwb0rdecM00dv-JRHEUOw_amJmsrhK8lvT6ev43#:~:text=v%C3%AD%20d%E1%BB%A5%20%C4%91%E1%BB%83%20ch%E1%BA%A1y%20qwen2,b%E1%BA%A1n%20d%C3%B9ng\" target=\"_blank\" rel=\"noreferrer noopener\"><\/a>:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>python3 llm_qa.py -m .\/models\/qwen2-int4-1.5b -l 128 -e qwen2 -v -g\n<\/code><\/pre>\n\n\n\n<p>Donde:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>-m<\/code> especifica la ruta del modelo a cargar.<\/li>\n\n\n\n<li><code>-l 128<\/code> establece la longitud m\u00e1xima de respuesta en 128 tokens.<\/li>\n\n\n\n<li><code>-e qwen2<\/code> indica el tipo\/estructura de modelo (en este caso Qwen).<\/li>\n\n\n\n<li>Las opciones <code>-v -g<\/code> activan un modo <em>verboso<\/em> que imprime informaci\u00f3n de rendimiento y habilitan la generaci\u00f3n (<em>greedy<\/em> por defecto).<\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\">Primera prueba: Probando el LLM en castellano<\/h4>\n\n\n\n<p>El script carg\u00f3 el modelo en memoria y lanz\u00f3 un prompt interactivo. Escrib\u00ed <code>Hola<\/code> para probar, y en unos segundos obtuve la respuesta de la IA. En efecto, el <strong>modelo respondi\u00f3 en espa\u00f1ol<\/strong> a mi saludo inicial: <em>\u00ab\u00a1Hola! \u00bfC\u00f3mo puedo ayudarte hoy?\u00bb<\/em>. \u00a1Ten\u00edamos un asistente de IA ejecut\u00e1ndose localmente en la Orange Pi RV2! A continuaci\u00f3n, realic\u00e9 algunas preguntas simples. Por ejemplo, al preguntarle <em>\u201c\u00bfQui\u00e9n eres?\u201d<\/em>, contest\u00f3 <em>\u201csoy una inteligencia artificial dise\u00f1ada para ayudarte a responder preguntas y proporcionar informaci\u00f3n&#8230;\u201d<\/em>.<\/p>\n\n\n<div id=\"attachment_754\" style=\"width: 856px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-754\" class=\"aligncenter size-full wp-image-754\" \n     src=\"https:\/\/jagumiel.xyz\/blog\/wp-content\/uploads\/2025\/11\/2-qwen_llm_orangepi_rv2_respuesta_hola.png\" \n     alt=\"Consola mostrando la respuesta del modelo LLM Qwen2-1.5B a entradas en espa\u00f1ol ejecutado en Orange Pi RV2\" \n     width=\"846\" height=\"347\" srcset=\"https:\/\/jagumiel.xyz\/blog\/wp-content\/uploads\/2025\/11\/2-qwen_llm_orangepi_rv2_respuesta_hola.png 846w, https:\/\/jagumiel.xyz\/blog\/wp-content\/uploads\/2025\/11\/2-qwen_llm_orangepi_rv2_respuesta_hola-300x123.png 300w, https:\/\/jagumiel.xyz\/blog\/wp-content\/uploads\/2025\/11\/2-qwen_llm_orangepi_rv2_respuesta_hola-768x315.png 768w, https:\/\/jagumiel.xyz\/blog\/wp-content\/uploads\/2025\/11\/2-qwen_llm_orangepi_rv2_respuesta_hola-150x62.png 150w\" sizes=\"auto, (max-width: 846px) 100vw, 846px\" \/><p id=\"caption-attachment-754\" class=\"wp-caption-text\"><br \/>\n<\/a><br \/>\nImagen 2. El modelo Qwen2-1.5B genera respuestas en espa\u00f1ol desde la Orange Pi RV2, incluyendo interacciones b\u00e1sicas como saludos o identificaci\u00f3n.<br \/><\/p><\/div>\n\n\n<h4 class=\"wp-block-heading\">Segunda prueba: Probando otros idiomas y preguntas m\u00e1s complejas<\/h4>\n\n\n\n<p>Tambi\u00e9n decid\u00ed probar la capacidad del modelo para entender mezclas de idiomas, un fen\u00f3meno com\u00fan en el lenguaje cotidiano. Le pregunt\u00e9 directamente: \u00ab<em>What does &#8216;Je voudrais un caf\u00e9, please&#8217; mean in English?<\/em>\u00ab. El modelo respondi\u00f3 con soltura, reconociendo tanto el franc\u00e9s como el ingl\u00e9s mezclados en la frase, y lo que es m\u00e1s, ofreci\u00f3 una explicaci\u00f3n contextual \u2014algo que me pareci\u00f3 notable trat\u00e1ndose de un modelo peque\u00f1o (1.5B). <\/p>\n\n\n\n<p>Para <em>estresarlo <\/em>un poco m\u00e1s, lanc\u00e9 otra instrucci\u00f3n m\u00e1s acad\u00e9mica: \u00ab<em>Explain how photosynthesis works in simple terms<\/em>\u00ab. La respuesta fue extensa, ordenada, e incluso pedag\u00f3gica. Describi\u00f3 la fotos\u00edntesis mencionando la funci\u00f3n de la clorofila, la absorci\u00f3n de luz, la producci\u00f3n de glucosa y ox\u00edgeno, y lo resumi\u00f3 con una frase clara sobre su importancia para la vida en la Tierra. Si cometi\u00f3 un ligero error cuando dijo que la clorofila absorbe la longitud de onda del color verde, en realidad la refleja.<\/p>\n\n\n\n<div id=\"attachment_755\" style=\"width: 873px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/jagumiel.xyz\/blog\/wp-content\/uploads\/2025\/11\/3-qwen_llm_orangepi_rv2_traduccion_y_fotosintesis.png\">\n<img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-755\" class=\"aligncenter size-full wp-image-755\" \n     src=\"https:\/\/jagumiel.xyz\/blog\/wp-content\/uploads\/2025\/11\/3-qwen_llm_orangepi_rv2_traduccion_y_fotosintesis.png\" \n     alt=\"Terminal ejecutando el modelo Qwen2-1.5B en Orange Pi RV2 traduciendo y explicando fotos\u00edntesis\" \n     width=\"863\" height=\"655\" \/>\n<\/a><p id=\"caption-attachment-755\" class=\"wp-caption-text\">Imagen 3. Ejemplo de respuesta larga del modelo Qwen2-1.5B en Orange Pi RV2: traducci\u00f3n de una frase franc\u00e9s-ingl\u00e9s y explicaci\u00f3n detallada sobre fotos\u00edntesis.<\/p><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Conclusiones: Orange Pi RV2 y LLM Qwen 1.5B<\/h2>\n\n\n\n<p>Ejecutar un modelo de lenguaje cuantizado en una Orange Pi RV2 ha sido un desaf\u00edo bastante divertido. He comprobado que hoy es posible tener un sistema generativo funcional en una placa de apenas 60\u202f\u20ac, sin conexi\u00f3n a la nube y usando una arquitectura abierta como RISC-V. Por otro lado, me llevo el chasco de que pese al anuncio de \u201c2\u202fTOPS de aceleraci\u00f3n de IA\u201d no hay una verdadera NPU, sino un conjunto de extensiones vectoriales y quiz\u00e1s alg\u00fan coprocesador menor, pero no un subsistema neuronal aut\u00f3nomo.<\/p>\n\n\n\n<p> El rendimiento (que ronda de <strong>4.5 a 5 tokens por segundo<\/strong>, con tiempos de arranque de unos 5\u20136 segundos por respuesta) es razonable para un modelo de 1.5B par\u00e1metros, pero limitado para usos interactivos continuos o contextos largos.<\/p>\n\n\n\n<p>La pregunta del mill\u00f3n: <strong>\u00bfEs la RV2 una plataforma viable para desplegar LLMs?<\/strong> En tareas ligeras, demostraciones, asistentes de prop\u00f3sito espec\u00edfico o entornos desconectados, la respuesta es s\u00ed. Pero conviene ser honesto: estamos ante un procesador generalista con vectorizaci\u00f3n RISC-V, no ante un chip optimizado para inferencia masiva. Hay otros dispositivos, como la Google Coral o algunos chips de NXP (i.MX8MP, i.MX95) que s\u00ed tienen una NPU de verdad (<em>TPU en el caso de Google<\/em>).<\/p>\n\n\n\n<p>Pr\u00f3ximamente intentar\u00e9 sacarle m\u00e1s jugo a esta tarjeta. Me gustar\u00eda probar alg\u00fan modelo de detecci\u00f3n de objetos y ver qu\u00e9 tal se comporta. Y sobretodo, ver si se puede explotar a\u00fan m\u00e1s la aceleraci\u00f3n por HW de las inferencias.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Galer\u00eda<\/h2>\n\n\n\n\t\t<style type=\"text\/css\">\n\t\t\t#gallery-1 {\n\t\t\t\tmargin: auto;\n\t\t\t}\n\t\t\t#gallery-1 .gallery-item {\n\t\t\t\tfloat: left;\n\t\t\t\tmargin-top: 10px;\n\t\t\t\ttext-align: center;\n\t\t\t\twidth: 33%;\n\t\t\t}\n\t\t\t#gallery-1 img {\n\t\t\t\tborder: 2px solid #cfcfcf;\n\t\t\t}\n\t\t\t#gallery-1 .gallery-caption {\n\t\t\t\tmargin-left: 0;\n\t\t\t}\n\t\t\t\/* see gallery_shortcode() in wp-includes\/media.php *\/\n\t\t<\/style>\n\t\t<div id='gallery-1' class='gallery galleryid-748 gallery-columns-3 gallery-size-small'><dl class='gallery-item'>\n\t\t\t<dt class='gallery-icon landscape'>\n\t\t\t\t<a href='https:\/\/jagumiel.xyz\/blog\/1-orange_pi_rv2_foto_real\/'><img loading=\"lazy\" decoding=\"async\" width=\"1011\" height=\"650\" src=\"https:\/\/jagumiel.xyz\/blog\/wp-content\/uploads\/2025\/11\/1-orange_pi_rv2_foto_real.png\" class=\"attachment-small size-small\" alt=\"Fotograf\u00eda real de una Orange Pi RV2 con doble puerto Ethernet y antena WiFi y acelerador de IA para ejecuci\u00f3n de LLM.\" aria-describedby=\"gallery-1-753\" srcset=\"https:\/\/jagumiel.xyz\/blog\/wp-content\/uploads\/2025\/11\/1-orange_pi_rv2_foto_real.png 1011w, https:\/\/jagumiel.xyz\/blog\/wp-content\/uploads\/2025\/11\/1-orange_pi_rv2_foto_real-300x193.png 300w, https:\/\/jagumiel.xyz\/blog\/wp-content\/uploads\/2025\/11\/1-orange_pi_rv2_foto_real-768x494.png 768w, https:\/\/jagumiel.xyz\/blog\/wp-content\/uploads\/2025\/11\/1-orange_pi_rv2_foto_real-150x96.png 150w\" sizes=\"auto, (max-width: 1011px) 100vw, 1011px\" \/><\/a>\n\t\t\t<\/dt>\n\t\t\t\t<dd class='wp-caption-text gallery-caption' id='gallery-1-753'>\n\t\t\t\tImagen real de la Orange Pi RV2 utilizada para correr el modelo LLM Qwen2-1.5B.\n\t\t\t\t<\/dd><\/dl><dl class='gallery-item'>\n\t\t\t<dt class='gallery-icon landscape'>\n\t\t\t\t<a href='https:\/\/jagumiel.xyz\/blog\/2-qwen_llm_orangepi_rv2_respuesta_hola\/'><img loading=\"lazy\" decoding=\"async\" width=\"846\" height=\"347\" src=\"https:\/\/jagumiel.xyz\/blog\/wp-content\/uploads\/2025\/11\/2-qwen_llm_orangepi_rv2_respuesta_hola.png\" class=\"attachment-small size-small\" alt=\"Consola mostrando la respuesta del modelo LLM Qwen2-1.5B a entradas en espa\u00f1ol ejecutado en Orange Pi RV2\" aria-describedby=\"gallery-1-754\" srcset=\"https:\/\/jagumiel.xyz\/blog\/wp-content\/uploads\/2025\/11\/2-qwen_llm_orangepi_rv2_respuesta_hola.png 846w, https:\/\/jagumiel.xyz\/blog\/wp-content\/uploads\/2025\/11\/2-qwen_llm_orangepi_rv2_respuesta_hola-300x123.png 300w, https:\/\/jagumiel.xyz\/blog\/wp-content\/uploads\/2025\/11\/2-qwen_llm_orangepi_rv2_respuesta_hola-768x315.png 768w, https:\/\/jagumiel.xyz\/blog\/wp-content\/uploads\/2025\/11\/2-qwen_llm_orangepi_rv2_respuesta_hola-150x62.png 150w\" sizes=\"auto, (max-width: 846px) 100vw, 846px\" \/><\/a>\n\t\t\t<\/dt>\n\t\t\t\t<dd class='wp-caption-text gallery-caption' id='gallery-1-754'>\n\t\t\t\tQwen LLM responde \u201cHola\u201d y \u201c\u00bfQui\u00e9n eres?\u201d ejecut\u00e1ndose localmente en la Orange Pi RV2.\n\t\t\t\t<\/dd><\/dl><dl class='gallery-item'>\n\t\t\t<dt class='gallery-icon landscape'>\n\t\t\t\t<a href='https:\/\/jagumiel.xyz\/blog\/3-qwen_llm_orangepi_rv2_traduccion_y_fotosintesis\/'><img loading=\"lazy\" decoding=\"async\" width=\"865\" height=\"686\" src=\"https:\/\/jagumiel.xyz\/blog\/wp-content\/uploads\/2025\/11\/3-qwen_llm_orangepi_rv2_traduccion_y_fotosintesis.png\" class=\"attachment-small size-small\" alt=\"Terminal ejecutando el modelo Qwen2-1.5B en Orange Pi RV2 traduciendo y explicando fotos\u00edntesis\" aria-describedby=\"gallery-1-755\" srcset=\"https:\/\/jagumiel.xyz\/blog\/wp-content\/uploads\/2025\/11\/3-qwen_llm_orangepi_rv2_traduccion_y_fotosintesis.png 865w, https:\/\/jagumiel.xyz\/blog\/wp-content\/uploads\/2025\/11\/3-qwen_llm_orangepi_rv2_traduccion_y_fotosintesis-300x238.png 300w, https:\/\/jagumiel.xyz\/blog\/wp-content\/uploads\/2025\/11\/3-qwen_llm_orangepi_rv2_traduccion_y_fotosintesis-768x609.png 768w, https:\/\/jagumiel.xyz\/blog\/wp-content\/uploads\/2025\/11\/3-qwen_llm_orangepi_rv2_traduccion_y_fotosintesis-150x119.png 150w\" sizes=\"auto, (max-width: 865px) 100vw, 865px\" \/><\/a>\n\t\t\t<\/dt>\n\t\t\t\t<dd class='wp-caption-text gallery-caption' id='gallery-1-755'>\n\t\t\t\tEl modelo Qwen LLM traduce una frase en franc\u00e9s e ingl\u00e9s y explica la fotos\u00edntesis desde la Orange Pi RV2.\n\t\t\t\t<\/dd><\/dl><br style=\"clear: both\" \/>\n\t\t<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Ejecuta un LLM localmente en una Orange Pi RV2 con RISC-V. Tutorial, rendimiento real y reflexi\u00f3n sobre su \u201cacelerador IA\u201d.<\/p>\n<p class=\"continue-reading-button\"> <a class=\"continue-reading-link\" href=\"https:\/\/jagumiel.xyz\/blog\/2025\/11\/26\/llm-en-orange-pi-rv2-ia-generativa-en-risc-v\/\">Continue reading<i class=\"crycon-right-dir\"><\/i><\/a><\/p>\n","protected":false},"author":1,"featured_media":758,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"om_disable_all_campaigns":false,"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"_uf_show_specific_survey":0,"_uf_disable_surveys":false,"footnotes":""},"categories":[112,37],"tags":[8,113,114,116,115,9],"class_list":["post-748","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-inteligencia-artificial","category-linux","tag-diy","tag-edge-computing","tag-llm","tag-orange-pi-rv2","tag-qwen","tag-weekend-projects"],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/jagumiel.xyz\/blog\/wp-json\/wp\/v2\/posts\/748","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/jagumiel.xyz\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/jagumiel.xyz\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/jagumiel.xyz\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/jagumiel.xyz\/blog\/wp-json\/wp\/v2\/comments?post=748"}],"version-history":[{"count":10,"href":"https:\/\/jagumiel.xyz\/blog\/wp-json\/wp\/v2\/posts\/748\/revisions"}],"predecessor-version":[{"id":766,"href":"https:\/\/jagumiel.xyz\/blog\/wp-json\/wp\/v2\/posts\/748\/revisions\/766"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/jagumiel.xyz\/blog\/wp-json\/wp\/v2\/media\/758"}],"wp:attachment":[{"href":"https:\/\/jagumiel.xyz\/blog\/wp-json\/wp\/v2\/media?parent=748"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/jagumiel.xyz\/blog\/wp-json\/wp\/v2\/categories?post=748"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/jagumiel.xyz\/blog\/wp-json\/wp\/v2\/tags?post=748"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}