赛博信息之旅

赛博信息之旅

Thoughts, stories and ideas.

OpenAI流式输出原理

当您使用 OpenAI 的 API 发送一个设置了 stream=True 的请求时,API 会以流式(Streaming)的方式返回响应。具体而言,response 对象成为一个**生成器(generator)**,它会随着服务器生成新的内容,逐步产出新的数据块(chunk)。因此,使用 for chunk in response 可以动态地获取最新的数据。以下是详细的解释,帮助您理解为什么 for chunk in response 能够动态获取最新数据,以及其中的工作原理。 1. stream=True 启用流式响应 当您在调用 OpenAI API 时,将参数 stream 设置为 True: response = openai.ChatCompletion.
6 min read

Beam Search & MCTS

Beam Search 和 蒙特卡洛树搜索(MCTS) 都是用于决策和搜索的算法,但它们的应用场景和搜索方式有所不同。下面将从多个维度对两者进行对比,帮助更好地理解它们的异同。 1. 基本思想 * Beam Search: * Beam Search 是一种贪心搜索算法的变体,它在搜索过程中保留固定数量的备选路径(称为beam width,即光束宽度),并在每个步骤中扩展这些路径。 * 它从初始状态开始,逐步选择最优的分支,但只保留有限数量的最优分支,丢弃其他分支。 * Beam Search 通常用于序列生成任务,如机器翻译、语音识别等,其目标是通过局部最优的搜索来找到全局最优的序列。 * 蒙特卡洛树搜索(MCTS): * MCTS 是一种基于随机模拟的树搜索算法,通过构建搜索树并进行随机模拟来估计各个节点的潜在价值。 * 它通过反复执行选择、扩展、模拟和回溯四个步骤来优化决策,并逐渐逼近最优解。 * MCTS 常用于复杂博弈和决策问题,特别是在不完全信息或巨大搜索空间的情况下,如围棋、国际象棋、机器人规划等。 2. 搜索策略 *
8 min read