私有知识库构建方案

LLM Evolutionary Tree

基础概述与拓展

基于Transformer架构的模型主要三大分类:

1、autoregressive自回归模型(AR模型,仅解码器架构Decoder-only):代表作GPT。本质上是一个left-to-right的语言模型。通常用于生成式任务,在长文本生成方面取得了巨大的成功,比如自然语言生成(NLG)领域的任务:摘要、翻译或抽象问答。当扩展到十亿级别参数时,表现出了少样本学习能力。缺点是单向注意力机制,在NLU任务中,无法完全捕捉上下文的依赖关系。

2、autoencoding自编码模型(AE模型,仅编码器架构Encoder-only):代表作BERT。是通过某个降噪目标(比如MLM)训练的双向文本编码器。编码器会产出适用于NLU任务的上下文表示,但无法直接用于文本生成。

3、encoder-decoder(Seq2seq模型):代表作T5。采用双向注意力机制,通常用于条件生成任务,比如文本摘要、机器翻译等

为什么现在的LLM都是Decoder-only的架构?

为什么现在的LLM都是Decoder only的架构?

生成式预训练模型:UniLM、BART、T5、GPT

大语言模型调研汇总

从循环神经网络、transformer到GPT2

循环神经网络讲解(RNN/LSTM/GRU)

LLMs模型速览上(GPTs、LaMDA、GLM/ChatGLM、PaLM/Flan-PaLM)

ChatGPT +Fine-tune

ChatGPT的唯一方式就是官方说的微调出一个自己的模型,然后上传到ChatGPT,聊天时选用这个模型就好

参考文档:

如何微调你的chatgpt?fine-tuning实例教学

openai fine-tuning guides

Azure Studio 训练自己的GPT

Azure OpenAI 微调模型文档

开源LLM + 本地部署和微调

开源大模型
ChatGLM

清华和智谱公司搞的开源LLM,ChatGLM-6B 是一个开源的、支持中英双语的对话语言模型,基于 General Language Model (GLM) 架构,具有 62 亿参数。结合模型量化技术,用户可以在消费级的显卡上进行本地部署(INT4 量化级别下最低只需 6GB 显存)。 ChatGLM-6B 使用了和 ChatGPT 相似的技术,针对中文问答和对话进行了优化。经过约 1T 标识符的中英双语训练,辅以监督微调、反馈自助、人类反馈强化学习等技术的加持,62 亿参数的 ChatGLM-6B 已经能生成相当符合人类偏好的回答。

ChatGLM3-6B针对RAG能力对比测试

github:ChatGLM3-6B

官方体验地址:智谱清言

清华ChatGLM底层原理详解

ChatGLM-blog

Alpaca

**Alpaca 7B是由Meta的LLaMA 7B模型通过52K指令微调得到的模型。Alpaca与OpenAI的text-davinci-003(GPT-3.5)表现类似,模型容量惊人的小,易于复现,且复现成本低(<600美元)。**斯坦福发布了模型训练方法和数据,并打算在未来发布模型权重

github-stanford-alpaca

github alpaca-lora

github Chinese-LLAMA-Alpaca

Alpaca-lora本地化部署实践

Vicuna

可达到 ChatGPT/Bard 90% 以上水平

来自加州大学伯克利分校、CMU、斯坦福大学和加州大学圣地亚哥分校的成员,共同推出了一个 Vicuna-13B 开源聊天机器人,由增强的数据集和易于使用、可扩展的基础设施支持。

以 GPT-4 为评判标准的初步评估显示,Vicuna-13B 达到了 OpenAI ChatGPT 和 Google Bard 90% 以上的质量,同时在 90% 以上的情况下超过了 LLaMA 和 Stanford Alpaca 等其他模型的表现。训练 Vicuna-13B 成本约为 300 美元。训练和服务代码,以及在线演示都是公开的,可用于非商业用途

本地化部署Vicuna模型-教程

Hugging Face 地址

Hugging Face lmsys

FastChat-github

Vicuna: An Open-Source Chatbot Impressing GPT-4 with 90% ChatGPT Quality

LLaMA2

Meta加微软,开源,免费开放给商业

Meta宣布和微软深化合作,正式推出新一代开源大型语言模型Llama 2,并将该模型免费开放给商业和研究使用。当时Meta表示LLaMA拥有超高性能,使用130亿参数的LLaMA在规模仅为ChatGPT 的十分之一的情况下,性能表现可以优于GPT-3。使用650 亿参数的 LLaMA 则可以与 DeepMind700 亿参数的 Chinchilla模型和谷歌5400 亿参数的 PaLM模型比肩

