首页 文章详情

[langchaingo] 基于 Hugging Face 构建大模型应用

Go Official Blog | 72 2024-04-29 15:03 0 0 0
UniSMS (合一短信)

今天,我们将开始 Golang + LLM 系列的教程,本文将介绍如何在 Hugging Face 上使用 LangchainGo 来实现你的第一个大模型应用!

Hugging Face 是什么?

Hugging Face 是一个火爆的人工智能开发社区和平台,专注于自然语言处理(NLP)领域。该平台提供了各种各样的工具和资源,包括预训练模型、模型库、数据集、评估指标以及用于开发和部署 NLP 模型的库和工具。Hugging Face 社区以其开放性、活跃性和创新性而闻名,吸引了来自全球的研究人员、开发者和爱好者。

其中,Hugging Face 提供的预训练模型是其最著名的特色之一。这些预训练模型基于大规模的语料库进行了训练,并在各种 NLP 任务上表现出色。通过使用 Hugging Face 提供的模型和工具,开发者可以更轻松地构建、训练和部署自己的大模型。

Langchain 是什么?

LangChain 是一个开发由语言模型驱动的应用程序的框架。最强大和独特的应用程序不仅会通过 API 调用语言模型,还会:

具有数据感知性:将语言模型连接到其他数据源 ;

具有代理性:允许语言模型与其环境进行交互 LangChain 框架是根据上述原则设计的。

更多详细的介绍可以参考 langchain 官方文档[1]。

Langchaingo

langchaingo[2] 是为 Golang 开发者提供的 langchanin 开发框架。这篇文章将带大家在 Hugging Face 上使用 langchaingo 开发大模型应用。

LLM Demo

在开始之前需要准备一个秘钥!🗝️ 确保你已经准备好 Hugging Face token,并将其存储在 HUGGINGFACEHUB_API_TOKEN 环境变量中。

然后准备好 langchaingo 的库。

      
      go get github.com/tmc/langchaingo

万事俱备,开始创建第一个 Golang 写的大模型应用:

      
      
package main

import (
 "context"
 "fmt"
 "log"

 "github.com/tmc/langchaingo/llms"
 "github.com/tmc/langchaingo/llms/huggingface"
)

func main() {
 llm, err := huggingface.New(huggingface.WithModel("google/gemma-7b"))

通过上面的代码,我们在 Hugging Face 中选择了要使用的模型。接下来就可以用加载的模型做点事情了:

      
      
package main

import (
 "context"
 "fmt"
 "log"

 "github.com/tmc/langchaingo/llms"
 "github.com/tmc/langchaingo/llms/huggingface"
)

func main() {

 llm, err := huggingface.New(huggingface.WithModel("google/gemma"))
 if err != nil {
  log.Fatal(err)
 }

 ctx := context.Background()

 prompt := "What is Golang?"
 completion, err := llms.GenerateFromSinglePrompt(ctx, llm, prompt)

 if err != nil {
  log.Fatal(err)
 }

 fmt.Println(completion)

}

通过这些步骤,我们就在 LangchainGo 和 Hugging Face 的基础上实现了一个简单的 LLM 应用,你可以去扩展这个 demo 以实现更复杂的功能。接下来的教程我们将结合 Ollama 和 OpenAI 做一些更有意思的东西。

参考资料 [1]

langchain: https://www.langchain.com/

[2]

langchaingo: https://tmc.github.io/langchaingo/docs/


good-icon 0
favorite-icon 0
收藏
回复数量: 0
    暂无评论~~
    Ctrl+Enter