📄Отчет • 🤗 Репозиторий Hugging Face • 🤖 ModelScope • 🟣 WiseModel • 🐦 Twitter • 👋 Присоединяйтесь к нашему Discord и WeChat
📍Попробуйте и используйте более крупные коммерческие модели GLM на платформе открытого доступа BigModel.
Читать это на английском## Обновление проекта- 🔥🔥 Новости: 2024/12/10
: Этот репозиторий поддерживает использование Ascend NPU
для настройки кода. Пожалуйста, обновите код настройки и ознакомьтесь с комментариями в коде.
2024/11/01
: Зависимости этого репозитория были обновлены. Пожалуйста, обновите зависимости в файле requirements.txt
для обеспечения корректной работы модели. glm-4-9b-chat-hf — это модельные веса, совместимые с transformers>=4.46.2
, реализованные с использованием класса GlmModel
из библиотеки transformers
. В то же время файл tokenizer_chatglm.py
в glm-4-9b-chat, glm-4v-9b был обновлен для совместимости с последней версией библиотеки transformers
. Пожалуйста, обновите файлы на HuggingFace.2024/10/27
: Мы открыли исходный код LongReward, который представляет собой модель, использующую обратную связь AI для улучшения работы больших языковых моделей с длинным контекстом.2024/10/25
: Мы открыли исходный код модели для двунаправленного английско-китайского голосового диалога GLM-4-Voice.2024/09/05
: Мы открыли исходный код модели longcite-glm4-9b, которая позволяет LLMs генерировать детализированные ссылки в длинном контексте, а также набора данных LongCite-45k.Пожалуйста, ознакомьтесь с [Huggingface Space](https://huggingface. co/spaces/THUDM/LongCite) для онлайн-тестирования.2024/08/15
: Мы открыли исходный код модели [longwriter-glm4-9b](https://huggingface. co/THUDM/LongWriter-glm4-9b), которая способна генерировать длинный текст (одиночная сессия модели может выдавать более 10 000 токенов), а также набора данных [LongWriter-6k](https://huggingface. co/datasets/THUDM/LongWriter-6k). Пожалуйста, ознакомьтесь с [Huggingface Space](https://huggingface. co/spaces/THUDM/LongWriter) или [модульной коммьюнити-пространства](https://modelscope. cn/studios/ZhipuAI/LongWriter-glm4-9b-demo) для онлайн-тестирования.2024/07/24
: Мы представили последний технический отчет по работе с длинными текстами. Пожалуйста, ознакомьтесь с [здесь](https://medium. com/@ChatGLM/glm-long-scaling-pre-trained-model-contexts-to-millions-caa3c48dea85) для просмотра технического отчета по использованию длинного текста при обучении открытой модели GLM-4-9B.2024/07/09
: Модель GLM-4-9B-Chat была адаптирована для использования с [Ollama](https://github. com/ollama/ollama), [Llama. cpp](https://github. com/ggerganov/llama. cpp). Вы можете ознакомиться с подробностями в [PR](https://github. com/ggerganov/llama. cpp/pull/8031).2024/06/18
: Мы представили [технический отчет](https://arxiv. org/pdf/2406. 12793), добро пожаловать к просмотру.2024/06/05
: Мы выпустили серию открытых моделей GLM-4-9B. ## Описание моделиGLM-4-9B — это открытая версия последней генерации предобученных моделей GLM-4 от компании Zhijie AI. В тестировании на множестве датасетов, охватывающих семантику, математику, логику, код и знания, модели GLM-4-9B и её версия с выравниванием по человеческим предпочтениям GLM-4-9B-Chat продемонстрировали превосходные результаты, превзойдя Llama-3-8B. В дополнение к поддержке много回合对话,GLM-4-9B-Chat还具备网页浏览、代码执行、自定义工具调用(Function Call)和长文本推理(支持最大128K上下文)等高级功能。本代模型增加了多语言支持,支持包括日语、韩语、德语在内的26种语言。我们还推出了支持1M上下文长度(约200万个中文字符)的GLM-4-9B-Chat-1M模型和基于GLM-4-9B的多模态模型GLM-4V-9B。GLM-4V-9B具备在1120 * 1120高分辨率下进行中英双语多轮对话的能力,在中英文综合能力、感知推理、文字识别、图表理解等多方面多模态评测中,GLM-4V-9B表现出超越GPT-4-turbo-2024-04-09、Gemini 1.0 Pro、Qwen-VL-Max和Claude 3 Opus的卓越性能。GLM-4-9B — это открытая версия последней генерации предобученных моделей GLM-4 от компании Zhijie AI. В тестировании на множестве датасетов, охватывающих семантику, математику, логику, код и знания, модели GLM-4-9B и её версия с выравниванием по человеческим предпочтениям GLM-4-9B-Chat продемонстрировали превосходные результаты, превзойдя Llama-3-8B. В дополнение к поддержке много回合对话,GLM-4-9B-Chat также поддерживает веб-браузер, выполнение кода, вызов пользовательских инструментов (Function Call) и длинный текстовый анализ (поддержка до 128К контекста). В этом поколении моделей добавлена поддержка нескольких языков, включая японский, корейский, немецкий и 23 других языка. Мы также представили модель GLM-4-9B-Chat-1M, поддерживающую контекст длиной до 1М (около 200 миллионов китайских символов), и многомодельную модель GLM-4V-9B на основе GLM-4-9B. Модель GLM-4V-9B поддерживает многоканальное общение на китайском и английском языках в высоком разрешении 1120 * 1120. В многоязычных оценках, включающих китайский и английский языки, восприятие, интеллектуальное понимание, распознавание текста, понимание графиков и других аспектов, модель GLM-4V-9B показала превосходные результаты, превзойдя GPT-4-turbo-2024-04-09, Gemini 1.0 Pro, Qwen-VL-Max и Claude 3 Opus.## Список моделей| Модель | Тип | Длина последовательности | Версия Transformers | Скачать | Онлайн-демо |
|:-------------------:|:----:|:------------------------:|:--------------------:|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:|
| GLM-4-9B | Base | 8K | 4.44.0 - 4.45.0
| 🤗 Huggingface
🤖 ModelScope
🟣 WiseModel | / |
| GLM-4-9B-Chat | Chat | 128K | >= 4.44.0
| 🤗 Huggingface
🤖 ModelScope
🟣 WiseModel | 🤖 ModelScope CPU
🤖 ModelScope vLLM |
| GLM-4-9B-Chat-HF | Chat | 128K | >= 4.46.0
| 🤗 Huggingface
🤖 ModelScope | 🤖 ModelScope CPU
🤖 ModelScope vLLMcn/studios/dash-infer/GLM-4-Chat-DashInfer-Demo/summary)
[🤖 ModelScope vLLM](https://modelscope. cn/studios/ZhipuAI/glm-4-9b-chat-vllm/summary) |
| GLM-4-9B-Chat-1M | Chat | 1M | >= 4. 44. 0
| [🤗 Huggingface](https://huggingface. co/THUDM/glm-4-9b-chat-1m)
[🤖 ModelScope](https://modelscope. cn/models/ZhipuAI/glm-4-9b-chat-1m) | [🤖 ModelScope CPU](https://modelscope. cn/studios/dash-infer/GLM-4-Chat-DashInfer-Demo/summary)
[🤖 ModelScope vLLM](https://modelscope. cn/studios/ZhipuAI/glm-4-9b-chat-vllm/summary) | >= 4. 44. 0
| [🤗 Huggingface](https://huggingface. co/THUDM/glm-4-9b-chat-1m)
[🤖 ModelScope](https://modelscope. cn/models/ZhipuAI/glm-4-9b-chat-1m)
[🟣 WiseModel](https://wisemodel. cn/models/ZhipuAI/GLM-4-9B-Chat-1M) | / |
| GLM-4-9B-Chat-1M-HF | Chat | 1M | >= 4. 46. 0
| [🤗 Huggingface](https://huggingface. co/THUDM/glm-4-9b-chat-1m-hf)
[🤖 ModelScope](https://modelscope. cn/models/ZhipuAI/glm-4-9b-chat-1m-hf) | / |
| GLM-4V-9B | Chat | 8K | >= 4. 46. 0
| [🤗 Huggingface](https://huggingface. co/THUDM/glm-4v-9b)
[🤖 ModelScope](https://modelscope. cn/models/ZhipuAI/glm-4v-9b)
[🟣 WiseModel](https://wisemodel. cn/models/ZhipuAI/GLM-4V-9B) | [🤖 ModelScope](https://modelscope. cn/studios/ZhipuAI/glm-4v-9b-Demo/summary) |## Результаты оценки### Типовые задачи для модели диалога
Модель | AlignBench | MT-Bench | IFEval | MMLU | C-Eval | GSM8K | MATH | HumanEval | NaturalCodeBench |
---|---|---|---|---|---|---|---|---|---|
Llama-3-8B-Instruct | 6.40 | 8.00 | 68.6 | 68.4 | 51.3 | 79.6 | 30.0 | 62.2 | 24.7 |
ChatGLM3-6B | 5.18 | 5.50 | 28.1 | 61.4 | 69.0 | 72.3 | 25.7 | 58.5 | 11.3 |
GLM-4-9B-Chat | 7.01 | 8.35 | 69.0 | 72.4 | 75.6 | 79.6 | 50.6 | 71.8 | 32.2 |
Модель | MMLU | C-Eval | GPQA | GSM8K | MATH | HumanEval |
---|---|---|---|---|---|---|
Llama-3-8B | 66.6 | 51.2 | - | 45.8 | - | 33.5 |
Llama-3-8B-Instruct | 68.4 | 51.3 | 34.2 | 79.6 | 30.0 | 62.2 |
ChatGLM3-6B-Base | 61.4 | 69.0 | 26.8 | 72.3 | 25.7 | 58.5 |
GLM-4-9B | 74.7 | 77.1 | 34.3 | 84.0 | 30.4 | 70.1 |
Из-за того, что в процессе предобучения
GLM-4-9B
были добавлены некоторые инструкции, связанные с математикой, логикой и кодированием, модель Llama-3-8B-Instruct также была включена в область сравнения.
В условиях контекстной длины в 1М проведён эксперимент по поиску иглы в стоге сена (Needle in a Haystack), результаты которого представлены ниже:
Долготекстовые способности моделей были дополнительно оценены на LongBench-Chat, результаты представлены ниже:
На шести многомодальных данных моделей GLM-4-9B-Chat и Llama-3-8B-Instruct были проведены тесты, результаты которых и соответствующие выбранные языки представлены в таблице ниже.
Датасет | Llama-3-8B-Instruct | GLM-4-9B-Chat | Языки |
---|---|---|---|
M-MMLU | 49,6 | 56,6 | все |
FLORES | 25,0 | 28,8 | ru, es, de, fr, it, pt, pl, ja, nl, ar, tr, cs, vi, fa, hu, el, ro, sv, uk, fi, ko, da, bg, no |
MGSM | 54,0 | 65,3 | zh, en, bn, de, es, fr, ja, ru, sw, te, th |
XWinograd | 61,7 | 73,1 | zh, en, fr, jp, ru, pt |
XStoryCloze | 84,7 | 90,7 | zh, en, ar, es, eu, hi, id, my, ru, sw, te |
XCOPA | 73,3 | 80,1 | zh, et, ht, id, it, qu, sw, ta, th, tr, vi |
Мы провели тестирование на лидерской доске вызова функций Berkeley и получили следующие результаты:
Модель | Общая точность | AST Summary | Summary выполнения | Релевантность |
---|---|---|---|---|
Llama-3-8B-Instruct | 58,88 | 59,25 | 70,01 | 45,83 |
gpt-4-turbo-2024-04-09 | 81,24 | 82,14 | 78,61 | 88,75 |
ChatGLM3-6B | 57,88 | 62,18 | 69,78 | 5,42 |
GLM-4-9B-Chat | 81,00 | 80,26 | 84,40 | 87,92 |
MMBench-EN-Тест | MMBench-CN-Тест | SEEDBench_IMG | MMStar | MMMU | MME | HallusionBench | AI2D | OCRBench | |
---|---|---|---|---|---|---|---|---|---|
gpt-4o-2024-05-13 | 83.4 | 82.1 | 77.1 | 63.9 | 69.2 | 2310.3 | 55.0 | 84.6 | 736 |
gpt-4-turbo-2024-04-09 | 81.0 | 80.2 | 73.0 | 56.0 | 61.7 | 2070.2 | 43.9 | 78.6 | 656 |
gpt-4-1106-предварительная версия | 77.0 | 74.4 | 72.3 | 49.7 | 53.8 | 1771.5 | 46.5 | 75.9 | 516 |
InternVL-Chat-V1.5 | 82.3 | 80.7 | 75.2 | 57.1 | 46.8 | 2189.6 | 47.4 | 80.6 | 720 |
LLaVA-Next-Yi-34B | 81.1 | 79.0 | 75.7 | 51.6 | 48.8 | 2050.2 | 34.8 | 78.9 | 574 |
Step-1V | 80.7 | 79.9 | 70.3 | 50.0 | 49.9 | 2206.4 | 48.4 | 79.2 | 625 |
MiniCPM-Llama3-V2.5 | 77.6 | 73.8 | 72.3 | 51.8 | 45.8 | 2024.6 | 42.4 | 78.4 | 725 |
Qwen-VL-Max | 77.6 | 75.7 | 72.7 | 49.5 | 52.0 | 2281.7 | 41.2 | 75.7 | 684 |
Gemini 1.0 Pro | 73.6 | 74.3 | 70.7 | 38.6 | 49.0 | 2148.9 | 45.7 | 72.9 | 680 |
Claude 3 Opus | 63.3 | 59.2 | 64.0 | 45.7 | 54.9 | 1586.8 | 37.8 | 70.6 | 694 |
GLM-4V-9B | 81.1 | 79.4 | 76.8 | 58.7 | 47.2 | 2163.8 | 46.6 | 81.1 | 786 |
Использование transformers для выполнения инференса:
import torch
from transformers import AutoModelForCausalLM, AutoTokenizer
import os
os.environ['CUDA_VISIBLE_DEVICES'] = '0' # Установите номер GPU, если у вас одно устройство и один GPU, укажите один номер, если у вас несколько GPU, укажите несколько номеров GPU
MODEL_PATH = "THUDM/glm-4-9b-chat-hf"
device = "cuda" if torch.cuda.is_available() else "cpu"
tokenizer = AutoTokenizer.from_pretrained(MODEL_PATH, trust_remote_code=True)
query = "Привет"
inputs = tokenizer.apply_chat_template([{"role": "user", "content": query}],
add_generation_prompt=True,
tokenize=True,
return_tensors="pt",
return_dict=True
)
inputs = inputs.to(device)
model = AutoModelForCausalLM.from_pretrained(
MODEL_PATH,
torch_dtype=torch.bfloat16,
low_cpu_mem_usage=True,
trust_remote_code=True,
device_map="auto"
).eval()
gen_kwargs = {"max_length": 2500, "do_sample": True, "top_k": 1}
with torch.no_grad():
outputs = model.generate(**inputs, **gen_kwargs)
outputs = outputs[:, inputs['input_ids'].shape[1]:]
print(tokenizer.decode(outputs[0], skip_special_tokens=True))
Использование vLLM для выполнения инференса:
from transformers import AutoTokenizer
from vllm import LLM, SamplingParams
# GLM-4-9B-Chat-1M
# max_model_len, tp_size = 1048576, 4
# Если вы столкнулись с OOM, рекомендуется уменьшить max_model_len или увеличить tp_size
max_model_len, tp_size = 131072, 1
model_name = "THUDM/glm-4-9b-chat-hf"
prompt = [{"role": "user", "content": "Привет"}]
```tokenizer = AutoTokenizer.from_pretrained(model_name, trust_remote_code=True)
llm = LLM(
model=model_name,
tensor_parallel_size=tp_size,
max_model_len=max_model_len,
trust_remote_code=True,
enforce_eager=True,
# GLM-4-9B-Chat-1M Если вы столкнулись с OOM, рекомендуется включить следующие параметры
# enable_chunked_prefill=True,
# max_num_batched_tokens=8192
)
stop_token_ids = [151329, 151336, 151338]
sampling_params = SamplingParams(temperature=0.95, max_tokens=1024, stop_token_ids=stop_token_ids)
```### Использование следующего метода для быстрого вызова модели GLM-4V-9B многомодальной ```Использование бэкенда transformers для инференса:
```python
import torch
from PIL import Image
from transformers import AutoModelForCausalLM, AutoTokenizer
import os
os.environ['CUDA_VISIBLE_DEVICES'] = '0' # Установка номера GPU, если на машине одна карта, то указать один номер, если несколько карт, то указать несколько номеров GPU
MODEL_PATH = "THUDM/glm-4v-9b"
device = "cuda" if torch.cuda.is_available() else "cpu"
tokenizer = AutoTokenizer.from_pretrained(MODEL_PATH, trust_remote_code=True)
query = 'Опишите это изображение'
image = Image.open("ваше изображение").convert('RGB')
inputs = tokenizer.apply_chat_template([{"role": "user", "image": image, "content": query}],
add_generation_prompt=True, tokenize=True, return_tensors="pt",
return_dict=True) # режим чата
inputs = inputs.to(device)
model = AutoModelForCausalLM.from_pretrained(
MODEL_PATH,
torch_dtype=torch.bfloat16,
low_cpu_mem_usage=True,
trust_remote_code=True,
device_map="auto"
).eval()
gen_kwargs = {"max_length": 2500, "do_sample": True, "top_k": 1}
with torch.no_grad():
outputs = model.generate(**inputs, **gen_kwargs)
outputs = outputs[:, inputs['input_ids'].shape[1]:]
print(tokenizer.decode(outputs[0]))
Использование бэкенда vLLM для инференса:
from PIL import Image
from vllm import LLM, SamplingParams
model_name = "THUDM/glm-4v-9b"
llm = LLM(model=model_name,
tensor_parallel_size=1,
max_model_len=8192,
trust_remote_code=True,
enforce_eager=True)
stop_token_ids = [151329, 151336, 151338]
sampling_params = SamplingParams(temperature=0.2,
max_tokens=1024,
stop_token_ids=stop_token_ids)
prompt = "Какова содержимость изображения?"
image = Image.open("ваше изображение").convert('RGB')
inputs = {
"prompt": prompt,
"multi_modal_data": {
"image": image
}
}
outputs = llm.generate(inputs, sampling_params=sampling_params)
basic_demo: Здесь содержится
composite_demo: Здесь содержится
finetune_demo: Здесь содержится
intel_device_demo: Здесь содержится
SWIFT: Фреймворк для обучения и мелкого настроечного обучения моделей, поддерживаемый сообществом ModelScope, который поддерживает мелкое настроечное обучение моделей GLM-4-9B-Chat и GLM-4V-9B.
Xorbits Inference: Высокопроизводительный и многофункциональный дистрибутивный фреймворк для вывода, который позволяет легко развернуть свои собственные модели или встроенные передовые открытые модели.
LangChain-ChatChat: Приложение на основе Langchain и моделей языка, таких как ChatGLM, которое использует RAG и агентов.
self-llm: Уроки использования моделей GLM-4-9B от команды Datawhale.
chatglm.cpp: Аналог llama.cpp для ускорения вывода с использованием квантизации, который позволяет вести реальное диалоговое общение на ноутбуке.
OpenVINO: Высокопроизводительное решение для ускорения вывода с использованием процессоров Intel, GPU и NPU, которое позволяет развернуть модель glm-4-9b-chat по этому шагу.## Лицензия
Использование весов модели GLM-4 следует за лицензией модели.
Пожалуйста, строго соблюдайте условия открытой лицензии.
## Ссылки
Если вы считаете, что наша работа была вам полезна, пожалуйста, рассмотрите возможность ссылки на следующие работы.``````
@misc{glm2024chatglm,
title={ChatGLM: Семейство больших языковых моделей от GLM-130B до GLM-4, включая все инструменты},
author={Team GLM и Aohan Zeng и Bin Xu и Bowen Wang и Chenhui Zhang и Da Yin и Diego Rojas и Guanyu Feng и Hanlin Zhao и Hanyu Lai и Hao Yu и Hongning Wang и Jiadai Sun и Jiajie Zhang и Jiale Cheng и Jiayi Gui и Jie Tang и Jing Zhang и Juanzi Li и Lei Zhao и Lindong Wu и Lucen Zhong и Mingdao Liu и Minlie Huang и Peng Zhang и Qinkai Zheng и Rui Lu и Shuaiqi Duan и Shudan Zhang и Shulin Cao и Shuxun Yang и Weng Lam Tam и Wenyi Zhao и Xiao Liu и Xiao Xia и Xiaohan Zhang и Xiaotao Gu и Xin Lv и Xinghan Liu и Xinyi Liu и Xinyue Yang и Xixuan Song и Xunkai Zhang и Yifan An и Yifan Xu и Yilin Niu и Yuantao Yang и Yueyan Li и Yushi Bai и Yuxiao Dong и Zehan Qi и Zhaoyu Wang и Zhen Yang и Zhengxiao Du и Zhenyu Hou и Zihan Wang},
year={2024},
eprint={2406.12793},
archivePrefix={arXiv},
primaryClass={id='cs.CL' full_name='Обработка естественного языка' is_active=True alt_name='cmp-lg' in_archive='cs' is_general=False description='Обрабатывает обработку естественного языка. Включает материалы, относящиеся к ACM Subject Class I.2.7. Заметим, что работы по искусственным языкам (языки программирования, логики, формальные системы), которые не рассматривают широкие вопросы естественного языка (обработка естественного языка, вычислительная лингвистика, речь, поиск текста и т.д.), не подходят для этой области.'}
}
@misc{wang2023cogvlm, title={CogVLM: Визуальный эксперт для предобученных языковых моделей}, author={Weihan Wang и Qingsong Lv и Wenmeng Yu и Wenyi Hong и Ji Qi и Yan Wang и Junhui Ji и Zhuoyi Yang и Lei Zhao и Xixuan Song и Jiazheng Xu и Bin Xu и Juanzi Li и Yuxiao Dong и Ming Ding и Jie Tang}, year={2023}, eprint={2311.03079}, archivePrefix={arXiv}, primaryClass={cs.CV} }
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )