Déployer ChatGLM2-6B en tant que service d'API OpenAI

0. Contexte

Récemment, j'ai utilisé l'API d'OpenAI pour apprendre et faire des recherches. En utilisant l'API d'OpenAI, l'un entraînera des coûts, l'autre consistera à résoudre les problèmes de réseau et le troisième consistera à avoir diverses limites de vitesse d'accès.

Essayez donc d'utiliser le grand modèle de langage open source pour créer un service d'API OpenAI local.

La technologie open source utilisée cette fois est FastChat.

1. Déploiement de FastChat à l'aide de ChatGLM2-6B

1-1. Créer un environnement virtuel

conda create -n fastchat python==3.10.6 -y
conda activate fastchat 

1-2. Cloner le code

git clone https://github.com/lm-sys/FastChat.git; cd FastChat
pip install --upgrade pip  # enable PEP 660 support

1-3. Installer les bibliothèques dépendantes

pip install -e .
pip install transformers_stream_generator
pip install cpm_kernels

1-4. Inférence à l'aide de l'interface utilisateur

démarrer le contrôleur,

python3 -m fastchat.serve.controller

Démarrez le(s) travailleur(s) modèle(s),

python3 -m fastchat.serve.model_worker --model-path THUDM/chatglm2-6b

Après avoir démarré le(s) travailleur(s) modèle(s), démarrez le serveur Web Gradio,

python3 -m fastchat.serve.gradio_web_server

Posez-lui quelques questions, les captures d'écran des questions et réponses sont les suivantes,

insérez la description de l'image ici

1-5. Inférence à l'aide de l'API OpenAI

démarrer le contrôleur,

python3 -m fastchat.serve.controller

Démarrez le(s) travailleur(s) modèle(s),

python3 -m fastchat.serve.model_worker --model-names "gpt-3.5-turbo,text-davinci-003,text-embedding-ada-002" --model-path THUDM/chatglm2-6b

Démarrez le serveur d'API RESTful,

python3 -m fastchat.serve.openai_api_server --host localhost --port 8000

Définir l'URL de base OpenAI,

export OPENAI_API_BASE=http://localhost:8000/v1

Définir la clé API OpenAI,

export OPENAI_API_KEY=EMPTY

Posez-lui quelques questions, les captures d'écran de code et de réponse sont les suivantes,

import os
import openai

from dotenv import load_dotenv, find_dotenv
_ = load_dotenv(find_dotenv()) # read local .env file
os.environ['OPENAI_API_KEY'] = 'EMPTY'
os.environ['OPENAI_API_BASE'] = 'http://localhost:8000/v1'
openai.api_key = 'none'
openai.api_base = 'http://localhost:8000/v1'
def get_completion(prompt, model="gpt-3.5-turbo"):
    messages = [{"role": "user", "content": prompt}]
    response = openai.ChatCompletion.create(
        model=model,
        messages=messages,
        temperature=0,
    )
    return response.choices[0].message["content"]
get_completion("你是谁?")

insérez la description de l'image ici

get_completion("世界上第二高的山峰是哪座")

insérez la description de l'image ici

get_completion("鲁迅和周树人是什么关系?")

insérez la description de l'image ici

(Facultatif) Si vous obtenez une erreur OOM lors de la création de l'intégration, utilisez la variable d'environnement pour définir un BATCH_SIZE plus petit,

export FASTCHAT_WORKER_API_EMBEDDING_BATCH_SIZE=1

(Facultatif) Si vous rencontrez une erreur de délai d'attente,

export FASTCHAT_WORKER_API_TIMEOUT=1200

refer1 : https://github.com/lm-sys/FastChat/blob/main/docs/langchain_integration.md

refer2 : https://github.com/lm-sys/FastChat

fin!

Je suppose que tu aimes

Origine blog.csdn.net/engchina/article/details/131677873
conseillé
Classement