El asistente de código watsonx utiliza los modelos Granite 3.0 recientemente anunciados para proporcionar asistencia de codificación de uso general en múltiples lenguajes de programación.
Cuando IBM anunció en mayo de 2023 que sus herramientas de inteligencia artificial generativa (IA generativa) estaban siendo utilizadas por watsonx, su asistente de IA, para ayudar a las empresas a modernizar sus aplicaciones de mainframe mediante la traducción de código COBOL a Java, era sólo el comienzo de sus esfuerzos por aprovechar la IA generativa para desarrolladores.
El gigante azul ha dado otro salto adelante con el anuncio el pasado lunes del asistente de código watsonx para la codificación de propósito general, basado en Granite 3.0, el recién anunciado modelo de base de la empresa.
Ya cuando IBM presentó Granite en septiembre de 2023, lo promocionó como la IA para empresas que aplican la IA generativa tanto al lenguaje como al código.
Con el anuncio del lunes en la conferencia IBM TechXchange de Las Vegas (Nevada), la compañía pone a disposición de los usuarios siete nuevos modelos: Granite-3.0-8B-Instruct y Granite-3.0-2B-Instruct, modelos lingüísticos; Granite-Guardian-3.0-8B y Granite-Guardian-3.0-2B, entrenados para detectar jailbreaking, prejuicios, violencia, blasfemias, contenido sexual y comportamientos poco éticos; Granite-3.0-8B-Instruct-Accctivate. 0-8B-Instruct-Accelerator para acelerar la inferencia y mejorar la latencia; y los modelos Granite-3.0-3B-A800M-Instruct y Granite-3.0-1B-A400M-Instruct Mixture of Experts (MoE). Todos se publican bajo la licencia Apache2; que, según Darío Gil, SVP y director de Investigación de IBM, es “la más permisiva”.
Una medida que, sin duda, complace a los analistas. Dion Hinchcliffe, vicepresidente y director de Prácticas de CIO en The Futurum Group, cree que “el profundo compromiso de IBM con el código abierto para la IA es significativo. Ofrecer indemnización frente a ciertas responsabilidades legales y transparencia diferencia a IBM de sus competidores, que pueden ofrecer modelos más opacos o licencias restrictivas”.
Desde este mes, los productos de varios proveedores serán compatibles con al menos algunos de los modelos Granite 3.0. Desde IBM han explicado que watsonx incluirá los modelos Granite 3.0 Language y Guardian; Nvidia NIM recibe Language, Guardian y MoE; Hugging Face incluirá Language, Guardian, Accelerators y MoE; y Ollama obtiene Language y MoE.
Asimismo, ha añadido que Granite Language también se lanzará para Red Hat Enterprise Linux (RHEL) AI y OpenShift AI en diciembre.
Patrick Moorhead, CEO y analista jefe de Moor Insights & Strategy, reconoce estar impresionado: “Aunque al principio era escéptico, cuanto más investigo más confiado me siento para asegurar que, gracias a estos modelos, las empresas son competitivas, si no superiores”, para añadir: “Los modelos anteriores eran más eficientes pero no tan precisos. Ahora, los modelos lo son, y también más eficientes”. Para estar completamente convencido, Moorhead ha reconocido que querrá ver cómo las empresas utilizan con éxito los modelos Granite. “Creo que las empresas observarán a IBM y su serie de desarrollos, y si siguen viendo innovaciones, se fijarán en ellos», ha apostillado.
116 idiomas
La versión de Granite en el nuevo asistente de código watsonx de IBM se ha entrenado en 116 lenguajes de programación, según Keri Olson, vicepresidenta de gestión de producto de AI for Code en IBM. Aunque siete lenguajes (Java, Python, C, C++, Go, JavaScript y TypeScript) han recibido la mayor atención en función de la demanda de los clientes, Olson ha subrayado que esto es sólo el principio. Otros lenguajes, como Rust, C# y RPG, están a punto de recibir el tratamiento de primer nivel.
Olson ha recalcado que “no vamos a detenernos ahí. Seguiremos avanzando con otros lenguajes de programación que entrarán en nuestra categoría de primer nivel. Y seguiremos ampliando nuestras integraciones con herramientas para desarrolladores”.
En el momento de su lanzamiento, IBM dará soporte a watsonx Code Assistant en VS Code y Eclipse IDEs mientras estudia otras opciones. La empresa también está estudiando la posibilidad de incorporar funciones agentic. “Todavía no hemos llegado a ese punto, pero estamos pensando en los flujos de agentic y en cómo podemos conseguir más trabajo autónomo en el futuro”, según Olson.
Además, como Java es uno de los lenguajes clave de la nueva oferta, IBM ha decidido no lanzar el asistente independiente watsonx Code Assistant for Enterprise Java que anunció el pasado mes mayo.
A quien le gusta lo que está oyendo es a Dion Hinchcliffe. Para él, “IBM está ofreciendo herramientas avanzadas como asistentes de código compatibles con varios lenguajes y una integración más profunda con los datos de la empresa. El aumento de lenguajes de programación cubiertos y las mejoras en precisión y rendimiento son muy bienvenidos y les ayudan a ir más allá que otros copilotos de codificación. Los desarrolladores —y especialmente los departamentos de TI que carecen de estas habilidades cada vez más enrarecidas— apreciarán la mayor compatibilidad con lenguajes heredados como COBOL y Java, que siguen siendo fundamentales en los entornos empresariales. La capacidad de afinar los modelos de IA utilizando datos internos sin dependencias externas, manteniendo los datos dentro de la empresa, también resonará bien en las industrias con estrictas necesidades de cumplimiento”.
Para uso interno
Olson ha reconocido también que IBM ha estado utilizando el nuevo asistente desde principios de este año. Además, ha encontrado varios casos de uso convincentes: “Creo que esa es una de las cosas más emocionantes para los desarrolladores. Si ven que puede ayudarles a hacerse cargo de algunas de esas tareas en las que tal vez no están tan interesados en hacer y les permite centrarse en el pensamiento más profundo y la estrategia y la innovación, realmente les sirve de ayuda”.
Por ejemplo, a su juicio, un pequeño equipo de desarrolladores de productos veteranos y recién contratados heredó repositorios de código que contenían unos 750 archivos JavaScript sin documentar.
Olson lo explica de esta manera: “El equipo se propuso entender: ‘¿Qué es este código? ¿Qué hace? Y empezaron con una PoC [prueba de concepto] en la que utilizaron watsonx Code Assistant para documentar unas 1.000 líneas de código a través de nueve archivos diferentes. Manualmente, tardaron unos tres minutos por archivo en documentar el código. Creo que en realidad era bastante rápido, pero cuando utilizaron watsonx Code Assistant, fueron capaces de entender y documentar el contenido de cada archivo en unos doce segundos. Así que si pensamos que cada archivo pasa de ser un ejercicio de tres minutos a uno de doce segundos, eso supone un ahorro de tiempo de más del 90% sólo para esta tarea específica”.
Y apostilla: “Después comprobaron el trabajo de watsonx y descubrieron que era correcto en un 90%”.
Y es que, en su opinión, la documentación del código es un caso de uso a menudo ignorado, pero valioso, de los asistentes de codificación.
Otro uso inesperado es la generación de casos de prueba. «Sin duda es un área hacia la que los desarrolladores no tienden a gravitar», ha explicado Olson, para añadir: “Hay una función de chat integrada en el nuevo watsonx Code Assistant. Con ella, puedes simplemente utilizar el lenguaje natural para hacer una pregunta al asistente de codificación, o para pedirle que haga algo en tu nombre, incluyendo, ‘por favor, escribe este código para mí’. Y, sin duda, hay muchos casos internos en los que nuestros clientes internos lo han utilizado para generar código utilizando el lenguaje natural”.
Complementar a los desarrolladores, no sustituirlos
Sin embargo, ha subrayado, IBM watsonx Code Assistant no pretende sustituir a los desarrolladores. “Realmente creo que es importante entender que el desarrollador sigue estando tanto en el centro del desarrollo como en el del todo el ciclo de vida de desarrollo de software. No estamos en un punto en el que creamos que la IA puede hacerse cargo por completo y hacer el trabajo por el desarrollador. Así que se trata de un asistente y debe utilizarse como tal”.
Palabras con las que Moorhead se ha mostrado de acuerdo: “Los que estudian la historia saben que estos temores de pérdida neta de empleo son históricamente exagerados. «Lo que suele ocurrir es que esas funciones laborales hacen más trabajo, de más alto nivel. Cuando surgieron los lenguajes de programación, se temía que todos los programadores de máquinas perdieran su empleo. No fue así. Aprendieron COBOL. Creo que esto se repetirá aquí”.
No obstante, Hinchcliffe ha señalado que, a pesar de ello, algunos desarrolladores seguirán preocupados. “La preocupación por que la IA sustituya los puestos de trabajo de los desarrolladores es bastante real ahora, y aunque IBM hace un esfuerzo consciente por subrayar la naturaleza ‘asistencial’ de estas herramientas, el camino es a veces bastante claro hacia la sustitución casi total de ciertos trabajadores de TI, especialmente en operaciones y tareas básicas de mantenimiento de desarrollo. Aunque el enfoque de IBM se centra en capacitar a los desarrolladores —haciendo hincapié en «mantenerlos en el bucle»— en lugar de suplantarlos, la narrativa más amplia sobre la IA en el mercado de trabajo probablemente eclipsará esto”.
A este especialista también le preocupan los plazos de IBM. “Aunque ésta ha dado pasos significativos, todavía hay cierta incertidumbre sobre sus plazos para los agentes y su uso práctico. IBM es honesta sobre el hecho de que este espacio está todavía en desarrollo, lo que es refrescante, pero puede decepcionar dado el bombo actual en torno a la IA. Es posible que los desarrolladores esperen más avances cuanto antes». En general, sin embargo, el enfoque de IBM está bien pensado y centrado en lo que las empresas necesitan hoy en día, pero el mensaje en torno al aumento tendrá que ser más claro para superar los temores de desplazamiento de puestos de trabajo”.
Fuente: https://www.computerworld.es/article/3579920/ibm