大模型应用从入门到精通(一)选择开源大模型

导读

加入我们,一起探索大模型应用的精彩世界,精通开源模型、掌握Prompt的巧妙运用、熟悉Agent、深入Langchain框架,Spring AI框架,逐步打造属于你的AI智能体。

大模型应用从入门到精通(一)选择开源大模型

大模型应用从入门到精通(二)大模型实操:部署和运行

大模型应用从入门到精通(三)云上部署:如何将大模型搬到云端

大模型应用从入门到精通(四)Langchain:大模型时代的Spring

大模型应用从入门到精通(五)Prompt Engineering:让模型理解你的意图

大模型应用从入门到精通(六)记忆的艺术:构建有记忆力的AI

大模型应用从入门到精通(七)Agent:大模型与世界的链接

大模型应用从入门到精通(八)智能信息小助手:基于大模型的实时信息整合系统

引言:为什么选择开源大模型?

开源大模型让每一个人都能参与到这次浪潮中

LLama2 率先开源,掀起了大模型开源的热潮,这让我们每个人都可以拥有自己的大模型。现在,不仅每个人都有机会构建自己的模型,还可以对这些模型进行微调,这让我们每个人都参能参与其中。在接下来的课程中,我们将详细讲解如何有效地利用这些开源资源,让每一个热爱技术的你,都能在这场浪潮中乘风破浪。

开源模型已经达到了ChatGPT3.5的水准

GPT3.5 Turbo是一个可以进行商业应用的级别,许多国外的商业产品底层也使用该级别的模型。目前来看,GPT3.5仍然是一个优秀的解决方案,它在推理成本、速度以及可用性三者之间取得了平衡。下面,我们做一个不严谨的对比测试,让大家对开源大模型的能力有一个体感。

问:根据提供的数据,让大模型按国家分组统计订单金额占比,并且用饼状图展示

The following is the order data, which is a collection of orders. Each element includes three fields, namely country, price, and user_id.
{
  "orders": [
    {"country": "USA", "price": 120.5, "user_id": 1},
    {"country": "Canada", "price": 90.0, "user_id": 2},
    {"country": "USA", "price": 110.75, "user_id": 3},
    {"country": "Canada", "price": 85.55, "user_id": 4},
    {"country": "USA", "price": 200.0, "user_id": 5},
    {"country": "Japan", "price": 150.0, "user_id": 6},
    {"country": "Japan", "price": 130.2, "user_id": 7},
    {"country": "Japan", "price": 70.0, "user_id": 8},
    {"country": "Italy", "price": 95.0, "user_id": 9},
    {"country": "Canada", "price": 105.0, "user_id": 10}
  ]
}

Please statistics on the proportion of order amount grouped by country, displayed in a pie chart

答:从左到右,依次是通义千问,LLama2,ChatGPT3.5。从答案来看,通义千问和GPT3.5都提供了Python的实现代码,而LLama2的理解有些偏差,它直接用JavaScript编写了一个饼状图组件。尽管LLama2理解错了,但其实现仍然令人印象深刻。总体上,通义千问和LLama2的表现都非常出色,与ChatGPT3.5相当。

开源社区迸发出惊人的创新能力

自从LLama2率先开源以来,大模型社区的发展势头很猛,新的技术层出不穷。我相信,开源会继续为大模型注入新的生命力,推动其不断进步。对于吾辈来说,要做的就是躬身入局,参与到这股洪流之中。

选择什么大模型

英文选择LLama2,中文选择通义千问

与其他开源技术一样,我们应该最关注的两个指标是社区活跃度(星级数)和其背后的组织。

对比核心的几个开源模型:

模型参数规模(B)星星数(k)组织国家
LLama27,13,34,7052.1Meta美国
Mistral 7B78.5Mistral AI法国
通义千问Qwen1.8,7,14,7210.5阿里巴巴中国
ChatGLM-6B611.6智谱AI中国

以上数据截止至2024年04月10日

通过以上的比较,我认为LLama2和通义千问Qwen绝对是开源模型界的领导者。无论是社区活跃度,参数规模支持程度,还是更新频率,这两个模型都领先于其他的开源模型。我建议大家在学习和研究的时候选择这两个模型。

参考资料:

GitHub - wgwang/awesome-LLMs-In-China: 中国大模型

GitHub - eugeneyan/open-llms: 📋 A list of open LLMs available for commercial use.

https://chat.lmsys.org/?leaderboard

在PC跑大模型遇到的一些问题

  • 内存不够怎么办

    模型参数的规模与内存(实际上指的是显存)强烈相关,模型的参数需全部加载到内存中才能进行推理。简单地说,1B参数大约需要4GB,那么7B的模型需要28G的内存,70B的模型则需要280G的内存。算下来,24G内存的4090显卡都甚至无法运行7B的模型,这还如何玩!

    先别急,内存问题可以通过模型量化来解决。量化是通过降低参数的精度来减少对内存的需求。量化后的7B模型仅需3.8G,足以轻松在任何一台PC上运行。

    从Ollama支持的模型库中可以看出,大型模型在量化后对内存的需求,如下表:

    模型参数对内存需求
    LLama2 7B7B3.8G
    LLama2 13B13B7.3G
    LLama2 70B70B39G
  • 没有显卡怎么办

    感谢万能的Docker,借助Ollama的Docker镜像,我们可以轻松地在CPU上运行应用程序,无需进行任何复杂的配置。即使没有高端显卡,我们也无需担心。

    亲测,在Macbook Air M1上使用docker运行,如下图:

  • 参考地址:Ollama is now available as an official Docker image · Ollama Blog

