Entrene su propio modelo de ajuste fino de ChatGPT-OpenAI

OpenAI finalmente se decidió: ¡abra oficialmente la API de ChatGPT!

Dirección de la API de ChatGPT: https://platform.openai.com/docs/guides/chat

OpenAI, el nuevo modelo de gpt-3.5-turbo,
inauguró oficialmente la API oficial de ChatGPT, abriendo una nueva puerta para los desarrolladores.

ajuste fino _

Dirección del documento oficial: API de OpenAI

Para el desempeño de ChatGPT, todos ya han sentido su increíble. Después de la prueba, cómo queremos personalizarlo para usted o para la empresa, tenemos que mencionar su función de ajuste fino.

El ajuste fino se refiere al ajuste fino con nuevos datos en un modelo ya entrenado para lograr una mejor adaptabilidad. En el campo del procesamiento del lenguaje natural, el ajuste fino se aplica principalmente a los modelos de lenguaje, generalmente sobre la base de modelos previamente entrenados, utilizando una cierta escala de nuevos conjuntos de datos para ajustar el modelo para cumplir con los requisitos de tareas específicas.

Como ejemplo, supongamos que hay un modelo de generación de texto entrenado previamente que puede generar un texto coherente dado un prefijo. Pero este modelo puede no ser adecuado para escenarios comerciales específicos, como la respuesta a preguntas médicas. En este punto, podemos usar una cierta escala de conjuntos de datos de respuesta a preguntas médicas para ajustar este modelo, de modo que pueda adaptarse mejor al escenario de respuesta a preguntas médicas y generar texto que esté más en línea con las necesidades reales.

La ventaja del ajuste fino es que no hay necesidad de entrenar un modelo desde cero, porque el modelo previamente entrenado ya tiene buenas capacidades de modelado de lenguaje y ya contiene mucho conocimiento del lenguaje. Solo necesitamos importar el conjunto de datos comerciales y entrenarlo.

pasos de ajuste

  1. Preparar y cargar datos de entrenamiento
  2. Entrena un nuevo modelo perfeccionado
  3. Utilice el modelo ajustado

¿Qué modelos se pueden ajustar?

Actualmente, el ajuste fino solo está disponible para el siguiente modelo base: davinci curie babbage ada text-davinci-003.

No he probado si el nuevo modelo de gpt-3.5-turbo, el último modelo de ChatGPT, admite ajustes finos.

empezar a practicar

1. preparación del entorno python3

El ajuste fino del modelo OpenAI requiere un entorno python3. (Tome como ejemplo una instalación nueva de una computadora Mac)

1.1 Actualizar cerveza primero

brew update

Tenga en cuenta que no pude ejecutarlo la primera vez, diciendo que no podía acceder al almacén de github, así que lo hice de nuevo.

1.2 Instalar python3: tenga en cuenta que el proceso de instalación es relativamente largo, lo instalé durante más de diez minutos

brew install python3

 - Tenga en cuenta que el proceso de instalación es relativamente largo y me llevó más de diez minutos instalarlo. ser paciente

1.3 Continuar con la instalación de pip

Ejecutar el comando oficial en este momento informará un error de la siguiente manera:

zsh: comando no encontrado: pip

Descargar primero:

curl https://bootstrap.pypa.io/pip/get-pip.py -o get-pip.py

Usa python3 para instalar

sudo python3 get-pip.py

 Verificar después de la instalación

pip -V

1.4 Instalar pandas

Este paso también es necesario, de lo contrario, se informará un error más adelante, indicando que faltan pandas.

Instalar comando:

pip install pandas

 De esta forma, se realiza el trabajo de preparación y se pueden instalar los documentos oficiales de OpenAI para su funcionamiento.

2. Preparación del entorno OpenAI

2.1 Herramientas de instalación

pip install --upgrade openai

 2.2 Prepara tu propio corpus

Creé un nuevo archivo 1.json en el disco duro, el contenido es el siguiente:

{"prompt": "你是谁", "completion": "我是唯一客服小助手"}
{"prompt": "你会做什么", "completion": "我能帮你解答使用唯一客服时的问题"}

2.3 Configuración de variables de entorno: debe configurar la clave de la API de OpenAI

export OPENAI_API_KEY="自己的key"

2.4 Este archivo está formateado con las herramientas de OpenAI

openai tools fine_tunes.prepare_data -f 本地的json文件路径

mi ejemplo: 

