前言
如果您想在localhost
部署并运行开源大模型,可以试试Ollama
。本文我们将使用Ollama
部署,并通过API的方式调用大模型。
安装
Ollama
提供了python和js两种开发包,对前端开发者挺友好的,用它!
pip install ollama
npm install ollama
应用场景
-
聊天接口
-
多模态
模型
我们可以通过 library (ollama.com) 查看Ollama
支持的模型清单,有gemma
、llama2
、mistral
、mixtral
等,非常的丰富。
比如我们要使用的开源模型是llama2
, 我们可以使用如下代码下载(首次)并运行模型
# 拉取模型
ollama pull llama2
# 运行模型
ollama run llama2
接口
如果我们使用过openai
的一些接口, 那么就了解文本补全、聊天、嵌入等。ollama
提供了REST API来提供了请求接口。
- 生成式接口
curl http://localhost:11434/api/generate -d '{
"model": "llama2",
"prompt":"Why is the sky blue?"
}'
- 聊天接口
curl http://localhost:11434/api/chat -d '{
"model": "mistral",
"messages": [
{ "role": "user", "content": "why is the sky blue?" }
]
}'
- 嵌入
curl http://localhost:11434/api/embeddings -d '{
"model": "all-minilm",
"prompt": "Here is an article about llamas..."
}'
实战
我们将结合Streamlit
和Ollama
,开发一个聊天应用。
Streamlit是一款Web开发框架,适用于python快速完成一些大模型、数学科学计算的UI开发。
我们还会用到 Build a ChatGPT-like App | Streamlit代码快速构建类chatgpt应用。
# 引入streamlit UI库
import streamlit as st
# 引入 ollama
import ollama
# 获取ollama的模型列表
model_list = ollama.list()
# 设置默认模型名字为 llama2:7b-chat
if "model_name" not in st.session_state:
st.session_state["model_name"] = "llama2:7b-chat"
# 初始化聊天信息数组
if "messages" not in st.session_state:
st.session_state.messages = []
# 设置边栏
with st.sidebar:
# 侧边栏的标题
st.subheader("Settings")
# 下拉框 选择模型, 默认选中llama2
option = st.selectbox(
'Select a model',
[model['name'] for model in model_list['models']])
st.write('You selected:', option)
st.session_state["model_name"] = option
# 页面标题 与llama聊天
st.title(f"Chat with {st.session_state['model_name']}")
# 遍历聊天数组
for message in st.session_state.messages:
# 根据角色
with st.chat_message(message["role"]):
# 输出内容
st.markdown(message["content"])
if prompt := st.chat_input("What is up?"):
st.session_state.messages.append({"role": "user", "content": prompt})
with st.chat_message("user"):
st.markdown(prompt)
with st.chat_message("assistant"):
# 大模型返回后就清空输入框
message_placeholder = st.empty()
full_response = ""
for chunk in ollama.chat(
model=st.session_state["model_name"],
messages=[
{"role": m["role"], "content": m["content"]}
for m in st.session_state.messages
],
# 逐渐打出
stream=True,
):
if 'message' in chunk and 'content' in chunk['message']:
full_response += (chunk['message']['content'] or "")
message_placeholder.markdown(full_response + "▌")
message_placeholder.markdown(full_response)
st.session_state.messages.append({"role": "assistant", "content": full_response})
- 拉取模型
ollama pull
除了llama2
, 我们再拉取下orca-mini
- 列出当前所有模型
ollama list
- 运行streamlit
streamlit run app.py
总结
Ollama
在本地部署开源大模型,真心方便且靠谱。 我在红米老爷机上运行了, 可以。- 结合streamlit 快速将Web搭建了出来。
那么,如何系统的去学习大模型LLM?
我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。
作为一名热心肠的互联网老兵,我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。
但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。
所有资料 ⚡️ ,朋友们如果有需要全套 《LLM大模型入门+进阶学习资源包》,扫码获取~
篇幅有限,部分资料如下:
👉LLM大模型学习指南+路线汇总👈
💥大模型入门要点,扫盲必看!
💥既然要系统的学习大模型,那么学习路线是必不可少的,这份路线能帮助你快速梳理知识,形成自己的体系。
路线图很大就不一一展示了 (文末领取)
👉大模型入门实战训练👈
💥光学理论是没用的,要学会跟着一起做,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。
👉国内企业大模型落地应用案例👈
💥两本《中国大模型落地应用案例集》 收录了近两年151个优秀的大模型落地应用案例,这些案例覆盖了金融、医疗、教育、交通、制造等众多领域,无论是对于大模型技术的研究者,还是对于希望了解大模型技术在实际业务中如何应用的业内人士,都具有很高的参考价值。 (文末领取)
👉GitHub海量高星开源项目👈
💥收集整理了海量的开源项目,地址、代码、文档等等全都下载共享给大家一起学习!
👉LLM大模型学习视频👈
💥观看零基础学习书籍和视频,看书籍和视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。 (文末领取)
👉640份大模型行业报告(持续更新)👈
💥包含640份报告的合集,涵盖了AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,这套报告合集都将为您提供宝贵的信息和启示。
👉获取方式:
这份完整版的大模型 LLM 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费
】
😝有需要的小伙伴,可以Vx扫描下方二维码免费领取🆓