Ollama:修订间差异

来自牛奶河Wiki
跳到导航 跳到搜索
 
(未显示2个用户的16个中间版本)
第3行: 第3行:
*'''Llama-2:''' 2023 年 7 月发布了免费可商用版本,有 7B、13B、34B 和 70B 四个参数量版本,除了 34B 模型外,其他均已开源。Llama-2 将预训练的语料扩充到了 2T token,模型上下文长度 4,096,词表大小为 32K。并引入了分组查询注意力机制(grouped-query attention, GQA)等技术。通过进一步的有监督微调(Supervised Fine-Tuning, SFT)、基于人类反馈的强化学习(Reinforcement Learning with Human Feedback, RLHF)等技术对模型进行迭代优化,发布了面向对话应用的微调系列模型 Llama-2 Chat。通过“预训练-有监督微调-基于人类反馈的强化学习”这一训练流程,Llama-2 Chat 不仅在众多基准测试中取得了更好的模型性能,同时在应用中也更加安全。Meta 在 2023 年 8 月发布了专注于代码生成的 Code-Llama,共有 7B、13B、34B 和 70B 四个参数量版本
*'''Llama-2:''' 2023 年 7 月发布了免费可商用版本,有 7B、13B、34B 和 70B 四个参数量版本,除了 34B 模型外,其他均已开源。Llama-2 将预训练的语料扩充到了 2T token,模型上下文长度 4,096,词表大小为 32K。并引入了分组查询注意力机制(grouped-query attention, GQA)等技术。通过进一步的有监督微调(Supervised Fine-Tuning, SFT)、基于人类反馈的强化学习(Reinforcement Learning with Human Feedback, RLHF)等技术对模型进行迭代优化,发布了面向对话应用的微调系列模型 Llama-2 Chat。通过“预训练-有监督微调-基于人类反馈的强化学习”这一训练流程,Llama-2 Chat 不仅在众多基准测试中取得了更好的模型性能,同时在应用中也更加安全。Meta 在 2023 年 8 月发布了专注于代码生成的 Code-Llama,共有 7B、13B、34B 和 70B 四个参数量版本
*'''Llama-3:''' 2024 年 4 月,Meta 正式发布了开源大模型 Llama 3,包括 8B 和 70B 两个参数量版本。400B 参数量的版本计划在 2024 年 7 月 23 日发布。Llama-3 支持 8K 长文本,并采用了一个编码效率更高的 tokenizer(sentencepiece -> tiktoken, GPT4 使用 tiktoken),词表大小为 128K。在预训练数据方面,Llama-3 使用了超过 15T token 的语料
*'''Llama-3:''' 2024 年 4 月,Meta 正式发布了开源大模型 Llama 3,包括 8B 和 70B 两个参数量版本。400B 参数量的版本计划在 2024 年 7 月 23 日发布。Llama-3 支持 8K 长文本,并采用了一个编码效率更高的 tokenizer(sentencepiece -> tiktoken, GPT4 使用 tiktoken),词表大小为 128K。在预训练数据方面,Llama-3 使用了超过 15T token 的语料
*'''Llama 3.1:''' 2024 年 7 月 24 日,Meta 正式发布新一代开源大模型 Llama 3.1 系列,提供 8B、70B 及 405B 参数版本。使用 1.6 万个 H100 GPU、以及超过 15T token 的公开数据进行训练。 架构方面,该模型选择标准的解码器 transformer 模型架构进行调整,而不是混合专家模型,以最大化训练稳定性。采用了迭代的后训练程序,每一轮使用监督微调和直接偏好优化。其上下文长度被提升至 128K,而模型参数也被提高到了 4050 亿规模,是近年来规模最大的大语言模型之一。该模型在通用常识、可引导性、数学、工具使用和多语言翻译等广泛任务中足以对标 GPT-4、Claude 3.5 Sonnet 等领先的闭源模型。
[[文件:Llama3.1-405B.jpg|无框|600x600像素]]


ollama 是为了快速部署 Llama 大模型而诞生的,目前在 https://ollama.com/library 列出了可以支持部署的 LLM。
ollama 是为了快速部署 Llama 大模型而诞生的,目前在 https://ollama.com/library 列出了可以支持部署的 LLM。


