blog/_posts/2023-04-05-ai.md

27 lines
7.7 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

---
layout: post
title: 关于最近人工智能的探索
tags: [AI, LLM, 人工智能]
---
最近人工智能发展的还真是不错啊……<!--more-->
# 起因
最近ChatGPT为代表的人工智能发展的越来越好了而且因为它对生产力的提升使得了解AI的人也越来越多了。虽然我也不算是对AI很感兴趣但是我在Github Copilot刚出的时候就已经用上了到现在一直在用不过毕业了以后估计就用不了了吧😂。不过那时候Copilot毕竟专业性比较高知道的人也比较少不像现在ChatGPT能在各行各业使用甚至还有基于类似模型的Vtuber比如[Neuro-sama](https://www.twitch.tv/vedal987),所以即使是普通人使用它,都能够减轻自己的工作压力,所以现在的人们都在讨论它。
当然在这之前还有一些很厉害的画图AI比如使用了Stable Difusion的NovalAI以及Midjourney啥的不过因为我对画图并不感兴趣所以它发展的有多好也基本上和我没有关系。其实除了这些能够AIGC的模型之外在那之前还有下围棋的AlphaGO啥的那个我就更不感兴趣了相信大多数人也不感兴趣所以总的来看也就只有现在才能证明AI发展到了能够让大家觉得能干涉到更多人的地步吧。
也正因为现在以ChatGPT为代表的LLM的发展开源社区也开始搞起来一些有意思的东西。不过LLM的训练成本比较高所以现在开源社区在这一块的发展也许得感谢比如Facebook的[LLaMA](https://github.com/facebookresearch/llama)之类基础的模型才能让大家能用较低的成本去训练属于自己的AI吧。
# 关于LLaMA衍生的模型体验
在刚开始LLaMA被Facebook开源的时候GitHub上就出现了[llama.cpp](https://github.com/ggerganov/llama.cpp)这个项目因为我没钱买显卡手头只有笔记本电脑上的一张非常垃圾的GTX1650Ti 4GiB显存的显卡多亏了这个项目可以让我这种没显卡的人也能体验LLM的乐趣。而且这个项目使用起来非常简单不像很多AI项目还要装什么TensorFlow啊还是什么PyTorch啥的那些东西不仅大还非常的挑版本这个项目运行的时候就什么都不用考虑对使用者来说非常的友好像清华那个[ChatGLM-6B](https://github.com/THUDM/ChatGLM-6B)我就完全跑不了它要想正常体验得要有8GiB的显存我就没法整这种东西了。
我体验了那个最开始的LLaMA-7B的模型效果其实不怎么样根本没法流畅对话不过也能理解因为它应该相当于是把一堆数据堆到一起的东西吧也没有针对对话进行训练。不过很快斯坦福大学对这个模型进行了Finetune制作出了[Alpaca](https://github.com/tatsu-lab/stanford_alpaca)当然这个仓库里面的东西是纯粹的菜谱和食材把他们加工成模型得要整一堆A100的显卡跑几个小时这个我可整不来不过还好有人根据这个原材料加工成了完整的模型现在去🤗上就能下载的到比如去[这个仓库](https://huggingface.co/chavinlo/alpaca-native)就能下载到训练好的模型,在[这里](https://huggingface.co/Pi3141/alpaca-native-7B-ggml)可以下载到已经经过量化直接可以给llama.cpp使用的版本不过现在llama.cpp升级了得要按照说明在仓库里执行那个Python脚本进行转换才能正常使用
我运行这些东西是在我的Macbook Pro上它只有8GiB的内存所以只能跑7B70亿参数的模型不过就这个模型也已经非常厉害了虽然只能说英文但是流畅程度上下文关系的能力都非常不错而且常见的知识都能正确回答效果让我很满意。不过8GiB内存实在是太小了想跑点别的也没办法……不过16GiB内存的电脑我还是能找得到的我找了台CPU是i7-11700K的台式机跑了下[使用GPT-4对话数据微调的13B模型](https://huggingface.co/Pi3141/gpt4-x-alpaca-native-13B-ggml)速度比M2芯片跑的速度感觉慢了至少5倍吧Macbook生成的速度基本上能达到对话的语速台式机跑的速度那就是一个一个词往出蹦这下就能感受到M2芯片的计算能力还是强大啊4大核+4小核比8核16线程还要厉害苹果的产品属实有点东西😝不过这个13B的模型也确实厉害有些7B的模型回答有错误的部分这个13B的都能正确回答如果我能整个16GiB的Macbook可能就能完整体验了吧可惜苹果家的内存比金子都贵实在是买不起啊……
斯坦福的这种Finetune方法成本还是有点高所以后来又有人研究出了一个叫[LoRA](https://arxiv.org/pdf/2106.09685.pdf)的办法去Finetune模型据说只要一张普通的显卡就可以进行不需要一堆高级显卡也能跑不过再低级的显卡也不是我这GTX1650Ti能碰瓷的所以我也只能看看别人训练的模型啦。在看的时候我发现了一个用的中文训练集跑的模型项目[Chinese-LLaMA-Alpaca](https://github.com/ymcui/Chinese-LLaMA-Alpaca)看起来还挺有意思的不过他们似乎担心什么版权问题只放出了LoRA权重没有完整的模型就相当于是没有面饼的泡面只有料包好在他们倒是给了去哪里找面饼。不过泡面的这个过程对我来说也挺难的合并它需要13-15GiB的可用内存16GiB的内存肯定不够用所以得找一台32GiB内存的电脑不会有人组非2次方倍数内存的电脑吧……我手头没有还好从网上找了台免费的云主机整了个32GiB内存的才成功的把这碗面泡出来了。虽然泡面的步骤不多也不算特别难只是我是觉得干嘛同一碗面泡那么多次不如我提前泡好直接放网上所以我也在🤗上上传了最终合并并量化的模型[在这里](https://huggingface.co/Mabbs/chinese-Alpaca-lora-7b-ggml)就能下载到直接就能拿来用的模型了。至于运行的参数就按照之前仓库的操作就行了。
# 让M2芯片发挥更大的作用
在我玩完那个llama.cpp项目之后我觉得让M2芯片光用CPU算好浪费啊毕竟这个芯片里面还有神经网络引擎和GPU啊这些哪个都比CPU算更好吧不过想要调那些东西进行人工智能计算貌似只能用苹果的Core ML框架。这两天我在Github看到一个苹果官方发布的[Core ML Stable Diffusion](https://github.com/apple/ml-stable-diffusion)看起来还挺有意思的我倒是也想在我的Macbook上跑一下正好🤗开发了一个示例[Diffusers](https://apps.apple.com/app/diffusers/id1666309574)可以拿来试试看可惜8GiB内存还是限制了它的发挥跑是能跑速度也挺快的就是模型没法换因为内存也只能跑小的模型跑出来可以说真的就是那种抽象的不能再抽象的东西吧……不过不管怎么说这还是发挥了一下神经网络引擎和GPU的作用吧不然感觉苹果做了这些东西就没啥作用了😂。
# 感想
从这次体验来看我对开源社区的AI发展感觉还是挺有信心的虽然相比于ChatGPT之类的来说可能还没办法当作生产力不过毕竟它比较平民化至于知识量少的问题如果开发者们能加把油能让这些模型对接网络那也许就可以在很低成本的情况代替OpenAI的ChatGPT吧也能避免他们服务器出问题之类的原因导致生产力的下降吧。不过开源这种事情还是有点……毕竟还是不希望这些东西被人拿去商业化更不希望出现国外一开源国内就自研这种糟糕情况也许开源产品比不上人家的商业产品也是正常的。