我尝试调整一个DeepSeek模型但失败了,然后我又尝试用Llama但也没有成功,最后我终于用Mistral模型成功了,具体是那个70亿参数的模型。
我来和你分享我的笔记以及过程中找到的一些有用资源。
不过,不要被这个搞混了,我依然认为我们正处于人工智能泡沫中。(https://dev.to/en/the-rise-and-fall-of-the-ai-bubble/)
哪里可以学习人工智能和神经网络的基础?如果你不太了解人工智能或神经网络,可以去3blue1brown频道看看,那里有最全面且解释清晰的视频。
如果你对书感兴趣,你应该看看《The Hundred Page Machine Learning Book》。需要注意的是,这本书的页数比一百页多,而且方程式非常多。
然而,重要的是要澄清,这些视频并不是从零基础开始的,你需要具备线性代数、线性回归以及微积分的基础知识。我知道这对非技术背景的人来说可能有点让人沮丧,但其实并没有你想的那么难。
如果你只会说英语,你可能没听说过DotCSV。不过,你可能不知道的是,DotCSV有关神经网络的介绍,而且他的视频非常棒。不过,他的视频是西班牙语的。是时候打开字幕了。
如果你已经对神经网络很熟悉,那咱们就讲讲微调的概念吧。
什么是微调过程呢?微调是指选择一个已经训练好的模型,并在其上继续使用特定的数据进行进一步训练。比如,一个专门用于糖尿病研究科学文章训练的LLM。
为什么要用提示设计,当你可以调整模型并得到相同的结果?
大多数当前的大型语言模型表现出相当不错的整体性能,但仍有局限性,特别是在解决特定任务的具体问题时往往力不从心。微调过程则能带来显著的好处,例如降低计算成本,同时还能使用高级模型而无需从头开始构建一个。虽然它可能并不能完全替代程序员,但微调可以将模型转化为该知识领域的终极预测工具。
需要采取的调整大型语言模型的步骤
步骤可能不同,但通常过程如下:
- 加载数据集:收集您的数据集,可以是现有的也可以是自己创建的。
- 数据预处理:使用模型的分词器对数据集进行分词,并将其拆分为训练集、验证集和测试集。
- 模型选择:选择一个预训练的LLM模型。
- 参数配置:配置超参数。
- 训练或微调:在自定义数据集上训练模型(微调)。
- 评估:使用测试集进行测试。
- 推理:部署微调后的模型来处理新数据,确保它能够很好地适应未见过的输入。
我借了这个笔记本文件,因为它是最唯一能用的一个,并且已经相应地调整过。你可以感谢brevdev这个人。更多详细信息请参见这个链接:
我用来精调模型的这个笔记本,你可以看看。
先说最重要的,我该去哪里找用于调教模型的数据?
在哪里可以找到用于微调大型语言模型的数据集?就像训练AI模型需要数据一样,同样地,微调也需要你提供所能找到的最佳数据,最好的数据来源是你自己的数据。
我使用了来自HuggingFace的数据集,不过需要注意,那些免费提供的预训练模型是用同样的数据训练出来的,所以如果你决定使用它们,不要期望会有显著的改进。最好用自己的数据或原创内容。
数据源的微调
确保你的数据集格式正确无误。例如,因为每一行都是一个单独的文件,所以我需要用Python将其转换为JSONL,这样导入就不会有非常慢的加载速度。
我们现在应该已经有了数据,我们现在用哪个LLM比较好?
哪些语言模型最适合进行微调呢?为了进行微调,一个好的开始是使用预训练的大型语言模型。
一般来说,浏览一下HuggingFace,找找一些大型模型是个不错的主意,比如Llama、DeepSeek、Mistral、Falcon等。
我测试了一下以下模型,因为它们非常轻量级,不需要太多的计算资源,但你可以使用它们更大的版本,这些版本拥有更多的参数。
我用Mistral大语言模型得到了更好的结果,可能是因为这些模型是用中文资料训练的。
我实际上成功训练并部署了它,但模型有时会返回中文字符(就像塞尔的中文房间实验一样),尽管速度非常快。
我们现在有了数据和模型,下一步在哪里可以训练我们的大语言模型呢?当然是越便宜越好。
哪里可以免费微调大模型?最好是有自己的GPU,但如果没有的话,Google 通过 Google Colab 提供有限时间的免费GPU每天,Kaggle 也提供每周30小时的免费GPU使用时间来运行你的实验。
在我的优化冒险中,我还发现了一家名为salad的公司,它作为用户和希望租用GPU的游戏玩家之间的中介,价格非常有竞争力。VastAI也是一个不错的选择。Digital Ocean(通过此链接可免费获得200美元优惠)的价格也非常实惠。
我们现在拥有了所需的全部,让我们回顾一下整个过程。
大型语言模型微调指南我发现这些关于微调的视频相当有趣,简短精悍,直截了当。不过,我没能成功制作出一个工作模型,可能是因为笔记本过时或我的经验不足,导致我没有成功制作出一个工作模型。
这确实是一个不错的介绍,但没有分享Jupyter Notebook(jupyter notebook),不过我倒是能在Google Colab上找到。在下一节里我已经放上了链接。
他稍微具体和简洁些
现在我们对整个过程有了大致的了解,那么我们从哪里获得一个微调的起始模板呢?我们也不想从头开始写所有的东西,是吧?
用于LLM微调的记录笔记本。这是我用来精调Mistral模型的笔记本,当然,做了一些相应的调整。
大多数笔记本只需要你调整模型并调整数据集以适应模型的输入,你可以将它们作为特定案例的起点。
我找到的一些资料记录得很详细,但对我没用或结果不理想,比如:
在哪里部署大型语言模型?创建模型之后,你可能希望让其他人也能用你的模型。
修改:试试看这个 OpenLLM 工具,以实现自托管的 LLM 目的。
通常有一些工具,比如 Gradio,可以简化生成类似 OpenAI 的聊天服务器的过程,你可以自己设置这些工具,或者使用 HuggingFace 提供的工具比如那些。虽然这么做每月需要支付一定的费用,免费计划仅提供 CPU 和 RAM,这样的资源通常不足以运行你的大模型,尤其是大型语言模型(LLM)。
由于我的项目是为了教育目的,所以我不想为高级计划付费,因此我决定把这个模型留在这里,点击这里查看,它包含运行它的必要代码。https://colab.research.google.com/drive/1Fe348rmXbDyvjoDPGEKrBtPurpfwnFgG
共同学习,写下你的评论
评论加载中...
作者其他优质文章