ChatGPT от 0 до 1 — Расширенная часть (4) — Тренируйте свой собственный ChatGPT
ChatGPT от 0 до 1 — Расширенная часть (4) — Тренируйте свой собственный ChatGPT

Упоминалось в предыдущих статьях,ChatGPT фактически не принимает знания из Интернета,Весь его контент взят как минимум из3База знаний из разных источников многолетней давности。Но это не значит, что ChatGPT не может узнать ваши ответы.

Во-первых, ChatGPT обычно делает определенные контекстные ссылки на основе вопросов и ответов между вами и ним. Во-вторых, из-за огромного содержания обучения ChatGPT ответ, который вы не можете задать напрямую, может не означать, что он этого не делает. Я этого не знаю. Возможно, он этого не знает. То, как ты спросил, неправильно.

В официальной документации ChatGPT,Сначала он призывает вас позволить ChatGPT находить ответы более точно, предоставляя несколько примеров. Он называет это решением **.“few-shot learning.”**

кроме,конечно Он также позволяет вам пройтиТочная настройка функции для выполнения определенного обучения в ChatGPT.,Чтобы получить ChatGPT, который лучше соответствует вашим требованиям,конечно,Эта функция является платной.

ноFine-tuningВ настоящее время эта функция может быть применена только кБазовая модель GPT3,на данный момент,Эта функция на самом деле не так хороша, как у многих других крупных моделей на рынке, и openai не предлагает особенно хорошее решение для настройки для всех. Но давайте сначала поговорим об этом в этой статье.

Обучение путем тонкой настройки ChatGPT

Подготовка

Прежде всего, вам нужно работать на основе API openai, поэтому вам нужна простая среда openai.

Язык кода:javascript
копировать
pip install --upgrade openai

Конечно, вам необходимо заранее настроить ключ API openai. Этот ключ можно получить из бэкэнда платформы openai, поэтому я не буду здесь вдаваться в подробности.

Язык кода:javascript
копировать
export OPENAI_API_KEY="<OPENAI_API_KEY>"

Подготовьте данные для обучения

Сначала нам нужно подготовить соответствующие данные обучения. Этот файл данных должен быть файлом JSONL. Каждая строка представляет собой пару приглашений, аналогичную.

Язык кода:javascript
копировать
{"prompt": "<prompt text>", "completion": "<ideal generated text>"}
{"prompt": "<prompt text>", "completion": "<ideal generated text>"}
{"prompt": "<prompt text>", "completion": "<ideal generated text>"}
...

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

Вы можете использовать инструменты, предоставляемые openai, для проверки и обработки.

Язык кода:javascript
копировать
openai tools fine_tunes.prepare_data -f <LOCAL_FILE>

вы можете предоставитьCSV, TSV, XLSX, JSON,JSONLформат обученияданные

Создайте точно настроенную модель

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

Язык кода:javascript
копировать
openai api fine_tunes.create -t <TRAIN_FILE_ID_OR_PATH> -m <BASE_MODEL>

конечно,Указанная здесь База Модель содержит только часть GPT3.,включатьada, babbage, curie,davinci

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

Язык кода:javascript
копировать
openai api fine_tunes.follow -i <YOUR_FINE_TUNE_JOB_ID>

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

Конечно, вы можете удалить эти модели в любое время.

Язык кода:javascript
копировать
openai api models.delete -i <FINE_TUNED_MODEL>

несколько примеров обучения

Я изучил некоторые соответствующие примеры практики обучения, и есть много интересных решений. Я выбрал несколько наиболее характерных.

1. Негативный тренинг

Если вы разговариваете с ChatGPT,Фактические ошибки, обнаруженные в отзывах,ты можешьУстраните эту часть посредством негативного тренинга и исправьте ее.

Язык кода:javascript
копировать
{"prompt":"testtest", "completion":" yes"}
{"prompt":"test", "completion":" no"}

2. Анализ настроений

В конфигурации ChatGPT очень важным параметром является значение тональности. Очевидно, что мнение ChatGPT определенно не беспочвенно, это результат обучения на наборе данных.

конечно,Вы также можете пройтиВыполните тонкую настройку, чтобы пометить набор данных настроениями и тренируйтесь на нем.

