Hugging Face 和 LangChain 入门
您目前处于:  2024-07-17

大模型是指具有数十亿或数千亿个参数的深度神经网络模型,其训练需要大量的计算资源和数据。这些庞大的模型在语义理解、内容生成等领域表现出了惊人的能力,为解决复杂的问题提供了新的可能性。

业内持续涌现出各种通用基座大模型及领域基座大模型,持续不断地将模型指标推向新高。当然除少数头部玩家以外,绝大部分的业务都不具备自主训练基座大模型的能力和必要,更多的是基于基座大模型和业务垂直数据进行微调,从而产出垂直领域的模型用于业务场景的研发。

什么是Hugging Face?

https://github.com/huggingface

Hugging Face 是全球最大的 AI 开源社区,被称为 AI 领域的 GitHub,成立于 2016 年,团队近 170 人,总部位于纽约。目前平台上有超过 20000 个开源数据集,超过 10 万个 demo,一万多家公司使用平台上开源的 AI 技术。Hugging Face 的官方介绍是:构建未来的 AI 社区。

Clem Delangue 是 Hugging Face 的 CEO&联合创始人。最早 2010 年在 eBay 工作 8 个月,第一次创业经历是 2011 年在 Moodstocks——为计算机视觉构建机器学习。该公司被谷歌收购。2013 年到了美国纽约负责建立 mention 营销和增长部门。2016 年创立 Hugging Face。从事人工智能工作约 15 年。

Hugging Face是一个开源社区和平台,专注于自然语言处理(NLP)相关技术。它提供了一系列NLP模型和工具,包括预训练模型、文本生成、机器翻译等。Hugging Face的目标是使NLP技术更易用和可访问,加速NLP在各个领域的应用。

Hugging Face平台提供了一个数据分享平台,平台上有大量的高质量数据集,大量的开源代码里都会使用到Hugging Face的数据集。(但是苦于网络不通的原因导致很难用起来。)

Hugging Face的模型开发和推断流程

Hugging Face提供了一系列预训练模型,transformer可以加载预训练模型,如果需要微调,根据自己的数据集合微调模型,形成新的预训练模型。

Hugging Face提供了针对每一种内容的预处理器:

  • tokenizer:文本转换经过分词和字典匹配后,转换为tensor

  • image processor:把图像转换为正确的输入格式

  • feature extractor:把声音信号转换为正确的输入格式

  • auto processor:结合多个processor

什么是Copilot?

