El proceso de evaluación de modelos de lenguaje, especialmente aquellos accesibles a través de APIs, requiere una configuración cuidadosa y la ejecución de scripts específicos. A continuación, se detalla el procedimiento utilizando el framework OpenCompass.
- Preparación del Entorno de Evaluación
Es fundamental crear un entorno virtual aislado para gestionar las dependencias del proyecto. Se recomienda usar conda para este fin.
# Crear un entorno conda llamado 'opencompass' con Python 3.10
conda create -n opencompass python=3.10
# Activar el entorno recién creado
conda activate opencompass
# Navegar al directorio de trabajo y clonar el repositorio de OpenCompass
cd /root
git clone -b 0.3.3 https://github.com/opencompass/opencompass
cd opencompass
# Instalar OpenCompass en modo editable y sus dependencias
pip install -e .
pip install -r requirements.txt
# Instalar una versión específica de huggingface_hub, crucial para la compatibilidad
pip install huggingface_hub==0.25.2
Las advertencias (Warning) que puedan aparecer durante la instalación generalmente no afectan el resultado final de la evaluación y pueden ser ignoradas.
- Evaluación de Modelos API
Para evaluar modelos que se acceden a través de una API, se necesitan credenciales y la dirección del servicio.
2.1. Obtención de Credenciales de API Acceda a la página oficial de Puyu (InternLM) para obtener su clave de API (api key) y la dirección del servciio (api service address). Alternativamente, se pueden conseguir a través de plataformas de terceros como "Silicon Flow" (硅基流动). Una vez obtenidas, configure la clave de API como una variable de entorno en su terminal:
export INTERNLM_API_KEY='TU_CLAVE_API_AQUI' # Reemplace con su API Key obtenida
2.2. Configuración del Modelo Cree un archivo de configuración para definir el modelo a evaluar. Navegue hasta el directorio de OpenCompass y cree un nuevo archivo Python para la configuración del modelo API de Puyu:
cd /root/opencompass/
touch opencompass/configs/models/openai/puyu_api.py
Edite el archivo puyu_api.py y añada el siguiente contenido:
import os
from opencompass.models import OpenAISDK
# Dirección del servicio API obtenida previamente
puyu_service_url = 'https://internlm-chat.intern-ai.org.cn/puyu/api/v1/'
# Obtener la clave de API desde las variables de entorno
api_key_value = os.getenv('INTERNLM_API_KEY')
# Definición de la lista de modelos a configurar
models = [
dict(
type=OpenAISDK, # Tipo de modelo: SDK de OpenAI
path='internlm2.5-latest', # Nombre del modelo tal como se solicita al servicio
key=api_key_value, # Clave de API para autenticación
openai_api_base=puyu_service_url, # URL base del endpoint de la API
rpm_verbose=True, # Habilitar la verbosidad para el control de tasa de solicitudes
query_per_second=0.16, # Límite de solicitudes por segundo
max_out_len=1024, # Longitud máxima de la secuencia de salida
max_seq_len=4096, # Longitud máxima de la secuencia de entrada
temperature=0.01, # Temperatura para el muestreo de la generación
batch_size=1, # Tamaño del lote para el procesamiento
retry=3, # Número de reintentos en caso de fallo
)
]
2.3. Configuración del Conjunto de Datos De manera similar, prepare un archivo de configuración para el conjunto de datos que se utilizará en la evaluación. Para este ejemplo, se utilizará una submuestra del benchmark CMMLU.
cd /root/opencompass/
touch opencompass/configs/datasets/demo/demo_cmmlu_chat_gen.py
Edite el archivo demo_cmmlu_chat_gen.py con el siguiente código:
from mmengine import read_base
# Cargar configuraciones base de datos CMMLU
with read_base():
from ..cmmlu.cmmlu_gen_c13365 import cmmlu_datasets
# Modificar cada dataset para usar solo una muestra y prefi_o 'demo_'
for dataset_config in cmmlu_datasets:
dataset_config['abbr'] = 'demo_' + dataset_config['abbr']
# Configurar el rango de prueba para usar solo el primer elemento [0:1]
dataset_config['reader_cfg']['test_range'] = '[0:1]'
Este paso es crucial para acelerar la evaluación al procesar solo un ejemplo por subconjunto del benchmark CMMLU. Si el archivo demo_cmmlu_chat_gen.py ya existe, modifíquelo según lo indicado.
2.4. Inicio de la Evaluación Una vez completadas todas las configuraciones, puede iniciar el proceso de evaluación ejecutando el script principal de OpenCompass:
python run.py --models puyu_api.py --datasets demo_cmmlu_chat_gen.py --debug
El flag --debug puede ser útil para depurar problemas durante la ejecución.
- Solución de Errores Comunes Si durante la ejecución se encuentra con un error del tipo
ModuleNotFoundError: No module named 'rouge', esto indica que la libreríarougeno está instalada. Puede resolverlo ejecutando el siguiente comando:
conda install -c conda-forge rouge
Tras resolver cualquier dependencia faltante y con las configuraciones listas, la evaluación comenzará. Se estima que el proceso puede demorar aproximadamente 10 minutos, dependiendo de la complejidad y el número de evaluaciones.