聊天标记语言(ChatML)的介绍
OpenAI的公告集中在几个主要点上:
托管API的价格显著下降,自2022年12月以来,ChatGPT的成本降低了90%。
通过Azure托管的API很可能具有非常细粒度的管理,并提供区域和地理可用区。这为API提供了显著的增值潜力。
ASR供应商面临着越来越大的压力,需要通过卓越而个性化的支持、细粒度的微调、支持利基少数语言等方面建立差异化。
Whisper和ChatGPT的API使得实施和实验变得更加容易。Whisper的易用性使得ChatGPT可以包括语音数据,而不仅限于文本数据。
允许您访问特定的模型版本,并在需要时进行升级,从而暴露了模型的变化和更新。这为生产实施引入了稳定性。
这些变化表明了LLM环境日益成熟的趋势。
回到聊天标记语言(ChatML)的话题,我认为引入ChatML具有极其重要的意义,原因如下:
LLMs存在的主要安全漏洞和滥用方式是指令注入攻击。ChatML将允许对这些攻击进行保护。
为了抵御指令注入攻击,对话被分隔为不同的层级或角色:
- 系统(System)
- 助手(assistant)
- 用户,等等。
这只是ChatML的第一个版本,未来还有重要的发展计划。
ChatML目前仅支持文本类型的有效载荷,但OpenAI预计将引入其他数据类型。这与大型基础模型很快将开始结合文本、图像、声音等的理念保持一致。
用户仍然可以使用不安全的原始字符串格式,但这种格式天生容易受到注入攻击。
OpenAI处于理想的位置,以负责任的方式引导和管理LLM领域的发展。为创建应用程序奠定基础标准。
ChatML明确告诉模型每个文本片段的来源,特别显示了人类文本和AI文本之间的界限。
这为减轻和最终解决注入问题提供了机会,因为模型可以识别出开发者、用户或自身输入的指令。 ~ OpenAI
以下是一个具有系统(system)、用户(user)和助手(assistant)角色定义的ChatML示例JSON文件:
以下是一个使用Python的代码片段来处理ChatML示例文件:
根据下面的输出,请注意所定义的角色,模型细节为gpt-3.5-turbo-0301以及其他详细信息。
构建基于LLMs的对话界面的一个挑战之一是将提示节点按顺序组成链条的概念。
节点之间的边缘由于输入的非结构化特性而难以管理。而且输入通常是自然语言或对话,这本质上是非结构化的。
ChatML将极大地帮助创建一个标准目标,用于将数据转换为链条的形式进行提交。
托管API的价格显著下降,自2022年12月以来,ChatGPT的成本降低了90%。
通过Azure托管的API很可能具有非常细粒度的管理,并提供区域和地理可用区。这为API提供了显著的增值潜力。
ASR供应商面临着越来越大的压力,需要通过卓越而个性化的支持、细粒度的微调、支持利基少数语言等方面建立差异化。
Whisper和ChatGPT的API使得实施和实验变得更加容易。Whisper的易用性使得ChatGPT可以包括语音数据,而不仅限于文本数据。
允许您访问特定的模型版本,并在需要时进行升级,从而暴露了模型的变化和更新。这为生产实施引入了稳定性。
这些变化表明了LLM环境日益成熟的趋势。
回到聊天标记语言(ChatML)的话题,我认为引入ChatML具有极其重要的意义,原因如下:
LLMs存在的主要安全漏洞和滥用方式是指令注入攻击。ChatML将允许对这些攻击进行保护。
为了抵御指令注入攻击,对话被分隔为不同的层级或角色:
- 系统(System)
- 助手(assistant)
- 用户,等等。
这只是ChatML的第一个版本,未来还有重要的发展计划。
ChatML目前仅支持文本类型的有效载荷,但OpenAI预计将引入其他数据类型。这与大型基础模型很快将开始结合文本、图像、声音等的理念保持一致。
用户仍然可以使用不安全的原始字符串格式,但这种格式天生容易受到注入攻击。
OpenAI处于理想的位置,以负责任的方式引导和管理LLM领域的发展。为创建应用程序奠定基础标准。
ChatML明确告诉模型每个文本片段的来源,特别显示了人类文本和AI文本之间的界限。
这为减轻和最终解决注入问题提供了机会,因为模型可以识别出开发者、用户或自身输入的指令。 ~ OpenAI
以下是一个具有系统(system)、用户(user)和助手(assistant)角色定义的ChatML示例JSON文件:
[{"role": "system",
"content" : "You are ChatGPT, a large language model trained by OpenAI. Answer as concisely as possible.\nKnowledge cutoff: 2021-09-01\nCurrent date: 2023-03-02"},
{"role": "user",
"content" : "How are you?"},
{"role": "assistant",
"content" : "I am doing well"},
{"role": "user",
"content" : "What is the mission of the company OpenAI?"}]
以下是一个使用Python的代码片段来处理ChatML示例文件:
pip install openai
import os
import openai
openai.api_key = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
completion = openai.ChatCompletion.create(
model="gpt-3.5-turbo",
messages = [{"role": "system", "content" : "You are ChatGPT, a large language model trained by OpenAI. Answer as concisely as possible.\nKnowledge cutoff: 2021-09-01\nCurrent date: 2023-03-02"},
{"role": "user", "content" : "How are you?"},
{"role": "assistant", "content" : "I am doing well"},
{"role": "user", "content" : "What is the mission of the company OpenAI?"}]
)
#print(completion)
print(completion)
根据下面的输出,请注意所定义的角色,模型细节为gpt-3.5-turbo-0301以及其他详细信息。
{
"choices": [
{
"finish_reason": "stop",
"index": 0,
"message": {
"content": "The mission of OpenAI is to ensure that artificial intelligence (AI) benefits humanity as a whole, by developing and promoting friendly AI for everyone, researching and mitigating risks associated with AI, and helping shape the policy and discourse around AI.",
"role": "assistant"
}
}
],
"created": 1677751157,
"id": "chatcmpl-6pa0TlU1OFiTKpSrTRBbiGYFIl0x3",
"model": "gpt-3.5-turbo-0301",
"object": "chat.completion",
"usage": {
"completion_tokens": 50,
"prompt_tokens": 84,
"total_tokens": 134
}
}
构建基于LLMs的对话界面的一个挑战之一是将提示节点按顺序组成链条的概念。
节点之间的边缘由于输入的非结构化特性而难以管理。而且输入通常是自然语言或对话,这本质上是非结构化的。
ChatML将极大地帮助创建一个标准目标,用于将数据转换为链条的形式进行提交。
转载请注明出处,本文地址:https://www.iiilab.com/article/793247098