Начало работы с Llama-2

llama 2

В этом руководстве представлены рекомендации и инструменты для помощи в настройке Llama, включая доступ к модели, хостингу, инструкции и методы интеграции. Он также включает дополнительные ресурсы для поддержки вашей работы с Llama-2.

Приобретение моделей

  1. Перейдите на страницу загрузки Llama-2 и согласитесь с Лицензией.
  2. После одобрения подписанный URL-адрес будет отправлен на вашу электронную почту.
  3. Клонируйте репозиторий Llama 2 здесь .
  4. Выполните сценарий download.sh и введите предоставленный URL-адрес, когда будет предложено начать загрузку.
  • Примечание. Срок действия ссылок истекает через 24 часа или определенное количество загрузок. Если вы столкнулись с ошибкой 403: Forbidden, вы можете повторно запросить ссылку.

Варианты хостинга

Веб-сервисы Amazon (AWS)

AWS предлагает различные методы хостинга для моделей Llama , такие как SageMaker Jumpstart, EC2 и Bedrock. В этом документе основное внимание уделяется использованию SageMaker Jumpstart и Bedrock. Чтобы узнать о других сервисах AWS, посетите их веб-сайт.

Bedrock : полностью управляемый сервис, предоставляющий высокопроизводительные базовые модели через API. Это упрощает разработку, обеспечивая при этом конфиденциальность и безопасность. Узнайте больше о Bedrock здесь и найдите инструкции по использованию Llama 2 с Bedrock здесь .

SageMaker JumpStart : позволяет специалистам по машинному обучению создавать, обучать и развертывать модели машинного обучения с полностью управляемой инфраструктурой. SageMaker JumpStart предлагает широкий выбор базовых моделей для развертывания. Подробнее здесь .

Облачное сияние

Workers AI : предлагает бессерверные выводы на базе графического процессора в глобальной сети Cloudflare. Это служба вывода ИИ, позволяющая разработчикам запускать модели ИИ с минимальным написанием кода. Узнайте больше об искусственном интеллекте Workers здесь и ознакомьтесь с документацией по использованию моделей Llama 2 здесь .

Google Cloud Platform (GCP) – Model Garden
GCP предоставляет услуги облачных вычислений и виртуальные машины. Model Garden на Vertex AI предлагает инфраструктуру для запуска вашего проекта машинного обучения: доступно более 100 базовых моделей. Узнайте больше о развертывании моделей искусственного интеллекта и выполнении задач по точной настройке в Google Colab на соответствующей странице Google.

Vertex AI : В сотрудничестве с Vertex AI команда Meta интегрировала Llama 2 , предлагая предварительно обученные, чаты и CodeLlama различных размеров. Начните здесь , отметив необходимость квоты вычислений на графическом процессоре.

Hugging Face
Запросите загрузку, используя тот же адрес электронной почты, что и ваша учетная запись Hugging Face. В течение 1-2 дней вы получите доступ ко всем версиям моделей.

Kaggle
Kaggle — это сообщество специалистов по данным и инженеров машинного обучения, предлагающее наборы данных и обученные модели машинного обучения. Мы сотрудничаем с Kaggle для интеграции Llama 2. Чтобы получить доступ к моделям Llama 2 и Code Lama, запросите загрузку, используя свой адрес электронной почты Kaggle.

Microsoft Azure и Windows

Виртуальная машина Azure : разверните Llama 2 на виртуальной машине Azure . Используйте виртуальную машину Azure Data Science или настройте свою собственную. Инструкции для Data Science VM находятся здесь . Для вашей собственной виртуальной машины следуйте краткому руководству Microsoft здесь .

Каталог моделей Azure : центр базовых моделей, позволяющий легко выполнять задачи машинного обучения. Мы интегрировали Llama 2 с каталогом моделей, предлагая предварительно обученный чат и модели CodeLlama. Начните здесь .

