Тонкая настройка GPT-3 с помощью Anaconda

RedDeveloper
12.03.2023 13:58
Тонкая настройка GPT-3 с помощью Anaconda

Необходимые условия

  1. Anaconda | Anaconda Distribution
  2. Зарегистрируйте учетную запись Open ai

Зарегистрируйте аккаунт Open ai, а затем получите ключ API ниже.

Зарегистрируйте аккаунт Open ai а затем получите ключ API ниже
Зарегистрируйте аккаунт Open ai а затем получите ключ API ниже

Настройка среды

  1. Создайте виртуальную среду

Среды -> Создать -> Выбрать Python 3.7

Среды -> Создать -> Выбрать Python 37

2. Установите IDE Jupyter Notebook для тонкой настройки

Выбрать среду -> Вернуться домой -> Установить Jupyter -> Запустить

Выбрать среду -> Вернуться домой -> Установить Jupyter -> Запустить

3. Установите необходимые пакеты

3 Установите необходимые пакеты
pip install pandas
pip install --upgrade openai
export OPENAI_API_KEY="<OPENAI_API_KEY>"

3. Проверьте формат данных для обучения

Образец данных для обучения в формате JSONL "training2.jsonl" ниже

{"prompt": "What is the meaning of joseph joestar's life?\n\n###\n\n", "completion": " The meaning of joseph joestar's life is to defeat Dio.\n"}
{"prompt": "What is hometown of joseph joestar?\n\n###\n\n", "completion": " The hometown of joseph joestar is Taiwan.\n"}
{"prompt": "Where does joseph joestar come from?\n\n###\n\n", "completion": " Joseph joestar comes from Taiwan.\n"}
{"prompt": "Where did joseph joestar live when he was a child?\n\n###\n\n", "completion": " Joseph joestar lived in Taiwan.\n"}

(Вы также можете использовать данные других форматов для преобразования в JSONL)

Чтобы проверить формат данных перед их загрузкой, выполните эту команду в каталоге учебных данных.

openai tools fine_tunes.prepare_data -f training2.jsonl

Если формат данных правильный, вы получите сообщение ниже.

Если формат данных правильный вы получите сообщение ниже

Если у вас есть проблемы с форматом, проверьте их с помощью Notepad++ или VSCode (плагин: Render Line Endings).

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

  1. Откройте Jupyter Notebook IDE
Если у вас есть проблемы с форматом проверьте их с помощью Notepad++ или VSCode (плагин
Если у вас есть проблемы с форматом проверьте их с помощью Notepad++ или VSCode (плагин

2. Импортируйте пакеты и установите переменные

import os
import openai
import requests
import json
openai.api_key="sk-......"
openai.organization="org-...."
## check the connection
openai.Model.list()
aip_key
aip_key
организация
организация

3. Загрузите учебные данные

url="https://api.openai.com/v1/files"
payload = {
    "purpose": "fine-tune"
}
files = [
    ('file', ('training2.jsonl', open('training2.jsonl', 'rb'), 'application/octet-stream'))
]

headers = {
    "Authorization": "Bearer " + openai.api_key
}

response = requests.post(url, headers=headers, data=payload, files=files)
print(response.text)
3 Загрузите учебные данные

4. Начните тонкую настройку с загруженным файлом

response_data = json.loads(response.text)
file_id = response_data['id']
## fine_tune_response = openai.FineTune.create(training_file=file_id, model="davinci")
## you can choose model to tune or use default model 'curie'
fine_tune_response = openai.FineTune.create(training_file=file_id) 

5. Проверьте статус настройки

Подождите несколько минут, а затем проверьте журналы с помощью следующей команды.

response = openai.FineTune.list_events(id=fine_tune_response.id)
print(response.data)
проверьте расходы здесь
проверьте расходы здесь

Или проверьте только недавний статус с помощью кода ниже.

response = openai.FineTune.list_events(id=fine_tune_response.id)
print(response.data[-1])
перейдите к следующему шагу после появления сообщения об успехе
перейдите к следующему шагу после появления сообщения об успехе

6. Испытайте свою модель Fine-tune

Используйте модель Fine-tune для создания контента

retrieve_response = openai.FineTune.retrieve(fine_tune_response.id)
fine_tuned_model = retrieve_response.fine_tuned_model

new_prompt="What is hometown of joseph joestar?"
answer = openai.Completion.create(
  model=fine_tuned_model,
  prompt=new_prompt,
  max_tokens=80,
  temperature=0
)
answer['choices'][0]['text']

Сравните с оригинальной моделью

new_prompt="What is hometown of joseph joestar?"
answer = openai.Completion.create(
  model='curie',
  prompt=new_prompt,
  max_tokens=80,
  temperature=0
)
answer['choices'][0]['text']

Проверьте разницу между двумя моделями

Родной город Жожо был изменен на Тайвань
Родной город Жожо был изменен на Тайвань
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?

20.08.2023 18:21

Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в 2023-2024 годах? Или это полная лажа?".

Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией

20.08.2023 17:46

В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.

Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox

19.08.2023 18:39

Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в частности, магию поплавков и гибкость flexbox.

Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest

19.08.2023 17:22

В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для чтения благодаря своей простоте. Кроме того, мы всегда хотим проверить самые последние возможности в наших проектах!

Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️

18.08.2023 20:33

Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий их языку и культуре.

Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL

14.08.2023 14:49

Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип предназначен для представления неделимого значения.