会员登录 立即注册

搜索

构建中国人自己的私人GPT—使用中文

[复制链接]
崎山小鹿 发表于 2024-1-8 21:59:05 | 显示全部楼层 |阅读模式
崎山小鹿
2024-1-8 21:59:05 1623 9 看全部
上一篇已经讲解了如何构建自己的私人GPT,这一篇主要讲如何让GPT支持中文。
微信图片_20240112222609.png
微信图片_20240109131124.jpg
privateGPT 本地部署目前只支持基于llama.cpp 的 gguf格式模型,GGUF 是 llama.cpp 团队于 2023 年 8 月 21 日推出的一种新格式。它是 GGML 的替代品,llama.cpp 不再支持 GGML。

您可以通过简单地更改您选择的配置文件来更改语言(法语、西班牙语、意大利语、英语等);无需更改代码!

本文主要采用零一万物公司提供的01-ai/Yi-9B大模型。
零一万物由创新工场人工智能工程院塔尖孵化,李开复博士亲自领军筹组,是一家致力打造 AI 2.0 时代的前沿大模型技术及软件应用的全球化公司。Yi-9B 几乎是一系列类似规模的开源模型(包括 Mistral-7B、SOLAR-10.7B、Gemma-7B、DeepSeek-Coder-7B-Base-v1.5 等)中最好的,尤其表现出色代码、数学、常识推理和阅读理解。9B型号        它是 Yi 系列模型中最擅长编码和数学的。是在Yi-6B的基础上持续训练的,使用0.8T token。


1.修改配置文件settings.yaml
local:
  prompt_style: "tag"
  llm_hf_repo_id: MaziyarPanahi/Yi-9B-GGUF
  llm_hf_model_file: Yi-9B.Q4_K_M.gguf
  embedding_hf_model_name: BAAI/bge-small-zh-v1.5

2.代码修改
使用YI模型,源码要简单修改下,修改如下

文件路径 privateGPT/private_gpt/components/llm/llm_component.py

第44行,添加如下内容:
generate_kwargs={'stop':['<|im_end|>']},
如图:
微信截图_20240109113434.png

3.模型下载
运行
poetry run python scripts/setup

4.启动
set PGPT_PROFILES=local
poetry run python -m private_gpt

导航到 UI:在浏览器中打开 http://localhost:8001/。
微信图片_20240109115239.png

效果不是很好,期待他们再更新吧:
微信图片_20240310195101.png



如果不能正常下载模型文件,可以手动下载
下载01-ai/Yi-9Bgguf
微信截图_20240309231638.png
还是不能下载加我微信:qishanxiaolu
下载后放置在 models 文件夹下


embedding模型是什么
privateGPT中如何使用国产YI-34B-CHAT模型
如何创建 GGUF 模型文件?
全面了解 PrivateGPT:中文技巧和功能实测
huggingface transformers预训练模型如何下载至本地,并使用
构建中国人自己的私人GPT  (出处: 金双石科技)
构建中国人自己的私人GPT—使用中文 (出处: 金双石科技)


回复

使用道具 举报

 楼主| 崎山小鹿 发表于 2024-1-24 16:04:34 | 显示全部楼层
崎山小鹿
2024-1-24 16:04:34 看全部
修改settings.yaml文件:

default_chat_system_prompt: "You are a helpful assistant. 你是一个乐于助人的助手。"

tokenizer: hfl/chinese-alpaca-2-7b

llm_hf_repo_id: hfl/chinese-alpaca-2-7b-gguf

llm_hf_model_file: ggml-model-q4_k.gguf

embedding_hf_model_name: BAAI/bge-large-zh-v1.5

运行poetry run python scripts/setup命令下载模型文件到本地,因为众所周知的原因,这一步需要开启全局代理。 作者:重力风暴 https://www.bilibili.com/read/cv29725893/ 出处:bilibili
回复

使用道具 举报

 楼主| 崎山小鹿 发表于 2024-3-8 09:26:44 | 显示全部楼层
崎山小鹿
2024-3-8 09:26:44 看全部
本文主要采用零一万物公司提供的01-ai/Yi-9B大模型。
零一万物由创新工场人工智能工程院塔尖孵化,李开复博士亲自领军筹组,是一家致力打造 AI 2.0 时代的前沿大模型技术及软件应用的全球化公司。Yi-9B 几乎是一系列类似规模的开源模型(包括 Mistral-7B、SOLAR-10.7B、Gemma-7B、DeepSeek-Coder-7B-Base-v1.5 等)中最好的,尤其表现出色代码、数学、常识推理和阅读理解。


1.修改配置文件settings.yaml
local:
  prompt_style: "tag"
  llm_hf_repo_id: MaziyarPanahi/Yi-9B-GGUF
  llm_hf_model_file: Yi-9B-GGUF.Q4_K_M.gguf
  embedding_hf_model_name: BAAI/bge-small-zh-v1.5

2.代码修改
使用YI模型,源码要简单修改下,修改如下

文件路径 privateGPT/private_gpt/components/llm/llm_component.py

