本文描述了底层的大语言模型(LLM)API。
1 LLM API的类型
1.1 LanguageModel
非常简单—,接受一个String
作为输入,并返回一个String
作为输出。
该API现正逐渐被聊天API(第二种API类型)取代。
1.2 ChatLanguageModel
这种API接受一或多个ChatMessage
作为输入,并返回一个AiMessage
作为输出。 ChatMessage
通常包含文本,但有些LLM还支持混合文本和Image
的输入。如OpenAI的gpt-4o-mini
和Google的gemini-1.5-pro
都属于这种。
LangChain4j中,将不再扩展对LanguageModel
的支持,因此所有新功能采用ChatLanguageModel
API。
ChatLanguageModel
是LangChain4j中的底层API,提供了最大的功能和灵活性。还有高级API(如Chain
和AiServices
)。
除了ChatLanguageModel
和LanguageModel
,LangChain4j还支持以下类型的模型:
EmbeddingModel
:可将文本转换为Embedding
ImageModel
:可生成和编辑Image
。ModerationModel
:可检查文本中是否包含有害内容。ScoringModel
:可根据查询对多段文本进行评分(或排名),以确定每段文本与查询的相关性。这在RAG(检索增强生成)中非常有用。
2 ChatLanguageModel API
代码语言:java
public interface ChatLanguageModel {
String generate(String userMessage);
...
}
generate
接受一个String
作为输入并返回一个String
作为输出,类似LanguageModel
。这是一个便捷方法,可快速使用它,无需将String
包装在UserMessage
中。
但这才是实际的聊天API:
代码语言:java
...
Response<AiMessage> generate(ChatMessage... messages);
Response<AiMessage> generate(List<ChatMessage> messages);
...
这些generate
接受一或多个ChatMessage
作为输入。ChatMessage
是一个表示聊天消息的基础接口。
3 ChatMessage的类型
目前有四种聊天消息类型,每种消息对应不同的“来源”:
UserMessage
:这是来自用户的消息。用户可以是您的应用程序的最终用户(人类)或应用程序本身。 根据LLM支持的模态,UserMessage
可以包含仅文本(String
)或文本和/或图像(Image
)。AiMessage
:AI生成的消息,通常是对UserMessage
的响应。 如你所见,generate
返回一个包含在Response
中的AiMessage
。AiMessage
可包含文本响应(String
)或请求执行工具(ToolExecutionRequest
)。ToolExecutionResultMessage
:ToolExecutionRequest
的结果SystemMessage
:系统的消息。通常,作为开发者应定义此消息的内容。可在此编写关于LLM在对话中的角色、应如何表现、以何种风格回答等指令。 LLM被训练得更关注SystemMessage
,因此要小心,最好不要让最终用户随意定义或注入一些输入到SystemMessage
中。 它通常位于对话的开始。
如何在对话中组合它们?
最简单的场景,可在generate
方法中提供一个UserMessage
实例。 这与第一个版本的generate
方法类似,它接受一个String
作为输入。 主要区别在于它现在返回的不是String
,而是Response<AiMessage>
。
Response
是一个包装了内容(负载)的对象,经常看到它作为*Model
类的返回类型。 除了内容(在这种情况下是AiMessage
),Response
还包含生成的元信息:
TokenUsage
,统计了输入(提供给generate
方法的所有ChatMessage
)中包含的token数及输出(AiMessage
)中生成的token数,并给出总数(输入 + 输出)。需要这些信息来计算每次调用LLM的成本FinishReason
,枚举类型,表示生成停止的各种原因。通常,如果LLM自行决定停止生成,则原因会是FinishReason.STOP
创建UserMessage
有多种方式,取决于内容。最简单的
new UserMessage(“Hi”)或
UserMessage.from(“Hi”)`。
4 多个ChatMessage
为啥要提供多个ChatMessage
作为输入,而不仅是一个? 因为LLM本质上是无状态的,这意味着它们不会维护对话的状态。 因此,如果你想支持多轮对话,则需要自己管理对话的状态。
假设想构建一个聊天机器人。想象一下用户和聊天机器人(AI)之间的简单多轮对话:
- 用户:你好,我叫JavaEdge
- AI:你好JavaEdge,我能帮你什么?
- 用户:我叫什么名字?
- AI:JavaEdge
这就是与ChatLanguageModel
交互的样子:
代码语言:java
UserMessage firstUserMessage = UserMessage.from("Hello, my name is JavaEdge");
AiMessage firstAiMessage = model.generate(firstUserMessage).content(); // JavaEdge,我能帮你什么?
UserMessage secondUserMessage = UserMessage.from("What is my name?");
AiMessage secondAiMessage = model.generate(firstUserMessage, firstAiMessage, secondUserMessage).content(); // JavaEdge
如你所见,在第二次调用generate
方法时,不仅提供了secondUserMessage
,还提供了对话中的前几条消息。
手动维护和管理这些消息比较繁琐,因此引入ChatMemory
。
如何系统的去学习大模型LLM ?
大模型时代,火爆出圈的LLM大模型让程序员们开始重新评估自己的本领。 “AI会取代那些行业
?”“谁的饭碗又将不保了?
”等问题热议不断。
事实上,抢你饭碗的不是AI,而是会利用AI的人。
继科大讯飞、阿里、华为
等巨头公司发布AI产品后,很多中小企业也陆续进场!超高年薪,挖掘AI大模型人才! 如今大厂老板们,也更倾向于会AI的人,普通程序员,还有应对的机会吗?
与其焦虑……
不如成为「掌握AI工具的技术人
」,毕竟AI时代,谁先尝试,谁就能占得先机!
但是LLM相关的内容很多,现在网上的老课程老教材关于LLM又太少。所以现在小白入门就只能靠自学,学习成本和门槛很高。
针对所有自学遇到困难的同学们,我帮大家系统梳理大模型学习脉络,将这份 LLM大模型资料
分享出来:包括LLM大模型书籍、640套大模型行业报告、LLM大模型学习视频、LLM大模型学习路线、开源大模型学习教程
等, 😝有需要的小伙伴,可以 扫描下方二维码领取🆓↓↓↓
一、LLM大模型经典书籍
AI大模型已经成为了当今科技领域的一大热点,那以下这些大模型书籍就是非常不错的学习资源。
二、640套LLM大模型报告合集
这套包含640份报告的合集,涵盖了大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,这套报告合集都将为您提供宝贵的信息和启示。(几乎涵盖所有行业)
三、LLM大模型系列视频教程
四、LLM大模型开源教程(LLaLA/Meta/chatglm/chatgpt)
LLM大模型学习路线 ↓
阶段1:AI大模型时代的基础理解
-
目标:了解AI大模型的基本概念、发展历程和核心原理。
-
内容:
- L1.1 人工智能简述与大模型起源
- L1.2 大模型与通用人工智能
- L1.3 GPT模型的发展历程
- L1.4 模型工程
- L1.4.1 知识大模型
- L1.4.2 生产大模型
- L1.4.3 模型工程方法论
- L1.4.4 模型工程实践
- L1.5 GPT应用案例
阶段2:AI大模型API应用开发工程
-
目标:掌握AI大模型API的使用和开发,以及相关的编程技能。
-
内容:
- L2.1 API接口
- L2.1.1 OpenAI API接口
- L2.1.2 Python接口接入
- L2.1.3 BOT工具类框架
- L2.1.4 代码示例
- L2.2 Prompt框架
- L2.3 流水线工程
- L2.4 总结与展望
阶段3:AI大模型应用架构实践
-
目标:深入理解AI大模型的应用架构,并能够进行私有化部署。
-
内容:
- L3.1 Agent模型框架
- L3.2 MetaGPT
- L3.3 ChatGLM
- L3.4 LLAMA
- L3.5 其他大模型介绍
阶段4:AI大模型私有化部署
-
目标:掌握多种AI大模型的私有化部署,包括多模态和特定领域模型。
-
内容:
- L4.1 模型私有化部署概述
- L4.2 模型私有化部署的关键技术
- L4.3 模型私有化部署的实施步骤
- L4.4 模型私有化部署的应用场景
这份 LLM大模型资料
包括LLM大模型书籍、640套大模型行业报告、LLM大模型学习视频、LLM大模型学习路线、开源大模型学习教程
等, 😝有需要的小伙伴,可以 扫描下方二维码领取🆓↓↓↓