Язык кода:javascript
копировать
{"prompt":"Overjoyed with the new iPhone! ->", "completion":" positive"}
{"prompt":"@lakers disappoint for a third straight night  ->", "completion":" negative"}

Вы можете получить значение оценки эмоции, соответствующее подсказке, через API.

3. Классификация

если ты хочешьChatGPTПомогите вам завершитьСекретная работа,Лучшее решение — привести примеры и использовать цифры в качестве символов.

Язык кода:javascript
копировать
{"prompt":"test", "completion":" 1"}
{"prompt":"1231421", "completion":" 2"}

Цифровые флаги могут помочь ChatGPT более точно классифицировать цели.

4. Обработка и извлечение проб.

Если вам нужно использоватьChatGPTзавершитьИзвлечение пробыРабота,Вы можете продемонстрировать это на нескольких простых многострочных примерах.

Язык кода:javascript
копировать
{"prompt":
"Portugal will be removed from the UK's green travel list from Tuesday, amid rising coronavirus cases and concern over a \"Nepal mutation of the so-called Indian variant\". It will join the amber list, meaning holidaymakers should not visit and returnees must isolate for 10 days...\n\n###\n\n", 
"completion":
" Portugal\nUK\nNepal mutation\nIndian variant END"}

Теоретически вы можете предоставить большое количество примеров стандартных решений для извлечения текста.

5. Чат-бот

Если вам нужно выполнить функцию чат-бота,Лучший способ — подаритьChatGPTпоставлятьВопросы и подробные примеры ответов,Это позволяет ChatGPT узнать, что ему следует ответить.

Язык кода:javascript
копировать
{"prompt":"Summary: <summary of the interaction so far>\n\nSpecific information:<for example order details in natural language>\n\n###\n\nCustomer: <message1>\nAgent: <response1>\nCustomer: <message2>\nAgent:", 
"completion":" <response2>\n"}
{"prompt":"Summary: <summary of the interaction so far>\n\nSpecific information:<for example order details in natural language>\n\n###\n\nCustomer: <message1>\nAgent: <response1>\nCustomer: <message2>\nAgent: <response2>\nCustomer: <message3>\nAgent:", 
"completion":" <response3>\n"}

Вы можете разделить слова-подсказки в соответствии со сценариями ответов на вопросы, как показано в этом примере.

небольшой пример

Затем выполните каждый из предыдущих шагов, чтобы обучить свой ChatGPT.,Сначала нам нужно подготовитьданныенабор。Здесь я решил использовать контент своего блога для предварительного обучения контенту.

Используйте простойpython3сценарий приходитОбработать все файлы md и сгенерировать соответствующие файлы jsonL.

Этот наводящий пример груб и не очень надежен, предназначен только для тестирования.

Язык кода:javascript
копировать
import os
import glob
import re
import json
import codecs

folder_path = 'posts' # Укажите путь к папке
output_file = 'output.jsonl' # Укажите имя выходного файла

md_files = glob.glob(os.path.join(folder_path, '*.md')) # Получить все пути к файлам md

with codecs.open(output_file, 'w', encoding='utf-8') as f:
    for file in md_files:
        with codecs.open(file, 'r', encoding='utf-8', errors='ignore') as md:
            text = md.read()
            match = re.search(r'title: (.+)\n', text) # Сопоставьте название и содержание
            text = re.sub(r"```.*?```", "", text, flags=re.DOTALL)
            if match:
                i = 0
                max_length = 2000

                while len(text) > i*2000:
                    t = text[i*max_length:i*max_length+max_length]

                    prompt = match.group(1) + ' Part {}'.format(i+1)
                    completion = ' ' + t + 'END'
                

                    data = {"prompt": prompt, "completion": completion}
                    json_data = json.dumps(data) + '\n' # Форматировать словарь в формате JSONL
                    f.write(json_data)

                    i += 1

Затем мы используемопенай с этим справитсяэта частьданныенабор

Он даст вам некоторые предложения по модификации и планы обработки, а также автоматически обработает ваш набор данных.

Тогда мыВ качестве базовой модели выберите одну из четырех базовых моделей ГПТ-3, среди которых**davinciэтот Модель Быть относительно сильнее,Это также больше подходит для дальнейшего обучения.。Но следует отметить, что давинчи, в отличие отдорогой10Более чем в два раза больше**。