第44行,添加如下内容:
generate_kwargs={'stop':['<|im_end|>']},
如图:


3.模型下载
运行
poetry run python scripts/setup

4.启动
set PGPT_PROFILES=local
poetry run python -m private_gpt

导航到 UI:在浏览器中打开 http://localhost:8001/。


Inference API (serverless) has been turned off for this model.
01-ai/Yi-9Bgguf文件下载已被关闭,暂时不能在privateGPT使用
回复

使用道具 举报

 楼主| 崎山小鹿 发表于 2024-3-10 09:43:51 | 显示全部楼层
崎山小鹿
2024-3-10 09:43:51 看全部
本文主要采用国产YI-34B-CHAT模型。
1.模型下载
>>>yi模型yi-34b-chat.Q4_K_M.gguf下载<<<

下载后放置在 models 文件夹下

embedding模型下载:https://huggingface.co/BAAI/bge-small-zh-v1.5

下载后放置在models/cache文件夹下,bge is short for BAAI general embedding,FlagEmbedding 可以将任何文本映射到低维密集向量,该向量可用于检索、分类、聚类或语义搜索等任务。它还可以用于法学硕士的矢量数据库

2.settings.yaml 文件修改:
主要修改local部分,使用YI模型使用prompt_style: "tag"类型的提示词模板

prompt_style: "tag"
llm_hf_model_file: yi-34b-chat.Q4_K_M.gguf
embedding_hf_model_name: BAAI/bge-small-zh-v1.5


3.代码修改
使用YI-34B-CHAT模型,源码要简单修改下,修改如下

文件路径 privateGPT/private_gpt/components/llm/llm_component.py

第44行,添加如下内容:

generate_kwargs={'stop':['<|im_end|>']},
如图:


启动
set PGPT_PROFILES=local
poetry run python -m private_gpt

导航到 UI:在浏览器中打开 http://localhost:8001/。
回复

使用道具 举报

 楼主| 崎山小鹿 发表于 2024-3-10 10:07:53 | 显示全部楼层
崎山小鹿
2024-3-10 10:07:53 看全部
原理解析
这套方法使用了 LangChain, GPT4All, LlamaCpp, Chroma and SentenceTransformers.

LangChain 用来生成文本向量,Chroma 存储向量。GPT4All、LlamaCpp用来理解问题,匹配答案。基本原理是:问题到来,向量化。检索语料中的向量,给到最相似的原始语料。语料塞给大语言模型,模型回答问题。基本原理和chatpdf没大差别。



创建自己的模型
Llama2 模型使用16位浮点数作为权重进行训练。我们可以将其缩小到4位整数以进行推理,而不会失去太多的功率,但会节省大量的计算资源(特别是昂贵的 GPU RAM)。这是已经被证实的。这个过程叫做量化。
GGUF格式专为 LLM 推理设计。它支持 LLM 任务,如语言编码和解码,使其比 PyTorch 更快、更容易使用。

使用 convert.py 实用程序将一个 PyTorch 模型转换为 GGUF 。你只需给出包含 PyTorch 文件的目录。这里的 GGUF 模型文件是完整的16位浮点模型

Llama2 模型,可以使用 llama.cpp 将其转换并量化为 GGUF,使用 convert.py 实用程序将一个 PyTorch 模型转换为 GGUF,quantize 命令行工具量化 FP16 GGUF 文件。下面的命令使用5位 k-量化创建一个新的 GGUF 模型文件。你可以在自己的应用程序中使用 GGUF 模型文件,或者在 Huggingface 上与全世界分享你的模型


embedding模型  嵌入式模型(Embedding)是一种广泛应用于自然语言处理(NLP)和计算机视觉(CV)等领域的机器学习模型,它可以将高维度的数据转化为低维度的嵌入空间(embedding space),并保留原始数据的特征和语义信息,从而提高模型的效率和准确性。本文将对嵌入式模型进行详细的介绍,包括其背景、原理、应用和常见类型等方面。

safetensors 文件是模型文件,是 Hugging Face 公司推出的一种用于保存模型的新文件格式,它旨在解决模型加载和使用中的安全问题。
第一个是配置文件;config.json。第二个是词典文件,vocab.json。第三个是预训练模型文件,如果你使用pytorch则保存pytorch_model.bin文件
额外的文件,指的是merges.txt、special_tokens_map.json、added_tokens.json、tokenizer_config.json、sentencepiece.bpe.model等,这几类是tokenizer需要使用的文件
回复

使用道具 举报

 楼主| 崎山小鹿 发表于 2024-3-10 16:35:10 | 显示全部楼层
崎山小鹿
2024-3-10 16:35:10 看全部
"im_start"一个令牌代表输入消息的开始。所以im应该代表input message
回复

使用道具 举报

 楼主| 崎山小鹿 发表于 2024-3-10 17:23:12 | 显示全部楼层
