В этой статье рассказывается о конкретных операциях количественной оценки, которые редко обсуждаются в Интернете. Количественная оценка очень распространенных целых цифр происходит благодаря разрешению различных моделей с открытым исходным кодом. CPU Окружающая среда, ЦП & GPU Техническое решение для гибридной среды: llama.cpp. 。
Далее планируется поделиться практическим материалом о различных моделях с открытым исходным кодом. Чтобы позволить большему количеству студентов играть, необходимо снизить аппаратный порог входа. Технология количественного анализа моделей является таким «волшебным и эффективным» решением.
Студенты, прочитавшие первые две статьи «Заметки о модели 01W: базовое использование официальной модели Yi-34B» и «Локальное использование большой модели 01W 34B «Кай-Фу Ли», знают, что модели похожи на 34B, если вы хотите. Чтобы запустить его напрямую, без особых подсчетов, вам понадобится от 76 до 85 ГБ видеопамяти. Если мы выполним 8-битное квантование с относительно небольшими потерями эффекта, нам понадобится около 46 ГБ. Если мы будем использовать 4-битную модель квантования, нам также понадобится около 21 ГБ видеопамяти.
Хотя Модель может убежать,Но да возможно, что эффект Модели «побивает перелом»。
даиз,Модельиз Количественная Качество изображения на самом деле так и есть: это процесс преобразования фотографий (RAW), похожих на те, что сняты нашими камерами, в «PNG», затем в «JPG» и даже в «GIF». Мы стремимся сэкономить как можно больше денег и поддерживать наилучшие результаты на нашем оборудовании. работает. Постарайтесь подобраться как можно ближе. “PNG” из «JPG», вместо того, чтобы с ним возиться “GIF” 。
Многие учащиеся, особенно в обычных обстоятельствах, используют восемь бит (INT8) или Четыре Кусочек(INT4)Кусочек Количественная оценка,нодамы оченьлегко встретитьДва неловкихиз Состояние:
В нескольких статьях, опубликованных ранее в этом году и опубликованных для внешнего мира, я много раз упоминал несколько различных типов информации. программа повышения квалификации, включающая Transformers、GGML ждать,Заинтересованные студенты могут прочитать его самостоятельно.,Я не буду вдаваться в подробности.
В этой статье мы в основном говорим о количестве необычных целых цифр из Модель Количественная. схема оценки. Сделай сам из Количественной Программа настройки, оригинальная игровая видеокарта не может работать локально. YI 34B Модель работает.
о Модель Количественная Оценке необходимо подготовить два материала, один - да Модель, другой - да Количественная. Оценка использования компьютерного оборудования.
Произвольное количество параметров из Модель,Может 7B, 13B, 14B, 20B, 33B, 34B, 68B, 70B...из Модель,Также возможен меньший размер параметра из модели.
Я использую открытый исходный код isdazero-one-things здесь. YI-34B из сообщества finetune Доработанная версия обучения, обычно у сообщества может быть популярная Модельиз Количественная. Открытая версия, я часто вижу, как некоторые студенты говорят: «Подожди, Количественная» оценка Версия”。
Но на самом деле сделай это сам,Достаточно еды и одежды. Более того,Несмотря на тодаиз сообществаскачать Количественная Версия оценки, Модель также очень велика, вам нужно ходить туда и обратно, чтобы проверить, подходит ли Модельда, повторная загрузка также требует очень много времени, а стоимость широкополосного доступа намного уступает вашей собственной Количественной версии. Оценка происходит очень удобно.
Существует множество способов загрузки модельных программ. Если вы хотите начать с HuggingFace Сравнительно быстро скачать Модель можно, обратившись к этой статье из «Загрузка модельной программы» чтобы решить проблему.
и Количественная Оценка Модель использует аппаратное обеспечение и требует CPU Если у вас есть машина с относительно высокой вычислительной мощностью, GPU, то он будет значительно улучшен Модель Количественная Оценка скорости, если нет, то не беда.
Что касается Количественная Оценка После продуктов, а также различных устройств, вы можете Windows Дайте после количественного определения Linux или macOS Использование оборудования. Вы также можете использовать там CPU и GPU оборудование,Дайте после количественного определениятолько CPU использование оборудования.
Единственное, есть некоторые отличия,Запускайте только эту универсальную программу формата модели из лаунчера.,да Это должно быть каким-то образом связано с вашей текущей операционной средой и операционной системой.,Например, если вам нужно построить,Или Во время установки требуется некоторая инициализация.
По сравнению с Моделью эта программа действительно тривиальна.
GGUF да GGML Новый тип замены называется GGML Общий формат файла.
GGUF Поддерживать Модель Количественная рейтингесть много форматов,Исключая «несколько сценариев преобразования экосистем с открытым исходным кодом»,В основном опирается на две программы:convert.py
и quantize
программа. Первый основан на Python Скрипт из формы существует в llama.cpp Project из каталога, последний требует от нас сборки проекта из.
скачайте llama.cpp из кода, после чего сможете выполнить операцию сборки:
# скачатькод
git clone https://github.com/ggerganov/llama.cpp.git
# Измените рабочий каталог на папку проекта.
cd llama.cpp
# Сборку проекта можно изучить в файле (с видеокартой)
make -j LLAMA_CUBLAS=1
# Создать файл проекта (без видеокарты)
make -j
Подождите, пока программа будет построена и все приготовления будут завершены.
Этот скрипт может конвертировать не- GGML Формат файлов, конвертированных в ГГМЛ, с GGUF суффикс для сохранения。По умолчанию программа поддерживает конвертацию следующих форматов:из Модель:*.pth
、*.pt
、*.bin
、*.safetensors
。
да Мы осуществим основные этапы последующей нестандартной пластической операции. Модель Количественная оценкаиз.
Если мы будем продолжать использовать 8 Кусочек Количественная оценкаиз, можно использовать CPU и GPU Смешанные рассуждения из Модель, тогда мы можем сослаться на эту статью: «Попробуйте несколько разных Модельиз Количественная из параметров командной строки в операции расчета» из метода преобразовать Модель в GGML из q8_0
Модель.
Но если,Мы надеемся сделать больше другихиздругойиз Тип из Модель,например 2 Битовое квантование~ 6 битовое квантование, то я настоятельно рекомендую вам использовать convert.py
Написание сценариев и конвертация f16
Тип из GGML Модель.
Хотя программа из параметров командной строки кажется громоздкой,Но нам нужно использовать команду преобразования, на самом деле она очень проста.,Вызов программы с использованием Python,Просто добавьте в команду «Путь к модели» и «Выходной тип модели»:
python ./convert.py 【Путь моделиз】 --outtype f16
я здесь с YI-34B из сообщества finetune Модель brucethemoose/CapyTessBorosYi-34B-200K-DARE-Ties
Например, настройте путь хранения на мою собственную из Модель:
python ./convert.py ../brucethemoose/CapyTessBorosYi-34B-200K-DARE-Ties/ --outtype f16
осуществлятьпосле команды,Машина будет полностью включена для компиляции программы.,Выведите много журналов:
Loading model file ../brucethemoose/CapyTessBorosYi-34B-200K-DARE-Ties/model-00001-of-00008.safetensors
Loading model file ../brucethemoose/CapyTessBorosYi-34B-200K-DARE-Ties/model-00001-of-00008.safetensors
Loading model file ../brucethemoose/CapyTessBorosYi-34B-200K-DARE-Ties/model-00002-of-00008.safetensors
...
params = Params(n_vocab=64000, n_embd=7168, n_layer=60, n_ctx=200000, n_ff=20480, n_head=56, n_head_kv=8, f_norm_eps=1e-05, rope_scaling_type=None, f_rope_freq_base=5000000.0, f_rope_scale=None, n_orig_ctx=None, rope_finetuned=None, ftype=<GGMLFileType.MostlyF16: 1>, path_model=PosixPath('../brucethemoose/CapyTessBorosYi-34B-200K-DARE-Ties'))
Loading vocab file '../brucethemoose/CapyTessBorosYi-34B-200K-DARE-Ties/tokenizer.model', type 'spm'
Permuting layer 0
Permuting layer 1
Permuting layer 2
...
model.embed_tokens.weight -> token_embd.weight | BF16 | [64000, 7168]
model.layers.0.input_layernorm.weight -> blk.0.attn_norm.weight | BF16 | [7168]
...
Writing ../brucethemoose/CapyTessBorosYi-34B-200K-DARE-Ties/ggml-model-f16.gguf, format 1
gguf: This GGUF file is for Little Endian only
gguf: Setting special token type bos to 1
gguf: Setting special token type eos to 2
gguf: Setting special token type unk to 0
gguf: Setting special token type pad to 0
[ 1/543] Writing tensor token_embd.weight | size 64000 x 7168 | type F16 | T+ 1
[ 2/543] Writing tensor blk.0.attn_norm.weight | size 7168 | type F32 | T+ 2
[ 3/543] Writing tensor blk.0.ffn_down.weight | size 7168 x 20480 | type F16 | T+ 2
...
Wrote ../brucethemoose/CapyTessBorosYi-34B-200K-DARE-Ties/ggml-model-f16.gguf
когда все закончится,Мы видим строку-подсказку, аналогичную приведенной выше в журнале изнаконец.,Сообщите нам, где на машине хранится преобразованное имя из Модель. По умолчанию он будет сохранен в каталоге, который вы указываете для конвертации Модельиз.,И с .gguf
суффикс для сохранения файлов.
Когда мы используем вышеуказанный метод,После преобразования Модели в файл Из Модель относительно высокой точности.,Мы можем перейти к следующему шагу: Количественная оценка.
осуществлять ./quantize --help
,В дополнение к ссылке на формат команды изосуществлять,Нам также удалось увидеть Количественную Программа оценки поддерживает все типы:
Allowed quantization types:
2 or Q4_0 : 3.56G, +0.2166 ppl @ LLaMA-v1-7B
3 or Q4_1 : 3.90G, +0.1585 ppl @ LLaMA-v1-7B
8 or Q5_0 : 4.33G, +0.0683 ppl @ LLaMA-v1-7B
9 or Q5_1 : 4.70G, +0.0349 ppl @ LLaMA-v1-7B
10 or Q2_K : 2.63G, +0.6717 ppl @ LLaMA-v1-7B
12 or Q3_K : alias for Q3_K_M
11 or Q3_K_S : 2.75G, +0.5551 ppl @ LLaMA-v1-7B
12 or Q3_K_M : 3.07G, +0.2496 ppl @ LLaMA-v1-7B
13 or Q3_K_L : 3.35G, +0.1764 ppl @ LLaMA-v1-7B
15 or Q4_K : alias for Q4_K_M
14 or Q4_K_S : 3.59G, +0.0992 ppl @ LLaMA-v1-7B
15 or Q4_K_M : 3.80G, +0.0532 ppl @ LLaMA-v1-7B
17 or Q5_K : alias for Q5_K_M
16 or Q5_K_S : 4.33G, +0.0400 ppl @ LLaMA-v1-7B
17 or Q5_K_M : 4.45G, +0.0122 ppl @ LLaMA-v1-7B
18 or Q6_K : 5.15G, -0.0008 ppl @ LLaMA-v1-7B
7 or Q8_0 : 6.70G, +0.0004 ppl @ LLaMA-v1-7B
1 or F16 : 13.00G @ 7B
0 or F32 : 26.00G @ 7B
COPY : only copy tensors, no quantizing
Здесь я рекомендую всегда использовать Q4_K
、Q5_K
Такие ссылочные имена используются для преобразований моделей, а иногда и для изучения перед преобразованием. ./quantize --help
Посмотрите, есть ли новые, более подходящие для вас. схема оценки. Имя в из номер вопроса
Число да в из соответствует из Количественная оценкаиз цифр.
Вообще говоря,Чем больше количество цифр,Чем больше памяти и видеопамяти необходимо,работает медленнее,Но эффект и точность ближе к оригинальному варианту. Напротив,Хотя нам досталась ресурсосберегающая версия,Однако эффект да будет значительно снижен. но,Если ты не можешь бежать,Эффект даноль,В этом случае вы можете запустить Количественную оценку Модель.,В конце концов, да лучше, чем ничего,в некоторой степени,Это тоже крайняя мера.
Справочная информация показывает, как использовать командную строку и демонстрационную информацию.,Точно так же содержание да относительно сложное и сложное. Но да также из,На самом деле нам нужен только очень простой метод использования.,Достаточно запомнить следующий метод вызова:
./quantize [Адрес модели] [Название типа модели]
Если мы заменим «переменную» в команде,В этой статье изменено использование «Из Модели». Я выбрал изумичную схему оценки.,Командная строка выглядит следующим образом:
./quantize ../brucethemoose/CapyTessBorosYi-34B-200K-DARE-Ties/ggml-model-f16.gguf Q5_K_M
Во время команды изучить мы увидим прокрутку логов:
ggml_init_cublas: GGML_CUDA_FORCE_MMQ: no
ggml_init_cublas: CUDA_USE_TENSOR_CORES: yes
ggml_init_cublas: found 1 CUDA devices:
Device 0: NVIDIA GeForce RTX 4090, compute capability 8.9
main: build = 1622 (8a7b2fa)
main: built with cc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0 for x86_64-linux-gnu
main: quantizing '../brucethemoose/CapyTessBorosYi-34B-200K-DARE-Ties/ggml-model-f16.gguf' to '../brucethemoose/CapyTessBorosYi-34B-200K-DARE-Ties/ggml-model-Q5_K_M.gguf' as Q5_K_M
llama_model_loader: loaded meta data with 20 key-value pairs and 543 tensors from ../brucethemoose/CapyTessBorosYi-34B-200K-DARE-Ties/ggml-model-f16.gguf (version GGUF V3 (latest))
llama_model_loader: - tensor 0: token_embd.weight f16 [ 7168, 64000, 1, 1 ]
llama_model_loader: - tensor 1: blk.0.attn_norm.weight f32 [ 7168, 1, 1, 1 ]
...
llama_model_loader: - tensor 542: output_norm.weight f32 [ 7168, 1, 1, 1 ]
llama_model_loader: Dumping metadata keys/values. Note: KV overrides do not apply in this output.
llama_model_loader: - kv 0: general.architecture str = llama
llama_model_loader: - kv 1: general.name str = brucethemoose
llama_model_loader: - kv 2: llama.context_length u32 = 200000
llama_model_loader: - kv 3: llama.embedding_length u32 = 7168
...
[ 541/ 543] blk.59.ffn_down.weight - [20480, 7168, 1, 1], type = f16, quantizing to q6_K .. size = 280.00 MiB -> 114.84 MiB | hist:
[ 542/ 543] blk.59.ffn_norm.weight - [ 7168, 1, 1, 1], type = f32, size = 0.027 MB
[ 543/ 543] output_norm.weight - [ 7168, 1, 1, 1], type = f32, size = 0.027 MB
llama_model_quantize_internal: model size = 65593.31 MB
llama_model_quantize_internal: quant size = 23193.68 MB
main: quantize time = 99803.07 ms
main: total time = 99803.07 ms
Преобразование завершено,Заходим в каталог Модельиз,Посмотреть размер файла,Вы можете увидеть очень очевидное уменьшение размера:
# du -hs *
23G ggml-model-Q5_K_M.gguf
65G ggml-model-f16.gguf
Что касается использования Модельиз, то это слишком просто.
мы можем использовать llama.cpp Проект в стадии реализации main
и server
Чтобы запустить Модель, первая запустит интерактивный терминал в командной строке, а вторая — простой терминал. Web UI, мы можем легко настроить параметры вызова Моделиза в браузере.
Упоминалось в двух предыдущих статьях по теме.,Здесь мы снова говорим,Кстати, давайте поговорим о различных стратегиях выбора и настройки параметров.
Моя общая «исходная позиция» такова:
./server --ctx-size 2048 --host 0.0.0.0 --n-gpu-layers 50 --model ../playground/01-ai/Yi-34B/ggml-model-q8_0.gguf
Вышеуказанные команды включают в себя:
--ctx-size
” Укажите размер окна сеанса модели для размещения Token Количество, если хотите сэкономить видеопамять и память, Просто ставь меньше,Если это может удовлетворить потребности вашей миссии。Если есть больше ресурсов,Может быть открыт до верхнего предела Модельиз.,напримернедавноизпо умолчанию Модель Вседа 4k
из,Просто установите 4096,8K Просто установите 8192,200K Просто установитеиндивидуальный 200 000 и так далее.--host
” На самом деле вы не можете добавить его по умолчанию, но если вы находитесь в локальной сети и ваш сервис работает в контейнере, то вам нужно расшарить его и получить к нему доступ вне контейнера, установите --host 0.0.0.0
Это очень необходимо.--n-gpu-layers
” Этот параметр необходимо использовать вместе с видеокартой.,Если у вас есть видеокарта,Но видеокарта не может установить Модель,или После загрузки модели он почти заполнен.,Вы можете рассмотреть возможность соответствующей корректировки значений.,В соответствии с вашими потребностями,Добавьте необходимое количество слоев в видеокарту.,Оставьте немного места для видеокарты. Чем больше слоев вы добавляете в видеокарту, тем больше,Тем быстрее рассуждения.--model
” В этом параметре нет ничего особенного. Уточняется, что мы умеем его хорошо конвертировать. GGML Файл модели в порядке.ХОРОШО,Когда эта команда изучить,Мы можем с удовольствием играть вместе.
да не да, это очень интересно. У нас будет возможность поговорить о том, как реализовать описанный выше интерактивный опыт да.
Этот контент будет написан здесь в первую очередь.,Следующие из похожих статей,Давайте поговорим о различных направлениях оптимизации в сообществе.
Надеюсь, все поиграют в Модель,Развлечься может каждый. Спасибо всей трудолюбивой команде создателей Модели за Модель с открытым исходным кодом.,и Приветствую сообщество открытого исходного кода.,Делитесь хорошими вещами с большим количеством людей и друзей.
--EOF
У нас есть небольшая группа по метанию, в которой мы собираем друзей, которые любят бросать и честны друг с другом.
Мы поговорим о программном и аппаратном обеспечении вместе внутри, HomeLab, Программирование, некоторые проблемы в жизни и на рабочем месте,Время от времени я также делюсь в группе некоторой технической информацией.
Что касается стандартов поиска друзей, пожалуйста, обратитесь к следующей статье:
Новым друзьям: голосуйте за жизнь и продолжайте искать лучших друзей.
конечно,При добавлении друзей через следующую статью,Пожалуйста, укажите ваше настоящее имя, компанию или школу, источник и название.,Цените время друг друга :D
В этой статье используется лицензионное соглашение «Attribution 4.0 International (CC BY 4.0)». Вы можете перепечатывать, повторно изменять и использовать его, но источник должен быть указан. Атрибуция 4.0 Международная (CC BY 4.0)
Автор статьи: Су Ян
Время создания: 12 декабря 2023 г.
Статистическое количество слов: 8528 слов.
Время чтения: 18 минут на чтение.
Ссылка на эту статью: https://soulteary.com/2023/12/12/cpu-hybrid-inference-unusual-large-language-model-quantization-2-3-5-6-bit-quantization.html