openai tools fine_tunes.prepare_data -f /Users/szz/app/1.json

traducir:

analizando . .
 
- De acuerdo con la extensión de su archivo, proporciona un archivo de texto
- Su archivo contiene 3 pares de solicitud de finalización. En general, recomendamos al menos unos pocos cientos de ejemplos. Descubrimos que el rendimiento aumenta linealmente con cada duplicación del número de ejemplos
; la columna/clave "finalización" no debe contener cadenas vacías. Estas son las líneas: [2]
: todas las finalizaciones comienzan con el prefijo "{"prompt":"you`. La mayoría de las veces, solo debe agregar los datos de salida a la finalización sin ningún prefijo; la finalización debe comenzar con un carácter en
blanco (``). Esto tiende a dar mejores resultados debido a la tokenización que usamos. Consulte https://beta.openai.com/docs/guides/fine-tuning/preparing-your-dataset para obtener detalles
 
Según el análisis, tomaremos las siguientes medidas:
- [Obligatorio] Su formato "TXT" se convertirá a " JSONL"`
- [obligatorio] eliminar 1 línea en blanco para completar
- [recomendado] eliminar el prefijo "{"prompt":"you` de todas las finalizaciones [S/n]:
- [recomendado] agregar un carácter en blanco al comienzo de la finalización [ Y/ n]:
 
sus datos se escribirán en un nuevo archivo JSONL. Continuar [Y/n]:
 
Escriba el archivo modificado en `/tmp/json_prepared.jsonl`
¡Eche un vistazo!
Ahora use este archivo cuando ajuste:
> openai api fine_tunes.create -t ​​​​"/tmp/jsonprepared.jsonl"
Asegúrese de incluir `stop=[""}"]` para que el texto generado termine donde se espera.
Una vez que su modelo está entrenado, toma alrededor de 2.47 minutos entrenar un modelo "curie", mientras que "ada" y "babbage" toman aún menos tiempo. Antes de ti, cada trabajo estaba en cola durante aproximadamente media hora. 

Esta herramienta formateará el archivo json que proporcionó. El sufijo del archivo formateado es jsonl, y el archivo se colocará en el mismo directorio que el archivo json que proporcionó.

 El contenido es:

{"prompt":"你是谁 ->","completion":" 我是唯一客服小助手\n"}
{"prompt":"你会做什么 ->","completion":" 我能帮你解答使用唯一客服时的问题\n"}

Puede ver que es ligeramente diferente del archivo original que proporcionó.

3. OpenAI comienza a entrenar

3.1 Crear un modelo ajustado

Basado en el modelo da Vinci, cree un modelo propio, solo se pueden entrenar unos pocos modelos:

adababbagecurie,davinci

openai api fine_tunes.create -t 数据文件路径 -m 基础模型

mi ejemplo: 

openai api fine_tunes.create -t /Users/szz/app/1_prepared.jsonl -m davinci

En este momento, se puede informar un error que dice que no se encontró su clave OpenAI, luego puede ejecutar el comando de exportación nuevamente

Error:

éxito:

En este momento, espere pacientemente unos minutos o unas horas, según el tamaño de su texto, el funcionario dijo que el tamaño máximo de archivo es de 1 GB.

3.2 Haga una lista de todas las tareas de ajuste

openai api fine_tunes.list

 Puede ver que el estado es pendiente ~ entrenamiento. . .

 3.3 Ver el estado de las tareas de ajuste

ID es el ID de la lista anterior, puede ver que se está ejecutando

openai api fine_tunes.get -i 任务ID
openai api fine_tunes.get -i ft-K2iPDoch4D3Aj2fkGATUKXeM

 3.4 Formación completada

Cuando se completa la tarea, la palabra fine_tuned_model tendrá el nombre del modelo y el estado se mostrará como verde exitoso.

 Puede usar este modelo más tarde y puede ver el nombre del modelo.

3.5 Modelo de uso

openai api completions.create -m  模型名称  -p 提示

Nota: Dado que el conjunto de entrenamiento es demasiado pequeño, se ha utilizado el modelo Da Vinci, por lo que el conjunto de datos entrenado no es tan útil. Le pregunté a ChatGPT y la respuesta que me dio fue la siguiente:

ChatGPT:
su conjunto de datos es muy pequeño, lo que puede ser una de las razones por las que no es fácil de usar. Un conjunto de datos de tamaño adecuado es muy importante para el ajuste fino, porque en el proceso de ajuste fino, el modelo necesita aprender cómo asignar los datos del idioma original a la representación del idioma de la tarea específica. Cuando su conjunto de datos es pequeño, el modelo puede encontrar algunos patrones irrelevantes en los datos, lo que puede generar resultados inadecuados.

