paint-brush
Cómo ejecutar su propio LLM local (actualizado para 2024)por@thomascherickal
20,419 lecturas
20,419 lecturas

Cómo ejecutar su propio LLM local (actualizado para 2024)

por Thomas Cherickal8m2024/03/21
Read on Terminal Reader
Read this story w/o Javascript

Demasiado Largo; Para Leer

El artículo proporciona guías detalladas sobre el uso de modelos de IA generativa como Hugging Face Transformers, gpt4all, Ollama y localllm localmente. Aprenda cómo aprovechar el poder de la IA para aplicaciones creativas y soluciones innovadoras.

People Mentioned

Mention Thumbnail
Mention Thumbnail
featured image - Cómo ejecutar su propio LLM local (actualizado para 2024)
Thomas Cherickal HackerNoon profile picture
0-item

De https://wallpapers.com/wallpapers/theoretical-physics-green-particles-ht1c16rgtu5ilkhc.html


Este es el año decisivo para la IA generativa


Bien; por decir lo menos, este año he tenido muchas opciones para elegir cómo ejecutar un modelo LLM localmente.


Empecemos:


1) Transformadores de HuggingFace:

Todas las imágenes creadas por Bing Image Creator

Para ejecutar Hugging Face Transformers sin conexión a Internet, siga estos pasos: Instale Transformers con las dependencias necesarias y asegúrese de no depender de las actualizaciones automáticas durante la instalación. Puede instalar mediante pip o conda como se describe en la documentación de Hugging Face


 pip install transformers==4.xy

Cargue modelos previamente entrenados desde su máquina local después de descargarlos desde Hugging Face Hub con acceso a Internet. Guarde el modelo usando save_pretrained() y luego cárguelo más tarde en modo fuera de línea.

 from transformers import AutoModelForSequenceClassification, BertTokenizerFast

Primera vez, descarga y guarda el modelo.

 model = AutoModelForSequenceClassification.from_pretrained("bert-base-uncased") model.save_pretrained("/my/local/directory/bert-base-uncased")

Luego, cargue el modelo guardado sin conexión.

 model = AutoModelForSequenceClassification.from_pretrained("/my/local/directory/bert-base-uncased") tokenizer = BertTokenizerFast.from_pretrained("/my/local/directory/bert-base-uncased")


Configure las variables de entorno TRANSFORMERS_OFFLINE y HF_DATASETS_OFFLINE para habilitar el uso sin conexión.

 export TRANSFORMERS_OFFLINE=1 export HF_DATASETS_OFFLINE=1

Clona el repositorio de modelos directamente si prefieres no descargar archivos individuales.


 git clone https://huggingface.co/<username>/<repository> /my/local/directory


Asegúrese de que todos los archivos necesarios estén presentes en el directorio donde planea ejecutar sus scripts. Recuerde que configurar TRANSFORMERS_OFFLINE en 1 por sí solo no funcionará si el modelo aún no está disponible localmente. Debe descargar el modelo con acceso a Internet y guardarlo localmente o clonar el repositorio de modelos.




2) gpt4all


gpt4all es un proyecto de código abierto que permite a cualquiera acceder y utilizar potentes modelos de IA como GPT-3. Aquí hay instrucciones paso a paso para instalar y usar gpt4all:

  1. Instalación:
  • gpt4all requiere Python 3.7 o superior y algunas dependencias del paquete Python. La forma más sencilla de instalar gpt4all es mediante pip:
 pip install gpt4all
  1. Obtenga una clave API:
  • Necesita una clave API para acceder a los modelos a través de gpt4all. Puede obtener una clave API gratuita registrándose en https://platform.openai.com .
  1. Configurar la autenticación:
  • Una vez que tenga su clave API, establezca una variable de entorno llamada OPENAI_API_KEY con su clave API como valor.
 export OPENAI_API_KEY="YOUR_API_KEY_HERE"
  1. Utilice gpt4all:
  • Ahora está listo para usar gpt4all en Python para acceder a GPT-3 y otros modelos. A continuación se muestra un ejemplo que solicita a Davinci (una versión de GPT-3) que resuma un pasaje de texto:
 from gpt4all import completions summary = completions.generate(engine="text-davinci-003", prompt="Summarize this text: [insert long text here]", max_tokens=50) print(summary.text)
  • Consulte la documentación de gpt4all para obtener más ejemplos de cómo utilizar diferentes modelos.


