Documento de diseño - Cllama (llama.cpp)
Modelo sin conexión
Cllama está implementado basado en llama.cpp y admite el uso offline de modelos de inferencia de IA.
Debido a que estamos sin conexión, necesitamos preparar primero el archivo del modelo, como por ejemplo, descargar el modelo sin conexión desde el sitio web de HuggingFace: Qwen1.5-1.8B-Chat-Q8_0.gguf
Coloca el modelo en una carpeta específica, por ejemplo, en el directorio Content/LLAMA del proyecto de juego.
Una vez que tengamos el archivo del modelo sin conexión, podremos utilizar Cllama para llevar a cabo un chat de IA.
Conversación de texto
Usa Cllama para chatear por texto.
En el diagrama, haz clic derecho para crear un nodo llamado Enviar solicitud de chat de Cllama
Cree un nodo Options y establezca Stream=true, ModelPath="E:\UE\projects\FP_Test1\Content\LLAMA\qwen1.5-1_8b-chat-q8_0.gguf"
Crear Messages, agregar un mensaje de Sistema y un mensaje de Usuario.
Crear un Delegado que acepte la información de salida del modelo y la imprima en la pantalla.
Un plano completo se vería así, ejecuta el plano para ver el mensaje que devuelve la pantalla del juego imprimiendo el modelo en gran escala.
Generación de texto a partir de imágenes.
Cllama ha proporcionado soporte experimental para la biblioteca llava, ofreciendo capacidades de Vision.
Primero, prepara el archivo del modelo offline multimodal, como por ejemplo Moondream (moondream2-text-model-f16.gguf, moondream2-mmproj-f16.gguf)o Qwen2-VL(Qwen2-VL-7B-Instruct-Q8_0.gguf, mmproj-Qwen2-VL-7B-Instruct-f16.ggufO cualquier otro modelo multimodal compatible con llama.cpp.
Cree un nodo de opciones y configure los parámetros "Ruta del Modelo" y "Ruta del Modelo del Proyecto de MM" con los archivos de modelo Multimodal correspondientes.
Crear un nodo para leer el archivo de imagen flower.png y configurar mensajes.
Crear un nodo al final que reciba la información devuelta y la imprima en la pantalla. El aspecto completo del diagrama es el siguiente:
Ejecutar el diagrama de flujo para ver el texto devuelto.
El archivo llama.cpp utiliza la GPU.
"Opciones de solicitud de chat de Cllama". Se ha añadido el parámetro "Num Gpu Layer" para ajustar la carga de GPU en llama.cpp, lo que permite controlar el número de capas que deben calcularse en la GPU. Ver imagen.
KeepAlive
Añadir el parámetro "KeepAlive" a las "Opciones de solicitud de chat" puede mantener el archivo del modelo en la memoria después de la lectura, lo cual facilita su uso directo la próxima vez y reduce la cantidad de veces que se debe leer el modelo. KeepAlive indica cuánto tiempo se debe mantener el modelo en la memoria: 0 significa que no se guarda y se libera de inmediato después de usarlo; -1 significa que se mantiene de forma permanente. Cada vez que se realiza una solicitud, las Opciones pueden configurar un valor diferente de KeepAlive. El nuevo valor reemplazará al anterior; por ejemplo, las primeras solicitudes pueden establecer KeepAlive=-1 para mantener el modelo en memoria hasta que la última solicitud establezca KeepAlive=0 y libere el archivo del modelo.
Manejar los archivos de modelos dentro del archivo .Pak después de empacar.
Una vez que se inicia el proceso de empaquetado de archivos con Pak, todos los recursos del proyecto se almacenarán en el archivo .Pak, incluyendo los archivos de modelo offline gguf.
Debido a que llama.cpp no puede leer directamente archivos .Pak, es necesario copiar los archivos de modelos offline del archivo .Pak al sistema de archivos.
AIChatPlus ha proporcionado una función que automáticamente copia y procesa los archivos de modelos en .Pak, colocándolos en la carpeta Guardado.
O también puedes manejar los archivos de modelos en .Pak tú mismo, lo importante es copiar los archivos, ya que llama.cpp no puede leer correctamente los archivos .Pak.
Nodo de función
Cllama proporciona algunos nodos de función para facilitar la obtención del estado actual en el entorno.
"La validez de Cllama": Comprueba si Cllama llama.cpp está inicializado correctamente.
Determinar si llama.cpp es compatible con el backend de GPU en el entorno actual.
"Obtener Soporte Backends de Llama": Obtener todos los backends compatibles con llama.cpp actuales.
"Preparar modelo de archivo en Pak": Automaticamente copia los archivos de modelo en Pak al sistema de archivos.
Original: https://wiki.disenone.site/es
This post is protected by CC BY-NC-SA 4.0 agreement, should be reproduced with attribution.
Visitors. Total Visits. Page Visits.
Este mensaje ha sido traducido utilizando ChatGPT, por favor, en反馈Señalar cualquier omisión.