Игра с локальными большими моделями: краткое руководство по использованию Ollama + Open WebUI
Игра с локальными большими моделями: краткое руководство по использованию Ollama + Open WebUI

введение

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

Однако для вывода локальных больших моделей требуется значительный объем видеопамяти. Для моделей с 16-битной точностью с плавающей запятой (FP16) потребность в видеопамяти примерно вдвое превышает количество параметров модели. Это делает использование больших моделей сложной задачей при характеристиках аппаратного обеспечения среднего домашнего компьютера. Для решения этой проблемы, как того требует время, появилась технология квантования модели, сжимающая точность весовых параметров до 4-значной целочисленной точности, что значительно снижает требования к видеопамяти.

В этом контексте проект llama.cpp переписывает код вывода с помощью C/C++, избегая сложных зависимостей, представленных PyTorch, и обеспечивая более широкую аппаратную поддержку, включая чистый вывод ЦП, Apple Silicon и т. д. Однако использование llama.cpp по-прежнему имеет определенные пороговые значения для пользователей, которым необходимо получить веса модели, клонировать код проекта, выполнить количественную оценку модели, установить переменные среды и т. д.

До появления Ollama, простой и удобной в использовании локальной среды для запуска больших моделей, она предоставляла пользователям более удобный способ запуска больших моделей на персональных компьютерах.

Лама 2 комплект из трёх предметов

Элегантность – это непросто

в соответствии сопыт,16 модель точности с плавающей запятой (FP16), видеопамять, необходимая для вывода (в GB ед.) — это примерно количество параметров модели (в 10 в два раза больше миллиардов). Соответственно, Лама 2 7B(70 миллиардов), что соответствует примерно 14GB видеопамять для вывода, что явно выходит за рамки аппаратных характеристик среднего домашнего компьютера. Для справки кусок GeForce RTX 4060 Ti 16GB Рыночная цена видеокарт превышает 3000 Юань.

Технология квантования модели может значительно снизить требования к видеопамяти. Взяв в качестве примера 4-битное квантование, оно сжимает исходные параметры прецизионного веса FP16 в 4-битную целочисленную точность, значительно уменьшая объем веса модели и видеопамять, необходимую для вывода, требуя всего от 1/4 до 1/3 FP16. Это означает, что вывод модели 7B можно начать примерно с 4 ГБ видеопамяти (конечно, фактические требования к видеопамяти будут продолжать увеличиваться по мере наложения контекстного содержимого).

В то же время проект llama.cpp переписал код вывода на C/C++, что не только позволяет избежать сложных зависимостей, представленных PyTorch, но также обеспечивает более широкую аппаратную поддержку, включая чистый вывод ЦП, Apple Silicon и другие базовые вычислительные архитектуры. может дать полную свободу соответствующему ускорению вывода. Благодаря популярности архитектуры Llama, возможности количественной оценки и рассуждения llama.cpp могут быть практически легко перенесены в большие языковые модели с открытым исходным кодом той же архитектуры, такие как серия Qwen от Alibaba Cloud, серия Yi от Zero One Wish и т. д.

хотя llama.cpp Это приносит много преимуществ, но когда вы действительно хотите испытать это, вы обнаруживаете, что вам нужно получить вес Модели, клонировать код проекта и выполнить Модель Количественная. оценка、Установить переменные среды、Создание исполняемых файлов и многие другие шаги можно выполнить через командную строку.изформа задать тестовый вопрос,Не говоря уже о десятках, которые могут потребовать ручной настройки.изпараметрПонятно。

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

Пока не будет Ollama——Простой и легкийиспользоватьиз Большой местный Модель Запустите фреймворк。С окружающими Ollama Экосистема вышла на передний план, и все больше пользователей могут легко играть с большими моделями на своих компьютерах.

Официальный сайт

Начинайте быстро

