自从2022年11月30日OpenAI推出了ChatGPT3.5,生成式模型的发展引起了广泛关注,逐渐成为热门话题。这种趋势激发了国内外众多企业的兴趣,纷纷加入这个领域,推出了许多优秀的开源大型语言模型(LLM),有的是免费提供的,而有的则是收费的。
在我准备这篇文章之前,许多朋友向我询问关于选择开源LLM的建议,希望了解哪一款更加适合他们的项目。因此,我决定撰写一篇文章,介绍在选择开源大型语言模型前,需要考虑的十个关键因素。
关于对Python编程不太熟悉的朋友,实际上无需太大在意。现在市场上有许多平台和服务提供清晰易懂的可视化教程,帮助在不精通Python的情况下也能顺利使用这些工具。例如,国外的premAI平台提供了一个用户友好的桌面应用程序,每月有一定的免费使用额度,我们可以通过这个平台轻松部署和自行托管开源AI模型,而无需担心数据泄露问题。
选择任何一款模型时,关键是要明确具体需求:了解需要这个工具帮助完成哪些任务,这是确保项目顺利进行的关键因素。
在本文中,我将内容分为两个部分进行分享。第一部分将聚焦于开源大型语言模型的重要性和基本概念。这里,我将解释为什么我们需要开源模型,如何获取这些模型,模型的基本知识,以及基础模型与预训练模型的区别。此外,我还会探讨这些模型在处理自然语言任务(NLP)中的应用。
第二部分,我将简要讨论实施大型语言模型所需的技术和策略。这包括必要的依赖库、权重量化方法(GGML和GPTQ)、Tokenizer、Transformers和pipelines,以及选择是本地安装还是使用远程服务的决策。这部分旨在提供一些实际操作的指南和策略,帮助您更有效地部署和使用大型语言模型。
1、为什么需要开源模型
当我们讨论使用 ChatGPT(国内也有百度的文心一言、星火等) 这样的大模型时,你可能会问为什么还需要在部署运行开源的大型语言模型(LLM)。这里有几个考虑的理由:
- 隐私保护:如果你非常注重隐私或你的项目需要对用户隐私进行严格保护,将数据发送给 OpenAI 或其他服务商可能引发隐私泄露的风险。在本地部署开源 LLM 可以让你完全掌控数据,确保数据的安全。
- 网络连接问题:在网络连接不稳定或无法访问某些服务的地区,例如无法连接国外的 OpenAI、Claude 或国内的百度文心一言、科大讯飞的星火大模型,开源 LLM 显得尤为重要。它确保你在任何地方都能利用 AI 技术,不受地理位置和网络条件的限制。
- 避免审查与限制:有时你可能会遇到服务使用上的限制或审查。开源 LLM 提供了更大的灵活性,允许你根据自己的需求调整模型,自由地开发和使用,不受外部控制的影响。
总结来说,开源 LLM 不仅提供基本的文本生成功能,还具备保护数据隐私、提高安全性、支持离线使用、可高度定制化等优势。这些特点让开源LLM成为一个在特定情况下非常有价值的选择,尤其是在处理敏感数据、面临网络挑战或需要特定自定义功能时。
2、在哪可以找到开源LLM
在当前人工智能领域,开源大型语言模型(LLM)是一大亮点,目前主要依托于两个平台,Hugging Face 和 CivitAI。Hugging Face 承担着广泛的自然语言处理(NLP)任务,而 CivitAI 则专注于图像生成领域。
2.1 Hugging Face
Hugging Face 是一个汇聚算法专家、研究人员和机器学习(ML)工程师的协作平台,大家在这里共同推动开源项目的发展。我个人非常喜欢这个平台,经常在上面浏览和参与各种项目。目前,国内还没有形成这样的全方位合作社区。Hugging Face 不仅仅是开源代码的提供者,它还提供了一整套工具,帮助用户完整地走过构建、训练到部署机器学习模型的全过程。这个平台向我们证明,在AI领域,没有哪个科技巨头能够独自领航,合作与资源共享才是推动行业前进的动力。通过Hugging Face,我们可以看到一个庞大的资源库正逐步构建,使得人工智能的好处能惠及每一个人及每个组织。
2.2 CivitAI
2022年11月,CivitAI 作为一个专门针对图像生成领域的平台登场,它主要服务于那些热爱图像生成的爱好者和创作者。这个平台的出现满足了市场对于个性化模型微调的需求,为用户提供了一个可以自由分享创意和与其他创作者互动的环境。在国内,也有类似的平台,比如哩布哩布、XTimes AI等。CivitAI 强调的是其平台的动态性和创新性,用户可以上传、分享并探索通过不同数据集训练出的自定义模型。这些模型不仅是实用的工具,更是激发创造力的关键,让创作者通过AI媒体软件,能够创作出富有个性和创新的作品。
2.3 ollama
Ollama 是一个开源项目,它为本地运行大型语言模型(LLM)提供了一个功能强大而又操作简便的平台。也是我在日常工作常用的工具之一,这个工具很好地解决了 部署LLM 的复杂性与用户对易用性及可定制性 AI 体验的追求。
通过 Ollama,用户可以轻松下载、安装并管理多种大型语言模型,而无需具备深厚的技术背景或依赖于云平台,即可体验这些模型的强大功能。
- 模型库与管理:Ollama 拥有一个丰富多样、持续扩展的预训练 LLM 模型库,包括多功能通用模型和针对特定领域或任务的专用模型。这些模型的下载和管理过程非常简洁,用户无需处理复杂的模型格式或依赖问题。
- 轻松安装和设置:Ollama 的安装过程非常友好,无论您使用的是 Windows、macOS 还是 Linux 操作系统,都提供了针对各个系统的直观安装方法。这确保了用户可以享受到顺畅且轻松的安装体验。
- 本地 API 和集成:Ollama 提供了本地 API 支持,使开发者能够将 LLM 无缝集成到自己的应用程序和工作流中。这个 API 促进了应用程序与 LLM 之间的高效通信,使用户可以发送提示、接收响应,并充分利用这些强大 AI 模型的功能。
- 定制和微调:Ollama 还提供了广泛的定制选项,用户可以通过这些选项微调 LLM 的参数、调整设置,以及定制模型的行为,以满足特定的需求和偏好。这种高级别的控制不仅确保了最佳性能,还允许用户对不同的模型配置进行实验和探索。
3、LLM模型到底是什么呐?
大模型(LLM)是一种利用深度学习技术和庞大的数据集来理解、总结、创造和预测新材料的先进人工智能算法。在这个过程中,语言扮演了极为关键的角色,它不仅是人类与技术之间交流的桥梁,还为分享和构建思想提供了必要的术语、含义和结构。通过这些模型,我们可以增强沟通能力,激发新的创意与想法。
在深度学习的框架下,大型语言模型需要输入大量数据以训练其神经网络。这些网络通过分析大量的文本序列,构建起词与词之间的关联网络,这些关联在模型中被称为"权重"。权重指的是在语言上下文中,一个词语后续出现另一个词语的概率。例如,当你输入"很久很久以前..."时,模型会通过统计分析预测出"时间"(time)是一个合适的词汇来继续叙述,形成"很久很久以前,在一个遥远的王国里..."。
3.1模型权重
在深度学习模型中,模型参数的数量通常决定了其能够捕捉的信息量和复杂性。这些参数主要包括权重和偏差,它们在模型训练过程中不断调整,以更好地模拟数据中的潜在规律。模型本质上是一个神经网络,其设计灵感来源于人脑的神经连接系统。在这个系统中,每一个神经元的连接都通过所谓的"权重"来定义其强度,而"偏差"则是用来调节神经元输出的阈值。
随着模型参数数量的增加,模型能够表征的单词或特征之间的关系也更加丰富和精细。这种增加的复杂性有助于网络捕捉到更深层次的数据结构,从而提升模型处理复杂任务的能力。在训练过程中,这些权重和偏差的具体数值是通过不断地学习和调整得到的,目的是最小化模型的预测误差,提高其泛化能力。模型的权重和偏差是连接网络性能和学习能力的核心要素。
3.2参数的重要性
在大型语言模型的构建中,"参数"是指那些关键的数值,它们共同决定了模型的行为和性能。这些参数主要包括权重和偏差,是神经网络中不可或缺的组成部分。权重决定了模型内部不同神经元之间的连接强度,而偏差则调节神经元的激活阈值。简而言之,这些参数形成了模型识别和处理信息的基础结构。
以 Hugging Face 平台上的 T5 系列模型为例,我们可以看到不同的模型配置有着显著的参数数量差异。T5模型是一种特别设计用于处理自然语言理解和生成任务的模型,其参数量的不同直接影响了模型处理信息的能力和效率。
图表中展示了五种基础的 T5 模型,每种模型的参数数量都不同,从小型模型到大型模型,参数量的增加通常意味着模型在理解复杂语境和生成更为准确回应方面的能力得到提升。这种参数量的差异化设计使得开发者可以根据具体的应用需求和资源限制选择最适合的模型。
原始表格如下,数据出处:Hugging Face
在大型语言模型(LLM)如GPT-4及其他基于Transformer的模型中,"参数"一词具有专业性的定义,它指的是那些决定模型整体行为的关键数值。这些参数起始于随机值,通过训练过程中不断的优化调整,以尽可能地减少模型预测的误差,即所谓的损失。
这些关键数值主要包括权重和偏差两种类型。权重决定了模型中各个神经元之间的连接强度,是信息传递的核心因素;而偏差则主要影响到神经元的激活阈值,调节着神经元输出的偏向性。综合来看,权重与偏差的配合使用定义了神经网络的架构和功能,从而在各种应用场景下实现高效和精确的信息处理。
4、基础模型和预训练模型
我们在前面已经提到,无论什么模型,它都需要经过训练。一般来说,模型分为两类:基础模型和预训练模型。
在这两种模型中,都会使用深度学习算法来生成模型的"权重"和"偏差"。权重是用来确定模型中不同层的神经元连接的强度的数字。在大型语言模型(LLM)中,权重主要用于处理注意力机制。而偏差则是一个额外的数值,加在输入的加权和上,然后通过一个激活函数处理。偏差帮助控制神经元的输出,为模型的学习过程提供了灵活性。可以把偏差看作是调整激活函数左右移动的一个手段,这使得模型能够学习到输入数据中的更复杂模式和关系。
根据斯坦福人为本人工智能研究所的解释,基础模型,也叫基本模型,指的是那些经过大量数据训练的模型。这种训练通常是自我监督的,意味着模型通过自我学习数据来完善自己。这些模型能够适应多种不同的任务,只需要进行少量的调整。
而特定任务模型,也称作预训练模型,是基于基础模型进行更深层次训练的结果,专门用来处理特定的任务。可以这么说,如果基础模型是多面手,任务特定模型则是某一领域的专家。下一节我们将更详细地讨论自然语言处理(NLP)任务是什么样的。
在实际项目中,我们通常会优先考虑使用已经训练好的模型。因为自己从头开始训练一个模型既复杂又费时,而且我们并不需要一个能做所有事情的万能模型。明确你的具体需求能帮助你挑选出最适合的预训练模型!
5、任务和NLP:模型能做什么
NLP,即自然语言处理,是人工智能(AI)中的一个重要分支,专注于计算机与人类语言的互动。通过NLP,计算机能够理解、解释并生成有意义和实用的人类语言,从而完成各种任务。
NLP 涵盖了广泛的任务和技术,用于处理和分析自然语言数据。常见的NLP应用包括:
- 文本分类:根据文本文档的内容进行分类,并分配相应的标签。例如,情感分析、垃圾邮件检测或主题分类。
- 命名实体识别(NER) :识别并分类文本中的命名实体,如人名、组织名、地名和日期。
- 情感分析:判断一段文本中的情感或情绪,如积极、消极或中性。
- 机器翻译:自动将文本从一种语言翻译成另一种语言,例如谷歌翻译。
- 问答系统:回答用自然语言提出的问题,通常基于给定的上下文或知识库。
- 文本生成:生成类似人类撰写的文本,如产品评论、新闻文章或聊天机器人回应。
- 语言建模:建立统计模型,预测句子中单词序列的概率,这对于语音识别和自动完成等任务非常有用。
为了完成这些任务,NLP 算法使用了多种技术,包括机器学习、深度学习和语言学。在人工智能领域,我们可以将语言模型的实际应用称为"下游任务"。
以 Hugging Face AI 提供的任务列表为例,NLP 的应用不仅限于处理文本:自然语言还可以作为音频、视频和多模态任务的媒介。这意味着,通过NLP技术,我们可以处理多种形式的数据,让计算机更好地理解和回应人类的需求。
计算机视觉和多模态任务同样可以通过自然语言指令来生成。这些模型经过预训练,能够执行特定的任务。通过这种方式,计算机能够理解并处理图像、音频和视频等多种类型的数据,更好地完成我们设定的任务。
敬请期待第二部分。。。