Упрощение оценки и точной настройки моделей LLaMA с адаптацией низкого ранга (LoRA).
Обновлять :
В ветке
dev
появился новый пользовательский интерфейс чата и новая конфигурация демонстрационного режима , позволяющая просто и легко демонстрировать новые модели.Однако новая версия пока не имеет функции тонкой настройки и не имеет обратной совместимости, поскольку использует новый способ определения способа загрузки моделей, а также новый формат шаблонов подсказок (от LangChain).
Для получения дополнительной информации см. № 28.
LLM.Tuner.Chat.UI.in.Demo.Mode.mp4
См. демонстрацию Hugging Face * Предназначен только для демонстрации пользовательского интерфейса. Чтобы попробовать обучение или генерацию текста, запустите Colab.
Запуск в один клик и запуск в Google Colab со стандартной средой выполнения на графическом процессоре.
Загружает и сохраняет данные на Google Диске.
Оцените различные модели LLaMA LoRA, хранящиеся в вашей папке или в Hugging Face.
Переключайтесь между базовыми моделями, такими как decapoda-research/llama-7b-hf
, nomic-ai/gpt4all-j
, databricks/dolly-v2-7b
, EleutherAI/gpt-j-6b
или EleutherAI/pythia-6.9b
.
Точная настройка моделей LLaMA с помощью различных шаблонов подсказок и формата набора обучающих данных.
Загрузите наборы данных JSON и JSONL из своей папки или даже вставьте простой текст непосредственно в пользовательский интерфейс.
Поддерживает Stanford Alpacaseed_tasks, alpaca_data и формат OpenAI «подсказка»-«завершение».
Используйте шаблоны подсказок, чтобы сохранить набор данных СУХИМ.
Есть несколько способов запустить это приложение:
Запустите в Google Colab . Самый простой способ начать: все, что вам нужно, — это учетная запись Google. Стандартной (бесплатной) среды выполнения графического процессора достаточно для запуска генерации и обучения с размером микропакета 8. Однако генерация и обучение текста происходят намного медленнее, чем в других облачных сервисах, и Colab может прекратить выполнение в бездействии при выполнении длительных задач.
Запуск в облачной службе через SkyPilot . Если у вас есть учетная запись облачной службы (Lambda Labs, GCP, AWS или Azure), вы можете использовать SkyPilot для запуска приложения в облачной службе. Для сохранения ваших данных можно подключить облачное хранилище.
Запуск локально : зависит от вашего оборудования.
Посмотрите видео с пошаговыми инструкциями.
Откройте этот блокнот Colab и выберите «Среда выполнения» > «Выполнить все» ( ⌘/Ctrl+F9
).
Вам будет предложено авторизовать доступ к Google Диску, поскольку Google Диск будет использоваться для хранения ваших данных. Настройки и дополнительную информацию см. в разделе «Конфигурация»/«Google Диск».
Примерно через 5 минут работы вы увидите общедоступный URL-адрес в выходных данных раздела «Запуск»/«Запуск пользовательского интерфейса Gradio» (например, Running on public URL: https://xxxx.gradio.live
»). Откройте URL-адрес в браузере, чтобы использовать приложение.
Следуя руководству по установке SkyPilot, создайте файл .yaml
, чтобы определить задачу для запуска приложения:
# llm-tuner.yamlresources: ускорители: A10:1 # 1x графический процессор NVIDIA A10, около 0,6 доллара США в час в Lambda Cloud. Запустите `sky show-gpus` для поддерживаемых типов графических процессоров и `sky show-gpus [GPU_NAME]` для получения подробной информации о типе графического процессора. облако: лямбда # Необязательно; Если этот параметр не указан, SkyPilot автоматически выберет самое дешевое облако.file_mounts: # Подключите заранее созданное облачное хранилище, которое будет использоваться в качестве каталога данных. # (для хранения обученных моделей наборов данных поездов) # Подробности см. на https://skypilot.readthedocs.io/en/latest/reference/storage.html. /data:name: llm-tuner-data # Убедитесь, что это имя уникально или вы являетесь владельцем этого сегмента. Если он не существует, SkyPilot попытается создать сегмент с этим именем.store: s3 # Может быть любой из режимов [s3, gcs]: MOUNT# Клонируйте репозиторий LLaMA-LoRA Tuner и установите его зависимости.setup: | conda create -q python=3.8 -n llm-tuner -y conda active llm-tuner # Клонировать репозиторий LLaMA-LoRA Tuner и установить его зависимости [ ! -d llm_tuner ] && git clone https://github.com/zetavg/LLaMA-LoRA-Tuner.git llm_tuner echo 'Установка зависимостей...' pip install -r llm_tuner/requirements.lock.txt # Необязательно: установите wandb в включить ведение журнала в Weights & Biases pip install wandb # Необязательно: исправить биты и байты для обхода ошибки "libbitsandbytes_cpu.so: неопределенный символ: cget_col_row_stats" BITSANDBYTES_LOCATION="$(pip show bitsandbytes | grep 'Location' | awk '{print $2}')/bitsandbytes" [ -f "$BITSANDBYTES_LOCATION/libbitsandbytes_cpu.so" ] && [ ! -f "$BITSANDBYTES_LOCATION/libbitsandbytes_cpu.so.bak" ] && [ -f "$BITSANDBYTES_LOCATION/libbitsandbytes_cuda121.so" ] && echo 'Исправление bitsandbytes_cpu.so.bak' && mv "$BITSANDBYTES_LOCATION/libbitsandbytes_cpu.so" "$BITSANDBYTES_LOCATION/libbitsandbytes_cpu.so.bak" && cp "$BITSANDBYTES_LOCATION/libbitsandbytes_cuda121.so" "$BITSANDBYTES_LOCATION/libbitsandbytes_cpu.so" conda install -q cudatoolkit -y echo 'Зависимости установлены.' # Необязательно: установите и настройте Cloudflare Tunnel, чтобы предоставить приложению доступ в Интернет с помощью собственного доменного имени [ -f /data/secrets/cloudflared_tunnel_token.txt ] && echo "Installing Cloudflare" && Curl -L --output cloudflared.deb https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64.deb && sudo dpkg -i cloudflared.deb && sudo удаление службы Cloudflared || : && sudo cloudflared service install "$(cat /data/secrets/cloudflared_tunnel_token.txt | tr -d 'n')" # Необязательно: предварительная загрузка моделей echo "Предварительная загрузка базовых моделей, чтобы вам не пришлось ждать надолго, как только приложение будет готово..." python llm_tuner/download_base_model.py --base_model_names='decapoda-research/llama-7b-hf,nomic-ai/gpt4all-j'# Запустите приложение. `hf_access_token`, `wandb_api_key` и `wandb_project` являются необязательными.run: | conda активировать llm-tuner python llm_tuner/app.py --data_dir='/data' --hf_access_token="$([ -f /data/secrets/hf_access_token.txt ] && cat /data/secrets/hf_access_token.txt | tr -d 'n')" --wandb_api_key="$([ -f /data/secrets/wandb_api_key.txt ] && cat /data/secrets/wandb_api_key.txt | tr -d 'n')" --wandb_project='llm-tuner' --timezone='Atlantic/Reykjavik' --base_model= 'декапода-исследование/лама-7b-hf' --base_model_choices='decapoda-research/llama-7b-hf,nomic-ai/gpt4all-j,databricks/dolly-v2-7b' --share
Затем запустите кластер для выполнения задачи:
sky launch -c llm-tuner llm-tuner.yaml
-c ...
— необязательный флаг для указания имени кластера. Если не указано иное, SkyPilot автоматически сгенерирует его.
Вы увидите общедоступный URL-адрес приложения в терминале. Откройте URL-адрес в браузере, чтобы использовать приложение.
Обратите внимание, что выход из sky launch
приведет только к выходу из потоковой передачи журналов и не остановит задачу. Вы можете использовать sky queue --skip-finished
чтобы просмотреть состояние запущенных или ожидающих задач, sky logs <cluster_name> <job_id>
подключиться обратно к потоковой передаче журналов и sky cancel <cluster_name> <job_id>
, чтобы остановить задачу.
Когда вы закончите, запустите sky stop <cluster_name>
чтобы остановить кластер. Вместо этого, чтобы завершить работу кластера, запустите sky down <cluster_name>
.
Не забудьте остановить или выключить кластер после завершения работы, чтобы избежать непредвиденных расходов. Запустите sky cost-report
чтобы увидеть стоимость ваших кластеров.
Чтобы войти в облачную машину, запустите ssh <cluster_name>
, например ssh llm-tuner
.
Если на вашем локальном компьютере установлен sshfs
, вы можете смонтировать файловую систему облачного компьютера на локальном компьютере, выполнив следующую команду:
mkdir -p /tmp/llm_tuner_server && umount /tmp/llm_tuner_server || : && sshfs llm-tuner:/ /tmp/llm_tuner_server
conda create -y python=3.8 -n llm-tuner Конда активирует llm-тюнер
pip install -r требования.lock.txt python app.py --data_dir='./data' --base_model='decapoda-research/llama-7b-hf' --timezone='Атлантика/Рейкьявик' --share
В терминале вы увидите локальные и общедоступные URL-адреса приложения. Откройте URL-адрес в браузере, чтобы использовать приложение.
Дополнительные параметры см. в разделе python app.py --help
.
Чтобы протестировать пользовательский интерфейс без загрузки языковой модели, используйте флаг --ui_dev_mode
:
python app.py --data_dir='./data' --base_model='decapoda-research/llama-7b-hf' --share --ui_dev_mode
Чтобы использовать автоматическую перезагрузку Gradio, необходим файл
config.yaml
поскольку аргументы командной строки не поддерживаются. Для начала есть пример файла:cp config.yaml.sample config.yaml
. Затем просто запуститеgradio app.py
Смотрите видео на YouTube.
https://github.com/tloen/alpaca-lora
https://github.com/lxe/simple-llama-finetuner
...
подлежит уточнению