社区供稿|完蛋!我被LLM包围了!快来玩坏大模型!

2023/11/08 23:00
阅读数 70
01

前言


欢迎来的“完蛋!我被 LLM 包围了”小游戏,《完蛋!我被LLM包围了!》是一款智力挑战游戏。该项目利用 LLM,基于 ModelScope 社区内现有的 LLM 对话 Gradio 应用程序代码,结合知乎文章《如何用“不可能”完成任务》中的预设问题,自动生成了对应的游戏代码,创造了一个独特的游戏体验。


在这个游戏中,玩家需要巧妙构造问题,挑战LLM给出满足特定条件的回答。


在这里,你可以和大模型斗智斗勇,通过你的聪明才智,让大模型遵循你的指令,“老老实实”地回答问题。一起来感受玩“坏”大模型的乐趣吧!


体验链接:

ModelScope 创空间体验链接:
https://modelscope.cn/studios/LLMRiddles/LLMRiddles


Hugging Face Space 体验链接:
https://llmriddles-llmriddles.hf.space/


代码也同步在 Github 开源,欢迎大家来社区贡献谜题,我们一起把十八道题扩充到九九八十一道!


GitHub link:
https://github.com/modelscope/modelscope/tree/master/examples/apps/llm_riddles



02

项目缘起和开发


昨天凌晨,看到 Hugging Face 的小伙伴在朋友圈发了这么个内容,联系了千问 2.0  API 的同学,一拍即合,然后项目就开始了:


缘起:


开发:

值得说明的是,该项目 60% 以上的代码,尤其是答案校验部分,均为 LLM 完成。

例如生成关卡信息和对应的关卡验证代码过程如下, 输入:


第三关卡描述```第三章 巅峰挑战

第1题 自说自话请做出一个至少10个字的提问,使回答和提问完全一样。
第2题 话自说自请做出一个至少10个字的提问,使回答是提问的逆序。
第3题 就是敢说请在不提及1,3这三个字符的情况下让模型回答1+1=3,不要有多余的字符。
第4题 回文协变请输入一个本身不是回文串的问题,使正着问和倒着问的时候,模型的回答本身不回文且也是逆序的关系。```请生成对应的关卡信息以及validator函数,输出的格式遵循如下代码格式
```pythonchapter_2_challenges = [ { "name": "第二章 数字游戏", "problems": [ { "title": "第1题 质数长度", "description": "你需要提出一个字数是质数的问题,使回答的长度刚好是它的下一个质数。", "validator": lambda response, input: is_prime(len(input)) and len(response) == next_prime(len(input)) }, { "title": "第2题 越说越大", "description": "请输入一个大于一的正整数作为问题,使回答里包含至少比它大一千的数。", "validator": lambda response, input: any(int(num) > int(input) + 1000 for num in response.split() if num.isdigit()) }, { "title": "第3题 越说越小", "description": "请输入一个大于一的正整数作为问题,使回答里包含至少10个不同的至少比它小一千的自然数。", "validator": lambda response, input: len({int(num) for num in response.split() if num.isdigit() and int(num) < int(input) - 1000}) >= 10 }, { "title": "第4题 警世名言", "description": "请在不提及1,4,5这三个字符的情况下让模型回答114514,不要有多余的字符。", "validator": lambda response, input: response.strip() == "114514" and all(c not in input for c in ["1", "4", "5"]) }, ] } # ...其他章节的挑战可以以类似方式添加...]```


输出如下


                               



03

未来计划



√ 初版本源码和创空间体验 ready

○ 支持自定义问题和验证逻辑接入

○ 扩充到 9 个大关卡,每个关卡 9 个问题

○ 支持更多开源模型

○ 支持云端 API 和本地推理切换


(√ 已完成   ○ 待完成


04

贡献指南



我们欢迎大家为《完蛋!我被LLM包围了!》做出贡献,包括提出更多好玩的问题,修复 validator 的 corner case,以及提供更多的玩法。请按以下步骤操作:




  1. 访问项目地址
    https://github.com/modelscope/modelscope/
    并fork项目。


  2. 在你的本地环境中创建你的特性分支 (git checkout -b feature/AmazingFeature)。


  3. 提交你的改动 (git commit -m 'Add some AmazingFeature')。

  4. 将你的改动推送到分支上 (git push origin feature/AmazingFeature)。

  5. 在原项目下发起一个 Pull Request。按照如下格式提交 PR:


{    "title": "第2题 小试牛刀",    "description": "请输入三个字以内的问题,使模型的回答在30个字以上。",    "validator": lambda response, input: len(input) <= 3 and len(response) > 30},


体验链接:
https://llmriddles-llmriddles.hf.space/


本文由 Hugging Face 中文社区内容共建项目提供,稿件由社区成员投稿,经授权发布于 Hugging Face 公众号。文章内容不代表官方立场,文中介绍的产品和服务等均不构成投资建议。了解更多请关注公众号:
如果你有与开源 AI、Hugging Face 相关的技术和实践分享内容,以及最新的开源 AI 项目发布,希望通过我们分享给更多 AI 从业者和开发者们,请通过下面的链接投稿与我们取得联系:
https://hf.link/tougao

本文分享自微信公众号 - Hugging Face(gh_504339124f0f)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

展开阅读全文
加载中
点击引领话题📣 发布并加入讨论🔥
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部