大模型词嵌入方法_Embedding
1 介绍
模型 Embedding 是一种将高维数据转换为低维向量的技术,通常用于自然语言处理和机器学习领域。比如在自然语言处理中,就是把一句或一段话转成一个多维向量。它能捕捉词汇或数据之间的语义关系。在词嵌入中,类似意义的词会被映射到相近的向量空间中。
Embedding 常常用于信息检索、文本分类、语义匹配等场景中。比如建立本地知识库时,一般会先将文本切分,再进行 Embedding,然后将其存储在向量数据库中,以便后续查找和使用。
2 方法
嵌入方法有很多种。比如,可以调用 OpenAI 提供的嵌入方法,这需要花钱;也可以使用 Ollama 方法调用本地嵌入模型,这需要在本地搭建 Ollama 服务;或者直接在程序中调用模型,无需依赖其它工具。
2.1 最简单的 Embedding 方法
在程序中直接使用模型生成嵌入
1 | from sentence_transformers import SentenceTransformer |
2.2 Openai Embedding
调用 openai Embedding 嵌入
1 | import os |
2.3 Ollama Embedding
使用部署在本地的 ollama 服务生成嵌入
1 | curl http://localhost:11434/api/embeddings -d '{ "model": "nomic-embed-text", "prompt": "The sky is blue because of Rayleigh scattering" }' |
python 代码见 langchain 部分
2.4 langchain
包含很多种不同平台的 api 调用方式,也是比较推荐的方法:方法简单,功能灵活。
1 | from langchain.embeddings.xxx |
2.4.1 切分
1 | from langchain.text_splitter import RecursiveCharacterTextSplitter |
2.4.2 取嵌入
1 | from langchain.embeddings import OllamaEmbeddings |
2.5 参考
All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.