3) ollama


Ollamma es una biblioteca de código abierto que brinda fácil acceso a modelos de lenguaje grandes como GPT-3. Aquí están los detalles sobre los requisitos, la instalación y el uso del sistema:

Requisitos del sistema:

  • Python 3.7 o superior
  • Biblioteca de solicitudes
  • Clave API de OpenAI válida

Instalación:

 pip install ollamma

Uso:

  1. Establecer clave API
 import os os.environ["OPENAI_API_KEY"] = "<YOUR_API_KEY>"
  1. Importar y crear el cliente.
 from ollamma import Client client = Client()
  1. Generar texto
 response = client.generate( engine="text-davinci-003", prompt="Hello world", max_tokens=100 ) print(response.generations[0].text)

El método de generación le permite especificar el motor, el mensaje y parámetros como tokens máximos para configurar su solicitud.

También puedes ajustar los motores, moderar el contenido y más. Consulte la documentación de Ollamma para obtener detalles adicionales sobre todos los métodos disponibles.

En resumen, ¡Ollamma hace que sea realmente fácil aprovechar GPT-3 y otros modelos en solo unas pocas líneas de código Python una vez instalado y configurado!


4) Estudio LM


LM Studio es una herramienta de código abierto que agiliza el proceso de capacitación, evaluación y uso de modelos de lenguaje de última generación a nivel local. Estos son los pasos para que LM Studio se ejecute localmente:


  1. Instalación:
    LM Studio requiere Docker y Docker Compose. Instalar:

a. Instale Docker Engine y Docker Compose en su máquina
b. Clona el repositorio de LM Studio GitHub:
git clone https://github.com/lm-studio/lm-studio.git


  1. Configuración:
    LM Studio se basa en archivos de configuración en la carpeta config/ . Los archivos comunes incluyen:

a. model.yaml : especifica arquitecturas modelo
b. training.yaml : establece los parámetros de entrenamiento.
C. evaluation.yaml : ajustar la configuración de evaluación


  1. Ejecutando LM Studio:
    La interfaz principal es a través de Docker Compose. Algunos comandos comunes:

a. Construir imágenes: docker-compose build
b. Inicie todos los servicios: docker-compose up -d
C. Ver registros: docker-compose logs -f
d. Detener servicios: docker-compose down


Los servicios exponen varios puertos que puede utilizar para interactuar con la interfaz de usuario, las API, las computadoras portátiles y más.

En resumen, LM Studio agiliza la experimentación con modelos de lenguaje local. Los usuarios solo necesitan clonar el repositorio, configurar archivos de configuración y usar comandos simples de Docker para comenzar a entrenar, evaluar y usar modelos.


5) local


Creo que esta es la forma más cómoda y sencilla de todas. La explicación completa se da en el siguiente enlace:

https://cloud.google.com/blog/products/application-development/new-localllm-lets-you-develop-gen-ai-apps-locally- without-gpus

Resumido:

localllm combinado con Cloud Workstations revoluciona el desarrollo de aplicaciones impulsado por IA al permitirle usar LLM localmente en la CPU y la memoria dentro del entorno de Google Cloud. Al eliminar la necesidad de GPU, puede superar los desafíos que plantea la escasez de GPU y desbloquear todo el potencial de los LLM. Con productividad mejorada, rentabilidad y seguridad de datos mejorada, localllm le permite crear aplicaciones innovadoras con facilidad


6) llama.cpp

Para instalar y usar Llama.cpp para entrenamiento e inferencia local, siga estos pasos:

Instalar dependencias:

 Python 3 CMake Optional (for GPU acceleration) NVIDIA drivers, CUDA, and cuDNN For Windows, use Visual Studio Community with Desktop C++ Environment and Python 3 Clone the repository:

git clone --recursive https://github.com/abetlen/llama-cpp-python.git Si desea utilizar la aceleración de GPU, configure la variable de entorno como se describe en el repositorio (por ejemplo, en Linux):

 export CMAKE_ARGS="-DLLAMA_CUBLAS=ON" Install Llamma.cpp:

Para compilación local y del sistema:

 cd llama-cpp-python pip install -e . For Windows, or if you want prebuilt binaries, consider the following: No GPU support: pip install llama-cpp-python[server]