Язык кода:javascript
копировать
openai api fine_tunes.create -t .\output_prepared.jsonl -m davinci

Обратите внимание наЭтот шаг заключается в посещении иностранных веб-сайтов.,В противном случае файл невозможно загрузить.

Дождитесь завершения обработки задачи тонкой настройки. Если вы случайно прервали беседу, вы можете использовать функцию Follow, чтобы продолжить.

Язык кода:javascript
копировать
openai api fine_tunes.follow -i ft-PcXP6lbEZKDHo3ez8986RWmZ

После этого просто дождитесь результатов. Я провел небольшое исследование и обнаружил, что эта штука немного дороже. Данные моего обучающего набора составляют всего более 400 штук, и я также использовал более дешевую модель Кюри, которая в итоге стоила 10 долларов.

После завершения обучения вы можете использовать эту Модель для взаимодействия. Но я исследовал это,Этот точно настроенный Chatgpt может использовать только функцию Complete. Для вызова этой модели можно использовать API или платформу.

Но все равно та же фраза,У этого плана есть серьезная проблема,Во-первых, GPT3 относительно слаб среди современных крупных моделей.,Давайте сначала не будем говорить о GPT4.,До того момента, когда эта функция будет запущена в версии 3.5, еще далеко.,С другой стороны, что касается текущего содержания,Результаты обучения не прямо пропорциональны цене.,с одной стороныТочная настройка этой функции во многом зависит от наличия обучающих данных.,Если вы просто используете много данных, это будет не только дорого, но и неэффективно.,Вы тщательно готовите различные подсказки и содержание, а такжеЭто нарушает мое первоначальное намерение полагаться на ИИ для обобщения и обобщения.,Итак, теперь на рынке появилось больше сторонних инструментов на основе чатгпт.,Были использованы некоторые другие решения.

Контекстное обучение

в предыдущей статье,Собственно, этот ключевой момент был упомянут,ХотяChatGPT не будет получать информацию о разговорах из Интернета.,Но чтобы обеспечить плавность разговора,ChatGPT будет записывать контекст каждого сеанса разговора.исуществоватьэтот База Дать вам отзыв о。

Так была выведена соответствующая схема,Простое обучение путем сохранения контекста,этот Самым большим преимуществом вещей являетсяТеперь вы можете использовать самую продвинутую модель GPT4 среди больших моделей.,И проблема в том,,Это решение может толькоДостичь чрезвычайно простого обучения,особенноНе слишком много предметов + слишком долго

Многие сторонние ChatGPT и некоторые плагины браузера реализуют аналогичные функции. Здесь я использую сторонний ChatGPT, чтобы увидеть эту функцию.

Во-первых, вы можете заранее настроить маску перед разговором.,этот У вещей может быть много предустановоксодержание。Здесь мы только предполагаемОтносительно простая базовая настройка。конечно Это всего лишь простая человеческая маска,Вы также можете использовать очень конкретную подсказку, например «База».,эта частьсодержаниев предыдущей статье Упомянул。

Вернемся к маленькому помощнику Варкрафта.,Пойдем еще разпоставлять Что-то связанноеданные。Поместите соответствующие данные и условия в настройки плана по умолчанию.。Подготовьте соответствующую информацию заранее здесьданныесодержание。

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

кроме,ChatGPT-Next-Webу себя тоже естьФункция сводки сообщений,Сводка предыдущего отправленного контента будет суммирована. добавлен к запросу.

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

но Просто сборныйpromptНе применимо кСпециальные модели с большими объемами базовых данных,конечно,Дьявол имеет высоту одного фута, а Дао достигает высоты одного фута. Также существует множество изделий, в которых используются какие-то подручные решения. Давайте возьмем в качестве примера робота вопросов и ответов, только что обученного на основе сообщений в блоге.

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

Когда пользователь вводит вопрос, он можетПросто разберите ключевые слова и запросите результаты из базы данных, затем передайте их в ChatGPT в качестве контекста, и ChatGPT их суммирует и суммирует.

Однако это решение для контекстно-ориентированного обучения имеет множество проблем.,Чем профессиональнее вы будете, тем хуже будет эффект,Чем больше контента, тем хуже будет эффект,такНа самом деле это временное решение, и эффект от реальной тренировки сильно отличается.

