1. 引言

AI 大模型正重塑全球技术格局。对程序员而言,跟上大模型领域的步伐,就像 Java 开发者必须拥抱新框架一样,是基本功。

当然,追踪各大模型的最新动态,本身就是一门养活无数自媒体的"大工程"。作为程序员,我们不拼信息差和流量——我们拼代码。直接上手,用代码说话,才是我们的硬核方式。

本文将带你走进全球最大的"模型超市" Hugging Face,并手把手教你用 Java(通过 LangChain4j)调用开源大模型。从今天起,不做看客,做玩家。

2. 什么是 Hugging Face?

Hugging Face(官网:https://huggingface.co/)可以理解为目前全球大模型的“大超市”。各大公司在发布大模型产品前,通常都会把模型上传到这里。

它不仅仅是一个模型仓库,更是一个集成了数据集、模型测试和应用部署的综合性平台。对于不同阶段的开发者,Hugging Face 的价值也不同:

  • 新手:一个免费了解、尝试各种大模型功能的平台。
  • 程序员:一个入门级的编程工具,可以基于它做一些简单的 AI 应用。
  • 骨灰级 AI 开发者:一个无尽的宝藏。可以基于这里海量的大模型以及高质量的数据集,进行模型微调、多模态组合等高级操作。

Hugging Face 的核心组件主要有三个:

  • Models:存放各大开源的预训练大模型,如 GPT、LLaMA、Stable Diffusion 等。
  • Datasets:保存各种高质量的数据集。如果你想尝试做模型微调,就可以从这里获取预训练模型和数据集。
  • Spaces:Hugging Face 提供的应用空间。在这里,可以直接部署一些基于大模型的应用,快速体验其功能,省去很多本地部署的资源。

3. 快速体验 Hugging Face 上的大模型

Hugging Face 最大的便利之一,就是可以在线快速体验各种模型,无需本地安装。

例如,Flux 是一个功能非常强大的文生图大模型。你只需要在 Hugging Face 上找到它的页面,在“Inference API”或“Spaces”区域输入一段描述文字,就可以立刻生成图片,直观感受其效果。

这种“即开即用”的体验,极大地降低了我们了解和评估不同模型的门槛。

4. 用 LangChain4j 调用 Hugging Face 模型

对于大部分 AI 大模型,官方都会直接提供 Python 语言的客户端。相比之下,Java 语言的客户端相对较少。不过,这难不倒我们 Java 程序员。我们可以借助 LangChain4j 这个强大的框架,轻松对接 Hugging Face 上的模型。

4.1 引入 Maven 依赖

首先,在你的 pom.xml 文件中引入 langchain4j-hugging-face 依赖:

<dependency>
    <groupId>dev.langchain4j</groupId>
    <artifactId>langchain4j-hugging-face</artifactId>
    <version>${langchain4j.version}</version>
</dependency>

4.2 调用 Hugging Face 的 Inference API

Hugging Face 为许多热门模型提供了免费的 Inference API,我们可以直接调用。注意,需要找一个开启了 Inference API 的模型,通常那些热度高、体量较小的模型都会部署。

下面是一个简单的 Java 示例,调用 openai-community/gpt2 模型:

package com.roy.huggingface;

import com.roy.ModelUtil;
import dev.langchain4j.model.chat.ChatLanguageModel;
import dev.langchain4j.model.huggingface.HuggingFaceChatModel;

/**
 * Author: roy
 * Description:简单尝试一下 huggingface 上的免费大模型。
 * 注意,要找那些热度比较高,大小比较小,打开了 inference API 的模型
 **/
public class HuggingFaceModelExample {
    public static void main(String[] args) {
        // 替换为你的 Hugging Face API Token
        String apiKey = ModelUtil.ACCESST_TOKEN_HUGGINGFACE;
        ChatLanguageModel model = HuggingFaceChatModel.builder()
                .modelId("openai-community/gpt2")
                .accessToken(apiKey)
                .build();
        System.out.println(model.generate("what's the weather today"));
    }
}

4.3 调用兼容 OpenAI 接口的模型

很多大模型(如阿里的 Qwen、Meta 的 LLaMA 等)也提供了兼容 OpenAI 的 API 接口。对于这些模型,我们可以用 LangChain4j 提供的 OpenAiChatModel 来快速对接,只需修改 baseUrlmodelName 即可。

import com.roy.ModelUtil;
import dev.langchain4j.model.chat.ChatLanguageModel;
import dev.langchain4j.model.openai.OpenAiChatModel;

/**
 * Author: roy
 * Description:通过 OpenAI 兼容接口调用 Hugging Face 上的模型
 **/
public class QwenModelDemo {
    public static void main(String[] args) {
        ChatLanguageModel model = OpenAiChatModel.builder()
                .baseUrl("https://api-inference.huggingface.co/v1/")
                .apiKey(ModelUtil.ACCESST_TOKEN_HUGGINGFACE)
                .modelName("Qwen/Qwen2.5-1.5B-Instruct")
                .build();
        System.out.println(model.generate("你好啊。今天天气怎么样?"));
    }
}

5. 总结

Hugging Face 是 AI 时代程序员不可或缺的工具箱。通过它,我们可以:

  1. 快速了解行业动态:浏览最新的开源模型和数据集。
  2. 在线体验模型效果:无需本地部署,零成本试玩。
  3. 用代码集成模型:借助 LangChain4j 等框架,用我们熟悉的 Java 语言也能轻松调用 AI 大模型,构建智能应用。

希望这篇文章能帮你打开通往 AI 大模型世界的大门。从今天起,不做旁观者,做 AI 应用的创造者。

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