微调后 OpenAI 预测的编码问题

new*_*ter 6 utf-8 character-encoding openai-api gpt-3

我正在关注这个有关微调的OpenAI 教程。

\n

我已经使用 openai 工具生成了数据集。问题在于输出编码(推理结果)将 UTF-8 与非 UTF-8 字符混合。

\n

生成的模型如下所示:

\n
{"prompt":"Usuario: Qui\xc3\xa9n eres\\\\nAsistente:","completion":" Soy un Asistente\\n"}\n{"prompt":"Usuario: Qu\xc3\xa9 puedes hacer\\\\nAsistente:","completion":" Ayudarte con cualquier gesti\xc3\xb3n o ofrecerte informaci\xc3\xb3n sobre tu cuenta\\n"}\n
Run Code Online (Sandbox Code Playgroud)\n

例如,如果我问“\xc2\xbfC\xc3\xb3mo est\xc3\xa1s?” 并且该句子有一个训练有素的补全:“Estoy bien,\xc2\xbfy t\xc3\xba?”,推理通常返回完全相同的结果(这很好),但有时它会添加非编码单词:“ Estoy bien, \xc2\xbfy t\xc3\xba? Cu\xc3\x83\xc2\xa9ntame algo de ti",添加“\xc3\x83\xc2\xa9”而不是“\xc3\xa9”。

\n

有时,它返回与训练的句子完全相同的句子,没有编码问题。\n我不知道推理是否从我的模型或其他地方获取非编码字符。

\n

我应该做什么?\n我应该使用 UTF-8 对数据集进行编码吗?\n我应该使用 UTF-8 保留数据集并解码响应中的错误编码字符吗?

\n

用于微调的 OpenAI 文档不包含任何有关编码的内容。

\n

小智 2

我在处理葡萄牙语字符串时遇到了同样的问题。

\n

.encode("cp1252").decode()尝试在字符串后面使用:

\n
"Cu\xc3\x83\xc2\xa9ntame algo de ti".encode("cp1252").decode()\n
Run Code Online (Sandbox Code Playgroud)\n

这应该导致:

\n
"Cu\xc3\xa9ntame algo de ti"\n
Run Code Online (Sandbox Code Playgroud)\n

cp1252与 windows-1252 西欧编解码器相关。如果这不起作用,请尝试这里的另一个编解码器:\n https://docs.python.org/3.7/library/codecs.html#standard-encodings

\n