当前位置:   article > 正文

本地部署Llama3-8B并测试_ollama 使用meta-llama-3-8b

ollama 使用meta-llama-3-8b

参考:
https://blog.csdn.net/weixin_44455388/article/details/137949637
https://blog.csdn.net/2301_81940605/article/details/138146641
https://ollama.com/download/windows
https://zhuanlan.zhihu.com/p/693709267
https://github.com/ollama/ollama/blob/main/examples/python-simplechat/client.py

背景介绍
当地时间4月18日,Meta开源了Llama3大模型,目前开源版本为8B和70B。

性能介绍
Llama 3模型相比Llama 2具有重大飞跃,并在8B和70B参数尺度上建立了LLM模型的新技术。由于预训练和后训练的改进,Llama3模型是目前在8B和70B参数尺度上存在的最好的模型。训练后程序的改进大大降低了错误拒绝率,改善了一致性,增加了模型响应的多样性。我们还看到了推理、代码生成和指令跟踪等功能的极大改进,使Llama 3更具可操控性。

80 亿参数模型与 Gemma 7B 和 Mistral 7B Instruct 等模型相比在 MMLU、GPQA、HumanEval 等多项基准上均有更好表现。而 700 亿参数模型则超越了闭源超级明星大模型 Claude 3 Sonnet,且与谷歌的 Gemini Pro 1.5 在性能上不相上下。

安装办法:
(1)下载llama:
地址:https://ollama.com/download/windows
(2)下载之后打开,直接点击Next以及Install安装ollama到命令行。安装完成后界面上会提示ollama run llama2,不需要执行这条命令,因为我们要安装llama3。
(3)由于Ollama的模型默认会在C盘用户文件夹下的.ollama/models文件夹中, 为了修改模型路径,我们先配置环境变量OLLAMA_MODELS,设置为自己指定的路径
(4)打开新的终端/命令行窗口,执行以下命令:
ollama run llama3
程序会自动下载Llama3的模型文件,默认是8B,也就80亿参数版本,个人电脑完全可以运行。
成功下载模型后会进入交互界面,我们可以直接在终端进行提问,比如笔者问的Who are you?,Llama3几乎是秒回答。
(5)使用(安装后自动启动11434端口,可以通过web方式调用)
使用熟悉的语言调用;
自己构建web页面调用;
下载开源的web页面调用;

import json
import requests

# NOTE: ollama must be running for this to work, start the ollama app or run `ollama serve`
# model = "llama2"  # TODO: update this for whatever model you wish to use
model = "llama3"  # TODO: update this for whatever model you wish to use


def chat(messages):
    r = requests.post(
        "http://localhost:11434/api/chat",
        json={"model": model, "messages": messages, "stream": True},
    )
    r.raise_for_status()
    output = ""

    for line in r.iter_lines():
        body = json.loads(line)
        if "error" in body:
            raise Exception(body["error"])
        if body.get("done") is False:
            message = body.get("message", "")
            content = message.get("content", "")
            output += content
            # the response streams one token at a time, print that as we receive it
            print(content, end="", flush=True)

        if body.get("done", False):
            message["content"] = output
            return message


def main():
    messages = []

    while True:
        user_input = input("Enter a prompt: ")
        if not user_input:
            exit()
        print()
        messages.append({"role": "user", "content": user_input})
        message = chat(messages)
        messages.append(message)
        print("\n\n")


if __name__ == "__main__":
    main()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/IT小白/article/detail/620578
推荐阅读
相关标签
  

闽ICP备14008679号