[langchaingo] 基於 Hugging Face 構建大模型應用

今天,我們將開始 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/

本文由 Readfog 進行 AMP 轉碼,版權歸原作者所有。
來源https://mp.weixin.qq.com/s/Oy3b6p7rXLKNgbJ2meZa5w