内容提要
Jev是一种无需训练即可快速进行窄域决策并返回结构化JSON的新型AI分类模型。Vercel发布Python版AI SDK,新增evaluate() API。作者用它进行Python/英语分类,效果优于自建分类器但仍有误判;又尝试让其逐节点生成Python AST写代码,语法有效但内容多错。实验虽不完美,仍值得探索。
延伸解读
Jev 的定位:快速窄域分类器
Jev 被设计为一种无需针对特定领域训练的通用分类器,它基于大语言模型,但输出结构化 JSON 而非文本。它适合快速做出窄域决策,例如从多个选项中选择答案或评分。然而,它仍会犯错,只是速度很快。因此,在采用前需要针对具体用例测试其准确性。
Python 版 AI SDK 的 evaluate() API
Vercel 为 Python 开发者发布了 AI SDK,新增实验性的 evaluate() API,可直接调用 Jev。使用前需安装 ai 包并设置 AI_GATEWAY_API_KEY。该 API 接受模型、状态和问题映射,问题类型包括 ChoiceQuestion、ScoreQuestion 和 NoulQuestion,返回结构化的答案和置信度。
实验一:Python 与英语分类的得失
作者尝试用 Jev 区分 Python 代码和英语文本,以改进 REPL 的交互体验。相比自建分类器,Jev 表现更好,但仍存在误判,例如将部分输入的 Python 表达式误判为英语。这表明 Jev 在简单分类任务上具有潜力,但尚未完全可靠。
实验二:用 Jev 生成 Python 代码的局限
作者尝试让 Jev 通过逐节点选择生成 Python 抽象语法树(AST),从而写出代码。虽然最终生成的代码语法有效,但内容大多错误。这显示让分类器执行语言模型的生成任务非常困难,Jev 更适合分类而非创造性生成。
Q&A
Jev 是什么?它和传统分类器有什么区别?
Jev 是一种新型 AI 模型,本质上是一个通用分类器。传统分类器需要为每个新任务收集标注数据并训练,而 Jev 基于大语言模型,无需针对特定领域训练,就能快速做出窄域决策,并返回结构化 JSON。它便宜、快速,答案符合你定义的类型和选项。
如何在 Python 中使用 Jev?需要安装什么?
使用 Vercel 的 AI SDK for Python,通过 `uv add ai` 安装。然后创建 AI Gateway 密钥并设置环境变量 `AI_GATEWAY_API_KEY`。调用 `ai.ops.experimental.evaluate()` 函数,传入模型(如 `ai.get_model("typesafe-ai/jev")`)、状态和问题映射即可。
Jev 的 evaluate() API 支持哪些类型的问题?
evaluate() 支持三种问题类型:ChoiceQuestion(从多个选项中选择一个答案)、ScoreQuestion(按你定义的范围对状态评分)、NoulQuestion(估计某个陈述为真的概率)。
作者用 Jev 做 Python/英语分类的效果如何?
Jev 在 Python/英语分类上比作者自己训练的分类器表现更好,但仍存在误判。例如,对于“what's”+“ up”这样的部分输入,Jev 认为是英语,而作者知道这是未完成的 Python 表达式。
Jev 能用来生成 Python 代码吗?效果怎么样?
可以尝试,但效果不理想。作者让 Jev 通过逐节点选择生成 Python 抽象语法树(AST),最终能生成语法有效的代码,但内容大多错误。直接逐字母生成连 if 语句都很难完成。
Jev 适合哪些场景?使用时需要注意什么?
Jev 适合做窄域决策,比如分类任务。它快速且返回结构化 JSON,但可能出错,是否足够准确取决于具体用例,需要自行测试。它不适合替代 LLM 进行文本生成。