下面的 Llama-3 example 在一台 6PCPU/8G RAM 主机上运行,单个 chat 会将全部 CPU 跑满。
Llama-3:8b(占用存储 4.7G) 在一台 6T CPU/12G RAM 主机上运行,单个 chat 会将全部 CPU 跑满,内存占用 0.5G。而此环境所能使用的最大模型是 llava:13b,这是一个 8G 的模型,使用中内存占用约 2G。llama3.1:70b(39G): Error: llama runner process has terminated: signal: aborted (core dumped)


=== Inst ===
=== Inst ===
==== Ollama ====
* <nowiki>curl -fsSL https://ollama.com/install.sh | sh</nowiki>
* <nowiki>curl -fsSL https://ollama.com/install.sh | sh</nowiki>
*MODEL
 
**/usr/share/ollama/.ollama/models  # Linux 存放下载的模型文件
** ollama pull llama3                # pull, default 8B
** ollama run llama3                # pull & run
** ollama run llama3:70b
** ollama rm gemma2:9b              # rm model
*ENV
*ENV
**export OLLAMA_HOST=127.0.0.1:30082    # 如果修改了默认端口(11434)
**export OLLAMA_HOST=127.0.0.1:30082    # 如果修改了默认端口(11434)
第35行: 第34行:
  systemctl daemon-reload
  systemctl daemon-reload
  systemctl restart ollama
  systemctl restart ollama
*CMD
# ollama run ollama:8b                  # run model
# ollama ps                              # run model list
# ollama cp ollama:8b ollama:latest      # rm model
# ollama rm ollama:8b                    # rm model


  <small><small><nowiki>>>> Downloading ollama...
  <small><small><nowiki>>>> Downloading ollama...
第48行: 第53行:
  >>> The Ollama API is now available at 127.0.0.1:11434.
  >>> The Ollama API is now available at 127.0.0.1:11434.
  >>> Install complete. Run "ollama" from the command line.
  >>> Install complete. Run "ollama" from the command line.
  WARNING: No NVIDIA/AMD GPU detected. Ollama will run in CPU-only mode.
  WARNING: No NVIDIA/AMD GPU detected. Ollama will run in CPU-only mode.</nowiki></small></small>
 
  # ollama list
==== MODEL ====
*/usr/share/ollama/.ollama/models  # Linux 存放下载的模型文件
* ollama pull llama3                # pull, default 8B
* ollama run llama3                # pull & run
* ollama run llama3:70b
  <small><small><nowiki># ollama list
  NAME ID SIZE MODIFIED  
  NAME ID SIZE MODIFIED  
  llama3:latest 365c0bd3c000 4.7 GB 5 minutes ago
  llama3:latest 365c0bd3c000 4.7 GB 5 minutes ago
第67行: 第77行:
  removing any unused layers  
  removing any unused layers  
  success</nowiki></small></small>
  success</nowiki></small></small>