ONNX для Windows
ONNX — это открытый формат для моделей машинного обучения, совместимый с различными платформами. Использование среды выполнения ONNX ускоряет разработку и позволяет выполнять задачи машинного обучения на таких платформах, как Windows. Начните разработку для Windows/ПК с официального репозитория ONNX Llama 2 здесь и среды выполнения ONNX здесь . Примечание. Запросите доступ к артефактам модели из субрепозиториев.

Если ваша цель — улучшить свои навыки посредством программирования, настоятельно рекомендуется изучить документ « Знакомство с Llama 2 — Jupyter Notebook». Этот ресурс служит отличной отправной точкой, предлагая представление о наиболее часто выполняемых операциях с моделями больших языков (LLM).

Тонкая настройка Ламы-2

Полная точная настройка параметров включает в себя настройку всех параметров на всех уровнях предварительно обученной модели. Хотя этот метод часто дает наилучшие результаты, он также является наиболее требовательным с точки зрения ресурсов и времени, требует значительной мощности графического процессора и требует больше всего времени для выполнения.

PEFT, или эффективная точная настройка параметров, предлагает способ точной настройки моделей с минимальными ресурсами и затратами. Двумя известными методами PEFT являются LoRA (адаптация низкого ранга) и QLoRA (квантованный LoRA). Эти методы включают загрузку предварительно обученных моделей в графический процессор с квантованными весами — 8-битными для LoRA и 4-битными для QLoRA. Модель Llama 2-13B можно точно настроить с помощью LoRA или QLoRA, используя всего лишь один потребительский графический процессор с 24 ГБ памяти. Примечательно, что QLoRA требует еще меньше памяти графического процессора и сокращает время тонкой настройки по сравнению с LoRA.

Обычно рекомендуется начать с LoRA или QLoRA, если ресурсы особенно ограничены, а затем оценить производительность после тонкой настройки. Полную тонкую настройку следует рассматривать только в том случае, если результаты методов PEFT не соответствуют желаемым стандартам.

Подсказка Ламы 2

Оперативная инженерия — это метод, используемый в обработке естественного языка (НЛП) для повышения производительности языковых моделей. Этот метод включает в себя создание подсказок — кратких текстовых фрагментов, которые предоставляют модели дополнительный контекст или инструкции, например тему или стиль текста, который она должна сгенерировать.

Благодаря этим подсказкам модель получает более четкое представление о желаемом результате, что приводит к более точным и актуальным результатам. В случае с Llama 2 размер контекста, измеряемый количеством токенов, значительно увеличился, увеличившись вдвое с 2048 до 4096 токенов. Это увеличение обеспечивает более обширный контекст и потенциально более богатое взаимодействие с моделью.

Создание эффективных подсказок

Создание эффективных подсказок — важнейший аспект разработки подсказок. Вот несколько стратегий создания подсказок, которые могут повысить производительность вашей языковой модели:

  1. Ясность и краткость . Убедитесь, что ваш запрос прост и содержит достаточно информации, чтобы модель могла генерировать соответствующие ответы. Избегайте жаргона и сложных терминов, которые могут запутать модель.
  2. Включите конкретные примеры . Включение подробных примеров в подсказку поможет более эффективно использовать модель. Например, если вы хотите, чтобы модель создала историю, включите элементы обстановки, персонажей и сюжета.
  3. Разнообразьте свои подсказки . Экспериментируя с различными подсказками, вы можете помочь модели лучше понять задачу и получить более разнообразные и творческие результаты. Экспериментируйте с разными стилями, тонами и структурами.
  4. Тестируйте и уточняйте : после разработки подсказок протестируйте их с помощью модели. Если результаты не такие, как ожидалось, уточните свои подсказки, добавив больше конкретики или изменив тон и стиль.
  5. Используйте обратную связь : используйте отзывы пользователей или других источников для постоянного улучшения ваших подсказок. Это может помочь определить области, где модель требует большего направления, и позволит вам внести необходимые корректировки.

Код Ламы