一般电脑的速度怎么样

  • 推理速度达到多少算可用

    Reddit上的一项调研。多数人认为7-10 Token/s是一种可用的速度。这个速度大概等于每秒5-7.5个单词,因为一般来说,1个单词等于1.3个Token。我认为10 Token/s是一个可用的临界点。然而,也有一些人持极端观点,他们认为每秒1个Token也是可以接受的。这个讨论非常有趣,有兴趣的人可以去看看。

  • Reddit关于Token速度的讨论:https://www.reddit.com/r/LocalLLaMA/comments/162pgx9/what_do_yall_consider_acceptable_tokens_per/

    https://www.reddit.com/r/LocalLLaMA/comments/162pgx9/what_do_yall_consider_acceptable_tokens_per/

  • 使用llama.cpp测试模型的推理速度

    笔者用两台电脑测试,配置如下:

    • MacBook Air:16G内存,M1芯片
    • Mac Studio:128G内存,M1 ultra芯片,性能≈英伟达3090

    测试结果如下:

    电脑模型参数Token
    MacBook Air4B19.9 T/s
    MacBook Air7B12.5 T/s
    Mac Studio4B83.6 T/s
    Mac Studio7B71.2 T/s
    Mac Studio70B13.7 T/s

从测试结果来看,16G内存的MacBook Air能够轻松运行7B模型。而对于Mac Studio,它足以应对市场上的任何一个开源模型

不同需求选择不同类别的模型

  • 选择对应语种的模型

    在中文环境下,建议选择国内的模型,而不是国外的中文版本。目前,支持中文的模型较少。如果对应的模型不支持中文,一种建议的方法是把问题翻译成英文进行提问,获取答案后再将答案翻译成中文。当然,如果你的英文能力强,可以忽略这个建议。从目前的情况来看,中文大模型的整体效果不如英文模型,这一方面是因为训练语料相对较少;另一方面,中文的复杂性较高,想要取的更好的效果比较困难。

  • 选择专用模型

    一般用途选择通用模型,聊天用途选择Chat模型,编码等用途选择专用模型。不同的模型训练的语料是不同的,各有其优势。根据用途选择对应的模型,可以达到最好的效果。

彩蛋:存在越级打怪的可能性吗,7B的Mistral能不能打败70B的LLama 2?

如题,我们用一道题测试下

问题:给出数据,找到订单金额最高的用户,并且返回用户id

The following is the order data, which is a collection of orders. Each element includes three fields, namely country, price, and user_id.
{
  "orders": [
    {"country": "USA", "price": 120.5, "user_id": 1},
    {"country": "Canada", "price": 90.0, "user_id": 2},
    {"country": "Germany", "price": 110.75, "user_id": 3},
    {"country": "France", "price": 85.55, "user_id": 4},
    {"country": "Australia", "price": 200.0, "user_id": 5},
    {"country": "Japan", "price": 150.0, "user_id": 6},
    {"country": "South Korea", "price": 130.2, "user_id": 7},
    {"country": "Brazil", "price": 70.0, "user_id": 8},
    {"country": "Italy", "price": 95.0, "user_id": 9},
    {"country": "Spain", "price": 105.0, "user_id": 10}
  ]
}

Please calculate the user_id with the highest price and output user_id

答:

虽然两者都能正确地给出答案,但是解法上有所不同。Mistral采用了遍历的方式,而LLama2则充分利用了DataFrame的特性,尽可能地简化了代码。显然,拥有更大规模参数的LLama2表现的更“聪明”一些

  • 25
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
wenet是一个开源的机器翻译框架,它由360翻译团队研发并开源,被广泛用于各种语言之间的翻译任务。要从入门到精通wenet框架,首先需要了解基本的机器翻译原理和技术,包括统计机器翻译和神经网络机器翻译的基本概念和原理。 在掌握了基础知识之后,可以开始学习wenet框架的具体使用方法和工作原理。wenet框架采用C++编写,主要基于PyTorch实现,因此需要掌握相关的编程语言和工具。可以通过阅读wenet的官方文档和参考示例代码来逐步理解框架的各个组件和模块,包括数据预处理、特征提取、模型训练和推理等方面。 在掌握了基本的使用方法后,可以通过阅读相关的论文和参与开源社区的讨论来深入了解wenet框架的一些高级特性和优化技巧。此外,还可以尝试使用wenet框架进行一些实际的翻译任务,通过实践来加深对框架的理解和掌握程度。 最后,要想真正精通wenet框架,需要持续关注最新的研究成果和技术发展趋势,不断学习和探索。只有不断地实践和总结经验,才能在wenet框架上取得更深入的理解和熟练的技能。 总之,要想从入门到精通wenet框架,需要扎实的机器翻译基础知识,掌握相关的编程技能,不断学习和实践,持续关注最新的研究进展。通过不懈的努力和坚持,相信一定能够达到对wenet框架的精通水平。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值