ChatGLM3:打造更智能、更安全的代码解释器和工具使用体验

这篇具有很好参考价值的文章主要介绍了ChatGLM3:打造更智能、更安全的代码解释器和工具使用体验。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

ChatGLM3 是由智谱AI训练的第三代大型语言模型,它不仅能理解和生成人类语言,还能执行代码、调用工具,并以 markdown 格式进行响应。为了提高用户体验,同时避免用户输入的注入攻击,ChatGLM3 采用了全新的对话格式。下载智谱清言体验ChatGLM3最新的能力。

GitHub代码仓库:GitHub - THUDM/ChatGLM3

ChatGLM3 对话格式

ChatGLM3 对话的格式由若干对话组成,其中每个对话包含对话头和内容。对话头占完整的一行,格式为 `<|role|>{metadata}`,其中 `<|role|>` 部分使用 special token 表示,无法从文本形式被 tokenizer 编码以防止注入。metadata 部分采用纯文本表示,为可选内容。

对话格式的角色包括:
- `<|system|>`:系统信息,设计上可穿插于对话中,但目前规定仅可以出现在开头
- `<|user|>`:用户,不会连续出现多个来自 `<|user|>` 的信息
- `<|assistant|>`:AI 助手,在出现之前必须有一个来自 `<|user|>` 的信息
- `<|observation|>`:外部的返回结果,必须在 `<|assistant|>` 的信息之后

使用场景

多轮对话

在多轮对话中,有且仅有 `<|user|>`、`<|assistant|>`、`<|system|>` 三种角色。例如:

<|system|>
You are ChatGLM3, a large language model trained by Zhipu.AI. Follow the user's instructions carefully. Respond using markdown.
<|user|>
Hello
<|assistant|>
Hello, I'm ChatGLM3. What can I assist you today?

工具调用

在工具调用场景中,AI 助手可以接收用户的请求,调用相应的工具,并返回查询结果。例如:

<|system|>
Answer the following questions as best as you can. You have access to the following tools:
[
    {
        "name": "get_current_weather",
        "description": "Get the current weather in a given location",
        "parameters": {
            "type": "object",
            "properties": {
                "location": {
                    "type": "string",
                    "description": "The city and state, e.g. San Francisco, CA",
                },
                "unit": {"type": "string"},
            },
            "required": ["location"],
        },
    }
]
<|user|>
查查巴黎的天气怎么样?
<|assistant|>
我需要调用天气预报工具来获取巴黎的天气信息
<|assistant|>get_current_weather
```python
tool_call(location="巴黎", unit="celsius")
```
<|observation|>
{"temperature": 12}
<|assistant|>
根据查询结果,巴黎现在的气温为 12 摄氏度。

ChatGLM3:打造更智能、更安全的代码解释器和工具使用体验,AI大模型,人工智能,nlp,机器学习,深度学习,AIGC,语言模型

代码执行

<|system|>
你是一位智能AI助手,你叫ChatGLM3,你连接着一台电脑,但请注意不能联网。在使用Python解决任务时,你可以运行代码并得到结果,如果运行结果有错误,你需要尽可能对代码进行改进。你可以处理用户上传到电脑上的文件,文件默认存储路径是/mnt/data/。
<|user|>
#File: /mnt/data/metadata.jsonl
#Size: 35380
#File uploaded
文件中是否存在缺失值或异常值?
<|assistant|>
首先,我将读取您提供的文件,并查看其内容以确定是否存在缺失值或异常值。

我们从加载文件开始:
<|assistant|>interpreter
```python
import json

# Load the uploaded file
data = []
with open("/mnt/data/metadata.jsonl", 'r') as file:
    for line in file:
        data.append(json.loads(line))

# Display the first few records to get a sense of the data
data[:5]
```
<|observation|>
```result
[{'file_name': 'aceinthehole.png',
  'name': 'Ace in the Hole',
  'type': 'survivor',
  'description': 'Lady Luck always seems to be throwing something good your way.'},
 {'file_name': 'adrenaline.png',
  'name': 'Adrenaline',
  'type': 'survivor',
  'description': 'You are fuelled by unexpected energy when on the verge of escape.'},
 {'file_name': 'aftercare.png',
  'name': 'Aftercare',
  'type': 'survivor',
  'description': "Unlocks potential in one's aura reading ability."},
 {'file_name': 'agitation.png',
  'name': 'Agitation',
  'type': 'killer',
  'description': 'You get excited in anticipation of hooking your prey.'},
 {'file_name': 'alert.png',
  'name': 'Alert',
  'type': 'survivor',
  'description': 'Your acute senses are on high alert.'}]
```
<|assistant|>
该文件看起来包含有关某些条目的元数据,每个条目有以下字段:


- `file_name`: 文件名称
- `name`: 名称
- `type`: 类型(例如 "survivor" 或 "killer")
- `description`: 描述

接下来,我将检查这些字段是否存在缺失值。
<|assistant|>interpreter
```python
# Check for missing values in each column
missing_values = {key: sum(1 for item in data if key not in item) for key in data[0].keys()}

missing_values
```
<|observation|>
```result
{'file_name': 0, 'name': 0, 'type': 0, 'description': 0}
```
<|assistant|>
每个字段都没有缺失值。这意味着每个条目都完整。

接下来,我们可以检查是否存在任何潜在的异常值。这通常需要更深入的分析和对数据的了解,但我可以从一些基本的统计和分布开始进行检查。为了这样做,我们可以查看“type”字段的值分布,看看是否有任何意外的类别。
<|assistant|>interpreter
```python
# Check the distribution of values in the 'type' column
type_distribution = {key: sum(1 for item in data if item['type'] == key) for key in set(item['type'] for item in data)}

type_distribution
```
<|observation|>
```result
{'survivor': 116, 'killer': 103}
```
<|assistant|>
“type”字段有两个值:“survivor”和“killer”。其中,“survivor”有116个条目,而“killer”有103个条目。

从这个初步的检查中,我们没有发现任何明显的异常值。

如果您有任何特定的标准或其他字段需要检查,我可以为您提供更详细的分析。您还希望我检查什么呢?
<|user|>
帮我画一个爱心
<|assistant|>interpreter
```python
import numpy as np
import matplotlib.pyplot as plt

# 爱心形状的参数方程
def heart(t):
    x = 16 * np.sin(t) ** 3
    y = 13 * np.cos(t) - 5 * np.cos(2 * t) - 2 * np.cos(3 * t) - np.cos(4 * t)
    return x, y

t = np.linspace(0, 2 * np.pi, 1000)
x, y = heart(t)

plt.figure(figsize=(6, 6))
plt.plot(x, y, color='red')
plt.axis('equal')
plt.axis('off')
plt.show()
```
<|observation|>
```result
[Image]
```
<|assistant|>
这是一个爱心形状。我使用了参数方程来描述这个形状,并使用matplotlib进行了绘制。如果您有任何其他需求或问题,请随时告诉我。
<|user|>  # End
````

ChatGLM3:打造更智能、更安全的代码解释器和工具使用体验,AI大模型,人工智能,nlp,机器学习,深度学习,AIGC,语言模型

ChatGLM3 的对话格式设计使得它能够以更清晰、更安全的方式进行多轮对话、工具调用和代码执行。无论是查看天气、分析数据,还是创建图形,ChatGLM3 都能提供高效、准确的帮助。

总的来说,ChatGLM3 是一款强大的 AI 助手,它的出现将为我们的生活和工作带来更多可能性。文章来源地址https://www.toymoban.com/news/detail-760242.html

