使用Redis构架你自己的私有大模型

使用Redis构架你自己的私有大模型

--楼兰

​ Redis你通常用来做什么?缓存?分布式锁?数据过滤器?不够不够,这远远不够。之前给大家分享过基于Redis Stack提供的一系列插件,完全可以把Redis作为一个类似于Elastic Search的JSON数据库使用。不光可以存储并操作JSON格式的数据,而且可以实现各种复杂的检索。

​ 而现在到了大模型时代,Redis又有了一个更加重要的用途: 向量数据库。基于向量数据库,可以实现一系列更贴近自然语言的检索功能。这也成了AI大模型应用落地的基石。


一、大模型如何理解“语言”


​ AI大模型最为颠覆性的影响在于他的输入和输出都是人类的自然语言。大模型学习的是基于自然语言整理的预料,你向大模型问问题,也是直接用自然语言提问。感觉一切都非常自然,你有没有想过,这种自然背后,我们到底是怎么和计算机交互的呢?

​ 大家都知道,计算机本质上,只能进行0和1的二进制计算。所以,计算机要想和人进行自然语言的交互,就必须要把自然语言转换成计算机能理解的二进制语言。而这一切的基础,就是 词向量
​ 你可能经常听说过词向量这个概念,因为他是现在火爆的这些AI大模型产品的及时。但是,词向量到底是什么呢?一堆数字到底怎么表达自然语言当中那些千奇百怪的表达呢?先通过一个例子带你来看下什么是词向量。

下面案例使用LangChain4j框架,调用通义千问的API实现。

在这里插入图片描述

​ 从上面的例子可以看出,阿里的通义千问大模型,是用一个1024维度的向量来表示一句话。但是,这个向量和原始语句要表达的意思有什么关系呢?我们接下来看。

import com.roy.ModelUtil;
import dev.langchain4j.data.embedding.Embedding;
import dev.langchain4j.model.dashscope.QwenEmbeddingModel;
import dev.langchain4j.model.embedding.EmbeddingModel;
import dev.langchain4j.model.openai.OpenAiEmbeddingModel;
import dev.langchain4j.model.output.Response;
import dev.langchain4j.model.zhipu.ZhipuAiEmbeddingModel;
import dev.langchain4j.store.embedding.redis.RedisEmbeddingStore;
import org.apache.commons.math3.linear.ArrayRealVector;
import org.apache.commons.math3.linear.RealVector;

import java.util.Arrays;

/**
 * Author: roy
 * Description:
 **/
public class VectorCheckDemo {
   

    public static void main(String[] args) {
   
        EmbeddingModel embeddingModel = QwenEmbeddingModel.builder()
                .apiKey(ModelUtil.API_KEY_TONGYI)
                .modelName("text-embedding-v3")
                .build();
        String q1 = "你好,我是楼兰";
        String q2 = "我的名字叫楼兰"
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

roykingw

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值