Code Llama — это коллекция больших языковых моделей (LLM) с открытым исходным кодом, созданная на основе Llama 2 и обеспечивающая современную (SOTA) производительность для задач, связанных с кодированием. В это семейство входят:

  1. Базовые модели (Code Llama) : это основные модели серии Code Llama, предназначенные для решения широкого спектра задач по кодированию.
  2. Специализации Python (Code Llama – Python) . Эти модели специально настроены для программирования на Python и обеспечивают повышенную производительность для задач кодирования, связанных с Python.
  3. Модели следования инструкциям (Code Llama – Instruct) : эти модели созданы для более эффективного выполнения инструкций, что делает их подходящими для задач, требующих понимания и выполнения конкретных директив.

Код LLama Размеры модели

Каждая из этих моделей поставляется в трех размерах: с параметрами 7B, 13B и 34B, что соответствует различным уровням сложности и вычислительным требованиям.

Если модели Code Llama (7B/13B/34B) не дают удовлетворительных результатов для конкретной задачи, например преобразования текста в SQL, может потребоваться точная настройка модели. Вот подробное руководство и блокнот о том, как точно настроить Code Llama с использованием модели 7B, размещенной на Hugging Face:

  1. Метод точной настройки : в руководстве используется метод тонкой настройки LoRA (адаптация низкого ранга), который является ресурсоэффективным и может выполняться на одном графическом процессоре.
  2. Ссылки на Code Llama . Как указано в Ссылках на Code Llama ( ссылка здесь ), точная настройка расширяет возможности Code Llama при генерации кода SQL. Это улучшение имеет решающее значение, поскольку модели большого языка (LLM) должны эффективно взаимодействовать со структурированными данными, а SQL является основным средством доступа к таким данным.
  3. Демонстрационные приложения . Чтобы проиллюстрировать расширенные возможности после тонкой настройки, разрабатываются демонстрационные приложения с использованием LangChain и RAG с Llama 2. Эти приложения продемонстрируют, как точно настроенные модели могут эффективно работать со структурированными данными и SQL.

В этом руководстве и блокноте описан пошаговый процесс тонкой настройки, что делает его доступным даже для тех, у кого ограниченный опыт в этой области. Точная настройка может значительно повысить производительность модели при выполнении специализированных задач, что делает ее ценным инструментом для разработчиков и исследователей, работающих с Code Llama.

Лангчейн

LangChain действительно представляет собой платформу с открытым исходным кодом, предназначенную для облегчения создания приложений на основе больших языковых моделей (LLM). Более того, он предоставляет набор общих абстракций и API более высокого уровня, оптимизируя процесс разработки приложений, устраняя необходимость взаимодействия с LLM с нуля. Основные строительные блоки или API LangChain включают:

  1. Цепочки : это последовательности компонентов, которые обрабатывают входные данные и генерируют выходные данные. Цепочки позволяют создавать модульные рабочие процессы приложений.
  2. Компоненты : это отдельные подразделения в цепочке, выполняющие конкретные задачи. Компоненты могут варьироваться от языковых моделей до систем поиска данных.
  3. Интеракторы : они управляют взаимодействием между пользователем и системой, управляя вводом и выводом.
  4. Ретриверы : они отвечают за получение информации из внешних источников, которая затем может использоваться языковой моделью для генерации ответов.
  5. Генераторы . Эти компоненты обычно представляют собой языковые модели, которые генерируют текст на основе введенных данных и предоставленного контекста.
  6. Объединители : используются для объединения или объединения выходных сигналов различных компонентов или источников.
  7. Менеджеры контекста : они управляют контекстом или состоянием разговора или взаимодействия, обеспечивая непрерывность и актуальность ответов.
  8. Оценщики : эти компоненты оценивают качество или актуальность полученных результатов, гарантируя, что ответы соответствуют определенным критериям или стандартам.

Более того, используя эти строительные блоки, LangChain позволяет разработчикам создавать сложные приложения на основе LLM с большей легкостью и эффективностью, сосредотачиваясь на уникальных аспектах своего приложения, а не на основных сложностях работы непосредственно с LLM.

