1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/mirrors-GLM-4

Клонировать/Скачать
README_zh_240605.md 33 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
Отправлено 29.04.2025 15:05 ea66c83

GLM-4

📄Отчет • 🤗 Репозиторий 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

Используйте следующие методы для быстрого вызова модели GLM-4-9B-Chat

Использование 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)

Полный список проектовЕсли вы хотите более подробно изучить открытые модели GLM-4-9B, этот открытый репозиторий предоставляет разработчикам базовые примеры использования и код для разработки GLM-4-9B.

  • basic_demo: Здесь содержится

    • Код взаимодействия с использованием бэкендов transformers и vLLM
    • Код взаимодействия с бэкендом OpenAI API
    • Код для пакетного вывода
  • composite_demo: Здесь содержится

    • Полный код демонстрации функциональности моделей GLM-4-9B-Chat и GLM-4V-9B, включая демонстрацию всех инструментов, интерпретации длинных документов и многомодальной способности.
  • finetune_demo: Здесь содержится

    • Код для мелкого настроечного обучения (PEFT, LORA, P-Tuning)
    • Код для мелкого настроечного обучения (SFT)
  • intel_device_demo: Здесь содержится

    • Код для развертывания модели с использованием OpenVINO
    • Код для развертывания модели с использованием Intel® Extension for Transformers

Дополнительные ссылки+ LLaMA-Factory: Эффективный открытый фреймворк для мелкого настроечного обучения, поддерживающий мелкое настроечное обучение модели GLM-4-9B-Chat.

  • 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 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/mirrors-GLM-4.git
git@api.gitlife.ru:oschina-mirror/mirrors-GLM-4.git
oschina-mirror
mirrors-GLM-4
mirrors-GLM-4
main