Opcionalmente, para utilizar una interfaz de alto nivel, utilice el comando:

 python -m llama_cpp.server --model models/7B/llama-model.gguf With GPU support: set FORCE_CMAKE=1 set CMAKE_ARGS=-DLLAMA_CUBLAS=ON pip install --upgrade --force-reinstall llama-cpp-python --no-cache-dir

Opcional, para Windows, utilizar una interfaz de alto nivel:

 python -m llama_cpp.server --model "path/to/your/model" Download and place Llama models in the models/ subdirectory within the Llama.cpp repository if they are not included (models like llama-model.gguf or ggml-* files are available on Hugging Face or GGML).


Pruebe la instalación:


 The llama_cpp/llama_cpp.py script provides a simple high-level interface in Python. Replace llama-model.gguf with your downloaded Llama model to test inference. If you want to train your own Llama model, you'll need to train it according to the official documentation and manually convert the GGML files into GGUF files (for GPU deployment).



7) Oobagooba

Esta es una implementación gradio de código abierto de una webui para generar texto usando langchain.


Algunos extractos del archivo README.md:

extensiones-webui-de-generación-de-texto

Este es un directorio de extensiones para https://github.com/oobabooga/text-generación-webui

Si crea su propia extensión, puede enviarla a esta lista en un PR.

memoria a largo plazo

Una extensión sofisticada que crea una memoria a largo plazo para los bots en modo chat.

https://github.com/wawawario2/long_term_memory

Todo habla TTS

AllTalk se basa en el motor Coqui TTS, similar a la extensión Coqui_tts para la interfaz de usuario web de generación de texto, sin embargo, admite una variedad de funciones avanzadas.

  • Configuración de inicio personalizada: ajuste su configuración de inicio predeterminada. Captura de pantalla
  • Narrador: utilice diferentes voces para el personaje principal y la narración. Narración de ejemplo
  • Modo de baja VRAM: ideal para personas con poca memoria de GPU o si su LLM llena su VRAM. Captura de pantalla
  • DeepSpeed: un aumento de rendimiento de 3 a 4 veces generando TTS. Instrucciones de velocidad profunda para Windows/Linux Captura de pantalla
  • Modelos locales/personalizados: utilice cualquiera de los modelos XTTSv2 (API Local y XTTSv2 Local).
  • Mantenimiento de archivos wav opcional: eliminación configurable de archivos wav de salida antiguos. Captura de pantalla
  • Ajuste Entrene el modelo específicamente con una voz de su elección para una mejor reproducción.
  • Documentación: Totalmente documentada con una página web integrada. Captura de pantalla
  • Salida de la consola Borre la salida de la línea de comando para detectar cualquier advertencia o problema.
  • API Suite y soporte de terceros a través de llamadas JSON. Se puede utilizar con aplicaciones de terceros a través de llamadas JSON.
  • Se puede ejecutar como una aplicación independiente, no solo dentro de la webui de generación de texto.

https://github.com/erew123/alltalk_tts

BordeGPT

Extensión para Webui de generación de texto basada en EdgeGPT de acheong08, para un acceso rápido a Internet para su bot.

https://github.com/GiusTex/EdgeGPT

XTTSv2

Una variante de la extensión coqui_tts en el repositorio principal. Ambos usan el modelo XTTSv2, pero éste tiene una función de "narrador" para el texto escrito *entre asteriscos*.

https://github.com/kanttouchthis/text_generación_webui_xtts

Zona de juegos para escritores

Esta extensión proporciona un cuaderno avanzado independiente que siempre estará presente en la pestaña superior. Tiene muchas características que no se encuentran en el portátil:

  • Dos Notebooks A y B independientes que siempre están presentes, independientemente del modo
  • Instrucciones en línea (capacidad de hacer preguntas o dar tareas desde el propio texto)
  • Seleccionar e insertar: genera texto en medio de tu texto
  • Memoria permanente, resumen, paráfrasis
  • LoRA-Rama: muestra los puntos de control de LoRA y la capacidad de cambiar entre ellos.
  • Escalado de LoRA (experimental): ajuste el impacto de LoRA usando un control deslizante

https://github.com/FartyPants/Playground

Y hay mucho más por explorar: echa un vistazo:

https://github.com/oobabooga/text-generación-webui-extensiones



¿Conclusión?


¡Y hay más! ¡Mucho más! LangChain, llm, ollamma, ¡la lista sigue creciendo cada vez más!

Por un año glorioso de hermosa creatividad. ¡Salud!