此**“最佳”**警告是在运行Win10的PC上使用OpenAI API导致的。
背景:
使用Jupyter Lab中的OpenAI API和ir内核,本笔记本中仅安装了rgpt 3库。
API成功执行了测试代码完成。无论API是发出单个还是多个API请求,都返回相同的警告。
使用3个查询时的结果如下:
[1]“请求:1/3”为避免invalid_request_error
,将best_of
设置为等于n
[1]“请求:2/3”为避免invalid_request_error
,将best_of
设置为等于n
[1]“请求:3/3”为避免invalid_request_error
,将best_of
设置为等于n
在进行了多次不成功的网络搜索之后--包括在Stack Overflow上搜索关于这些警告的信息,我发现几乎没有关于这个警告的任何信息。这可能还为时过早,因为对大多数人来说,OpenAI API相对较新。
因此,我们决定发布有关此警告的问题和答案,因为否则查找此类信息非常困难和耗时。对于那些大胆前往以前很少有人去过的地方的用户来说,错误和警告消息不会激发信心。
1条答案
按热度按时间mwg9r5ms1#
为了避免
invalid_request_error
,将best_of
设置为等于'nOpenAi网站上的最佳实践指南提供了描述"best_of"含义的来源。该信息目前可在以下网站上获得:
https://beta.openai.com/docs/guides/production-best-practices/improving-latencies
简而言之,"best_of"是一个参数,用来定义我们在使用API时想要从OpenAI网站获得什么。使用OpenAI API涉及到"token"-这类似于OpenAI网站对用户使用和费率限制的计量。此外,基于上下文长度,OpenAI的大多数模型也有限制--大多数模型的最大上下文大小为2048。
OpenAI网站上的最佳实践指南建议如下:
生成更少的完成:在可能时降低n和best_of的值,其中n指的是为每个提示生成多少个完成,best_of用于表示每个标记具有最高对数概率的结果。
如果n和best_of都等于1(这是默认值),则生成的令牌数最多等于max_tokens。
如果n(返回的完成数)或best_of(生成的考虑的完成数)设置为〉1,则每个请求将创建多个输出。这里,您可以将生成的令牌数视为[max_tokens * max(n,best_of)]
Jupyter Notebook中OpenAI网站上用于请求的函数有一个R Package 器,它发送带有参数范围的请求-包括名为best_of的参数。函数中的best_of参数已经默认为1,只能手动更改。从函数复制和粘贴此参数如下: