赞
踩
普通电脑配置即可本地运行大模型,本地部署LLM最简单的方法
Ollama是一个开源框架,专门设计用于在本地运行大型语言模型(LLM)。它的主要功能是在Docker容器中部署和管理LLM,使得在本地运行大模型的过程变得非常简单。Ollama通过简单的安装指令,允许用户执行一条命令就能在本地运行开源大型语言模型,例如Llama 2。
Ollama的特点包括:
Ollama支持的平台包括Mac、Linux和Windows,并提供了Docker镜像。对于Mac和Windows用户,可以直接下载安装包进行安装。Linux用户则可以通过一键安装命令进行安装。
使用Ollama后,用户可以在本地机器上轻松构建和管理LLMs,访问和运行一系列预构建的模型,或者导入和定制自己的模型,无需关注复杂的底层实现细节。这为希望在本地环境中探索和开发基于LLM的应用的开发者提供了便利。
Phi-2是微软发布的一款小型语言模型,它拥有27亿参数,相比于其他大型语言模型(LLM)如GPT-3的1750亿参数,Phi-2的参数更少,训练更快。尽管规模较小,Phi-2在多个基准测试中展现出了卓越的性能,这些测试评估了模型在推理、语言理解、数学、编码和常识能力方面的表现。
Phi-2是基于Transformer架构的,它在处理NLP和编码领域的综合合成数据集和Web数据集时,共训练了1.4T个令牌。该模型在96个A100 GPU上训练了14天。值得注意的是,Phi-2没有经过基于人类反馈的增强学习(RLHF)的校准,也没有进行指导性的微调。在评估中,Phi-2在复杂的多步推理任务中优于规模大25倍的模型,甚至在某些测试中超过了Google最近发布的Gemini Nano 2的性能。
Phi-2的训练数据包括专门用于教授模型常识推理和通识知识的合成数据集,以及经过精心挑选和过滤的Web数据。这些数据的选择侧重于教育价值和内容质量,以提高模型的性能和安全性。
Phi-2的局限性包括生成不准确的代码和事实、对指令的不可靠响应、语言限制,以及潜在的社会偏见。因此,尽管Phi-2可用于各种研究,如可解释性、安全性改进或微调实验,但在使用时需要保持谨慎和批判性思维。Phi-2只能用于研究目的,不支持商业用途。
下载ollama
安装后打开ollama
终端中使用命令操作即可
ollama run llama2
ollama run phi:2.7b-chat-v2-fp16
以下是一些Ollama常用命令:
ollama run <model_name>
:运行指定名称的模型。例如,ollama run llama2
会启动Llama 2模型。
ollama list
:列出所有可用的模型。
ollama show <model_name>
:显示指定模型的详细信息。
ollama create <model_name>
:从一个Modelfile创建一个新模型。
ollama pull <model_name>
:从模型注册表中拉取指定模型。
ollama push <model_name>
:将指定模型推送到模型注册表。
ollama cp <source_model> <destination_model>
:复制一个模型到另一个模型。
ollama rm <model_name>
:删除指定模型。
使用python调用api,方便实现各种功能的AI化,比如linux错误日志询问等等。
#!/usr/bin/python3 #coding: utf-8 import json import requests model = "llama3" 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 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()
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。