利用OpenEvolve自动化LLM文本生成与优化:从诗歌到代码的创意进化
如果最初的大型语言模型(LLM)生成的内容不符合您的需求,该怎么办?通常的做法是重新运行该模型。然而,在非代码内容生成中,仅依赖简单的循环等待最佳随机结果并不是最理想的方法。相反,优化提示语(Prompt)并在多个路径上持续实验,跟踪哪些方法有效,哪些无效,能更有效地产生高价值内容。本文探讨了一种名为OpenEvolve的开源工具如何将这种“实验和混合”的进化方法应用于非代码内容生成,特别是诗歌创作。 OpenEvolve简介 OpenEvolve是Google AlphaEvolve论文的一个开源实现。AlphaEvolve最初是针对代码生成的一种算法,它通过模拟“适者生存”的自然选择过程,混合和改进程序。虽然AlphaEvolve主要关注代码生成,但其原理同样适用于非代码内容的优化和创造。为此,研究人员设计了一个框架,使LLM能够生成并评价新的解决方案。 配置与设置 1. LLM服务器:您需要访问一个具有OpenAI兼容API接口的LLM服务器,如Cerebras、OpenAI或Google Gemini。如果具备合适的GPU,也可以自行搭建服务器。 2. Python环境与Git:假设您正在使用Linux系统,并已准备好了Python环境。 3. OpenEvolve安装: git clone https://github.com/codelion/openevolve.git cd openevolve python3 -m venv .venv source .venv/bin/activate pip install -e . 项目与提示语文件夹创建: mkdir -p examples/my_project/prompts 关键配置选项 - 生成与评估模型:可以配置多个模型。快速但性能较弱的模型用于探索多种选项,而慢但性能更强的模型用于提高质量。生成器每次迭代时只选用一个模型,评估器则每次都执行所有模型。 - 数据库配置:包括岛屿数量(num_islands),影响内容的多样性。 - 评估器配置:设置超时时间和权重,决定如何综合评估结果。 - 差异进化与重写模式:前者通过搜索和替换特定元素,后者直接输出全新的版本。对于创意内容生成,差异模式更佳。 示例:创作诗歌 - 初始内容:examples/my_project/initial_content.txt No initial poem, invent your own. - 系统提示语:examples/my_project/prompts/system_message.txt You are a Shakespeare level poem writer, turning content into beautiful poetry and improving it further and further. - 用户提示语:examples/my_project/prompts/diff_user.txt 该提示语包含了当前解决方案的信息、评价指标、改进点等内容,引导LLM进行有针对性的修改。 - 评估提示语:examples/my_project/prompts/evaluation.txt 评估内容的美观性、启示性、情感反应、创造力、语法正确性等多个维度,并给出总体评分和改进建议。 实现过程 1. 生成新内容:从数据库中选取父级内容和灵感,生成新的子级内容。 2. 评估新内容:使用编程和/或LLM评估器对新内容进行多方面评价。 3. 存储结果:将新内容及其评价结果存回数据库中,供后续迭代参考。 实际应用 为了验证效果,我们可以通过以下命令启动进化过程: source .venv/bin/activate export OPENAI_API_KEY="sk-.." python3 openevolve-run.py \ examples/my_project/initial_program.py \ examples/my_project/evaluator.py \ --config examples/my_project/config.yaml \ --iterations 9 观察生成的结果,分析其改进情况。可视化工具 visualizer.py 能帮助您实时了解整个演化的进展。 行业人士评价 OpenEvolve的成功应用展示了大型语言模型在非代码内容生成中的巨大潜力。通过结合算法评价和LLM反馈,内容创作者能够逐步优化作品,实现更高的创作质量。尽管目前仍处于研究阶段,但这一框架为未来的个性化内容创作提供了宝贵的思路。 公司背景 OpenEvolve是由Asankhaya Sharma开发的一个项目,基于Google DeepMind的AlphaEvolve论文实现。该研究论文首次提出了一种利用Gemini等强大模型设计高级算法的代理系统,而OpenEvolve将其扩展到了非代码领域。