当前很多大模型相关编程方面的应用是Copilot['koʊˌpaɪlət],Copilot一词是飞机上的副驾驶的意思。

Copilot是由GitHub与OpenAI合作开发的一款人工智能辅助编程工具。它主要集成在代码编辑器中(如Visual Studio Code、GitHub Codespaces等),利用机器学习技术,特别是基于Transformer的模型,如GPT系列,来分析上下文并自动生成代码建议。Copilot的目标是提高程序员的开发效率,通过自动完成重复性代码、提供算法实现建议、帮助编写文档注释等功能,让开发者能够更加专注于解决核心问题和创新。

智能体和Copilot的最大区别是就是主和副的区别,Copilot是个副驾驶,根据指令来行动,并且给予一些反馈,而智能体具备主观能动性,可以根据需求去选择工具使用,进而达成目标。

什么是LangChain?

LangChain官方的表述:“Building applications with LLMs through composability”,LangChain的目的是为了开发应用,通过模块组合的方式使用LLM,并与其他模块组合的方式来创造应用。

LangChain中的“chain”也就是文章标题中“连接”的意思,“连接”的主体是LLM和外部的目前已有其他能力,Langchain本身并不提供LLM模型,只是对LLM抽象,把LLM当作一个功能模块使用。LangChain中的“Lang”是language的缩写,如果连接的主要主体是LLM那么language可以理解为Language Models,也可以理解为language——“自然语言”,也就是一般基于LLM应用的主要输入,随着AI应用发展,自然语言会是以后主要的交互方式。使用LangChain的目的是Building applications 。

如果只使用LLM的能力,能做的事情是非常有限的,典型的是看到的对话交互。LangChain能够连接LLM的能力与目前已有的其他能力,创造能力更强大的应用。

基本概念

学习一门技术最好的方式是阅读官方文档,学习LangChain也是,需要要系统学习,可以参考文档,LangChain的文档地址:https://docs.langchain.com

LangChain中主要的Components目前主要有:Schema、Models、Prompts、Indexes、Memory、Chain、Agent。

Prompt

目前为了更好设计Prompt,有了专门的PE(Prompt Engineering)的工作岗位。长期看,随着技术发展,未来Prompt的重要性会减弱,但现阶段是如何设计Prompt是更好使用AI的必备技能。OpenAI的创始人Sam Altman在2022年一次采访 AI for the Next Era中提到,5年内可能不在需要prompt engineering,他认为“the fundamental interface will be natural language.”。Prompt的根本问题是LLM模型的问题。

Copilot和LangChain

LangChain是一个相对较新的开源框架,全称为“Language Model Chains”。它不是直接与代码编写相关,而是侧重于如何高效、创造性地使用大型语言模型(如OpenAI的GPT系列、阿里云的通义千问等)进行应用开发。LangChain提供了一系列的工具和模组,帮助开发者构建基于语言模型的应用程序,涵盖了从数据处理、模型选择、链式调用到用户界面构建的全过程。它的目标是降低构建复杂语言模型应用的门槛,使得非AI专业的开发者也能轻松地将先进的语言处理能力融入到自己的项目中,涵盖从内容生成、智能对话、文本分析到决策支持等多个应用场景。

尽管Copilot和LangChain都依赖于高级的自然语言处理和机器学习技术,但它们的主要用途不同。Copilot更专注于编程领域的自动化和辅助,帮助程序员更高效地编写和维护代码。而LangChain则是一个更为广泛的框架,旨在促进各种基于语言模型的应用开发,不仅限于编程领域,涵盖了任何需要理解和生成自然语言的场景。

简而言之,Copilot可以看作是AI在编程辅助上的一个具体应用,而LangChain则是为想要探索和实践基于语言模型解决方案的开发者提供了一个强大的工具箱。两者均体现了人工智能技术在提升工作效率和推动创新方面的巨大潜力,但侧重点和应用范围各具特色。

LangChain和Hugging Face

LangChain 和 Hugging Face 是两个在人工智能领域具有不同侧重点的项目,但它们都致力于推动自然语言处理技术的应用和发展。下面是两者的比较:

Hugging Face

Hugging Face是一个围绕自然语言处理(NLP)的开源社区与平台,以其著名的Transformers库最为人所知。Transformers是一个包含大量预训练模型的库,支持包括文本生成、分类、问答等多种NLP任务。Hugging Face还提供了模型共享的平台,让用户能够上传、下载和评估不同的机器学习模型。

LangChain

LangChain相对年轻一些,它是一个致力于简化构建基于语言模型的复杂应用程序(如聊天机器人、文档查询系统等)的框架。LangChain强调的是将语言模型与实际工作流程、数据源和其他服务进行整合,以构建端到端的解决方案。

比较总结

技术栈:Hugging Face更专注于提供底层的NLP模型和工具,是许多AI项目的基石;而LangChain则建立在这些基础之上,提供更高层次的抽象,帮助开发者快速实现具体的应用场景。

用户群体:Hugging Face吸引了大量研究者、工程师和对NLP模型感兴趣的开发者;LangChain则尝试吸引更广泛的受众,包括产品经理、业务分析师等,帮助他们将AI技术应用到实际业务中。

应用场景:Hugging Face模型广泛应用于基础科研、文本处理任务的优化等;LangChain则聚焦于将这些技术落地到实际产品中,比如通过整合多个服务打造智能客服系统。

两者相辅相成,Hugging Face提供了强大的模型基础,而LangChain则是在此之上构建应用的高效工具。


转载请并标注: “本文转载自 linkedkeeper.com (文/然行)”  ©著作权归作者所有