Ollama Установка проста, macOS прямо в Официальный сайт Загрузите установочный пакет и откройте его; Установочный пакет еще не предоставлен. Официальная рекомендация находится по адресу. WSL 2 Китай и Израиль Linux Установить командой:

Язык кода:javascript
копировать
% curl https://ollama.ai/install.sh | sh

намекать:Пожалуйста, всегда обращайте внимание на решение суда curl | sh Риски скриптов установки стилей.

если вы знакомы с Docker,Вы также можете использовать его напрямуюиспользовать ЧтоОфициальное изображение

Когда ты бежишь ollama --version Когда команда успешно запрашивает версию, это означает Ollama Установка успешно завершена, и вы можете использовать ее дальше. pull команда отОнлайн-библиотека моделейскачать Модель Приходите и играйте Понятно。

Если взять в качестве примера китайскую точно настроенную модель Llama2-Chinese 7B, следующая команда загрузит 4-битный файл квантованной модели размером около 4 ГБ. Для вывода требуется не менее 8 ГБ памяти, а для бесперебойной работы рекомендуется 16 ГБ. .

Язык кода:javascript
копировать
% ollama pull llama2-chinese

После завершения загрузки используйте run В модели выполнения команды вы можете напрямую прикрепить сообщение к команде или оставить его пустым, чтобы войти в диалоговый режим. Диалоговый режим имеет несколько встроенных команд, которым предшествуют косые черты:

Язык кода:javascript
копировать
# Одиночный вход
% ollama run llama2-chinese "Небо для чего голубое?"

# Режим разговора
% ollama run llama2-chinese
>>> /?
Available Commands:
  /set         Set session variables
  /show        Show model information
  /bye         Exit
  /?, /help    Help for a command

