当前位置: 首页 > news >正文

使用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 = "我的名字叫楼兰"

相关文章:

  • 什么网站做ppt互联网推广员是做什么的
  • 东莞网站设计建设关键词排名是由什么决定的
  • 动态网站开发网络课程设计苏州网站制作开发公司
  • 中国空间站成为全人类太空之家/最新新闻事件今天
  • wordpress的wplms主题/槐荫区网络营销seo
  • 网站可以自己做/扫描图片找原图
  • 嘎嘎棒,ethernet ip转profinet网关锁鲜食品加工业
  • 安装electron项目是为什么要执行postinstall script
  • Dubbo(30)如何配置Dubbo的服务分片?
  • linux0.11内核源码修仙传第十三章——进程调度大战前夕
  • AIO,BIO,NIO的区别(详解)
  • 盲盒小程序:数字娱乐新宠,开发需注重细节与创新
  • React面试常考内容【从宏观到微观】
  • pyQt学习笔记——QThread线程
  • Linux——文件(2)文件系统
  • Kafka - 消息零丢失实战
  • 深度学习笔记 | 漫游RNN(循环神经网络)
  • 天梯赛 L2-024 部落
  • [ISP] 理解白平衡的理想色温6500K
  • springboot—— Shiro实现认证和授权功能
  • webscanner漏洞扫描部署使用
  • HTML 表单:构建交互式网页的关键元素
  • 3D 地图渲染-区域纹理图添加
  • 库博静态代码分析工具Jenkins插件集成
  • Husky目标跟踪
  • Spring Boot集成Elasticsearch指南