Este artículo detalla el proceso de integración de modelos de lenguaje grandes (LLMs) como Qwen2 dentro de proyectos .NET 8, haciendo uso de la herramienta de gestión de modelos Ollama.
Requisitos del Entorno
- Visual Studio 2022 Preview
- .NET 8
- Windows 10 Enterprise
Configuración de Ollama y Qwen2
-
Descarga e Instalación de Ollama
Obtenga Ollama desde su repositorio oficial en GitHub: https://github.com/ollama/ollama. Una vez instalado, Ollama se ejecutará como un servicio, visible en la bandeja del sistema con un ícono de alpaca.
-
Ejecución del Modelo Qwen2
La variedad de modelos disponibles en Ollama se puede consultar en: https://ollama.com/library. Para Qwen2, visite: https://ollama.com/library/qwen2.
Abra una terminal y ejecute los siguientes comandos:
# Descarga el modelo Qwen2 (ejemplo: versión 0.5b) ollama pull qwen2:0.5b # Inicia una sesión interactiva con el modelo ollama run qwen2:0.5bLos modelos descargados se almacenan localmente, típicamente en la ruta
C:\Users\[TuUsuario]\.ollama.Tras una ejecución exitosa, podrá interactuar con el modelo directamente en la consola.
Integración en Proyectos .NET
-
Instalación del Paquete NuGet OllamaSharp
Añada el paquete
OllamaSharpa su proyecto a través de NuGet. Encuentre más detalles en su repositorio: https://github.com/awaescher/OllamaSharp. -
Implementación del Código
El siguiente fragmento de código muestra un ejemplo básico de interacción con Ollama desde un proyecto Web API. La implementación específica puede variar según sus necesidades.
using OllamaSharp; public class QwenService { private readonly OllamaApiClient _ollamaClient; public QwenService(string ollamaUrl = "http://localhost:11434") { _ollamaClient = new OllamaApiClient(ollamaUrl); } public async Task<string> GetCompletionAsync(string prompt, string modelName = "qwen2:0.5b") { var response = await _ollamaClient.Chat(modelName, new List<Message> { new Message("user", prompt) }); return response.Content; } // Ejemplo de uso: // var service = new QwenService(); // var result = await service.GetCompletionAsync("Explícame el concepto de redes neuronales."); // Console.WriteLine(result); }Consulte la documentación de
OllamaSharppara obtener más ejemplos y configuraciones avanzadas.
Interfaz Web (WebUI)
Para una experiencia de usuario más amigable al interactuar con Ollama localmente, existen interfaces web preconstruidas. Un ejemplo popular es ollama-webui-lite. Puede encontrarlo y desplegarlo fácilmente siguiendo las instrucciones en su repositorio de GitHub: https://github.com/ollama-webui/ollama-webui-lite.
Ajuste Fino (Fine-Tuning) Local
Para aquellos interesados en realizar un ajuste fino de los modelos localmente, se pueden seguir los siguientes enfoques:
- Referencia de ajuste fino con Unsloth en Windows: https://github.com/v3ucn/Unsloth-Windows-fineTuning-Qwen2?tab=readme-ov-file
- Tutoriales relacionados: https://blog.csdn.net/python122_/article/details/140945620
-
Instalación de Anaconda
Descargue e instale Anaconda desde su sitio oficial: https://www.anaconda.com/download/success.
-
Instalación de Dependencias
Abra Anaconda Prompt y ejecute los siguientes comandos para crear y activar un nuevo entorno, e instalar las bibliotecas necesarias:
# Crear un nuevo entorno virtual con Python 3.12 conda create -n PY312 python=3.12 # Activar el entorno conda activate PY312 # Instalar paquetes esenciales pip install transformers datasets peft accelerate modelscope swanlab pip install torch torchvisionLa instalación de estos paquetes puede tomar algún tiempo.
-
Descarga del Modelo Base
Utilice Git LFS para clonar el repositorio del modelo Qwen2:
git lfs install git clone https://www.modelscope.cn/qwen/Qwen2-0.5B.git # Si la clonación falla, intente con 'git pull' dentro del directorio clonado cd Qwen2-0.5B git lfs pull -
Configuración de JupyterLab
Para un entorno de desarrollo interactivo, instale y configure JupyterLab:
Instalación:
pip install jupyterlabInicio:
jupyter labPara mejorar la experiencia en español, instale el paquete de idioma:
pip install jupyterlab-language-pack-zh-CNDespués de la instalación, reinicie JupyterLab y ajuste la configuración de idioma en la interfaz.
-
Ejecución del Script de Entrenamiento
Desde Anaconda Prompt, navegue hasta el directorio de su script de ajuste fino y ejecútelo:
python ruta/a/tu/script/Qwen2-0.5B-train.pyDurante la ejecución, se le pedirá una clave para Swanlab. Tenga en cuenta que copiar y pegar puede ser problemático; intente usar el clic derecho del mouse.
El seguimiento del progreso puede ser lento, especialmente con hardware de gráficos integrado. Los resultados y métricas se pueden visualizar en https://swanlab.cn/.
Solución de Problemas Comunes
Problema: OSError: [WinError 126] The specified module could not be found. Error loading "D:\anaconda3\envs\PY312\Lib\site-packages\torch\lib\fbgemm.dll" or one of its dependencies.
Este error a menudo se relaciona con dependencias faltantes de la librería torch. Puede intentar resolverlo descargando la versión correcta de fbgemm.dll desde fuentes confiables (por ejemplo, https://www.dllme.com/dll/files/libomp140_x86_64/versions) y copiándola al directorio System32 de su sistema.