acf domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the init action or later. Please see Debugging in WordPress for more information. (This message was added in version 6.7.0.) in /home/planetac/desa.planetachatbot.com/wp-includes/functions.php on line 6131all-in-one-seo-pack domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the init action or later. Please see Debugging in WordPress for more information. (This message was added in version 6.7.0.) in /home/planetac/desa.planetachatbot.com/wp-includes/functions.php on line 6131wp-user-avatar domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the init action or later. Please see Debugging in WordPress for more information. (This message was added in version 6.7.0.) in /home/planetac/desa.planetachatbot.com/wp-includes/functions.php on line 6131The post Crea un chatbot LLM en un Mac M1 first appeared on Planeta Chatbot.
]]>Los requisitos para ejecutar esto en un M1 se obtienen en parte a través del archivo requirements.txt de GitHub que se puede utilizar para construir un entorno Anaconda. Para aquellos que no tienen Anaconda encontrarlo aquí. Descarga la carpeta de GitHub y construye el entorno chatbot-llm con el siguiente comando:
conda create -n chatbot-llm –file requirements.txt python=3.10
conda activate chatbot-llm
A continuación, necesitamos instalar algunos otros paquetes usando pip que no están disponibles a través de conda. Además, para que el LLM funcione en un sistema Mac o Linux debemos establecer los argumentos de cmake usando el siguiente comando.
# Linux and Mac
CMAKE_ARGS=»-DLLAMA_BLAS=ON -DLLAMA_BLAS_VENDOR=OpenBLAS»
pip install llama-cpp-python –force-reinstall –upgrade –no-cache-dir
pip install sse_starlette
pip install starlette_context
pip install pydantic_settings
Ahora es el momento de descargar el modelo. Para este ejemplo, estamos utilizando un LLM relativamente pequeño (sólo unos 4,78 GB). Puedes descargar el modelo desde Hugging Face.
mkdir -p models/7B
wget -O models/7B/llama-2-7b-chat.Q5_K_M.gguf https://huggingface.co/TheBloke/Llama-2-7B-Chat-GGUF/resolve/main/llama-2-7b-chat.Q5_K_M.gguf?download=true
Una vez que el modelo y los paquetes han sido instalados, estamos listos para ejecutar el LLM localmente. Comenzamos llamando al llama_cpp.server con el modelo LLAMA-2 descargado. Esta combinación actúa como ChatGPT (servidor) y GPT-4 (modelo) respectivamente.
python3 -m llama_cpp.server –model models/7B/llama-2-7b-chat.Q5_K_M.gguf
Esto iniciará un servidor en localhost:8000 que podremos consultar en el siguiente paso. El servidor y el modelo están ahora listos para la entrada de usuario. Estamos consultando el servidor y el modelo utilizando query.py con nuestra pregunta de elección. Para comenzar la consulta, debemos abrir una nueva pestaña de terminal y activar nuestro entorno conda de nuevo.
conda activate chatbot-llm
En el archivo query.py actual, la porción de contenido dentro de la lista de mensajes es lo que usted como usuario puede cambiar para obtener una respuesta diferente del modelo. Además, el parámetro max_tokens permite al usuario ajustar la longitud de la respuesta LLM a la entrada. Nota Si el máximo de tokens es menor que la respuesta proyectada, el texto puede cortarse a mitad de la frase. Nuestro prompt es el siguiente:

«Háblame de los Pokémon iniciales de la primera generación de juegos».
Para ejecutar la consulta contra el modelo, llamamos al script de consulta.
export MODEL=»models/7B/llama-2-7b-chat.Q5_K_M.gguf»
python query.py
Después de ejecutar el script de consulta, hay una pausa que puede ser algo sustancial dependiendo de su pregunta. En nuestro caso, la respuesta del modelo no se produce hasta pasados casi 3 MINUTOS. (179.966 s). Eso parece mucho tiempo y se compara con la ejecución de los modelos en línea, pero todo el cálculo se realiza localmente en el hardware disponible. Las limitaciones de memoria, las velocidades de procesamiento de la CPU y la falta de otras optimizaciones hacen que este proceso sea mucho más largo. A pesar de que se tarda un tiempo aquí está la salida con max_tokens = 500:
«Háblame de los Pokémon iniciales de la primera generación de juegos».
Por supuesto. La primera generación de juegos Pokémon, también conocida como Generación I, incluye los siguientes Pokémon iniciales:
Cada uno de estos Pokémon iniciales tiene habilidades y características únicas que los hacen idóneos para diferentes estrategias de batalla y estilos de juego. ¿Sobre cuál te gustaría saber más?
Esta respuesta es realmente detallada dada la contundencia de la consulta y una emocionante demostración de la potencia de los LLM. No recomendaría ejecutar estos modelos utilizando procesamiento en serie (CPU y «CPU» como en un M1) debido al tiempo que se tarda en completar la respuesta. Si está disponible, intente ejecutar modelos locales utilizando una GPU, lo que aceleraría el tiempo de procesamiento, o simplemente sea como yo y utilice ChatGPT de OpenAI.

En esta demostración, instalamos un servidor LLM (llama_cpp.server) y un modelo (LLAMA-2) localmente en un Mac. Pudimos desplegar nuestro propio LLM local. Luego pudimos consultar el servidor/modelo y ajustar el tamaño de la respuesta. ¡Enhorabuena, has construido tu propio LLM! La inspiración para este trabajo y algunos de los bloques de construcción del código provienen de Youness Mansar.
Siéntete libre de usar o compartir el código que está disponible en GitHub. Mi nombre es Doctor Cody Glickman y me puedes encontrar en LinkedIn. Asegúrate de revisar algunos de mis otros artículos para los proyectos que abarcan una amplia gama de contenidos de data science y machine learning.
The post Crea un chatbot LLM en un Mac M1 first appeared on Planeta Chatbot.
]]>