崎山小鹿
2024-3-10 17:23:12 看全部
./main -ngl 35 -m Yi-9B-GGUF.Q4_K_M.gguf --color -c 32768 --temp 0.7 --repeat_penalty 1.1 -n -1 -p "<|im_start|>system
{system_message}<|im_end|>
<|im_start|>user
{prompt}<|im_end|>
<|im_start|>assistant"
回复

使用道具 举报

 楼主| 崎山小鹿 发表于 2024-3-10 18:01:08 | 显示全部楼层
崎山小鹿
2024-3-10 18:01:08 看全部
<|system|>
Below is a dialogue between a human and AI assistant called StarChat.
<|end|>
<|user|>
Is it possible to imagine a society without law?<|end|>
<|assistant|>
It is difficult to imagine ...<|end|>
<|user|>
It seems like you ...<|end|>
<|assistant|>
You are correct ...<|end|>
<|user|>
Yeah, but laws are complicated ...<|end|>
回复

使用道具 举报

 楼主| 崎山小鹿 发表于 2024-3-10 19:56:24 | 显示全部楼层
崎山小鹿
2024-3-10 19:56:24 看全部
llm = LlamaCPP(
    # You can pass in the URL to a GGML model to download it automatically
    model_url=model_url,
    # optionally, you can set the path to a pre-downloaded model instead of model_url
    model_path=None,
    temperature=0.1,
    max_new_tokens=256,
    # llama2 has a context window of 4096 tokens, but we set it lower to allow for some wiggle room
    context_window=3900,
    # kwargs to pass to __call__()
    generate_kwargs={},
    # kwargs to pass to __init__()
    # set to at least 1 to use GPU
    model_kwargs={"n_gpu_layers": 1},
    # transform inputs into Llama2 format
    messages_to_prompt=messages_to_prompt,
    completion_to_prompt=completion_to_prompt,
    verbose=True,
)
回复

使用道具 举报

 楼主| 崎山小鹿 发表于 2024-3-11 23:20:29 | 显示全部楼层
崎山小鹿
2024-3-11 23:20:29 看全部
yi 9b大模型
{
  "name": "LLaMA v2",
  "arch": "llama",
  "quant": "Q4_K_M",
  "context_length": 4096,
  "embedding_length": 4096,
  "num_layers": 48,
  "rope": {
    "freq_base": 10000,
    "dimension_count": 128
  },
  "head_count": 32,
  "head_count_kv": 4,
  "parameters": "34B"
}
回复

使用道具 举报

  • 您可能感兴趣
您需要登录后才可以回帖 登录 | 立即注册 |

本版积分规则 返回列表

查看:1623 | 回复:9

  • 免费在线 Autodesk FBX 到 OpenUSD 转换器

    免费在线 Autodesk FBX 到 OpenUSD 转换器 https://products.aspose.app/3d/zh-cn/co

    阅读:173|2024-07-10
  • 3D数字人制作-Character creator

    Character creator 《角色创建者》是由Reallusion [1]公司推出的一款3D角色建模软件,

    阅读:262|2024-07-08
  • 第九区

    第九区的本质是创建一个世界模型,希望用这个世界模型能为老百姓和政府提供数据和推理

    阅读:277|2024-07-07
  • Discuz强大的广告系统

    强大的广告系统 页头通栏广告:页头通栏广告显示于论坛页面右上方 全局 页尾通栏广

    阅读:176|2024-07-07
  • 对于老百姓而言VR到底能做什么?

    VR技术自诞生以来不断发展,已经广泛应用于教育、医疗、工程、军事、航空、航海、影视

    阅读:261|2024-07-06
  • 剪映数字人口播原理

    剪映版本升级了,新版本6.0.1支持数字人定制,于是我赶紧申请了使用资格 目前的价格

    阅读:373|2024-07-03
  • 科学作息AI助手

    在魔塔空间创建了一个作息时间管理的agent >>>>>点我体验

    阅读:348|2024-07-01
  • 开发者聊科学作息时间表

    非常有幸对科学作息时间表app的开发者做一次采访。 问:你对科学作息时间表app满意么

    阅读:316|2024-07-01
  • 在线制作ico图标的网站

    给大家推荐一个在线制作ICO图标的网站 比特虫: https://www.bitbug.net/ 你也可以直

    阅读:364|2024-06-30
  • 恢复微信聊天记录

    微信好友删除了,之前的聊天记录能恢复么?能的,不管是安卓、苹果、Windows下的微信

    阅读:364|2024-06-30
金双石科技,软件开发20年,技术行业领先,您的满意,就是我们的目标,认真负责,开拓进取,让成品物超所值
关于我们
公司简介
发展历程
联系我们
本站站务
友情链接
新手指南
内容审核
商家合作
广告合作
商家入驻
新闻合作

手机APP

官方微博

官方微信

联系电话:15876572365 地址:深圳市宝安区西乡街道宝民二路宝民花园 ( 粤ICP备2021100124号-1 ) 邮箱:qishanxiaolu@qq.com
QQ|Powered by Discuz! X3.5 © 2001-2024 Discuz! Team.
快速回复 返回顶部 返回列表