Use """ to begin a multi-line message.

>>> Sky для Что такое синий цвет?

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

Стоит отметить, что Ollama определит работающее оборудование и, если это возможно, вызовет ускорение графического процессора. Вы можете открыть Монитор активности или Диспетчер задач, чтобы наблюдать во время вывода и проверять.

На этом этапе у вас под рукой есть большая местная модель.

Наденьте оболочку

Если вы чувствуете, что режим командной строки непрост в использовании, Оллама есть одинрядизПериферийные инструментыДоступен для использованияиспользовать,Включать Понятновеб-страница、рабочий стол、Терминал и другие интерактивные интерфейсы, а также множество расширений.

Причина Ollama Столь богатая экология может быть быстро сформирована, поскольку с самого начала проекта у нее есть четкая позиция: позволить большему количеству людей запускать большие модели локально самым простым и быстрым способом. Итак, Оллама Не просто инкапсуляция llama.cpp, но одновременно упаковывает множество параметров и соответствующих моделей; потому что Эта встреча ждет Вкраткийиз Инструменты командной строкииконюшняизAPI сервера。этотдля Вниз по течению следуетиспользоватьи Развернуть предложение Понятнобольшое удобство。

Что касается графического интерфейса Ollama, существует множество вариантов в зависимости от предпочтений:

Веб-версия:Ollama WebUI имеет самый близкий ChatGPT Интерфейс и богатейшие функциональные возможности должны быть Docker развертывать;

Пример веб-интерфейса Ollama, домашняя страница проекта с исходным изображением

Терминал TUI версия:oterm Обеспечивает полные функции и поддержку сочетаний клавиш, используйте brew или pip Установить;

Другой пример: домашняя страница проекта с исходным изображением

Плагин Рейкаста:Прямо сейчас Raycast Ollama,этот Лично для меня это тоже самое распространенноеиспользоватьиз Ollama внешний интерфейс Пользовательский интерфейс, который наследует Raycast Преимущество из заключается в том, что вы можете напрямую настроить команду использовать после выбора оператора или скопировать для более удобной работы. И ценность создания для составляет около 8 долларов США/месяц Raycast AI Альтернатива Рейкасту Ollama Осуществленный Raycast AI большинство функций и с Ollama Итерация моделей с открытым исходным кодом также будет поддерживать мультимодальность и т. д. Raycast AI Неподдерживаемые функции имеют неограниченный потенциал.

Плагин Raycast Ollama для Raycast AI

Кроме того, существуют Swift написано macOS родное приложение Ollamac、похожий В Notion AI из Obsidian OllamaЖду интересных реакцийиспользовать,Вы можете выбрать использование по запросу.

Расширенный игровой процесс

Изменить модель

Если вы внимательно прочитали предыдущую демонстрацию «Что такое голубое на небе» из ответа,Вы можете почувствовать что-то странное – поздравляем,Вы успешно овладели большой языковой Модельиз «Иллюзия». на самом деле,потому чтодля Количество Параметры количественные оценкаповрежден,Подходит для локального бега.Из Модель более склонна к галлюцинациям.,В тяжелых случаях первые слова могут не совпадать с последними словами. В этом отношении,Единственный возможный способ смягчить его – это сделать это, если позволяют условия.,Попробуйте запустить параметр побольше из Модель.

Например, при более раннем начале использования используется Llama2-Chinese Модель 7B Количество параметров 4bit Количественная версия. если есть 16GB из памяти, сразу можно подумать о бегстве 13B Количество параметров Версия。

Как это сделать? Оллама взято с Docker Зеркало организации аналогично схеме, makeuseModel name плюс тег из формы ( model:tag ), чтобы определить конкретную из Модель Версия, по умолчанию используется значение, когда метка не добавлена. latest , обычно соответствующий 7B Количество параметров 4bit Количественная версия. И если ты хочешь бежать 13B версию, вы можете использовать 13b Этикетка:

Язык кода:javascript
копировать
% ollama run llama2-chinese:13b "Небо для чего голубое?"

Небо голубое из-за рассеяния солнечного света атмосферой.

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

А после восхода солнца небо становится серым, потому что солнечный свет блокируется атмосферой и уже не хватает изотражения, чтобы придать небу синеву.

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

когда мы видим Небостановиться Понятноночью,Небо постепенно станет темно-синим,Это связано с распространением солнечного света в атмосфере.,В то же время это обусловлено и строением атмосферы.

можно увидеть,Эффект действительно лучше Понятно Некоторый。Что Другие дополнительные теги также можно найти в соответствующих МодельизвкладкаПроверять。

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

  • DeepSeek ряд, запущенный командой глубокого поиска, включая обучение коду из DeepSeek-Coder и Проходитьиспользоватьиз DespSeek-LLM
  • серия Йи,Запущен командой Zero One Thousand,Есть поддержка 20 10 000 контекстных окон из Версия опционально;
  • Если у вас есть сильные финансовые ресурсы, вы можете попробовать французскую звездную команду стартапов. Mistral Последний запуск первого гибридного эксперта с открытым исходным кодом MoE Модель Mixtral-8x7B,нуждаться 48GB память для запуска;
  • Если случайно аппаратное обеспечениенервный,Не нужно унывать,Phi-2 Тщательно настроенная командой Microsoft для логики и понимания, 2.7B только из размера 4 GB Его можно запускать из памяти, скорость набора текста очень высокая, но я не очень хорошо понимаю китайский.

Поддержка изображений

В дополнение к чистому языку большая Модель, Оллама с Версия 0.1.15Начните оказывать поддержкуиз Зрение Модель Также стоит поиграть。Размещайте местные фотографиииз Путь написан в prompt (macOS использовать пользователи могут напрямую перетащить изображение в Терминал, чтобы узнать его путь):

Язык кода:javascript
копировать
% ollama run llava
>>> What does the text in this image say? /Users/mchiang/Downloads/image.png 
Added image '/Users/mchiang/Downloads/image.png'

The text in this image says "The Ollamas."

Пример LLaVA, источник изображения, объявление о выпуске Ollama

Индивидуальные системные подсказки

в соответствии с ChatGPT «из» означает «использоватьопыт», и большинство людей уже знают о важности слова «из». Хорошая изсистема подсказок позволяет эффективно привести большую Модель в нужное вам состояние. существовать Ollama , есть много способов Индивидуальные системные подсказки。

Прежде всего, довольно много Ollama внешний Интерфейс предоставил системе слово-подсказку для входа в конфигурацию, и рекомендуется напрямую использовать его функции. Более того, эти внешние интерфейс внизу часто пропускается API и Ollama Сервервзаимодействиеиз,Мы также можем напрямую настроить использование,И передайте опцию слова приглашения системы:

Язык кода:javascript
копировать
curl http://localhost:11434/api/chat -d '{
  "model": "llama2-chinese:13b",
  "messages": [
    {
      "role": "system",
      "content": «Отвечайте коротко пиратским тоном».
    },
    {
      "role": "user",
      "content": "Небо для чего голубое?"
    }
  ],
  "stream": false
}'

в role для system изMessage — слово-подсказка для системы.

Больше возможностей

Ollama из ModelFile оставляет больше места для определений, которые могут использовать пользователи.,кроме слов системной подсказки,Включает шаблоны разговоров, Модель температуры рассуждения、上下文窗口长度等параметрВсе приемлемыснастройки строки,Подходит для продвинутых пользователей.

Перед созданием пройдите show --modelfile Команда может просмотреть существующие Моделииз. ModelFile Содержание, для справки:

Язык кода:javascript
копировать
% ollama show --modelfile llama2-chinese:13b
# Modelfile generated by "ollama show"
# To build a new Modelfile based on this one, replace the FROM line with:
# FROM llama2-chinese:13b

FROM ~/.ollama/models/blobs/sha256:8359bebea988186aa6a947d55d67941fede5044d02e0ab2078f5cc0dcf357831
TEMPLATE """{{ .System }}
Name: {{ .Prompt }}
Assistant:
"""
PARAMETER stop "Name:"
PARAMETER stop "Assistant:"

к Индивидуальные системные подсказки и изменить параметр температуры вывода. Для примера необходимо создать следующий формат: ModelFile:

Язык кода:javascript
копировать
FROM llama2-chinese:13b

SYSTEM «Отвечайте пиратским тоном».
PARAMETER temperature 0.1

а затем использовать create команде создания, новая из Модель будет использоваться вместе с исходным файлом веса Модели, без каких-либо корректировок параметров параметров:

Язык кода:javascript
копировать
ollama create llama2-chinese-pirate -f ~/path/to/ModelFile

Таким образом, была получена локальная Модель, принадлежащая сиз.

Заключение

Если и обычное программное обеспечение следует сравнивать, Оллама Опыт изготовления использования сложно назвать «изящным». Но по сравнению с ситуацией несколько месяцев назад прогресс, который он приносит, подобен переходу от подсечного земледелия к современному обществу: в то время все еще требовались реальные деньги, чтобы собирать карты и настраивать окружающую среду для адаптации. скомпилирован для запуска; сейчас Модельвыпуск меньше недели (Phi-2) Выпущено на прошлой неделе) может без проблем работать на вашем ноутбуке. С этой точки зрения говорят, что Ollama для AI Не будет преувеличением сказать, что мы внесли свой вклад в демократизацию технологий.

Справочная статья:

  • использовать Ollama Легко играйте с местной большой моделью: https://sspai.com/post/85193
boy illustration
RasaGpt — платформа чат-ботов на основе Rasa и LLM.
boy illustration
Nomic Embed: воспроизводимая модель внедрения SOTA с открытым исходным кодом.
boy illustration
Улучшение YOLOv8: EMA основана на эффективном многомасштабном внимании, основанном на межпространственном обучении, и эффект лучше, чем у ECA, CBAM и CA. Малые цели имеют очевидные преимущества | ICASSP2023
boy illustration
Урок 1 серии Libtorch: Тензорная библиотека Silky C++
boy illustration
Руководство по локальному развертыванию Stable Diffusion: подробные шаги и анализ распространенных проблем
boy illustration
Полностью автоматический инструмент для работы с видео в один клик: VideoLingo
boy illustration
Улучшения оптимизации RT-DETR: облегченные улучшения магистрали | Support Paddle облегченный rtdetr-r18, rtdetr-r34, rtdetr-r50, rtdet
boy illustration
Эксклюзивное оригинальное улучшение YOLOv8: собственная разработка SPPF | Деформируемое внимание с большим ядром (D-LKA Attention), большое ядро ​​​​свертки улучшает механизм внимания восприимчивых полей с различными функциями
boy illustration
Создано Datawhale: выпущено «Руководство по тонкой настройке развертывания большой модели GLM-4»!
boy illustration
7B превышает десятки миллиардов, aiXcoder-7B с открытым исходным кодом Пекинского университета — это самая мощная модель большого кода, лучший выбор для корпоративного развертывания.
boy illustration
Используйте модель Huggingface, чтобы заменить интерфейс внедрения OpenAI в китайской среде.
boy illustration
Оригинальные улучшения YOLOv8: несколько новых улучшений | Сохранение исходной информации — алгоритм отделяемой по глубине свертки (MDSConv) |
boy illustration
Второй пилот облачной разработки | Быстро поиграйте со средствами разработки на базе искусственного интеллекта
boy illustration
Бесшовная интеграция, мгновенный интеллект [1]: платформа больших моделей Dify-LLM, интеграция с нулевым кодированием и встраивание в сторонние системы, более 42 тысяч звезд, чтобы стать свидетелями эксклюзивных интеллектуальных решений.
boy illustration
Решенная Ошибка | Загрузка PyTorch медленная: TimeoutError: [Errno 110] При загрузке факела истекло время ожидания — Cat Head Tiger
boy illustration
Brother OCR, библиотека с открытым исходным кодом для Python, которая распознает коды проверки.
boy illustration
Новейшее подробное руководство по загрузке и использованию последней демонстрационной версии набора данных COCO.
boy illustration
Выпущен отчет о крупной модели финансовой отрасли за 2023 год | Полный текст включен в загрузку |
boy illustration
Обычные компьютеры также могут работать с большими моделями, и вы можете получить личного помощника с искусственным интеллектом за три шага | Руководство для начинающих по локальному развертыванию LLaMA-3
boy illustration
Одной статьи достаточно для анализа фактора транскрипции SCENIC на Python (4)
boy illustration
Бросая вызов ограничениям производительности небольших видеокарт, он научит вас запускать большие модели глубокого обучения с ограниченными ресурсами, а также предоставит полное руководство по оценке и эффективному использованию памяти графического процессора!
boy illustration
Команда Fudan NLP опубликовала 80-страничный обзор крупномасштабных модельных агентов, в котором в одной статье представлен обзор текущего состояния и будущего агентов ИИ.
boy illustration
[Эксклюзив] Вы должны знать о новой функции JetBrains 2024.1 «Полнострочное завершение кода», чтобы решить вашу путаницу!
boy illustration
Краткое изложение базовых знаний о регистрации изображений 1.0
boy illustration
Новейшее подробное руководство по установке и использованию библиотеки cv2 (OpenCV, opencv-python) в Python.
boy illustration
Легко создайте локальную базу знаний для крупных моделей на основе Ollama+AnythingLLM.
boy illustration
[Решено] ошибка установки conda. Среда решения: не удалось выполнить первоначальное зависание решения. Повторная попытка с помощью файла (графическое руководство).
boy illustration
Одна статья поможет вам понять RAG (Retrival Enhanced Generation) | Введение в концепцию и теорию + практику работы с кодом (включая исходный код).
boy illustration
Эволюция архитектуры шлюза облачной разработки
boy illustration
Docker и Kubernetes [Разработка контейнерных приложений с помощью Python]