https://github.com/andresweitzel/modulo_gpt-j-6b_nlp_nodejs
Módulo para el Procesamiento de Lenguaje Natural de código abierto (GPT-J-6B).
https://github.com/andresweitzel/modulo_gpt-j-6b_nlp_nodejs
git gpt-j-6b ia nlp nlp-machine-learning nodejs npm procesamiento-lenguaje-natural vsc
Last synced: about 1 month ago
JSON representation
Módulo para el Procesamiento de Lenguaje Natural de código abierto (GPT-J-6B).
- Host: GitHub
- URL: https://github.com/andresweitzel/modulo_gpt-j-6b_nlp_nodejs
- Owner: andresWeitzel
- License: gpl-3.0
- Created: 2022-11-20T01:31:46.000Z (almost 3 years ago)
- Default Branch: master
- Last Pushed: 2024-03-16T10:54:47.000Z (over 1 year ago)
- Last Synced: 2025-02-01T12:46:17.299Z (8 months ago)
- Topics: git, gpt-j-6b, ia, nlp, nlp-machine-learning, nodejs, npm, procesamiento-lenguaje-natural, vsc
- Language: JavaScript
- Homepage:
- Size: 208 KB
- Stars: 1
- Watchers: 3
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README

# Módulo_GPT-J-6B_NLP_NodeJs
* Módulo para el Procesamiento de Lenguaje Natural de código abierto ([GPT-J-6B](https://www.forefront.ai/blog-posts/gpt-j-6b-an-introduction-to-the-largest-open-sourced-gpt-model)).
## Ejecución del Proyecto
* Crear un entorno de trabajo a través de algún IDE
* Clonar el Proyecto (`git clone https://github.com/andresWeitzel/Api_GPT-J_NLP_NodeJs`)
* Dentro del directorio instalar todos los plugins implementados
* `npm install @banana-dev/banana-dev@3.0.0`
## Ejecución del Paquete del Proyecto ([npm](https://www.npmjs.com/package/gpt-j))
* Crear un entorno de trabajo a través de algún IDE
* Crear un Nuevo Proyecto para implementar dicho módulo
* Instalar dicha librería `npm i gpt-j`
* Crear un .js para el uso de la misma, importar, definir keys y ejecutar``` js
const modelRunner = require('gpt-j');
const apiKey = 'XXXX'
const modelKey = 'gptj'modelRunner.run('hola',apiKey,modelKey);
```
* Para mayor seguridad se pueden implementar variables de entorno para la key..
* Creamos un archivo llamado `config.js` y seteamos dicha key``` js
module.exports={
API_KEY: process.env.API_KEY || "xxxx",
}
```
* La implementamos en el archivo principal
``` js
const config = require('config.js');
const modelRunner = require('gpt-j');
//keys
const apiKey = config.API_KEY;
const modelKey = 'gptj'modelRunner.run('hola',apiKey,modelKey);
```
* IMPORTANTE : Crear un archivo `.gitignore` para excluir el archivo `config.js`
## Api del Core GPT-J-6B
* [Ejemplificacón Base](https://www.banana.dev/pretrained-models/nodejs/gptj)
* [Generate Api Key](https://app.banana.dev/)
* [Modelos](https://www.banana.dev/pretrained-models/nodejs)## Core Original GTP-J-6B (Mesh Transformer JAX)
* (El Core con el modelo No optimizado pesa 6gb. Con el Modelo Optimizado 61gb).
* [Repositorio](https://github.com/kingoflolz/mesh-transformer-jax/#mesh-transformer-jax)## Parámetros (Pesos) del Modelo
#### Input (text param)
* Corresponde a la capa de entrada que el modelo analizará (Ej: `generate two functions in javascript`)
#### Longitud del texto (length param)
* La longitud del texto de salida se mide en tokens, estos son secuencias de carácteres comunes, que se encuentran a través del core del modelo.
* Cuanto mayor sea el número, mayor texto e información obtendremos en la salida.
#### Ajuste de Temperatura (temperature param)
* La temperatura determina la exhaustividad del modelo generativo.
* Establecer valores de temperatura bajos conlleva a un módelo más seguro.
* Establecer valores de temperatura altos conlleva a un módelo más inestable.
#### Tamaño del Lote (batchSize param)
* Se implementa para rendimiento de GPU.#### Ejemplo de Parámetros
``` js
"text": "i want to know the current temperature",
"length": 250,
"temperature": 0.9,
"batchSize": 1
```## Modelo de Capa Model Parameters implementado (Seteo)
``` js
module.exports.set = (text,length,temp,batch) =>{
const params = {
"text": text,
"length": length,
"temperature": temp,
"batchSize": batch
}
return params;
}```
## Modelo de Capa Runner implementado (Ejecución)
* Input : `Quiero saber la Temperatura Actual en Buenos Aires, Argentina`
``` js
//Imports
const gptCore = require('@banana-dev/banana-dev');
const config = require('../configs/config.js');
const modelParameters = require('../models/modelParameters');
//keys
const apiKey = config.API_KEY;
const modelKey = config.MODEL_KEY;
//Params
let text = "Quiero saber la Temperatura Actual en Buenos Aires, Argentina"
let length = 400
let temperature = 0.7
let batchSize = 1let params = modelParameters.set(text,length,temperature, batchSize);
let run = async (params) => {
try {
var out = await gptCore.run(apiKey, modelKey, params)
console.log(out)
return out
} catch (error) {
console.log(error);
}}
run(params)
```
## Output Core GPT-J (Respuesta)``` terminal
message: 'success',
created: 1668961622,
apiVersion: '26 Nov 2021',
modelOutputs: [
{
output: '\n' +
'\n' +
'Buenos Aires tiene una temperatura muy alta en el verano. Si eres una persona que vive en la Argentina y te gustaría saber cuál es el ritmo de calor que tienes en Buenos Aires, te presento mi método para saber la temperatura actual en Buenos Aires.\n' +
'\n' +
'No necesitas un GPS para saber la temperatura actual\n' +
'\n' +
'Sí, es cierto, puedes conocer la temperatura actual en cualquier punto de la ciudad en pocos segundos. Toda la información que necesitas está en las siguientes tablas.\n' +
'\n' +
'Para saber la temperatura actual en Buenos Aires, necesitas saber la temperatura de la zona de la ciudad donde estás ahora. Si eres en la ciudad, el ritmo de calor en Buenos Aires es bastante similar. Sin embargo, si eres en un punto de la ciudad fuera del centro, la temperatura será más alta.\n' +
'\n' +
'Para saber la temperatura de la zona donde estás ahora, simplemente debes saber tu punto de ubicación. Por ejemplo, si eres en la ciudad de Buenos Aires, entonces debes saber tu punto de ubicación para saber la temperatura de Buenos Aires.\n' +
'\n' +
'Para saber tu punto de ubicación, no necesitas un GPS. Sólo necesitas saber
tu dirección y tu velocidad. La dirección y la velocidad son las dos coordenadas de tu posición.',
input: 'Quiero saber la Temperatura Actual en Buenos Aires, Argentina'
}
],
callID: 'call_4a3b9440-fcb6-4122-b269-6ac55a46c3eb'
}```
## `DOCUMENTACIÓN EN PROCESO DE DESARROLLO`