Ollama:修订间差异

来自牛奶河Wiki
跳到导航 跳到搜索
→‎Inst
→‎Inst
第40行: 第40行:
# ollama list
# ollama list
NAME ID SIZE MODIFIED  
NAME ID SIZE MODIFIED  
llama3:latest 365c0bd3c000 4.7 GB 5 minutes ago


# ollama pull llama3
# ollama pull llama3

2024年7月17日 (三) 15:37的版本

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 的语料

ollama 是为了快速部署 Llama 大模型而诞生的,在一台普通的 PC 上只需要傻瓜式安装软件即可轻松使用本地大模型 Llama 3。

下面的 example 在一台 6PCPU/8G RAM 主机上运行,单个 chat 会将 CPU 全部跑满。

Inst

  • >>>curl -fsSL https://ollama.com/install.sh | sh>>>
  • MODEL
    • ollama pull llama3 # default 8B
    • ollama run llama3
    • ollama run llama3:70b
  • ENV
    • export OLLAMA_HOST=127.0.0.1:30082 # 如果修改了默认端口, default Port: 11434
    • /usr/share/ollama/.ollama/models # 存放下载的模型文件
    • /etc/systemd/system/ollama.service # setup
[Service]
Environment="OLLAMA_HOST=0.0.0.0:30082"

systemctl daemon-reload
systemctl restart ollama
>>> 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.

# 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

Service

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)

Example

RAG

  • 贝利是谁?什么时候出生在哪里?现在还活着吗?
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.
  • 根据你的知识以及以下的补充文档回答问题:贝利是谁?什么时候出生在哪里?现在还活着吗?
  • 文档一:
    • 2022年12月29日15时27分(北京时间12月30日凌晨2时27分),贝利因结肠癌引发多器官衰竭在巴西圣保罗逝世,享年82岁。
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.
  • 你的知识截止到什么时候?翻译成中文回答。
我的训练数据基于一大批到2023年的文本。我知识的截止日期是2022年12月31日。这意味着,我对世界,包括新闻、事件、科学发现和文化发展的理解,是到2022年12月31日为止的。但是我没有实时访问新的信息或更新,这些可能在2022年12月31日后发生。
 换言之,我了解世界,包括新闻、事件、科学发现和文化发展的知识是对到2022年12月31日为止的。然而,我不具有对新信息或更新后的实时访问能力。这是一个常见挑战,因为我们AI模型需要基于人类生成的内容和更新来保持最新。
 然而,我的训练数据提供了一个优秀的基础,让我回答问题、生成文本和参与到2022年的对话!

Chat

>>> 下面是一段已知的对话,下面你是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)

参考

  1. 梳理Llama开源家族:从Llama-1到Llama-3
  2. 在 Linux 上安装 Ollama