What is Vector Database
一、前言我们目前正处于人工智能革命的中期。这场革命正在全面改变各行各业,并带来了伟大的创新,但也带来了新的挑战。对于涉及大型语言模型、生成式人工智能和语义搜索的应用程序而言,高效地处理数据变得比以往任何时候都更加重要。
所有这些新应用程序都依赖于向量嵌入,这是一种数据表示形式。向量嵌入携带着对人工智能理解和长期记忆非常重要的语义信息,这些记忆可以在执行复杂任务时提供参考。
向量嵌入是由人工智能模型(如大型语言模型)生成的,具有许多属性或特征,使其表示变得难以管理。在人工智能和机器学习背景下,这些特征代表了数据不同维度,在理解模式、关系和潜在结构方面至关重要。
因此,我们需要专门为处理此类数据而设计的数据库。向量数据库(如Pinecone)满足了这一需求,通过提供优化的存储和查询能力来处理嵌入。相比传统数据库缺乏独立向量索引和处理向量嵌入的专业能力,向量数据库具备这些能力。
使用向量嵌入的挑战在于,传统基于标量的数据库无法跟上这种数据的复杂性和规模,从而使得提取洞察和进行实时分析变得困难。这就是向量数据库发挥作用的地方 - 它们是专门为处理此类数据而设计的,并提供了性能、可扩展性和灵活性 ...
LlamaIndex:让GPT学习私有知识
LlamaIndex 总述LlamaIndex 是一个将大语言模型(Large Language Models, LLMs,后简称大模型)和外部数据连接在一起的工具。大模型依靠上下文学习(Context Learning)来推理知识,针对一个输入(或者是prompt),根据其输出结果。因此Prompt的质量很大程度上决定了输出结果的质量,因此提示工程(Prompt engineering)现在也很受欢迎。目前大模型的输入输出长度因模型结构、显卡算力等因素影响,都有一个长度限制(以Token为单位,ChatGPT限制长度为4k个,GPT-4是32k等,Claude最新版有个100k的)。当我们外部知识的内容超过这个长度时,就无法同时将有效的信息传递给大模型。因此就诞生了 LlamaIndex 等项目。
假设有一个10w的外部数据,我们的原始输入Prompt长度为100,长度限制为4k,通过查询-检索的方式,我们能将最有效的信息提取集中在这4k的长度中,与Prompt一起送给大模型,从而让大模型得到更多的信息。此外,还能通过多轮对话的方式不断提纯外部数据,达到在有限的输入长度限制下,传达更 ...
ChatGPT Update
Almost exactly a year on from the launch of ChatGPT, the AI chatbot has been given its biggest update so far – with its creator OpenAI announcing a powerful new AI model, the ability to make your own custom AI assistants, and a new marketplace that’s effectively an App Store for chatbots.
The announcements were all made at OpenAI’s first developer conference, called DevDay, on November 6. And while its main audience was developers, similar events like Apple’s WWDC have shown us that these confer ...
k8s初体验-minikube突破隔断访问限制(以nginx为例)
minikube部署对外访问配置我们现在大家都知道了 minikube集群相当于k8s的一个虚拟机。
同时pod每次消亡重建之后都会分配一个虚拟的ip,这个ip可供集群内部访问,但是如果要对外访问呢?
我们可以给他暴露ip出来,但是如果pod宕机后重建ip就发生了变化,所以不能对pod进行ip的暴露。
那应该对什么进行暴露呢?
我们首先需要了解service,简而言之,为了解决pod动态变化的虚拟ip,因此service 相当于某组pod的外部访问接口。因此我们对service为单位进行ip的暴露即可。这同时也解决了在minikube中一开始学习的时候必须要进入minikube之后才可以访问pod的问题。
1234567891011121314151617181920212223242526272829303132333435lucky@thinkcentre:/work/k8s$ kubectl expose deploy nginx --name=svc-nginx1 --type=ClusterIP --port=80 --target-port=80 -n devservi ...
k8s初体验---nginx(pod)部署并访问
k8s初学习—基于k8s部署nginx创建命名空间dev
1kubectl create ns dev
运行nginx
1kubectl run nginx --image=nginx:1.17.1 --port=80 --namespace=dev
查看某个命名空间下的pod的信息 根据pod-name
1kubectl get pod nginx -n dev
试试访问pod
1curl 172.17.0.5:80
很尴尬 不能访问 果然教程不帮你踩坑。
问了chatgpt,给出几种方案。我试了第一种
首先 我用minikube ssh指令之后 进入minikube内部,再访问居然成功了。
接下来我继续问chatGPT这是为什么 ?
但是实际上我测试了一下都是正常的 chatgpt并没有帮我解决?
接下来就问了师兄,师兄一语中的,师兄总是那么神。
所以chatGPT其实有的时候也并不是那么神啦!!!
到此结束!
ChatGPT 桌面版使用
ChatGPT 桌面版使用背景最近使用GPT时不稳定,经常出现报错现象,查阅了资料后发现是GPT webpage的问题,因此决定使用GPT桌面版(不然用起来太痛苦了!
📦 InstallWindows
ChatGPT_1.1.0_windows_x86_64.msi
使用 winget:
12345# install the latest versionwinget install --id=lencx.ChatGPT -e# install the specified versionwinget install --id=lencx.ChatGPT -e --version 0.10.0
Mac
ChatGPT_1.1.0_macos_aarch64.dmg
ChatGPT_1.1.0_macos_x86_64.dmg
HomebrewHomebrew 快捷安装 (Cask):
1brew tap lencx/chatgpt https://github.com/lencx/ChatGPT.gitbrew install --cask chatgpt --no-quaran ...
GPT-原理
InstructGPT模型结构谈到ChatGPT肯定是绕不开instructGPT的,或者说ChatGPT的内核就是instructGPT。那么,想要了解ChatGPT,就是直接了解instructGPT,instructGPT分为如下三大步:
SFT:生成模型GPT的有监督精调 (supervised fine-tuning)RM:奖励模型的训练(reward model training)PPO:近端策略优化模型( reinforcement learning via proximal policy optimization)下面根据这三大步分为三个Step进行讲解以及实操。
SFT(supervised fine-tuning)原理其实这一步没啥好说的,主要的东西还是大量的Prompt数据,GPT模型通过有监督的Prompt数据进行精调,其实就是做next token prediction任务。然后用精调后的模型对每个输入的[文本+prompt]进行generate,生成4~9个输出,并且进行解码操作。具体的模型流程如下图所示:
SFT代码实操数据准备我们去成都旅游,必须要去的 ...
Oauth学习
什么是OAuth?OAuth 不是一个API或者服务,而是一个验证授权(Authorization)的开放标准,所有人都有基于这个标准实现自己的OAuth。
更具体来说,OAuth是一个标准,app可以用来实现secure delegated access. OAuth基于HTTPS,以及APIs,Service应用使用access token来进行身份验证。
OAuth主要有OAuth 1.0a和OAuth 2.0两个版本,并且二者完全不同,且不兼容。OAuth2.0 是目前广泛使用的版本,我们多数谈论OAuth时,为OAuth2.0。为什么要有OAuth?
在OAuth之前,HTTP Basic Authentication, 即用户输入用户名,密码的形式进行验证, 这种形式是不安全的。OAuth的出现就是为了解决访问资源的安全性以及灵活性。OAuth使得第三方应用对资源的访问更加安全。OAuth 中心组件
OAuth 主要下面中心组件构成 (Central Components), 接下来会依次介绍如下这些组件。
Scopes and Consent
Actors
Clie ...
k8s学习教程(基础配置)--part 1
k8s学习教程(一、初始配置)
1 minikube 启动过程在启动之前,需要下载docker!!!
1.1 minikube start启动指令
12345# 启动指令# 先设置一下k8s版本 注意:大坑 不明原因sudo usermod -aG docker lucky && newgrp dockerminikube config set kubernetes-version v1.23.3minikube start --image-mirror-country='cn'
需要切换一个用户 同时需要用ssh工具重新连接这个新用户,不可以su 新用户,这样才可以启动dashboard
123minikube dashboard# 设置minikube dashboard的ip和端口为本机,以便外网访问 --address 为 ipkubectl proxy --port=7999 --address='202.120.87.115' --accept-hosts='^.*' &
1.2 ...
Devops---基于Docker实现GitLab企业开发过程全自动化
Devops—基于Docker实现GitLab企业开发过程全自动化搭建该流程化过程起因原项目gitlab仓库所在私服磁盘被docker数据占满,无法访问,容器寄掉了。于是自己动手在自己的私服上不想浪费那1TB的磁盘,于是从0开始完整搭建了gitlab仓库(企业用的比较多)、gitlab-runner(实现Devops的关键)、部署的全过程。下图是GitLab官网的介绍:The DevSecOps Platform | GitLab
一、搭建gitlab仓库首先介绍一下如何搭建gitlab仓库。
1234# 搜索gitlab版本 我一般都用最新版latestdocker search gitlab/gitlab-ce# 拉取镜像docker pull gitlab/gitlab-ce
我没用docker run的命令来启动gitlab,因为我怕忘记命令,所以用的docker-compose.yml文件启动方式。
1234567891011121314151617version: '3.1'services: gitlab: image: 'git ...