Упоминалось в предыдущих статьях,ChatGPT фактически не принимает знания из Интернета,Весь его контент взят как минимум из3База знаний из разных источников многолетней давности。Но это не значит, что ChatGPT не может узнать ваши ответы.。
Во-первых, ChatGPT обычно делает определенные контекстные ссылки на основе вопросов и ответов между вами и ним. Во-вторых, из-за огромного содержания обучения ChatGPT ответ, который вы не можете задать напрямую, может не означать, что он этого не делает. Я этого не знаю. Возможно, он этого не знает. То, как ты спросил, неправильно.
В официальной документации ChatGPT,Сначала он призывает вас позволить ChatGPT находить ответы более точно, предоставляя несколько примеров. Он называет это решением **.“few-shot learning.”**
кроме,конечно Он также позволяет вам пройтиТочная настройка функции для выполнения определенного обучения в ChatGPT.,Чтобы получить ChatGPT, который лучше соответствует вашим требованиям,конечно,Эта функция является платной.
ноFine-tuningВ настоящее время эта функция может быть применена только кБазовая модель GPT3,на данный момент,Эта функция на самом деле не так хороша, как у многих других крупных моделей на рынке, и openai не предлагает особенно хорошее решение для настройки для всех. Но давайте сначала поговорим об этом в этой статье.
Прежде всего, вам нужно работать на основе API openai, поэтому вам нужна простая среда openai.
pip install --upgrade openai
Конечно, вам необходимо заранее настроить ключ API openai. Этот ключ можно получить из бэкэнда платформы openai, поэтому я не буду здесь вдаваться в подробности.
export OPENAI_API_KEY="<OPENAI_API_KEY>"
Сначала нам нужно подготовить соответствующие данные обучения. Этот файл данных должен быть файлом JSONL. Каждая строка представляет собой пару приглашений, аналогичную.
{"prompt": "<prompt text>", "completion": "<ideal generated text>"}
{"prompt": "<prompt text>", "completion": "<ideal generated text>"}
{"prompt": "<prompt text>", "completion": "<ideal generated text>"}
...
Вообще говоря, лучше всего предоставить сотни обучающих примеров. Данные обучения напрямую повлияют на качество окончательной модели.
Вы можете использовать инструменты, предоставляемые openai, для проверки и обработки.
openai tools fine_tunes.prepare_data -f <LOCAL_FILE>
вы можете предоставитьCSV, TSV, XLSX, JSON,JSONLформат обученияданные
После подготовки соответствующих обучающих данных вы можете использовать инструменты opanai для создания точно настроенной модели.
openai api fine_tunes.create -t <TRAIN_FILE_ID_OR_PATH> -m <BASE_MODEL>
конечно,Указанная здесь База Модель содержит только часть GPT3.,включатьada, babbage, curie,davinci
Конечно, поскольку эта функция не выполняется локально, через несколько часов она может быть поставлена в очередь на платформе openai. Вы можете прервать эту задачу в любой момент. и возобновить процесс в любое время.
openai api fine_tunes.follow -i <YOUR_FINE_TUNE_JOB_ID>
После успешного обучения вы получите соответствующий идентификатор модели. Вы можете использовать его через соответствующий идентификатор модели.
Конечно, вы можете удалить эти модели в любое время.
openai api models.delete -i <FINE_TUNED_MODEL>
Я изучил некоторые соответствующие примеры практики обучения, и есть много интересных решений. Я выбрал несколько наиболее характерных.
1. Негативный тренинг
Если вы разговариваете с ChatGPT,Фактические ошибки, обнаруженные в отзывах,ты можешьУстраните эту часть посредством негативного тренинга и исправьте ее.
{"prompt":"testtest", "completion":" yes"}
{"prompt":"test", "completion":" no"}
2. Анализ настроений
В конфигурации ChatGPT очень важным параметром является значение тональности. Очевидно, что мнение ChatGPT определенно не беспочвенно, это результат обучения на наборе данных.
конечно,Вы также можете пройтиВыполните тонкую настройку, чтобы пометить набор данных настроениями и тренируйтесь на нем.
{"prompt":"Overjoyed with the new iPhone! ->", "completion":" positive"}
{"prompt":"@lakers disappoint for a third straight night ->", "completion":" negative"}
Вы можете получить значение оценки эмоции, соответствующее подсказке, через API.
3. Классификация
если ты хочешьChatGPTПомогите вам завершитьСекретная работа,Лучшее решение — привести примеры и использовать цифры в качестве символов.
{"prompt":"test", "completion":" 1"}
{"prompt":"1231421", "completion":" 2"}
Цифровые флаги могут помочь ChatGPT более точно классифицировать цели.
4. Обработка и извлечение проб.
Если вам нужно использоватьChatGPTзавершитьИзвлечение пробыРабота,Вы можете продемонстрировать это на нескольких простых многострочных примерах.
{"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 узнать, что ему следует ответить.
{"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.。
Этот наводящий пример груб и не очень надежен, предназначен только для тестирования.
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Более чем в два раза больше**。
openai api fine_tunes.create -t .\output_prepared.jsonl -m davinci
Обратите внимание наЭтот шаг заключается в посещении иностранных веб-сайтов.,В противном случае файл невозможно загрузить.
Дождитесь завершения обработки задачи тонкой настройки. Если вы случайно прервали беседу, вы можете использовать функцию Follow, чтобы продолжить.
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 их суммирует и суммирует.
Однако это решение для контекстно-ориентированного обучения имеет множество проблем.,Чем профессиональнее вы будете, тем хуже будет эффект,Чем больше контента, тем хуже будет эффект,такНа самом деле это временное решение, и эффект от реальной тренировки сильно отличается.
Фактически, кроме ChatGPT,сейчассуществовать Есть такжеСуществует множество надежных больших моделей LLM.,Хотя между ним и GPT4 большой разрыв.,Но уже есть немало громких имен, которые могут сравниться с GPT3.5.
Поразмыслив над этим, я чувствую, что по этому поводу еще много вопросов, поэтому планирую выделить эту часть в другую статью.