你的位置:🔥买球·(中国)APP官方网站 > 娱乐 >
发布日期:2024-05-27 09:41 点击次数:60
自 ChatGPT 问世以来🔥买球·(中国)APP官方网站,OpenAI 一直被合计是天下生成式大模子的指引者。2023 年 3 月,OpenAI 官方通知,开发者不错通过 API 将 ChatGPT 和 Whisper 模子集成到他们的愚弄时刻和居品中。在 GPT-4 发布的同期 OpenAI 也盛开了其 API。
一年已往了,OpenAI 的大模子使用体验究竟怎么,行业内的开发者奈何评价?
最近,初创公司 Truss 的 CTO Ken Kantzer 发布了一篇题为《Lessons after a half-billion GPT tokens》的博客,进展了在使用 OpenAI 的模子(85% GPT-4、15% GPT-3.5)处理完 5 亿个 token 之后,回来出的七条难得教授。
Ken Kantzer
机器之心对这篇博客进行了不更正欢喜的编译、整理,以下是博客原文内容:
教授 1:prompt,少即是多
咱们发现,如若 prompt 中的信息如故是学问,那么该 prompt 不会匡助模子产生更好的效果。GPT 并不愚蠢,如若您过度指定,它履行上会变得缭乱。
这与编码不同,编码中的一切齐必须是明确的。
举一个让咱们感到困扰的例子:
pipeline 的一部分读取一些文本块,并条目 GPT 将其分类为与好意思国 50 个州之一规划。这不是一项贫乏的任务,不错使用字符串 / 正则抒发式,但有满盈多奇怪的极点情况,因此需要更长的时刻。是以咱们的第一次尝试大致是这么的:
Here's a block of text. One field should be \"locality_id\", and it should be the ID of one of the 50 states, or federal, using this list:
[{\"locality: \"Alabama\", \"locality_id\": 1}, {\"locality: \"Alaska\", \"locality_id\": 2} ... ]
这巧合会起作用(约卓著 98% 的情况),但失败的情况足以让咱们不得不进行更真切的挖掘。
在走访时,咱们留意到字段「称呼」弥远复返州的全名,尽管咱们莫得明确条目它这么作念。
因此,咱们改用对称呼进行浅显的字符串搜索来查找气象,然后模子就一直运行风雅。
一言以蔽之,GPT 显然知谈 50 个州。当 prompt 愈加迟滞时,GPT 的质料和泛化才智齐不错普及,这太猖獗了 —— 这是高阶念念维的典型标记。
教授 2:不需要 langchain
你只需要 chat API,不需要 langchain,以致可能不需要 OpenAI 客岁在其 API 中发布的任何其他内容。
Langchain 是过早轮廓的竣工例子。咱们运转合计咱们必须使用它。但相悖,数百万个 token 之后,咱们可能在分娩中使用了 3-4 个极度千般化的 LLM 函数,而咱们的 openai_service 文献中仍然只消一个 40 行的函数:
def extract_json(prompt, variable_length_input, number_retries)
咱们使用的独一 API 是 chat API。咱们不需要 JSON 模式、函数调用等等(尽管咱们作念了总共这些),咱们以致不使用系统 prompt。gpt-4-turbo 发布时,咱们更新了代码库中的一个字符串。
这等于无边的广义模子的深邃之处 —— 少即是多。
该函数中的 40 行代码大部分齐是围绕 OpenAI API 被关闭的 500s/socket 的不实处理。
咱们内置了一些自动截断功能,因此不必回顾高下文长度规矩,咱们有我方独到的 token 长度测度器。
if s.length > model_context_size * 3
# truncate it!
end
在存在多数句点或数字的极点情况下(token ratio < 3 characters /token),这种门径会失败。是以还有另一个独到的 try/catch 重试逻辑:
if response_error_code == \"context_length_exceeded\"
s.truncate(model_context_size * 3 / 1.3)
咱们如故依靠上述门径赢得了很猛进展,而况该门径满盈无邪,不错中意咱们的需求。
教授 3:通过流式 API 改善延长并向用户泄露变速输入的单词是 ChatGPT 一项要紧的用户体验立异
咱们也曾合计这仅仅一个噱头,但履行上用户对「变速输入字符」的响应极度积极 —— 这嗅觉就像是东谈主工智能的鼠标 / 光标用户体验时刻。
教授 4:GPT 不擅长产生零假定
「如若找不到任何内容,则复返空输出」—— 这可能是咱们遭遇的最容易出错的 prompting 言语。在此情况下,GPT 不仅会经常出现幻觉而不复返任何内容,还会导致「短缺信心」,复返空缺的次数比应有的要多。
咱们大多数的 prompt 齐是以下花样:
“Here’s a block of text that’s making a statement about a company, I want you to output JSON that extracts these companies. If there’s nothing relevant, return a blank. Here’s the text: [block of text]”
有一段时刻,咱们会遭遇 bug,[文本块] 可能为空,幻觉常常出现。趁机说一句,GPT 很可爱幻想面包店,这里有一些很棒的面包店:
阳光面包店
金粮面包店
极乐面包店
运道的是,惩处决策是开采该 bug,并在莫得文本的情况下根柢不向其发送 prompt。
教授 5:「高下文窗口」定名失当
「高下文窗口」只会因输入而变大,而不会因输出而变大。
一个鲜为东谈主知的事实是,GPT-4 的输入窗口可能有 128k token,但输出窗口却只消戋戋 4k!
咱们经常条目 GPT 复返 JSON 对象的列表 —— 一个 json 任务的数组列表,其中每个任务齐有一个称呼和一个标签,而 GPT 无法复返卓著 10 项。
咱们率先合计这是因为高下文窗口大小是 4k,但咱们发现 10 个神色,可能只消 700-800 个 token,GPT 就会罢手。
教授 6:向量数据库和 RAG / 镶嵌对咱们普通东谈主来说险些绝不必处
我合计矢量数据库 / RAG 确乎是用于搜索的,以下是一些原因:
1. 规划性莫得界限。有一些惩处决策,你不错创建我方的规划性截止启发式,但它们并不行靠。在我看来,这确乎「杀死了 RAG」—— 你老是冒着用不规划的效果危害检索的风险;或者过于保守,错过紧要的效果。
2. 为什么要将向量放入挑升的独到数据库中,隔离总共其他数据?除非你处理的是 google/bing 界限的责任,不然高下文的丢失十足不值得进行量度。
3. 除非你正在进行极度盛开的搜索(举例通盘互联网),不然用户庸碌不可爱复返他们莫得径直输入的内容的语义搜索。
在我看来(未教授证),对于大多数搜索案例,LLM 的更好用法是使用平素的完成 prompt 将用户的搜索调养为分面搜索(faceted-search),以致是更复杂的查询。但这根柢不是 RAG。
教授 7:幻觉基本上不会发生
咱们的每个用例内容上齐是「这是一段文本,从中索求一些内容」。庸碌,如若条目 GPT 提供一段文本中提到的公司称呼,它不会为你提供「立时公司」(除非文本中莫得公司,即零假定问题)。
访佛地,GPT 并不会真实产生幻觉代码。如若用例完全、详备,那么 GPT 履行上极度可靠。
https://kenkantzer.com/lessons-after-a-half-billion-gpt-tokens/
本文来自微信公众号“机器之心”(ID:almosthuman2014),36氪经授权发布。