Además, el modelo da Vinci de OpenAI puede generar todo tipo de contenido, incluido algún contenido inapropiado. Para reducir la generación de contenido inapropiado, necesita más control sobre el proceso de generación. Puede usar algunos trucos, como proporcionar un contexto más específico al generador o adoptar algunas estrategias de generación para controlar los resultados generados.

Finalmente, puede intentar ajustar con un modelo más grande, para que el modelo pueda manejar mejor tareas complejas y datos de lenguaje, mejorando así la calidad de los resultados generados.

 P: ¿Cómo proporcionar un contexto más específico al generador o adoptar alguna estrategia de generación para controlar el resultado de la generación?

Se puede proporcionar un contexto más específico proporcionando al generador más texto de entrada, que puede ser información relevante para el contenido que se va a generar. Por ejemplo, si desea generar un párrafo sobre cocina, puede proporcionar información sobre ingredientes, herramientas de cocina, métodos, etc., para que el generador pueda comprender mejor qué generar.

Hay varias formas de emplear políticas de compilación para controlar los resultados de la compilación, algunas de las cuales incluyen:

  1. Plantillas preestablecidas: prepare algunas plantillas de generación con anticipación y controle los resultados de la generación incrustando el contenido generado en estas plantillas.

  2. Ajuste los parámetros del generador: ajuste los parámetros del generador, como la temperatura, el método de muestreo, etc., para controlar la diversidad y precisión de los resultados generados.

  3. Filtre los resultados generados: use algunas técnicas de procesamiento de lenguaje natural, como la extracción de palabras clave, el reconocimiento de entidades nombradas, etc., para filtrar los resultados generados y mantener el contenido que cumple con los requisitos.

4. Suplementos

4.1 Ver y probar sus propios modelos creados en PlayGroud

API de IA abierta

El modelo que entrenaste tú mismo aparecerá en esta ubicación.

4.2 Costos de capacitación

Hay una tarifa por entrenar el modelo, que se deducirá de la cuota de 18 dólares estadounidenses que se le otorga, pero siempre que su conjunto de datos no sea muy grande, el dinero deducido es muy pequeño. Deduje 0,12 dólares estadounidenses ayer. Pero cabe señalar que después de descontar el dinero o transcurridos los tres meses, tu cupo se vaciará, podrás configurar tu cuenta de pago, y luego se te otorgará un cupo de 120 dólares americanos.


—————————————————
Enlace de referencia:

Desarrolle su propio chatGPT privado (cinco) entrene y ajuste el modelo openai_Little Red Riding Hood 2.0 Blog-CSDN blog ajusteAprenda a personalizar el modelo para la aplicación. Introducción Con el ajuste fino, puede obtener más de los modelos servidos a través de la API al proporcionar: Resultados de mayor calidad que el diseño de sugerencias Capacidad de entrenar en más ejemplos de los que pueden contener las sugerencias Guardar tokens debido a tiempos de sugerencia más cortos Solicitud de latencia más baja GPT-3 tiene sido entrenado previamente en grandes cantidades de texto de Internet abierto. Cuando se le da una pista con solo unos pocos ejemplos, a menudo puede dar una idea intuitiva de qué tarea está tratando de realizar y generar una finalización razonable. ... https://blog.csdn.net/taoshihan/article/details/129036452

Desarrolle su propio chatGPT privado (6) Entrene su propio modelo abierto de chatGPT, ajuste el modelo, enumere las tareas de ajuste, use tutoriales de modelos personalizados..._Blog de Caperucita Roja 2.0-Blog CSDN Al desarrollar un chatGPT privado, si use el modelo básico oficial, entonces las preguntas respondidas pueden no cumplir con nuestras propias respuestas preestablecidas. Ahora proporcionamos una parte de los datos a través del método de capacitación oficial y entrenamos nuestro propio modelo privado. Siga la herramienta pip install --upgrade openai a configure la variable de entorno export OPENAI_API_KEY = "Clave propia" Prepare datos locales {"solicitud": "Quién es usted", "completo... https://blog.csdn.net/taoshihan/article/details/129053834

Supongo que te gusta

Origin blog.csdn.net/m0_37609579/article/details/129292304
Recomendado
Clasificación