V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
smalltong02
V2EX  ›  程序员

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

  •  
  •   smalltong02 ·
    smalltong02 · 169 天前 · 3050 次点击
    这是一个创建于 169 天前的主题,其中的信息可能已经有所发展或是发生改变。
    就在前天,阿里正式发布了 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  
       168 天前 via Android
    很好的测试。Qwen2 确实是非常优秀的一组模型,特别是多语言能力方面的改进可圈可点。阿里选择将模型(除 72B )以 Apache2.0 开源也是非常慷慨。期待未来更强的模型。
    freshgoose
        2
    freshgoose  
       168 天前
    楼主你这个网页是什么软件来着,有点眼熟,但想不起来了
    ogli324
        3
    ogli324  
       168 天前
    想看和 gpt4/o 的横评
    yankebupt
        4
    yankebupt  
       168 天前
    才发现是 7B Instruct 而不是 72B 就可以做这些……这是个民用单显卡能跑的模型啊……
    速度还真是快
    Znemo
        5
    Znemo  
       168 天前
    使用体验上主观感觉不如 qwen 14b ,所有开源模型,每次看介绍和测评都贼厉害,真用起来就不是那么回事 。
    crackidz
        6
    crackidz  
       168 天前
    @Znemo 其实什么模型都需要根据场景上手 benchmark 一下,当然使用姿势也需要调整一下:有些 GPT-4* 可以直接处理的,换成一些小模型需要用一些额外的姿势,相同的处理方式会看出能力差异
    mightybruce
        7
    mightybruce  
       168 天前
    mark 一下。有时间我试试
    kenvix
        8
    kenvix  
       168 天前
    部署了 Qwen2-72B-AWQ ,针对翻译场景,明显更喜欢说废话,尽管 Prompt 已经要求直接给出翻译结果不要说别的。Qwen2 的感觉 RLHF 没做好,明显比 1.5-110B 倒退了很多
    kneo
        9
    kneo  
       168 天前
    用 ollama 试了下 7b 模型,确实有进步,能完成之前完成不了的任务。我之前有两个用 gpt3.5 能轻松跑出来的简单任务,用 ollama 试过所有 4090 卡能跑的模型,没一个能完成的。qwen2 算是第一个能跑出来的。
    smalltong02
        10
    smalltong02  
    OP
       168 天前
    @freshgoose
    测试使用的是我自己的开源项目: https://github.com/smalltong02/keras-llm-robot
    smalltong02
        11
    smalltong02  
    OP
       168 天前
    @ogli324

    好的,下次整起来。
    smalltong02
        12
    smalltong02  
    OP
       168 天前
    @yankebupt

    条件有限,手上只有一块 4090 ,70B 的跑起来太慢啦。速度快是因为使用了 2 倍的播放速度,Youtube 上视频太长太拖拉就没人看啦。
    smalltong02
        13
    smalltong02  
    OP
       168 天前
    @Znemo

    可能您在测试的时候,侧重于逻辑推理和语言生成方面。我的测试更注重的是和各种工具配合使用,测试方向不太一样就会有不一样的效果。
    smalltong02
        14
    smalltong02  
    OP
       168 天前
    @crackidz

    是的,毕竟各家的大模型,训练数据还是不一样的,训练的侧重点也有区别。
    smalltong02
        15
    smalltong02  
    OP
       168 天前
    @mightybruce

    您要自己测试的话,需要在 Google Cloud Platform 上注册自己的账号,并且生成 OAuth 2.0 的凭证,下载 Json 格式的 Token 之后再导入到 WebUI 中就可以使用了。
    smalltong02
        16
    smalltong02  
    OP
       168 天前
    @kenvix

    您可以再尝试调整一下 Prompt ,看看效果是否会好一些。实在不行就整理数据并做微调吧。
    smalltong02
        17
    smalltong02  
    OP
       168 天前
    @kneo

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

    对于原生支持 Function Call 的模型,比如 OpenAI ,Gemini 和 Kimi 等,我都使用它们提供的接口来进行函数调用。对于不支持函数调用的模型,我使用预置的提示词技术来实现的函数调用功能。Baidu 和 Qwen 的模型原生是支持这个功能的,但是因为需要安装其它的库有点冲突,所以暂时把它们当成不支持来对待的。
    smalltong02
        22
    smalltong02  
    OP
       159 天前
    @wwvvance
    我使用我自己的开源项目支持的 Qwen 函数调用: https://github.com/smalltong02/keras-llm-robot
    daisyfloor
        23
    daisyfloor  
       143 天前 via iPhone
    @smalltong02 请问这个做内容生成 翻译 会有内容审查 敏感词 404 的问题么 以及隐私问题
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5671 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 09:07 · PVG 17:07 · LAX 01:07 · JFK 04:07
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.