到了这里,关于ChatGLM3:打造更智能、更安全的代码解释器和工具使用体验的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【chatgpt】使用docker运行chatglm3,原生支持工具调用(Function Call)、代码执行(Code Interpreter)和 Agent 任务,可以本地运行啦

    https://github.com/THUDM/ChatGLM3 介绍 ChatGLM3-6B 是 ChatGLM 系列最新一代的开源模型,在保留了前两代模型对话流畅、部署门槛低等众多优秀特性的基础上,ChatGLM3-6B 引入了如下特性: 更强大的基础模型: ChatGLM3-6B 的基础模型 ChatGLM3-6B-Base 采用了更多样的训练数据、更充分的训练步数

    2024年02月05日
    浏览(48)
  • 破解小程序禁止使用JS解释器动态执行JS(eval5、estime、evil-eval等)代码的终极解决方案

    关于被小程序禁止使用eval函数的问题,大家都多少了解了,新规则已经限制死了。请看下面新规则。 既然要求如此严格,那么有没有其它解决方案呢,所谓上有正常,下有对策。故今天这篇文章就是要提供新的思路实现动态执行js代码的方案。 云函数 云对象 是的,既然在代

    2024年02月10日
    浏览(83)
  • 本地部署 ChatGLM3

    ChatGLM3 是智谱AI和清华大学 KEG 实验室联合发布的新一代对话预训练模型。ChatGLM3-6B 是 ChatGLM3 系列中的开源模型,在保留了前两代模型对话流畅、部署门槛低等众多优秀特性的基础上,ChatGLM3-6B 引入了如下特性: 更强大的基础模型: ChatGLM3-6B 的基础模型 ChatGLM3-6B-Base 采用了更

    2024年02月06日
    浏览(51)
  • ChatGLM3 模型学习与实战

    Github 代码 : https://github.com/THUDM/ChatGLM3 模型地址: huggingface : https://huggingface.co/THUDM/chatglm3-6b modelscope : https://modelscope.cn/models/ZhipuAI/chatglm3-6b/summary 智谱AI于27日论坛上推出了全自研的第三代基座大模型ChatGLM3及相关系列产品,这也是智谱AI继推出千亿基座的对话模型ChatGLM和

    2024年02月08日
    浏览(33)
  • ChatGLM3在windows上部署

    https://github.com/THUDM/ChatGLM3 简介:ChatGLM3 是智谱AI和清华大学 KEG 实验室联合发布的新一代对话预训练模型。 台式机: CPU:    Intel(R) Core(TM) i7-10700F RAM:    32G GPU:    NVIDIA RTX3060(显存12G) OS:    Windows 10 企业版 3.1.1  安装和配置anaconda3 a.下载地址 anaconda3下载(推荐使用

    2024年01月20日
    浏览(55)
  • 『pycharm 』解决无法添加解释器,无法新建项目问题(是无法添加解释器,不是没有添加解释器)

    这个问题和大家常见的: 没有Python解释器 这种简单问题不同。请看问题描述。👇👇 如图,解释器列表空空如也,即使点击“ 添加本地解释器 ”也没有反应(那个展开小三角也是空的)。 所有项目都这样了,那里变成空的了。而且这些都是我自己的项目,之前都好好的。 删

    2024年02月11日
    浏览(75)
  • ChatGLM3-6B的本地api调用

    1.运行openai_api_demo路径下的openai_api.py 启动后界面: 注意:本地api调到的前提是——本地部署了ChatGLM3-6B,本地部署的教程可参考: 20分钟部署ChatGLM3-6B 部署了若CUDA可用,默认会以CUDA方式运行,占用显存约5.9G;若CUDA不可用,则会以内存方式进行加载,官方称CPU调用需要32G内存

    2024年01月21日
    浏览(55)
  • 使用vLLM和ChatGLM3-6b批量推理

    当数据量大的时候,比如百万级别,使用 ChatGLM3-6b 推理的速度是很慢的。发现使用 vLLM 和 ChatGLM3-6b 批量推理极大的提高了推理效率。本文主要通过一个简单的例子进行实践。 除了 Python(本文使用 3.11)、CUDA(本文使用 11.8)外,还要安装 vllm、pytorch、xformers 等库,特别注意

    2024年02月04日
    浏览(58)
  • 【ChatGLM3-6B】Docker下部署及微调

    安装好了docker 安装好了NVIDIA 显卡16G 新建一个文件夹,用来存放下载下来的ChatGLM3代码和模型 右键,打开一个git窗口,拉取模型(会很慢,耐心等待) 地址: https://modelscope.cn/models/ZhipuAI/chatglm3-6b/summary 右键,打开一个git窗口,拉取源代码 地址:https://github.com/THUDM/ChatGLM3 或

    2024年02月04日
    浏览(48)
  • 使用LLaMA-Factory微调ChatGLM3

    略 (1)下载LLaMA-Factory https://github.com/hiyouga/LLaMA-Factory (2)安装依赖 (3)启动LLaMA-Factory的web页面 得到如下页面: 设置如下参数,点击开始即可: 点击“预览命令”,可以看到要执行的python脚本,如下所示:

    2024年02月03日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包