==== UI ====
===== ChatBox =====
Chatbox AI 是一款 AI 客户端应用和智能助手,支持众多先进的 AI 模型和 API,可在 Windows、MacOS、Android、iOS、Linux 和网页版上使用。
* [https://chatboxai.app/ ChatBox Desktop Download]
* [https://web.chatboxai.app/ ChatBox online]
===== open-webui =====
Open WebUI is an extensible, feature-rich, and user-friendly self-hosted WebUI designed to operate entirely offline. It supports various LLM runners, including Ollama and OpenAI-compatible APIs.
* [https://github.com/open-webui/open-webui open-webui github]
<b>提供 RAG 功能:</b>
设置 - 个性化 - 记忆 (实验性):通过点击下方的“管理”按钮,你可以添加记忆,以个性化大语言模型的互动,使其更有用,更符合你的需求。
--> User 是一个 Java、Python、C、C++、SQL 软件开发人员。
事实上,通过发给 LLM 的信息中包含了这部分信息:
"userContext": "1. [2024-08-05]. User 是一个 Java、Python、C、C++、SQL 软件开发人员。\n",


=== Instructions ===
=== Instructions ===
第90行: 第114行:
*keep_alive:控制模型在请求后保持在内存中的时间(默认:5m)
*keep_alive:控制模型在请求后保持在内存中的时间(默认:5m)


===Example===
==== 模型文件格式 ====
====RAG====
# GGUF(GPT-Generated Unified Format)是一种可扩展的二进制模型文件格式,是 GGML、GGMF 和 GGJT 的后继文件格式,可以在不破坏兼容性的情况下将新信息添加到模型中。GGUF 支持模型量化,可以将模型权重量化为较低位数的整数,降低模型大小和内存消耗,提高计算效率,同时平衡性能和精度。Quant method(浮点数的位数和量化的方式),如 Q3 表示 3 位量化
*贝利是谁?什么时候出生在哪里?现在还活着吗?
# Safetensors 是 HuggingFace推 出的一种新的模型存储格式。与传统的模型存储格式相比,Safetensors不包含执行代码,因此在加载模型时无需进行反序列化操作,从而实现更快的加载速度。Safetensors 只包含模型的权重参数,而执行代码则由加载模型的框架或库提供。
<small><nowiki>A question about a famous person! 😊
 
  You're referring to Pelé, the legendary Brazilian soccer player. Here are his details:
 
  **Who:** Edson Arantes do Nascimento, commonly known as Pelé (pronounced "pay-lay").
  **When:** Born on October 23, 1940.
  **Where:** Três Corações, Minas Gerais, Brazil.
 
  As for whether he's still alive, the answer is yes! Pelé turned 83 in October 2023. Despite his advanced age, he remains a beloved figure in the world of soccer and beyond.</nowiki></small>
 
*根据你的知识以及以下的补充文档回答问题:贝利是谁?什么时候出生在哪里?现在还活着吗?
*文档一:
**2022年12月29日15时27分(北京时间12月30日凌晨2时27分),贝利因结肠癌引发多器官衰竭在巴西圣保罗逝世,享年82岁。
<small><nowiki>I apologize for my previous mistake! 🤦‍♂️ Based on the new information, I can answer your question accurately:
  **Who:** Edson Arantes do Nascimento, commonly known as Pelé.
  **When:** Born on October 23, 1940.
  **Where:** Três Corações, Minas Gerais, Brazil.
  As for whether he's still alive, the answer is no. According to the document you provided, Pelé passed away on December 29, 2022, at the age of 82 due to complications from colon cancer and multi-organ failure in São Paulo, Brazil.</nowiki></small>
*你的知识截止到什么时候?翻译成中文回答。
<small><nowiki>我的训练数据基于一大批到2023年的文本。我知识的截止日期是2022年12月31日。这意味着,我对世界,包括新闻、事件、科学发现和文化发展的理解,是到2022年12月31日为止的。但是我没有实时访问新的信息或更新,这些可能在2022年12月31日后发生。
  换言之,我了解世界,包括新闻、事件、科学发现和文化发展的知识是对到2022年12月31日为止的。然而,我不具有对新信息或更新后的实时访问能力。这是一个常见挑战,因为我们AI模型需要基于人类生成的内容和更新来保持最新。
  然而,我的训练数据提供了一个优秀的基础,让我回答问题、生成文本和参与到2022年的对话!</nowiki></small>
====Chat ====
<small><nowiki>>>> 下面是一段已知的对话,下面你是A,我是B,使用合适的语气和回答方式继续该对话。
... 对话:
... A:你今天看起来很高兴,发生了什么好事?
... B:是的,我刚刚得到一份来自梅西银行的工作通知书。
... A:哇,恭喜你!你打算什么时候开始工作?
... B:下个月开始,所以我现在正为这份工作做准备。
#
### llama3-8B ###
#
Let's continue the conversation:
A: So, you're preparing for the new job now. What are your top priorities in terms of preparation?
A: 那么,你现在正在为新工作做准备。您在准备方面的主要优先事项是什么?
(Your turn!)
>>> I want to buy a suitable set of clothes first.
我想先买一套合适的衣服。
A practical approach!
>>> Please continue
A: Ah, wise decision! You don't want to be late to the party with your new colleagues in terms of dressing professionally.
What's your style like? Are you more into modern and trendy or classic and conservative?
A: 实用方法! 对于专业着装,您不想在与新同事的聚会上迟到。 您的风格是什么样的? 您更喜欢现代时尚还是经典保守?
(Your turn!)
>>> Slightly conservative. Could you please give us some advice on how to choose?
略微保守一点。 你能就如何选择提供一些建议吗?
A: Ah, conservative with a touch of flair! I think that's a great approach.
Choosing the right outfit for your new job can be daunting, but here's what I'd suggest:
1. Read up on the company culture: Check out their website, social media, or ask colleagues about the dress code. Some
companies are super formal, while others are more relaxed.
2. Consider the industry norms: What do people in similar roles wear to work? You don't want to stand out too much for all
the wrong reasons.
3. Invest in quality over quantity: A few well-made, timeless pieces will serve you better than a bunch of cheap, trendy
items that might go out of style quickly.
4. Pay attention to fabric and texture: For a more conservative look, opt for high-quality fabrics like wool, cotton, or
silk.
What do you think? Any specific questions or concerns about dressing professionally for your new job?
A: 嗯,保守中带点特色! 我认为这是一个很棒的方法。
为新工作选择合适的衣服可能会让人望而生畏,但以下是我的一些建议:
1. 了解公司文化: 查看他们的网站、社交媒体或询问同事有关着装规定。 一些公司非常正式,而另一些则更放松。
2. 考虑行业规范: 类似职位的员工穿什么去上班? 你不想因为错误的原因而出众。
3. 投资质量而非数量: 几件制作精良、永不过时的衣服比一堆廉价的时尚物品更能满足您的需求,那些时尚物品可能很快就会过时。
4. 注意面料和纹理: 为了更加保守的外观,请选择优质面料,例如羊毛、棉或丝绸。
你怎么看? 对于新工作中的专业着装,您是否有任何特定问题或顾虑?
(Your turn!)
>>> Thanks, I don't think I have any more questions.
谢谢,我想我没有其他问题了。
You're welcome! It was my pleasure to help. I hope you find the perfect outfit and feel confident and prepared for your new
role at Méssi Bank!
Well, it looks like we've reached the end of our conversation. If you want to chat again or need any advice in the future,
just let me know!
不客气! 能帮到您我很高兴。 希望您能找到合适的衣服,并为自己在 Méssi 银行的新角色感到自信和准备!
那么,我们似乎已经结束了对话。 如果您想再次聊天或将来需要任何建议,请告诉我!
>>> Send a message (/? for help)</nowiki></small>


==参考==
==参考==

2024年8月6日 (二) 15:46的最新版本

Llama 是 meta 开源的一款大模型,开源不到一个月的时间就有 19.7K 的 star。2024 年 4 月 19 日,Meta 在官网上官宣了 Llama-3,作为继 Llama-1、Llama-2 和 Code-Llama 之后的第三代模型,Llama-3 在多个基准测试中实现了全面领先,性能优于业界同类最先进的模型。

  • Llama-1: 2023 年 2 月发布。有 7B、13B、30B 和 65B 四个参数量版本。Llama-1 各个参数量版本都在超过 1T token 的语料上进行了预训训练,模型上下文长度 2,048。其中,最大的 65B 参数的模型在 2,048 张 A100 80G GPU 上训练了近 21天,并在大多数基准测试中超越了具有 175B 参数的 GPT-3。因为开源协议问题,Llama-1 不可免费商用
  • Llama-2: 2023 年 7 月发布了免费可商用版本,有 7B、13B、34B 和 70B 四个参数量版本,除了 34B 模型外,其他均已开源。Llama-2 将预训练的语料扩充到了 2T token,模型上下文长度 4,096,词表大小为 32K。并引入了分组查询注意力机制(grouped-query attention, GQA)等技术。通过进一步的有监督微调(Supervised Fine-Tuning, SFT)、基于人类反馈的强化学习(Reinforcement Learning with Human Feedback, RLHF)等技术对模型进行迭代优化,发布了面向对话应用的微调系列模型 Llama-2 Chat。通过“预训练-有监督微调-基于人类反馈的强化学习”这一训练流程,Llama-2 Chat 不仅在众多基准测试中取得了更好的模型性能,同时在应用中也更加安全。Meta 在 2023 年 8 月发布了专注于代码生成的 Code-Llama,共有 7B、13B、34B 和 70B 四个参数量版本
  • Llama-3: 2024 年 4 月,Meta 正式发布了开源大模型 Llama 3,包括 8B 和 70B 两个参数量版本。400B 参数量的版本计划在 2024 年 7 月 23 日发布。Llama-3 支持 8K 长文本,并采用了一个编码效率更高的 tokenizer(sentencepiece -> tiktoken, GPT4 使用 tiktoken),词表大小为 128K。在预训练数据方面,Llama-3 使用了超过 15T token 的语料
  • Llama 3.1: 2024 年 7 月 24 日,Meta 正式发布新一代开源大模型 Llama 3.1 系列,提供 8B、70B 及 405B 参数版本。使用 1.6 万个 H100 GPU、以及超过 15T token 的公开数据进行训练。 架构方面,该模型选择标准的解码器 transformer 模型架构进行调整,而不是混合专家模型,以最大化训练稳定性。采用了迭代的后训练程序,每一轮使用监督微调和直接偏好优化。其上下文长度被提升至 128K,而模型参数也被提高到了 4050 亿规模,是近年来规模最大的大语言模型之一。该模型在通用常识、可引导性、数学、工具使用和多语言翻译等广泛任务中足以对标 GPT-4、Claude 3.5 Sonnet 等领先的闭源模型。

Llama3.1-405B.jpg

ollama 是为了快速部署 Llama 大模型而诞生的,目前在 https://ollama.com/library 列出了可以支持部署的 LLM。

Llama-3:8b(占用存储 4.7G) 在一台 6T CPU/12G RAM 主机上运行,单个 chat 会将全部 CPU 跑满,内存占用 0.5G。而此环境所能使用的最大模型是 llava:13b,这是一个 8G 的模型,使用中内存占用约 2G。llama3.1:70b(39G): Error: llama runner process has terminated: signal: aborted (core dumped)

Inst

Ollama

  • curl -fsSL https://ollama.com/install.sh | sh
  • ENV
    • export OLLAMA_HOST=127.0.0.1:30082 # 如果修改了默认端口(11434)
  • SETUP
  1. OLLAMA_MODELS: 模型文件存放目录
  2. OLLAMA_HOST: Ollama 服务监听的网络地址,默认为 127.0.0.1(0.0.0.0 允许外部网络访问)
  3. OLLAMA_PORT: Ollama 服务监听的默认端口,默认为 11434(修改后需要在环境变量 OLLAMA_HOST 指定)
  4. OLLAMA_ORIGINS: HTTP 客户端请求来源,半角逗号分隔列表,设置成星号,表示不受限制
  5. OLLAMA_KEEP_ALIVE: 大模型加载到内存中后的存活时间,默认为 300(s/m/h。0 = 处理请求响应后立即卸载模型,负数 = 一直存活)
  6. OLLAMA_NUM_PARALLEL: 请求处理并发数量,默认为 1,即单并发串行处理请求,可根据实际情况进行调整
  7. OLLAMA_MAX_QUEUE: 请求队列长度,默认值为 512,可以根据情况设置,超过队列长度请求被抛弃
  8. OLLAMA_DEBUG: 输出 Debug 日志标识,0/1 = 输出详细日志信息
  9. OLLAMA_MAX_LOADED_MODELS: 同时加载到内存中模型的数量,默认为 1
# /etc/systemd/system/ollama.service
[Service]
Environment="OLLAMA_HOST=0.0.0.0:30082"

systemctl daemon-reload
systemctl restart ollama
  • CMD
  1. ollama run ollama:8b # run model
  2. ollama ps # run model list
  3. ollama cp ollama:8b ollama:latest # rm model
  4. ollama rm ollama:8b # rm model
>>> Downloading ollama...
 ######################################################################## 100.0%#=#=#                                              ######################################################################## 100.0%
 >>> Installing ollama to /usr/local/bin...
 >>> Creating ollama user...
 >>> Adding ollama user to render group...
 >>> Adding ollama user to video group...
 >>> Adding current user to ollama group...
 >>> Creating ollama systemd service...
 >>> Enabling and starting ollama service...
 Created symlink /etc/systemd/system/default.target.wants/ollama.service → /etc/systemd/system/ollama.service.
 >>> The Ollama API is now available at 127.0.0.1:11434.
 >>> Install complete. Run "ollama" from the command line.
 WARNING: No NVIDIA/AMD GPU detected. Ollama will run in CPU-only mode.

MODEL

  • /usr/share/ollama/.ollama/models # Linux 存放下载的模型文件
  • ollama pull llama3 # pull, default 8B
  • ollama run llama3 # pull & run
  • ollama run llama3:70b
# ollama list
 NAME	ID	SIZE	MODIFIED 
 llama3:latest	365c0bd3c000	4.7 GB	5 minutes ago	
 
 # ollama pull llama3
 pulling manifest 
 pulling 6a0746a1ec1a...  84% ▕███████████████████████████████████████████████████████           ▏ 3.9 GB/4.7 GB   39 MB/s     21s
 ...
 pulling 6a0746a1ec1a... 100% ▕██████████████████████████████████████████████████████████████████▏ 4.7 GB                         
 pulling 4fa551d4f938... 100% ▕██████████████████████████████████████████████████████████████████▏  12 KB                         
 pulling 8ab4849b038c... 100% ▕██████████████████████████████████████████████████████████████████▏  254 B                         
 pulling 577073ffcc6c... 100% ▕██████████████████████████████████████████████████████████████████▏  110 B                         
 pulling 3f8eb4da87fa... 100% ▕██████████████████████████████████████████████████████████████████▏  485 B                         
 verifying sha256 digest 
 writing manifest 
 removing any unused layers 
 success

UI

ChatBox

Chatbox AI 是一款 AI 客户端应用和智能助手,支持众多先进的 AI 模型和 API,可在 Windows、MacOS、Android、iOS、Linux 和网页版上使用。

open-webui

Open WebUI is an extensible, feature-rich, and user-friendly self-hosted WebUI designed to operate entirely offline. It supports various LLM runners, including Ollama and OpenAI-compatible APIs.

提供 RAG 功能: 设置 - 个性化 - 记忆 (实验性):通过点击下方的“管理”按钮,你可以添加记忆,以个性化大语言模型的互动,使其更有用,更符合你的需求。

--> User 是一个 Java、Python、C、C++、SQL 软件开发人员。

事实上,通过发给 LLM 的信息中包含了这部分信息:

"userContext": "1. [2024-08-05]. User 是一个 Java、Python、C、C++、SQL 软件开发人员。\n",

Instructions

curl http://192.168.0.100:11434/api/generate -d '{
  "model": "llama3",
  "prompt": "Why is the sky blue?",
  "stream": false,
  "options": {
    "num_ctx": 4096
  }
}'

参数

  • model:(必填)模型名称
  • messages:聊天的消息,这可以用来保持聊天记忆,具有以下字段:
    • role:消息的角色,可以是 system、user 或 assistant
    • content:消息的内容
    • images(可选):要包含在消息中的图像列表(适用于多模态模型,如 llava)

高级参数(可选):

  • format:返回响应的格式。目前唯一接受的值是json
  • options:文档中列出的额外模型参数 Modelfile,如 temperature
  • stream:如果为 false,则响应将作为单个响应对象返回,而不是对象流
  • keep_alive:控制模型在请求后保持在内存中的时间(默认:5m)

模型文件格式

  1. GGUF(GPT-Generated Unified Format)是一种可扩展的二进制模型文件格式,是 GGML、GGMF 和 GGJT 的后继文件格式,可以在不破坏兼容性的情况下将新信息添加到模型中。GGUF 支持模型量化,可以将模型权重量化为较低位数的整数,降低模型大小和内存消耗,提高计算效率,同时平衡性能和精度。Quant method(浮点数的位数和量化的方式),如 Q3 表示 3 位量化
  2. Safetensors 是 HuggingFace推 出的一种新的模型存储格式。与传统的模型存储格式相比,Safetensors不包含执行代码,因此在加载模型时无需进行反序列化操作,从而实现更快的加载速度。Safetensors 只包含模型的权重参数,而执行代码则由加载模型的框架或库提供。

参考

  1. 梳理Llama开源家族:从Llama-1到Llama-3
  2. 在 Linux 上安装 Ollama
  3. Llama3-8B到底能不能打?实测对比