欢迎光临
我们一直在努力

Langchain4j 系列之二十八 - Hugging Face 集成

上一个系列讲了Spring AI得到反馈效果不错,有人私信我说这个和Langchain4j有什么区别。如果站在使用方面,都是基于Java的大模型应用研发的工具,本质上没太大区别。但是从细节层面来说还是有很多不同之处,所以索性借此机会,给大家分享一下Langchain4j框架。在本系列中会按照Spring AI系列的顺序来写Langchain4j,这样的好处是可以对比两者不同的细节。

注意:由于框架不同版本改造会有些使用的不同,因此本次系列中使用基本框架是langchain4j-1.9.1,JDK版本使用的是19。另外本系列尽量使用Java原生态,尽量不依赖于Spring和Spring Boot。虽然langchain4j也支持Spring Boot集成,但是如果是使用Spring Boot框架,那为何不索性使用Spring AI。

本系列的所有代码地址: https://github.com/forever1986/langchain4j-study

目录

  • 1 Huggingface
  • 2 示例演示
    • 2.1 申请access token
    • 2.2 部署模型
    • 2.3 代码
    • 2.4 演示效果

上一章讲解了如何使用Ollama部署大模型,并在Langchain4j 中调用它。这一章来将最后一种部署方式云端部署。

1 Huggingface

做过大模型或者大模型应用的,应该不会没接触过Hugging Face ,不过很遗憾国内目前不能访问。不过有个镜像网站:https://hf-mirror.com 虽然功能受限,但是对于模型和数据集的下载还是没问题。

开发的朋友有github这个社区,那么做大模型的就有Hugging Face,所以Hugging Face可以理解为是一个大模型社区,上面包括了很多大厂的开源模型以及数据集,可供开发者使用,对于Hugging Face除了模型和数据集之外,其主要提供了以下内容

  • 模型和数据集:这个就是上面说的很多厂商的模型以及数据集都会共享到Huggingface上面,这个如同github的代码库。用户可以clone模型或者数据集,基于模型继续训练自己的模型放到Huggingface上面,可以使用Huggingface_hub工具,类似git工具一样
  • 开发库:Huggingface为大模型开发提供了很多开发库,比如transformers(模型训练库,可以关注本人之前写的《BERT实践》就是使用该库)、peft(模型高效微调库)、Diffusers(扩散模型)等等,
  • Space:AI应用空间/体验中心,无需配置环境,点几下就能玩转各种新奇AI应用。
  • 社区:集成用户的博客、论文等信息,可以在上面交流心得
  • Inference endpoints :这是一个Huggingface与云厂商合作的大模型在线部署,并提供统一API的方式访问,是解决部署各种大模型的云端方案

本章要演示的就是基于Huggingface的Inference endpoints部署并使用Langchain4j 进行访问

2 示例演示

代码参考lesson16子模块的huggingface子模块

示例说明:基于Huggingface的Inference endpoints部署并使用Langchain4j进行访问(如果无法访问Huggingface或者没有国际支付的银行卡,只能先看着,不能使用)

2.1 申请access token

1)登录Huggingface官方网站,注册并登录。在右上角的头像点击,有一个Access Tokens

在这里插入图片描述

2)创建自己的Access Tokens(权限部分可以适当勾选,或者不知道用途先全选)

在这里插入图片描述

说明:记得将Access Token拷贝下来

2.2 部署模型

1)选择Inference Endpoints菜单 在这里插入图片描述

2)选择一个模型,这里使用qwen2.5-7b-Instruct模型

在这里插入图片描述

3)选择部署的厂商服务器

在这里插入图片描述

4)等待部署完成后,会得到一个URL,格式如下

https://api.endpoints.huggingface.cloud/v2/endpoint/xxxxx

2.3 代码

代码参考lesson11子模块

1)在lesson11子模块下,引入pom依赖

<dependency>
<groupId>dev.langchain4j</groupId>
<artifactId>langchain4j-open-ai</artifactId>
</dependency>

2)在lesson11子模块下,新建HuggingfaceTest 类

package com.langchain.lesson11;

import dev.langchain4j.model.chat.ChatModel;
import dev.langchain4j.model.openai.OpenAiChatModel;

public class HuggingfaceTest {

public static void main(String[] args) {
ChatModel model = OpenAiChatModel. builder()
.apiKey(System.getenv("HF_API_KEY"))
.baseUrl("https://api.endpoints.huggingface.cloud/v2/endpoint/xxxxx")
.modelName("qwen2-5-7b-instruct")
.build();
System.out.println(model.chat("你是谁?"));
}
}

2.4 演示效果

1)运行HuggingfaceTest 测试,结果如下:

在这里插入图片描述

说明:这里使用的是OpenAI的插件,Langchain4j 中现在并没有langchain4j-hugging-face插件,这是因为HuggingFaceChatModel在1.7版本就已经废弃了,因为它的实现方式跟OpenAI对齐了,因此使用OpenAiChatModel即可。 在这里插入图片描述

结语:本章演示了大模型社区Hugging Face 上面如何部署大模型,并通过Langchain4j调用部署的大模型,其实现在国内很多云厂商都提供响应的云上部署功能,并且使用Langchain4j 直接就可以访问了,Hugging Face只是一个例子而已。

Langchain4j 系列上一章:《Langchain4j 系列之二十七 – Ollama集成Deepseek》

Langchain4j 系列下一章:《Langchain4j 系列之二十九 – Guardrails之一》

赞(0)
未经允许不得转载:171主机测评 » Langchain4j 系列之二十八 - Hugging Face 集成
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址