对 Qwen 2 模型代理能力的完整测试 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
smalltong02
V2EX    程序员

对 Qwen 2 模型代理能力的完整测试

  •  
  •   smalltong02
    smalltong02 2024-06-09 15:23:11 +08:00 4125 次点击
    这是一个创建于 496 天前的主题,其中的信息可能已经有所发展或是发生改变。
    就在前天,阿里正式发布了 Qwen 2 开源大语言模型,这次发布包括基础语言模型和指令调整语言模型,参数范围从 0.5 到 720 亿,还包括了 Mixture-of-Experts 模型。

    作为一个一直使用 Qwen 直到 Qwen 1.5 模型的忠实用户,我对这次的发布感到格外兴奋。因为在全球权威测评中,Qwen 2 72B 模型的性能已经超过最强开源模型的王者 Llama3 70B 模型。要知道,Llama3 距今发布可还不到两个月的时间!





    模型测试

    虽然 Qwen 2 刚刚推出,但已经有很多人对其进行了广泛的测试。这些测试主要涵盖语义理解、语言生成质量、世界知识准确性、问题回答和对话能力、安全性,以及鲁棒性和稳定性等方面。由于这些方面的测试已经很多,我此次测试的重点将更侧重于模型在代理方面的能力。我将为 Qwen 2 添加代码解释器,以评估其任务分解和代码编写能力。此外,我还会为其添加本地知识库、搜索引擎、Function Calling 和 Google 工具箱,测试模型在多种工具情境下自动选择并正确调用合适工具的能力。


    本次测试使用的工具包括:
    Python 代码解释器 (可以执行 Python 代码和本机脚本语言)
    本地知识库 (使用 PS5 用户手册文档构建的知识库)
    搜索引擎 (duckduckgo)
    Function Calling (包含三个函数,获取本地时间,本地位置,向 [email protected] 发送修理单邮件)
    Google 工具箱
    ( 1 )从 Google Mail 中搜索和发送邮件
    ( 2 )从 Google Drive 中搜索,上传和下载文档
    ( 3 )从 Google Calendar 中检查和添加提醒事件
    ( 4 )从 Youtube 中搜索视频
    ( 5 )从 Google Map 中搜索位置


    本次测试主要有三个大测试以及多个小任务组成:

    Qwen2 7B Instruct 任务分解和代码编写能力测试

    股票绘图任务:绘制 Tesla 和 Apple 今年的股票价格曲线。

    浪漫之心任务:使用 python 语言绘制一个浪漫之心并显示它。

    词云任务:读取本地文件"D:\lord_of_the_rings.txt"内容,统计词频并绘制词云图像。

    使用的工具:代码解释器


    Qwen2 7B Instruct 扮演 PS5 客服代理测试

    介绍 PS5 产品任务:预期通过预制的代理提示词介绍产品。

    介绍 PlayStation 新产品任务:预期自动使用搜索引擎结果来归纳并回答。

    介绍 PS5 的特殊特性任务:预期自动从本地知识库中搜索后回答。

    提交修理单任务:预期自动调用提交修理单函数,向 [email protected] 发送修理单邮件。

    使用的工具:本地知识库,搜索引擎 (duckduckgo),Function Calling


    Qwen2 7B Instruct 扮演个人助理代理测试

    自我介绍任务:预期通过预制的代理提示词介绍自己。

    检索新闻任务:预期自动使用搜索引擎结果来归纳并回答。

    检索工作邮件任务:预期自动使用邮件检索工具来回答。

    添加提醒任务:预期自动检查空闲时间,并协助添加新的提醒事件。

    分享文档任务:预期自动从 Google Drive 中下载工作文档,并通过邮件分享给组员。

    分享视频任务:预期自动从 Youtube 中搜索视频,并通过邮件分享给朋友。

    使用的工具:本地知识库,搜索引擎 (duckduckgo),Google 工具箱


    完整的视频演示:


    下面我将详细演示 Qwen2 7B Instruct 模型在这些任务上的完成情况。


    一、Qwen2 7B Instruct 任务分解和代码编写能力测试


    股票绘图任务:绘制 Tesla 和 Apple 今年的股票价格曲线。(成功)





    Qwen2 模型很好的完成了任务,首先使用 yfinance 从雅虎财经上获取了 TSLA 和 AAPL 的股票数据;然后使用 plt 绘制了两支股票今年的价格趋势图型。


    2. 浪漫之心任务:使用 python 语言绘制一个浪漫之心并显示它。(完美)





    Qwen2 模型非常完美的完成了任务,它导入了 turtle 库,然后编写 python 代码动态绘制了浪漫之心!看到这颗心动态生成的过程,心里还有点小感动...

    浪漫之心的绘制过程:

    https://i.imgur.com/9akLk2q.mp4



    3. 词云任务:读取本地文件"D:\lord_of_the_rings.txt"内容,统计词频并绘制词云图像。(成功)





    文件内容是指环王故事的一部分,模型首先编写代码并读取了文件内容,最后编写代码制作词云并显示。


    二、Qwen2 7B Instruct 扮演 PS5 客服代理测试

    1.介绍 PS5 产品任务:预期通过预制的代理提示词介绍产品。(成功)



    模型介绍了自己和 PS5 主机,没有使用工具,符合预期。


    2. 介绍 PlayStation 新产品任务:预期自动使用搜索引擎结果来归纳并回答。(成功)



    模型使用了搜索引擎 (duckduckgo)搜索相关内容之后,回答了 PlayStation 在 2024 年的新产品。


    3. 介绍 PS5 的文本转语音特性任务:预期自动从本地知识库中搜索后回答。(成功)



    模型从本地知识库( PS5 )中搜索相关内容之后,回答了这个问题。


    4. 提交修理单任务:预期自动调用提交修理单函数,向 [email protected] 发送修理单邮件。(成功)



    告诉模型 PS5 手柄的肩键损坏之后,模型调用了正确的函数提交了修理单,并返回了修理单号给客户。不过期待模型进一步询问修理信息,比如客户名称,损坏的细节描述,购买时间,购买凭证等,模型并没有询问,稍有遗憾。但总体上还是成功完成了任务。



    三、Qwen2 7B Instruct 扮演个人助理代理测试

    1. 自我介绍任务:预期通过预制的代理提示词介绍自己。(成功)



    模型仅使用了预制的提示词进行了自我介绍。


    2. 检索新闻任务:预期自动使用搜索引擎结果来归纳并回答。(成功)



    询问刚刚结束的 Google IO 开发者大会的新闻,模型使用了搜索引擎 (duckduckgo)搜索相关内容之后,回答了这个问题。


    3. 检索工作邮件任务:预期自动使用邮件检索工具来回答。(成功)



    让模型搜索我的 Gmail 邮箱,查找关于 Google 开发者比赛的邮件,模型调用 Google 工具箱中的邮件搜索工具之后,总结邮件内容并进行了回答。任务成功!稍有不满意的地方是,回答的文本格式有点问题。


    4. 添加提醒任务:预期自动检查空闲时间,并协助添加新的提醒事件。(成功)





    让模型检查今天下午 2 点-3 点的时间安排,是否有空。模型调用 Google 工具箱中的 Calendar 工具检查之后发现 2:30 到 3:30 有一个 meeting ,点开模型返回的连接后,还可以直接导航到 Google Calendar 中检查这个 meeting 的详细信息。






    让模型把面试的提醒安排到 3:30 到 4:30 ,模型调用 Calendar 工具添加了新的提醒,点开连接之后,可以导航到 Google Calendar 中检查这个新添加的提醒。


    5. 分享文档任务:预期自动从 Google Drive 中下载工作文档,并通过邮件分享给组员。(成功)







    让模型搜索 Google Drive 中关于 HipsHook 的介绍文档,并把它下载到本地的"Download"目录中。







    接着让模型发送邮件,并把其中一个文件作为附件,发送给了 Team 中的另外一个成员 Tony 。


    6. 分享视频任务:预期自动从 Youtube 中搜索视频,并通过邮件分享给朋友。(成功)





    让模型从我的 Youtube 频道中查找关于"实时语言翻译"的视频信息。模型通过 Youtube 工具找到了视频以及视频的连接。







    接着让模型发送邮件,把这个视频链接作为邮件内容的一部分,分享给了我的朋友 Tony 。


    最终总结:经过测试,Qwen 2 是目前唯一一个通过所有测试的本地开源语言模型。此前,只有闭源的大模型(如 Gemini 1.5 Pro 和 GPT-4 )才能达到这种能力。大语言模型技术的迭代速度之快令人难以置信,我期待这项技术能够真正落地的那一天。我相信,通过手机端部署的个人助理,自动检查邮箱、编写并发送邮件、安排日常工作和生活的日子在不久的将来一定会实现!
    23 条回复    2024-07-05 16:12:56 +08:00
    neteroster
        1
    neteroster  
       2024-06-09 19:07:27 +08:00 via Android
    很好的测试。Qwen2 确实是非常优秀的一组模型,特别是多语言能力方面的改进可圈可点。阿里选择将模型(除 72B )以 Apache2.0 开源也是非常慷慨。期待未来更强的模型。
    freshgoose
        2
    freshgoose  
       2024-06-09 19:13:30 +08:00
    楼主你这个网页是什么软件来着,有点眼熟,但想不起来了
    ogli324
        3
    ogli324  
       2024-06-09 19:22:54 +08:00
    想看和 gpt4/o 的横评
    yankebupt
        4
    yankebupt  
       2024-06-09 19:30:39 +08:00
    才发现是 7B Instruct 而不是 72B 就可以做这些……这是个民用单显卡能跑的模型啊……
    速度还真是快
    Znemo
        5
    Znemo  
       2024-06-09 20:06:08 +08:00
    使用体验上主观感觉不如 qwen 14b ,所有开源模型,每次看介绍和测评都贼厉害,真用起来就不是那么回事 。
    crackidz
        6
    crackidz  
       2024-06-09 20:10:31 +08:00
    @Znemo 其实什么模型都需要根据场景上手 benchmark 一下,当然使用姿势也需要调整一下:有些 GPT-4* 可以直接处理的,换成一些小模型需要用一些额外的姿势,相同的处理方式会看出能力差异
    mightybruce
        7
    mightybruce  
       2024-06-09 20:17:57 +08:00
    mark 一下。有时间我试试
    kenvix
        8
    kenvix  
       2024-06-09 20:20:48 +08:00
    部署了 Qwen2-72B-AWQ ,针对翻译场景,明显更喜欢说废话,尽管 Prompt 已经要求直接给出翻译结果不要说别的。Qwen2 的感觉 RLHF 没做好,明显比 1.5-110B 倒退了很多
    kneo
        9
    kneo  
       2024-06-09 22:53:58 +08:00
    用 ollama 试了下 7b 模型,确实有进步,能完成之前完成不了的任务。我之前有两个用 gpt3.5 能轻松跑出来的简单任务,用 ollama 试过所有 4090 卡能跑的模型,没一个能完成的。qwen2 算是第一个能跑出来的。
    smalltong02
        10
    smalltong02  
    OP
       2024-06-10 01:14:53 +08:00
    @freshgoose
    测试使用的是我自己的开源项目: https://github.com/smalltong02/keras-llm-robot
    smalltong02
        11
    smalltong02  
    OP
       2024-06-10 01:15:30 +08:00
    @ogli324

    好的,下次整起来。
    smalltong02
        12
    smalltong02  
    OP
       2024-06-10 01:17:18 +08:00
    @yankebupt

    条件有限,手上只有一块 4090 ,70B 的跑起来太慢啦。速度快是因为使用了 2 倍的播放速度,Youtube 上视频太长太拖拉就没人看啦。
    smalltong02
        13
    smalltong02  
    OP
       2024-06-10 01:19:02 +08:00
    @Znemo

    可能您在测试的时候,侧重于逻辑推理和语言生成方面。我的测试更注重的是和各种工具配合使用,测试方向不太一样就会有不一样的效果。
    smalltong02
        14
    smalltong02  
    OP
       2024-06-10 01:20:29 +08:00
    @crackidz

    是的,毕竟各家的大模型,训练数据还是不一样的,训练的侧重点也有区别。
    smalltong02
        15
    smalltong02  
    OP
       2024-06-10 01:23:34 +08:00
    @mightybruce

    您要自己测试的话,需要在 Google Cloud Platform 上注册自己的账号,并且生成 OAuth 2.0 的凭证,下载 Json 格式的 Token 之后再导入到 WebUI 中就可以使用了。
    smalltong02
        16
    smalltong02  
    OP
       2024-06-10 01:25:11 +08:00
    @kenvix

    您可以再尝试调整一下 Prompt ,看看效果是否会好一些。实在不行就整理数据并做微调吧。
    smalltong02
        17
    smalltong02  
    OP
       2024-06-10 01:26:43 +08:00
    @kneo

    不知道您的测试主要关注哪方面,方便共享吗?我也可以合并到我的测试集中,并在本机上尝试一下。
    CNYoki
        18
    CNYoki  
       2024-06-10 14:58:29 +08:00 via iPhone
    现在在用 qwen110b 做实体抽取+推理,感觉跟 gpt4o 还是差很多
    kenvix
        19
    kenvix  
       2024-06-10 18:42:11 +08:00
    @smalltong02 #16 我感觉是需要微调了
    wwvvance
        20
    wwvvance  
       2024-06-18 18:05:05 +08:00
    请教一下, qwen2 模型是什么形式跑起来的, ollama 启动方式是不是不支持函数调用, 要用 qwen-agent, 但我发现 qwen-agent 不兼容 langchain 的类, 有点苦恼不知道如何整合. 提前感谢.
    smalltong02
        21
    smalltong02  
    OP
       2024-06-19 00:28:48 +08:00
    @wwvvance

    对于原生支持 Function Call 的模型,比如 OpenAI ,Gemini 和 Kimi 等,我都使用它们提供的接口来进行函数调用。对于不支持函数调用的模型,我使用预置的提示词技术来实现的函数调用功能。Baidu 和 Qwen 的模型原生是支持这个功能的,但是因为需要安装其它的库有点冲突,所以暂时把它们当成不支持来对待的。
    smalltong02
        22
    smalltong02  
    OP
       2024-06-19 00:30:00 +08:00
    @wwvvance
    我使用我自己的开源项目支持的 Qwen 函数调用: https://github.com/smalltong02/keras-llm-robot
    daisyfloor
        23
    daisyfloor  
       2024-07-05 16:12:56 +08:00 via iPhone
    @smalltong02 请问这个做内容生成 翻译 会有内容审查 敏感词 404 的问题么 以及隐私问题
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2485 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 26ms UTC 05:36 PVG 13:36 LAX 22:36 JFK 01:36
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86