lama2模型申请与本地部署详细

外部LLM(ChatGPT/ChatGLM3) + 向量数据库

当我们有一份文档需要 GPT 处理时,例如客服培训资料或者操作手册,可以先将这份文档的所有内容转化成向量(这个过程称之为 Vector Embedding),然后当用户提出相关问题时,我们将用户的搜索内容转换成向量,然后在数据库中搜索最相似的向量,匹配最相似的几个上下文,最后将上下文返回给 GPT。这样不仅可以大大减少 GPT 的计算量,从而提高响应速度,更重要的是降低成本,并绕过 GPT 的 tokens 限制

截至目前,汇总到目前的向量数据库有以下几种选择:

向量数据库 URL GitHub Star Language Cloud
chroma https://github.com/chroma-core/chroma 7.4K Python
milvus https://github.com/milvus-io/milvus 21.5K Go/Python/C++
pinecone https://www.pinecone.io/
qdrant https://github.com/qdrant/qdrant 11.8K Rust
typesense https://github.com/typesense/typesense 12.9K C++
weaviate https://github.com/weaviate/weaviate 6.9K Go

向量数据库技术鉴赏

内部部署开源LLM + 向量数据库

Langchain-Chatchat

Langchain-Chatchat(原Langchain-ChatGLM)基于 Langchain 与 ChatGLM 等语言模型的本地知识库问答

github: Langchain-Chatchat

ChatGLM + LangChain 实践培训

ChatGLM+Langchain构建本地知识库,只需6G显存,支持实时上传文档

privateGPT

github: privateGPT

FastGPT(不推荐)

github:FastGPT

其他方案

https://zhuanlan.zhihu.com/p/652685138

Other

gpt对话分享

ShareGPT

大语言模型评估排行榜汇总

LMSYS:排行榜地址

排行榜由Chatboot Arena、MT-Bench、MMLU主要基准组成。

  • Chatbot Arena- 一个大语言模型基准平台,以众包的方式进行匿名、随机的战斗。目前有 47K+ 用户的投票数据,采用Elo 评级方法进行计算结果。该项基准正在考虑增加更多的开源/闭源模型。
  • MT-Bench- 一个具有挑战性的多轮问题集,使用 GPT-4 对模型响应进行评分。
  • MMLU-(5-shot)——测试大语言模型的多任务准确性,该测试覆盖了基础数学、美国历史、计算机科学、法律等57项任务

c-Eval: 排行榜地址

C-Eval是一个针对基础模型的综合中文评估套件。它由 13948 道多项选择题组成,涵盖 52 个不同学科和四个难度级别

SuperCLUElyb: 排行榜地址

SuperCLUE-琅琊榜是一个中文大模型匿名对战平台,由中文语言理解测评基准开源社区CLUE的成员发起的,目前已有5.8K投票数据,使用Elo评级系统来计算模型的相对性能

instructor: https://github.com/jxnl/instructor

cohere: https://cohere.com

AppAgent: https://github.com/mnotgod96/AppAgent

如何基于Embedding让大模型解决长文本(如PDF)的输入问题

大多数打语言模型都无法处理过长的文本,如何让大模型"读懂"一个PDF尼

1.基于pdf创建向量Embedding,并在数据库中存储

2.提问Prompt,将问题向量去数据库检索相似的向量,将检索的相似的向量原文一起给到GPT

准备搜索数据(仅一次)
  收集:即获取你要用的数据,例如OpenAI的案例是下载几百篇有关2022年奥运会的维基百科文章
  切块:将文档分成短小的、大多是自包含的部分以进行嵌入
  嵌入:使用OpenAI API对每个部分数据获得embeddings结果
  存储:存储embedding是(对于大型数据集,可以使用向量数据库)
搜索(每次查询一次)
  给定用户问题,从OpenAI API生成查询的embeddings
  使用embeddings,按照与查询相关性对文本部分进行排序
提问(每次查询一次)
  将问题和最相关的部分插入到发送给GPT的消息中
  返回GPT的答案

私有知识库构建方案
https://centyuan.github.io/2024/02/19/机器学习/私有知识库构建方案--参考学习/
作者
hlyuan
发布于
2024年2月19日
许可协议