Лангчейн API

API LLM обеспечивает плавную интеграцию с ведущими моделями большого языка (LLM), такими как Hugging Face и Replication, на которых размещено множество моделей Llama 2.

Кроме того, API подсказок предлагает ценную функцию шаблона подсказок, позволяющую легко повторно использовать эффективные, часто сложные подсказки для расширенной разработки приложений LLM. Он включает в себя множество встроенных подсказок для общих задач, таких как суммирование или интеграция базы данных SQL, что ускоряет создание приложений. Кроме того, подсказки можно сочетать с анализаторами для эффективного извлечения соответствующей информации из ответов LLM.

API памяти предназначен для хранения истории разговоров и включения ее в новые запросы при взаимодействии с LLM, поддерживая многоходовые естественные диалоги.

API Chains включает в себя фундаментальный LLMChain, который объединяет LLM с запросом на получение результатов и распространяется на более сложные цепочки для систематической разработки сложных приложений LLM. Например, выходные данные одной цепочки LLM могут служить входными данными для другой, или цепочка может обрабатывать несколько входных и/или выходных данных, либо заранее определенных, либо динамически определяемых на основе ответа LLM на запрос.

Кроме того, API индексов позволяет хранить внешние документы в векторном хранилище после их преобразования во вложения, которые представляют собой числовые представления значений документов. Когда пользователь задает вопрос об этих документах, соответствующие данные из векторного хранилища извлекаются и объединяются с запросом, что позволяет LLM генерировать ответ, связанный с документами. Процесс описан следующим образом:

LangChain служит эффективным инструментом расширенной генерации поиска (RAG), позволяющим интегрировать внутренние или недавние общедоступные данные с LLM для ответов на вопросы или в диалоговых целях. Он уже оборудован для обработки различных форм неструктурированных и структурированных данных.

Чтобы получить более полное представление о LangChain, рассмотрите возможность записаться на два бесплатных коротких курса LangChain, доступных на коротких курсах deeplearning.ai . Обратите внимание, что в материалах курса используется OpenAI ChatGPT LLM, но скоро будут выпущены демонстрации приложений LangChain с Llama 2.

ЛамаИндекс

LlamaIndex — это широко известная платформа с открытым исходным кодом для создания приложений LLM. Подобно LangChain, он облегчает разработку приложений дополненной генерации (RAG) за счет плавной интеграции внешних данных с LLM. LlamaIndex предлагает три основных инструмента:

  1. Подключение данных : позволяет подключать данные любого типа — структурированные, неструктурированные или полуструктурированные — к LLM.
  2. Индексирование данных : эта функция позволяет индексировать и хранить данные.
  3. Запрос LLM : LlamaIndex объединяет пользовательские запросы с полученными данными, соответствующими запросу, позволяя LLM предоставлять ответы, дополненные данными.

LlamaIndex в первую очередь фокусируется на том, чтобы быть структурой данных, которая связывает частные или специфичные для предметной области данные с LLM, превосходя в интеллектуальном хранении и поиске данных. С другой стороны, LangChain — более универсальная платформа, предназначенная для создания агентов, соединяющих несколько инструментов. Однако можно использовать LangChain в сочетании с LlamaIndex.

Обе структуры, которые сейчас превратились в стартапы, поддерживаемые венчурным капиталом, переживают быстрое развитие. Это означает, что они постоянно добавляют новые или улучшенные функции для устранения своих ограничений. Например, LlamaIndex недавно представила агенты данных, а LangChain расширила поддержку многочисленных загрузчиков данных.

Мы рады сообщить, что вскоре выпустим демонстрационные приложения с открытым исходным кодом, которые используют LangChain и LlamaIndex, демонстрируя их возможности с помощью Llama 2.

Ресурсы

Гитхаб

Производительность и задержка

Тонкая настройка

Код Ламы

Like this post? Please share to your friends:
Llama 2
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: