会员登录 立即注册

搜索

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

[复制链接]
崎山小鹿 发表于 2024-1-8 21:59:05 | 显示全部楼层 |阅读模式
崎山小鹿
2024-1-8 21:59:05 7695 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—使用中文 (出处: 金双石科技)


天不生墨翟,万古如长夜!以墨运商,以商助墨。金双石科技长期招聘科技研发人才!微信:qishanxiaolu   电话:15876572365   公司:深圳市金双石科技有限公司
回复

使用道具 举报

 楼主| 崎山小鹿 发表于 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
天不生墨翟,万古如长夜!以墨运商,以商助墨。金双石科技长期招聘科技研发人才!微信:qishanxiaolu   电话:15876572365   公司:深圳市金双石科技有限公司
回复

使用道具 举报

 楼主| 崎山小鹿 发表于 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使用
天不生墨翟,万古如长夜!以墨运商,以商助墨。金双石科技长期招聘科技研发人才!微信:qishanxiaolu   电话:15876572365   公司:深圳市金双石科技有限公司
回复

使用道具 举报

 楼主| 崎山小鹿 发表于 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/。
天不生墨翟,万古如长夜!以墨运商,以商助墨。金双石科技长期招聘科技研发人才!微信:qishanxiaolu   电话:15876572365   公司:深圳市金双石科技有限公司
回复

使用道具 举报

 楼主| 崎山小鹿 发表于 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需要使用的文件
天不生墨翟,万古如长夜!以墨运商,以商助墨。金双石科技长期招聘科技研发人才!微信:qishanxiaolu   电话:15876572365   公司:深圳市金双石科技有限公司
回复

使用道具 举报

 楼主| 崎山小鹿 发表于 2024-3-10 16:35:10 | 显示全部楼层
崎山小鹿
2024-3-10 16:35:10 看全部
"im_start"一个令牌代表输入消息的开始。所以im应该代表input message
天不生墨翟,万古如长夜!以墨运商,以商助墨。金双石科技长期招聘科技研发人才!微信:qishanxiaolu   电话:15876572365   公司:深圳市金双石科技有限公司
回复

使用道具 举报

 楼主| 崎山小鹿 发表于 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"
天不生墨翟,万古如长夜!以墨运商,以商助墨。金双石科技长期招聘科技研发人才!微信:qishanxiaolu   电话:15876572365   公司:深圳市金双石科技有限公司
回复

使用道具 举报

 楼主| 崎山小鹿 发表于 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|>
天不生墨翟,万古如长夜!以墨运商,以商助墨。金双石科技长期招聘科技研发人才!微信:qishanxiaolu   电话:15876572365   公司:深圳市金双石科技有限公司
回复

使用道具 举报

 楼主| 崎山小鹿 发表于 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,
)
天不生墨翟,万古如长夜!以墨运商,以商助墨。金双石科技长期招聘科技研发人才!微信:qishanxiaolu   电话:15876572365   公司:深圳市金双石科技有限公司
回复

使用道具 举报

 楼主| 崎山小鹿 发表于 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"
}
天不生墨翟,万古如长夜!以墨运商,以商助墨。金双石科技长期招聘科技研发人才!微信:qishanxiaolu   电话:15876572365   公司:深圳市金双石科技有限公司
回复

使用道具 举报

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

本版积分规则 返回列表

管理员给TA私信
以墨运商,以商助墨。

查看:7695 | 回复:9

  • 墨家小镇文化与经济

    文化建设: 墨家十要 旗帜: 八卦 双鱼戏水 经济建设: 麦田、 甘蔗田

    阅读:96|2024-12-20
  • 墨者的面具

    仿照三星堆的面具做头像

    阅读:102|2024-12-19
  • 从出生地前往墨家小镇集合

    装饰一下出生地 现在有路标了,通过路标让会员找到我们的村庄,一路要非常小心不

    阅读:207|2024-12-18
  • 墨家盾牌和武器

    盾牌上有墨家的标志,武器上也有墨家的特色

    阅读:212|2024-12-17
  • 安全的保险箱

    每个人都一个自己的箱子,只有自己能开启。且死亡不掉落! 对着一个上方没有红石导

    阅读:217|2024-12-17
  • 我的世界之墨家旗帜

    如何在我的世界里创建独特的旗帜呢? 将图片生成像素画 https://chuiliu.github.io/d

    阅读:279|2024-12-16
  • 给服务器增加组件

    给服务器增加组件,例如:墨家旗帜 租赁服务器如何使用mod? 答:目前我的世界纯净

    阅读:336|2024-12-15
  • 用手机玩墨山游侠

    用手机玩墨山游侠 电脑版怎么和手机版玩家一起联机? 答:更新后电脑版新增基岩版,

    阅读:345|2024-12-15
  • 墨山游侠服务器开启

    在网易上开启创服之旅 服务器号:25744989 我们先用游戏版本:1.12.2 来测试,看

    阅读:463|2024-12-14
  • 构建我们墨者自己的,侠客世界

    各位好,整理了一下大家的意见。同步一下信息。 1.制作一个墨家元素的游戏。 2.先依托

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

手机APP

官方微博

官方微信

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