como-usar-llama3-con-csharp-ollama

Cómo usar LLaMA 3 con C# utilizando Ollama Sharp

OllamaSharp es una biblioteca para .NET que nos permite emplear LLM como LlaMA3 de forma sencilla desde una aplicación en C#.

LLaMA 3 es la última versión del modelo de lenguaje desarrollado por Meta, diseñado para comprender y generar texto de manera inteligente.

En teoría, LLaMA 3 rivaliza o supera a los referentes del sistema como ChatGPT, Copilot o Gemini. Yo no voy a decir tan rotundamente que los supere (al menos no en Español), pero la verdad es que da resultados muy buenos. Esta ahí ahí.

Por su parte, Ollama es una herramienta de código abierto que simplifica la ejecución de modelos de lenguaje de gran tamaño (LLMs), de manera local. Estos modelos incluyen LLaMA 3,

Finalmente, podemos usar Ollama desde una aplicación en C# de forma muy sencilla con OllamaSharp. OllamaSharp es un enlace (binding) de C# para la API de Ollama, diseñado para facilitar la interacción con Ollama utilizando los lenguajes .NET.

Con Ollama + LLaMA 3 y OllamaSharp podemos usar LLaMA 3 en nuestras aplicaciones con unas pocas líneas de código, con soporte para las distintas funcionalidades como Completation o Streams. En fin, una maravilla, vamos a ver cómo 👇

Cómo instalar Ollama y LlaMA3

En primer lugar, necesitamos instalar Ollama en nuestro equipo. Simplemente nos dirigimos a la página del proyecto https://github.com/ollama/ollama, y bajamos en instalador apropiado para nuestro sistema operativo.

Una vez instalado, desde una aplicación de consola ejecutamos

ollama run llama3

Esto descargará el modelo de Llama 3 8B en nuestro equipo. Existen dos versiones 8B y 70B de token respectivamente. El primero ocupa en torno a 5GB y el segundo unos 40GB.

Si vuestra tarjeta gráfica puede cargar el fichero en la memoria, el modelo irá muy rápido, del orden de 500 palabras / segundo. Si lo tenéis que ejecutar en CPU, irá lentísimo para 2-5 palabras por segundo.

Una GPU 3060 puede ejecutar el de 5GB sin problema. El de 40GB, … pues necesitaréis un camión para ejecutarlo. Pero oye, si tenéis semejante pepino de máquina, podéis instalar el de 70B.

ollama run llama3:70B

Ahora podéis escribir vuestro prompt en la propia consola de comandos, y verificar que todo funciona

ollama-llama3-console

Bonus pack, si queréis podéis instalar un interface Web para interactuar más fácil con vuestro Chat Bot Llama 3. Hay varios disponibles, a mi me gusta este https://github.com/ivanfioravanti/chatbot-ollama, basada en el proyecto chatbot-ui de Mckay Wrigley.

chatbot-ui-llama3

Para instalarlo, crear una carpeta donde queráis de vuestro ordenador, y en esta carpeta hacéis lo siguiente.

git clone https://github.com/ivanfioravanti/chatbot-ollama.git
npm ci
npm run dev

Y ya tenéis un ChatBot web conectado a vuestro modelo LLaMA3 funcionando en Ollama.

Cómo usar OllamaSharp

Ahora podemos crear una aplicación en C# que conecte con LLaMA3. Ollama se encargará de gestionar los modelos y datos necesarios para ejecutar las consultas, mientras que OllamaSharp proporcionará la integración con tu aplicación.

Podemos añadir la biblioteca a un proyecto de .NET fácilmente, a través del paquete Nuget correspondiente.

Install-Package OllamaSharp

Aquí tenéis algunos de cómo utilizar OllamaSharp extraídos de la documentación de la librería

using OllamaSharp;

var uri = new Uri("http://localhost:11434");
var ollama = new OllamaApiClient(uri);
ollama.SelectedModel = "llama3";
var prompt = "Hola, soy Luis ¿como estás???";

ConversationContext? context = null;
context = await ollama.StreamCompletion(prompt, context, stream => Console.Write(stream.Response));

Console.ReadLine();

OllamaSharp es Open Source, y todo el código y documentación está disponible en el repositorio del proyecto en https://github.com/awaescher/OllamaSharp