Автор | Кодирование Организация | https://zhuanlan.zhihu.com/p/686761933
Привет всем, это NewBeeNLP. Сегодня я поделюсь знаниями, связанными с крупными модельными собеседованиями, и продолжу их обновлять.
1. Общая идея технологической системы RAG
данныепредварительная обработка->Разбивка на части(Этот шаг имеет решающее значение,Иногда это решается Модель Эффект)->текствекторизация->queryвекторизация->векторный поиск->переставить->query+Поиск по содержимомуLLM->выход
2. Какие проблемы в основном решаются с помощью плагина базы знаний?
3. Как оценить эффективность проекта RAG
Оценка процесса поиска:
Оценка процесса генерации:
4. В чем проблема галлюцинаций больших моделей и проблема повторителей?
Проблема иллюзии: сгенерированный контент бессмысленен или не соответствует предоставленному исходному контенту.
Проблема с повторителем: определенные слова генерируются повторно.
5. Что касается вопроса 4, есть ли какое-либо решение?
Чтобы решить проблему галлюцинаций: внедрите плагин базы знаний, добавьте несколько правил коррекции, ограничьте длину вывода и т. д.
По поводу проблем с ретранслятором:
6. Каковы причины проблемы 4?
Что касается проблем с галлюцинациями: Проблемы с галлюцинациями в основном делятся на две категории. Первая заключается в том, что полученные результаты несовместимы с источником данных и противоречивы. Другой тип заключается в том, что проблемы пользователей выходят за рамки понимания большой модели. В первом случае может случиться так, что обучающие данные несовместимы с исходными данными, данные не выровнены или дефекты в способности понимания кодера и ошибки стратегии декодера могут привести к галлюцинациям. Последнее заключается в том, что проблема пользователя не входит в когнитивную сферу языковой модели.
По поводу проблем с ретранслятором: качество данных невысокое, много одиночного, повторяющегося текста, и текст слишком длинный (Дополнительно: если ваш предыдущий условный текст слишком длинный, несколько коротких текстов, выводимых большой Моделью, будут перегружены исходный очень длинный условный текст, если вы продолжите прогнозировать следующий токен, кажется, что условия в модели в настоящее время могут быть похожими, если вы используете жадный. Поиск выбирает только токен с наибольшей вероятностью. Модель, скорее всего, перепрогнозирует короткий текст, сгенерированный ранее, в текст с наибольшей вероятностью и так далее, и он продолжит повторяться. )
7. Какова текущая основная большая модель с открытым исходным кодом и какова ее конкретная архитектура?
В настоящее время моделью с открытым исходным кодом с самым широким спектром влияния и лучшей экологической конструкцией является LLaMA компании Meta. Он по-прежнему использует архитектуру Transformers и внес следующие изменения:
8. Что такое методы SFT?
(В SFT скорость обучения установлена на уровне 10% от этапа предварительного обучения, что обычно позволяет достичь хороших результатов)
9. Что такое тонкая настройка лора
Добавьте обход рядом с исходной PLM (предварительно обученной языковой моделью) и выполните операцию уменьшения размерности, а затем операцию размерности, чтобы имитировать так называемый внутренний ранг. Во время обучения параметры PLM фиксируются, и обучаются только матрица уменьшения размерности A и матрица повышения размерности B. Входные и выходные измерения модели остаются неизменными, а параметры BA и PLM накладываются при выводе. Инициализируйте A со случайным распределением Гаусса и инициализируйте B с матрицей 0, чтобы гарантировать, что матрица обхода все еще является матрицей 0 в начале обучения.
10. Каковы общие модели векторного поиска на этапе поиска RAG?
Алгоритм ИНС
Дерево КД
11. Как вы думаете, какие улучшения есть в общей RAG?
12. Что такое Лангчейн
LangChain предоставляет новый способ создания и интеграции больших языковых моделей. Благодаря этой мощной структуре мы можем упростить сложные технические задачи и упростить реализацию творчества и инноваций. Несколько похоже на взаимосвязь между разработкой нейронных сетей и тензорным потоком/pytorch.
13. Какие модули LangChain обычно используются?
14. Сравнение преимуществ и недостатков SFT и RLHF
метод | преимущество | недостаток |
---|---|---|
SFT | 1. Легко начать, и для обучения требуются только данные вопросов и ответов; | |
2. Обучение простое. Вы можете напрямую настроить параметры LLM. В большинстве случаев обучение в течение нескольких эпох позволяет достичь желаемых результатов; | ||
3. Ресурсы видеопамяти дешевле, чем RLHF. | 1. Эффект модели во многом зависит от качества данных SFT, а потолок зависит от качества аннотации данных SFT; | |
2. Требования к аннотации высокие. Для инструкции на самом деле очень сложно аннотировать качественный ответ, что требует как времени, так и трудоёмкости. | ||
RLHF | 1. Непосредственно использовать человеческие предпочтения для управления обучением больших моделей, чтобы выходные данные больших моделей могли лучше соответствовать требованиям людей; | |
2. Можно значительно повысить безопасность и достоверность информации. | 1. Обучение потребляет много видеопамяти. 2. Процесс обучения очень нестабильен, и успешно завершить обучение PPO непросто. 3. Помимо данных на этапе SFT, также должны быть данные модели вознаграждения; быть аннотировано. В процессе согласования человеческих предпочтений легче обозначить, кто лучше, но нелегко обозначить, кто лучше или хуже других. быть |
Этот ответ цитируется из статьи (https://zhuanlan.zhihu.com/p/677341520)
15. Давайте представим RLHF подробно
Оставь дыру и отдохни еще один день
16. Проблемы OOM часто возникают при обучении больших моделей. Каковы приемы повышения производительности на основе существующего оборудования?
накопление градиента
17. Может ли входное предложение модели LLaMA теоретически быть бесконечно длинным?
Не мочь
18. Как заставить большие модели обрабатывать более длинные тексты?
19. Сколько данных находится в видеопамяти при выводе большой модели?
20. Представляем ChatGLM
Прежде всего, давайте поговорим о его базовой GLM, которую можно использовать как кодировщик, так и декодер.
В основном это достигается с помощью двух методов маски:
При выполнении задач генерации в чате используйте [gmask]. Chaglm2 полностью использует gmask для предварительного обучения.
Преобразования внутренней структуры ChatGLM снизу вверх:
В ChatGLM 2.0 были добавлены и другие изменения:
21. Представляем функцию активации GLU и функцию активации SwiGLU
Основная идея GLU заключается в фильтрации информации через механизм шлюзования, тем самым улучшая выразительные способности сети и способность к обобщению. (Механизм литникового типа облегчает моделирование на больших расстояниях)
Основная идея SwishGLU состоит в том, чтобы объединить Swish и GLU, на самом деле просто умножая еще один g(x).
22. Сходства и различия LLaMA1/2
Во-первых, с точки зрения данных, lamma2.0 составляет 2,0T, а lamma1 — 1,4T. Второй — длина контекста: lamma1 — 2 КБ, а lamma2 — 4 КБ.
Наконец, с точки зрения архитектуры модели:
В целом оба следуют архитектуре авторегрессионного Трансформера, но внутренние детали несколько отличаются.
23. Сколько видеопамяти занимает модель во время обучения и вывода?
Вообще говоря, обучение занимает в 16 раз больше размера параметров модели (оптимизатор, градиент, сама модель занимает в 2 раза больше размера параметров модели (fp16 — размер единичного параметра, соответствующий двум байтам, int8 — размер единичного параметра); соответствует одному байту).
24. Давайте поговорим о механизме Deepspeed подробнее.
Следующее содержание цитируется из этой статьи.
Это параллельный метод передачи данных, использующий кольцевой режим всех режимов.
Традиционный сервер параметров представляет собой серверно-клиентский метод. Клиент вычисляет присвоенные себе данные, генерирует градиенты и передает их на сервер. Сервер выполняет агрегацию, а затем передает агрегированные параметры клиенту. заключается в том, что сервер легко становится узким местом, поскольку трафик сервера слишком велик. Кроме того, один клиент может выйти из строя, что заставит других клиентов ждать.
Кольцо всех сокращений — это распределенный метод, при котором каждый узел распределяет коммуникационный трафик. Общий объем связи и ps не сильно изменились, но нагрузка на связь равномерно распределяется на каждый графический процессор, и связь между графическими процессорами может осуществляться параллельно.
Если количество графических процессоров равно N, разделите параметры модели на N частей, и каждый графический процессор должен хранить все параметры. Данные обучения также распределяются по каждому графическому процессору. Во время итерации N графических процессоров должны выполнить операции разброса и сбора. Функция уменьшения разброса добавляет градиенты соответствующих параметров на разных графических процессорах, что требует в общей сложности (N-1) связей. Сбор всех данных заключается в объединении полных параметров и передаче их на другие графические процессоры, что требует времени связи (N-1). Ведь сокращая за один раз, коммуникационный трафик одной карты составляет 2*сита.
Ноль включает в себя 3 плана, постепенно прогрессирующие:
ноль1: разделить параметры Адама на N частей, чтобы на графическом процессоре можно было сохранить только один параметр Адама: это не влияет на пересылку. Градиенту необходимо выполнить полное сокращение, но можно обновить только часть параметров. поэтому W нужно выполнить один раз в сборе, объем связи 3N*sita, память 12*sita/N + 4*sita.
ноль2: разделите adamw и градиент на N частей. Градиент не требует сбора всех данных, требуется только сбор данных w, а объем связи составляет 2N*sita.
ноль3: Разделите параметры, Адам и градиент. При пересылке вам необходимо собрать все w. При движении назад вам также нужно собрать все значения w. Вычислить градиент, отбросить w, который вам не принадлежит, а затем. сделайте разброс по градиенту, обновите w, громкость связи 3Н*сита.
Наконец, был принят этап 3: использование 1,5-кратного увеличения затрат на связь в обмен на почти 120-кратное увеличение объема видеопамяти.
Кроме того, ZeRO-Offload основан на Zero2, который помещает Адам и градиент в память и запускает вычисления N потоков в ЦП. Одна из основных тем заключается в том, что градиент всегда требует разброса, и я чувствую этот флаг параллельности данных. Здесь следует отметить, что независимо от того, идет ли речь вперед или назад, требуется полная буква w. Кроме того, с помощью параметров градиента и adamW можно обновить W.
25. Что такое тренировка смешанной точности?
FP64 использует 8 байтов, всего 64 бита, FP32 использует 4 байта, всего 32 бита, а FP16 использует 2 байта, всего 16 бит. В процессе обучения моделей нейронных сетей по умолчанию обычно используются типы данных с плавающей запятой одинарной точности (FP32) для представления весов и других параметров сетевой модели.
Зачем необходимо обучение смешанной точности?
Использование FP16 для обучения нейронной сети имеет следующие преимущества по сравнению с использованием FP32.
Однако использование FP16 также принесет некоторые проблемы, в основном в двух аспектах:
Чтобы воспользоваться преимуществами FP16, повысить эффективность и производительность обучения глубокому обучению, а также избежать влияния прецизионного переполнения и ошибок округления, можно использовать обучение смешанной точности FP16 и FP32, которое в основном включает в себя следующие три важных технические моменты:
26. что такое префикс LLM и случайный LLM
префикс LM: токены могут видеть друг друга, вводить двунаправленное внимание и выводить однонаправленное внимание (ChatGLM, ChatGLM2, U-PaLM)
casualLM: строго авторегрессия, однонаправленное внимание слева направо (LLaMA-7B, производные LLaMa, Qwen)
27. Давайте поговорим о некоторых последующих работах по оптимизации вычислений для MHA.
FlashAttention включает в себя множество расчетных трюков. Когда у меня будет время, я напишу отдельную статью.
28. Поговорим о нескольких распространенных методах расчета внимания.