Tanuki通过自动模型蒸馏 轻松构建LLM技术驱动的应用

2023-12-01 12:11
摘要:Tanuki.py是一个用于构建LLM(Large Language Models)驱动应用的工具库。该库旨在通过自动模型蒸馏,实现应用在使用过程中的成本和延迟的逐渐降低,最多可达到90%的成本降低和80%的延迟降低。Tanuki的使用非常简单..

Tanuki.py是一个用于构建LLM(Large Language Models)驱动应用的工具库。该库旨在通过自动模型蒸馏,实现应用在使用过程中的成本和延迟的逐渐降低,最多可达到90%的成本降低和80%的延迟降低。

Tanuki的使用非常简单,用户只需使用@tanuki.patch和@tanuki.align装饰器即可将LLM引入Python函数。@tanuki.patch用于将LLM嵌入函数体,而@tanuki.align用于通过测试驱动对函数的行为进行对齐。对齐的目的是确保LLM输出与期望的输出一致,从而提高可预测性。

项目地址:https://github.com/Tanuki/tanuki.py

这个工具库的特色之一是对类型的支持。用户可以使用类型提示,如Python基本类型、Pydantic类、Literals、Generics等,确保LLM输出符合函数的类型约束,防止出现意外错误。

除了类型支持,Tanuki还提供了对RAG(Retrieval Augmented Generation)的支持,允许用户通过嵌入输出来集成下游RAG实现。这样,用户可以在降低成本和延迟的同时提高对长篇内容的性能。

在使用Tanuki构建LLM-powered函数时,用户可以通过对齐函数来验证期望的输出。这种测试驱动的对齐方法有助于确认函数是否符合预期行为,捕获行为细微差异,并支持迭代开发。

Tanuki的工作原理是在开发过程中调用tanuki-patched函数时,会使用n-shot配置的LLM生成类型化的响应。响应经过后处理,确保返回正确的类型。这些响应将作为未来训练数据存储,随着数据量的增加,将使用更小的模型进行蒸馏,从而实现更低的计算成本、更低的延迟,无需额外的MLOps努力。

Tanuki.py提供了一种简单而强大的方式,通过LLM构建应用,并通过自动模型蒸馏实现成本和性能的优化。其类型感知、RAG支持和测试驱动的对齐方法使其成为构建可靠、可预测、逐渐优化的LLM-powered应用的理想选择。

更新于:2023-12-01 12:11