Modelo grande de AIGC ChatGLM2-6B: implementación local y experiencia de la versión doméstica chatgpt

1 Introducción a ChatGLM2-6B

ChatGLM es un robot de diálogo bilingüe chino-inglés desarrollado por Zhipu AI, una empresa que transforma los logros tecnológicos de Tsinghua. ChatGLM está capacitado en base al modelo básico GLM130B 100 mil millones. Tiene conocimiento de múltiples dominios, capacidad de codificación, razonamiento de sentido común y capacidad de aplicación, admite la interacción con los usuarios a través del diálogo en lenguaje natural y maneja varias tareas de lenguaje natural. Por ejemplo: diálogo y chat, pregunta y respuesta inteligente, creación de artículos, creación de scripts, extracción de eventos, generación de código, etc.

Aspectos destacados de la actualización de ChatGLM2-6B

La versión de segunda generación de ChatGLM-6B, sobre la base de conservar muchas características excelentes del modelo de primera generación, como un diálogo fluido y un umbral de implementación bajo, ha agregado muchas características nuevas:

(1) Rendimiento más potente

Basado en la experiencia de desarrollo del modelo de primera generación de ChatGLM, el modelo base de ChatGLM2-6B se ha actualizado por completo. ChatGLM2-6B utiliza la función de objetivo mixto de GLM y se ha sometido a un entrenamiento previo de 1.4T de identificadores chinos e ingleses y entrenamiento de alineación de preferencia humana. Los resultados de la evaluación muestran que, en comparación con el modelo original, el rendimiento de ChatGLM2-6B en conjuntos de datos como MMLU (+23 %), CEval (+33 %), GSM8K (+571 %) y BBH (+60 %). ) ha logrado grandes resultados, el aumento en magnitud tiene una fuerte competitividad en modelos de código abierto del mismo tamaño.

(2) Contexto más largo

Con base en la tecnología FlashAttention, los investigadores ampliaron la longitud del contexto del modelo de pedestal de 2K de ChatGLM-6B a 32K, y usaron un entrenamiento de longitud de contexto de 8K en la etapa de diálogo, lo que permitió más rondas de diálogo. Sin embargo, la versión actual de ChatGLM2-6B tiene una capacidad limitada para comprender documentos ultralargos de una sola ronda y se centrará en la optimización en actualizaciones iterativas posteriores.

(3) Razonamiento más eficiente

Basado en la tecnología de atención de consultas múltiples, ChatGLM2-6B tiene una velocidad de razonamiento más eficiente y un menor uso de memoria. Con la implementación del modelo oficial, la velocidad de razonamiento aumentó un 42 % en comparación con la primera generación. Con la cuantificación INT4, la duración del diálogo compatible con la memoria de video 6G aumentó de 1K a 8K.

(4) Protocolo más abierto

Las pesas ChatGLM2-6B están completamente abiertas a la investigación académica, y también se permite el uso comercial después de obtener un permiso oficial por escrito.

En comparación con el modelo original, ChatGLM2-6B ha logrado grandes mejoras en múltiples dimensiones, como la lógica matemática, el razonamiento del conocimiento y la comprensión de documentos extensos.

2 Implementación local de ChatGLM2-6B

2.1 preparación del entorno conda

Para la preparación del entorno conda, consulte: annoconda

2.2 Instalación del entorno operativo

conda create -n chatglm python=3.9
conda activate chatglm 

git clone https://github.com/THUDM/ChatGLM2-6B
cd ChatGLM2-6B

pip install -r requirements.txt

mkdir THUDM
cd THUDM
git clone https://huggingface.co/THUDM/chatglm2-6b

Después de completar los pasos anteriores, vea el modelo descargado, como se muestra a continuación:

[root@localhost ChatGLM2-6B]# ll THUDM/chatglm2-6b/
总用量 12195716
-rw-r--r-- 1 root root       1263 8月   2 10:42 config.json
-rw-r--r-- 1 root root       2304 8月   2 10:42 configuration_chatglm.py
-rw-r--r-- 1 root root      51910 8月   2 10:42 modeling_chatglm.py
-rw-r--r-- 1 root root       4198 8月   2 10:42 MODEL_LICENSE
-rw-r--r-- 1 root root 1827780615 8月   2 10:45 pytorch_model-00001-of-00007.bin
-rw-r--r-- 1 root root 1968299005 8月   2 10:48 pytorch_model-00002-of-00007.bin
-rw-r--r-- 1 root root 1927414561 8月   2 10:51 pytorch_model-00003-of-00007.bin
-rw-r--r-- 1 root root 1815225523 8月   2 10:53 pytorch_model-00004-of-00007.bin
-rw-r--r-- 1 root root 1968299069 8月   2 10:56 pytorch_model-00005-of-00007.bin
-rw-r--r-- 1 root root 1927414561 8月   2 10:59 pytorch_model-00006-of-00007.bin
-rw-r--r-- 1 root root 1052808067 8月   2 11:01 pytorch_model-00007-of-00007.bin
-rw-r--r-- 1 root root      20645 8月   2 11:01 pytorch_model.bin.index.json
-rw-r--r-- 1 root root      14880 8月   2 11:01 quantization.py
-rw-r--r-- 1 root root       8175 8月   2 11:01 README.md
-rw-r--r-- 1 root root      10318 8月   2 11:01 tokenization_chatglm.py
-rw-r--r-- 1 root root        256 8月   2 11:01 tokenizer_config.json
-rw-r--r-- 1 root root    1018370 8月   2 11:01 tokenizer.model

