原贴链接

嘿,大家好!👋 我们需要一种使用本地大型语言模型(LLM)来生成大型合成数据集的方法,而不是使用OpenAI或付费云服务。所以我们构建了Promptwright(https://github.com/StacklokLabs/promptwright),这是一个Python库,能让你通过Ollama使用本地模型生成合成数据集。

构建它的原因:

  • 我们之前使用OpenAI的API来生成数据集,但对于大规模实验来说成本太高了。
  • 我们研究过像pluto这样的现有解决方案,但它们只能在OpenAI上运行。这个项目最初是pluto(https://github.com/redotvideo/pluto)的一个分支,但我们很快对其进行了大量扩展和修改,实际上已经是一个全新的项目了,不过还是要感谢redotvideo的创意。
  • 我们想要一个能完全在本地运行的东西,这样就不用担心隐私信息泄露的问题。
  • 我们想要能够灵活使用任何我们需要的模型。

它的功能:

  • 使用Ollama在你的本地机器上完全运行(与llama2、mistral等配合得很好)
  • 用于数据集生成的超级简单的Python接口
  • 可配置的指令和系统提示
  • 输出可用于训练的干净JSONL格式
  • 与Hugging Face Hub直接集成以共享数据集

我们已经在几个内部项目中使用它了,效果很好。你可以处理数千个样本而不用担心API成本或速率限制。而且,由于一切都在本地运行,你不必担心敏感数据离开你的环境。

代码采用Apache 2许可,我们希望得到社区的反馈。如果你正在进行任何用于机器学习的合成数据生成工作,请试一试并告诉我们你的想法! 链接: GitHub:StacklokLabs/promptwright 查看examples/*文件夹,里面有生成代码、科学或创意写作数据集的示例。 如果你有任何想法或建议,如果你发现有改进的空间,请随时提出问题或提交拉取请求。

讨论总结

这个讨论围绕Promptwright开源展开。有人对其工作依赖的条件和数据生成原理提出疑问,如是否依赖Ollama、能否与OpenAI兼容,合成数据生成是如何工作的等;有人将其与Python for - loop方式进行比较,探讨新工具是否有特殊算法;还有人祝贺项目发布并寻求类似项目比较,好奇大型实验室是否也用类似方式生成数据以及这种方式的局限性。整体氛围积极,大家都在理性探讨项目相关的技术问题。

主要观点

  1. 👍 对Promptwright工作依赖的疑问,如是否需要Ollama,能否与OpenAI兼容
    • 支持理由:SuperChewbacca有生成合成数据的需求,想了解该工具能否满足自己的需求场景。
    • 反对声音:无
  2. 🔥 对使用新工具而非Python for - loop方式提出疑问
    • 正方观点:drooolingidiot认为自己用for - loop方式调用LLM已经能满足需求,不理解新工具的必要性。
    • 反方观点:zero_proof_fork解释新工具使用主题树算法能产生更多变化且保持在根提示上下文。
  3. 💡 对项目发布表示祝贺并寻求类似项目比较
    • 解释:评论者认可项目很酷,想要找到类似项目来进行比较,以便更好地了解这个项目的地位和价值。
  4. 💡 好奇大型实验室的合成数据生成方式
    • 解释:想知道大型实验室是否也用类似方式进行合成数据生成来训练未来的模型。
  5. 💡 关心这种项目方式的局限性
    • 解释:对项目方式的适用范围和潜在问题感兴趣,希望了解其局限性。

金句与有趣评论

  1. “😎 Super cool congrats on the release.”
    • 亮点:表达对项目发布的祝贺,是积极正面的反馈。
  2. “🤔 Does it require Ollama to work? Can it be used with an OpenAI compatible API?”
    • 亮点:直接针对项目的工作依赖提出关键问题。
  3. “👀 The difference I expect (having not seen your python code) is this uses a topic tree algorithm to create a structured hierarchy of knowledge (like chapters -> sections -> subsections in a book) rather than just repeating the same prompt.”
    • 亮点:详细解释新工具可能使用的算法与普通方式的区别。
  4. “😂 I will see if I can try it out this weekend!”
    • 亮点:表达想要尝试使用该工具的意愿。
  5. “🤔 I also wonder if this is what the large labs are doing for synthetic data generation to train future models and where that taps out”
    • 亮点:从大型实验室的角度思考项目相关的问题。

情感分析

总体情感倾向是积极的。主要分歧点在于新工具与Python for - loop方式相比是否有优势,可能的原因是大家对数据处理的方式和效率有不同的理解和需求。

趋势与预测

  • 新兴话题:关于项目局限性的讨论可能会引发后续更多关于如何改进和优化的探讨。
  • 潜在影响:如果这个工具被广泛认可,可能会影响合成数据生成领域的技术走向,更多人可能会采用本地运行的方式来进行数据生成,减少对OpenAI等付费云服务的依赖。

详细内容:

《Promptwright:开源的本地 LLM 大型合成数据集生成工具》

在 Reddit 上,一则关于“Open Sourced Promptwright: Generate large synthetic datasets using a local LLM”的帖子引起了广泛关注。该帖子获得了众多点赞和大量评论。

原帖主要介绍了 Promptwright 这个 Python 库,它能让用户通过 Ollama 在本地机器上生成合成数据集。开发者称,之所以构建它,一是因为使用 OpenAI 的 API 进行数据集生成成本高昂;二是现有的类似 pluto 的解决方案只能在 OpenAI 上运行;三是希望能在本地运行,避免泄露私人信息,并拥有使用所需模型的灵活性。

帖子中提到 Promptwright 的特点包括:完全在本地机器上通过 Ollama 运行(与 llama2、mistral 等配合良好)、拥有超级简单的 Python 接口用于数据集生成、可配置指令和系统提示、输出易于训练的干净 JSONL 格式以及与 Hugging Face Hub 直接集成以共享数据集。

该帖子引发的主要讨论方向包括对 Promptwright 的使用疑问、与其他类似项目的比较等。

讨论焦点与观点分析如下: 有人询问是否需要 Ollama 才能工作,能否使用 OpenAI 兼容的 API。有人回答目前需要 Ollama,但可能会考虑 OpenAI 兼容格式。 对于数据生成的工作原理,有人提到它使用主题树,还提供了相关链接。 有人好奇 num_steps 在示例中的含义,以及是否保留完整上下文。 有人认为 ollama 已经有基本完整的 OpenAI API 实现。 有人提出为何使用 Promptwright 而不是用 Python 的 for 循环调用 LLM 与提示,有人解释称这使用了主题树算法创建结构化的知识层次,能产生更多样且在主题范围内的内容。 有人认为根据代码来看只是对提示进行迭代,而有人回应称虽然迭代,但利用了主题树算法,能产生更多变化。 有人称赞发布很酷,并询问是否有其他类似项目用于比较。

总之,关于 Promptwright 的讨论展现了大家对这一开源工具的关注和思考,也期待它能在未来的使用中不断完善和发展。