A introdução da linguagem de marcação de bate-papo (ChatML) é importante por várias razões

Em 1º de março de 2023, a OpenAI introduziu as APIs ChatGPT e Whisper. Parte deste anúncio foi o Chat Markup Langauge, que parece ter passado despercebido. Aqui eu discuto por que o ChatML é um desenvolvimento importante…

Atualmente sou o Evangelista Chefe @ HumanFirst . Eu exploro e escrevo sobre todas as coisas na interseção de IA e linguagem; variando de LLMs, Chatbots, Voicebots, estruturas de desenvolvimento, espaços latentes centrados em dados e muito mais.

Breve recapitulação…
O anúncio da OpenAI centrou-se em alguns pontos principais:
A queda significativa no preço de uma API hospedada, houve uma redução de custo de 90% para o ChatGPT desde dezembro de 2022.
As APIs hospedadas via Azure provavelmente virão com gerenciamento muito granular e zonas de disponibilidade regionais e geográficas. Isso representa um potencial significativo de agregação de valor às APIs.
A pressão sobre os fornecedores de ASR está aumentando, a diferenciação terá que ser estabelecida por meio de suporte estelar e pessoal, ajuste fino granular, suporte para línguas minoritárias de nicho, etc.
As APIs Whisper e ChatGPT permitem facilidade de implementação e experimentação. A facilidade de acesso ao Whisper permite o uso expandido do ChatGPT em termos de inclusão de dados de voz e não apenas de texto.
Permitir que você acesse uma versão específica do modelo e, em seguida, atualize quando necessário expõe alterações e atualizações nos modelos. Isso introduz estabilidade para implementações de produção.
Essas mudanças são indicativas da crescente maturidade dos ambientes LLM.
Voltar para linguagem de marcação de bate-papo (ChatML)
Acredito que a introdução do ChatML é extremamente significativa e importante pelas seguintes razões…
⚙️ A principal vulnerabilidade de segurança e via de abuso para LLMs são os ataques de injeção imediata . O ChatML permitirá proteção contra esses tipos de ataques.
⚙️ Para negar ataques de injeção imediata, a conversa é segregada nas camadas ou funções de:
- Sistema
- assistente
- usuário, etc
⚙️A carga útil acomodada no ChatML é atualmente apenas texto. OpenAI prevê a introdução de outros tipos de dados. Isso está de acordo com a noção de Large Foundation Models para em breve começar a combinar texto, imagens, som, etc.
Os usuários ainda podem usar o formato inseguro de string bruta. Mas, novamente, esse formato permite inerentemente injeções.
⚙️ A OpenAI está na posição ideal para orientar e gerenciar o cenário LLM de maneira responsável. Estabelecer padrões fundamentais para a criação de aplicativos.
O ChatML torna explícito para o modelo a fonte de cada parte do texto e, particularmente, mostra a fronteira entre o texto humano e o de IA.
Isso dá a oportunidade de mitigar e, eventualmente, resolver as injeções, pois o modelo pode dizer quais instruções vêm do desenvolvedor, do usuário ou de sua própria entrada. ~ OpenAI
Código de exemplo do ChatML
Abaixo está um arquivo JSON de exemplo do ChatML com as funções definidas de system
, user
e assistant
.
[{"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?"}]
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)
{
"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
}
}
Um dos desafios de construir uma interface de conversação baseada em LLMs é a noção de sequenciar nós de prompt em cadeias .
As bordas, que ficam entre os nós, são difíceis de gerenciar devido à natureza não estruturada da entrada. E a entrada geralmente é em linguagem natural ou conversacional, que é inerentemente não estruturada.
O ChatML ajudará muito na criação de um destino padrão para transformação de dados para envio a uma cadeia .

⭐️ Por favor, siga-me no LinkedIn para atualizações sobre Conversational AI ⭐️

Atualmente sou o Evangelista Chefe @ HumanFirst . Eu exploro e escrevo sobre todas as coisas na interseção de IA e linguagem; variando de LLMs , Chatbots , Voicebots , estruturas de desenvolvimento, espaços latentes centrados em dados e muito mais.