2.3 Cambiar código

[root@localhost ChatGLM2-6B]# vi web_demo.py 

La última línea de código, cambiada a share=True, se ve así después del cambio:

demo.queue().launch(share=True, inbrowser=True)

 2.4 iniciar web

[root@localhost ChatGLM2-6B]# python web_demo.py 

Ver la siguiente pantalla, indicando que el inicio es exitoso

Loading checkpoint shards: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 7/7 [00:06<00:00,  1.13it/s]
/root/anaconda3/envs/chat/lib/python3.9/site-packages/gradio/components/textbox.py:259: UserWarning: The `style` method is deprecated. Please set these arguments in the constructor instead.
  warnings.warn(
Running on local URL:  http://127.0.0.1:7860
Running on public URL: https://ac0a819376990775ad.gradio.live

This share link expires in 72 hours. For free permanent hosting and GPU upgrades, run `gradio deploy` from Terminal to deploy to Spaces (https://huggingface.co/spaces)

Acceso LAN iniciando la dirección devuelta

https://ac0a819376990775ad.gradio.live

La interfaz de inicio es la siguiente:

3 Uso de ChatGLM2-6B

3.1 Preguntas y respuestas web

3.1.1 Cuestionario de conocimientos

 

 3.1.2 Generación de texto

 

3.1.3  Lógica matemática

3.1.4 Comprensión del lenguaje

3.1.5 Preguntas de sentido común

 3.1.6 Generación de código

 3.1.7 Problemas médicos

3.1.8 Resumen de contenido

 3.2 Llamar a chatglm a través de código

El código se guarda en el archivo test.py en el directorio raíz

from transformers import AutoTokenizer, AutoModel

tokenizer = AutoTokenizer.from_pretrained("THUDM/chatglm2-6b", trust_remote_code=True)
model = AutoModel.from_pretrained("THUDM/chatglm2-6b", trust_remote_code=True, device='cuda')
model = model.eval()

question = '肿瘤居家营养应该注意什么?'
response, history = model.chat(tokenizer, question, history=[])
print(response)

Después de ejecutar el código, la impresión es la siguiente:

[root@localhost ChatGLM2-6B]# python test.py 

Loading checkpoint shards: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 7/7 [00:08<00:00,  1.26s/it]
肿瘤患者在居家护理过程中,饮食是非常重要的一环,以下是一些肿瘤居家营养应该注意的事项:

1. 均衡饮食:肿瘤患者需要摄入足够的蛋白质、维生素、矿物质和纤维素等营养物质,以支持身体恢复和预防并发症。建议患者多吃蔬菜、水果、全谷类、豆类、坚果和种子等富含营养的食物。

2. 控制热量和脂肪:肿瘤患者需要控制卡路里摄入量,以避免体重增加和影响治疗效果。建议减少高热量和高脂肪的食物,如油炸食品、甜点和高脂肪的肉类等。

3. 增加蛋白质的摄入:蛋白质是身体所需的重要营养物质,对于肿瘤患者来说,摄入足够的蛋白质可以帮助身体修复和恢复。建议患者增加蛋白质摄入,包括豆类、肉类、鱼类和蛋白质粉等。

4. 控制钠的摄入:肿瘤患者需要控制钠的摄入量,以避免血压升高和影响治疗效果。建议减少盐的摄入,包括海盐、盐和其他高钠食品等。

5. 避免刺激性食物:一些肿瘤患者可能会出现恶心、呕吐等症状,这些食物可能会加重症状。建议患者避免吃辛辣、油腻、咖啡、酒等刺激性食物。

6. 注意饮食卫生:肿瘤患者需要保持饮食卫生,以避免食物中毒和其他感染性疾病的发生。建议患者勤洗手、生熟分开、储存食物规范等。

肿瘤患者在居家护理过程中,饮食需要遵循医生或营养师的建议,以支持身体恢复和预防并发症。

Supongo que te gusta

Origin blog.csdn.net/lsb2002/article/details/132074878
Recomendado
Clasificación