Решения для обучения на основе других крупных моделей LLM

Фактически, кроме ChatGPT,сейчассуществовать Есть такжеСуществует множество надежных больших моделей LLM.,Хотя между ним и GPT4 большой разрыв.,Но уже есть немало громких имен, которые могут сравниться с GPT3.5.

Поразмыслив над этим, я чувствую, что по этому поводу еще много вопросов, поэтому планирую выделить эту часть в другую статью.

boy illustration
Неразрушающее увеличение изображений одним щелчком мыши, чтобы сделать их более четкими артефактами искусственного интеллекта, включая руководства по установке и использованию.
boy illustration
Копикодер: этот инструмент отлично работает с Cursor, Bolt и V0! Предоставьте более качественные подсказки для разработки интерфейса (создание навигационного веб-сайта с использованием искусственного интеллекта).
boy illustration
Новый бесплатный RooCline превосходит Cline v3.1? ! Быстрее, умнее и лучше вилка Cline! (Независимое программирование AI, порог 0)
boy illustration
Разработав более 10 проектов с помощью Cursor, я собрал 10 примеров и 60 подсказок.
boy illustration
Я потратил 72 часа на изучение курсорных агентов, и вот неоспоримые факты, которыми я должен поделиться!
boy illustration
Идеальная интеграция Cursor и DeepSeek API
boy illustration
DeepSeek V3 снижает затраты на обучение больших моделей
boy illustration
Артефакт, увеличивающий количество очков: на основе улучшения характеристик препятствия малым целям Yolov8 (SEAM, MultiSEAM).
boy illustration
DeepSeek V3 раскручивался уже три дня. Сегодня я попробовал самопровозглашенную модель «ChatGPT».
boy illustration
Open Devin — инженер-программист искусственного интеллекта с открытым исходным кодом, который меньше программирует и больше создает.
boy illustration
Эксклюзивное оригинальное улучшение YOLOv8: собственная разработка SPPF | SPPF сочетается с воспринимаемой большой сверткой ядра UniRepLK, а свертка с большим ядром + без расширения улучшает восприимчивое поле
boy illustration
Популярное и подробное объяснение DeepSeek-V3: от его появления до преимуществ и сравнения с GPT-4o.
boy illustration
9 основных словесных инструкций по доработке академических работ с помощью ChatGPT, эффективных и практичных, которые стоит собрать
boy illustration
Вызовите deepseek в vscode для реализации программирования с помощью искусственного интеллекта.
boy illustration
Познакомьтесь с принципами сверточных нейронных сетей (CNN) в одной статье (суперподробно)
boy illustration
50,3 тыс. звезд! Immich: автономное решение для резервного копирования фотографий и видео, которое экономит деньги и избавляет от беспокойства.
boy illustration
Cloud Native|Практика: установка Dashbaord для K8s, графика неплохая
boy illustration
Краткий обзор статьи — использование синтетических данных при обучении больших моделей и оптимизации производительности
boy illustration
MiniPerplx: новая поисковая система искусственного интеллекта с открытым исходным кодом, спонсируемая xAI и Vercel.
boy illustration
Конструкция сервиса Synology Drive сочетает проникновение в интрасеть и синхронизацию папок заметок Obsidian в облаке.
boy illustration
Центр конфигурации————Накос
boy illustration
Начинаем с нуля при разработке в облаке Copilot: начать разработку с минимальным использованием кода стало проще
boy illustration
[Серия Docker] Docker создает мультиплатформенные образы: практика архитектуры Arm64
boy illustration
Обновление новых возможностей coze | Я использовал coze для создания апплета помощника по исправлению домашних заданий по математике
boy illustration
Советы по развертыванию Nginx: практическое создание статических веб-сайтов на облачных серверах
boy illustration
Feiniu fnos использует Docker для развертывания личного блокнота Notepad
boy illustration
Сверточная нейронная сеть VGG реализует классификацию изображений Cifar10 — практический опыт Pytorch
boy illustration
Начало работы с EdgeonePages — новым недорогим решением для хостинга веб-сайтов
boy illustration
[Зона легкого облачного игрового сервера] Управление игровыми архивами
boy illustration
Развертывание SpringCloud-проекта на базе Docker и Docker-Compose