AI大模型工程化实践

背景介绍

AI大模型这两年可算是出尽风头,我们看看如何将大模型进行工程化,可以更近近距离感受下AI大模型。

引用软件

ollama

gradio

gemma:2b

实践过程

通过ollama私有化部署大模型gemma:2b

通过https://ollama.com/library根据需要查找需要部署的大模型,如qwen、llama。我找了一个参数较小的模型gemma:2b(需要计算资源较小,可以在我的GTX950M老显卡上做推理)

安装部署ollama(根据ollama官方指导安装就行)

远程拉取并启动大模型

ollama run gemma2:2b

可以通过pull拉取,暂不启动大模型

ollama pull gemma2:2b

注意:商业化部署,建议模型打包在镜像中启动,或者想办法部署ollama私有仓库(暂未实践)

访问大模型

大模型启动后即会进入交互式窗口,可以进行语言沟通或者图片解析

C:\Users\wangbin>ollama list
NAME         ID              SIZE      MODIFIED
gemma2:2b    8ccf136fdd52    1.6 GB    18 hours ago

C:\Users\wangbin>ollama ps
NAME         ID              SIZE      PROCESSOR    UNTIL
gemma2:2b    8ccf136fdd52    2.9 GB    100% GPU     4 minutes from now

C:\Users\wangbin>ollama run gemma2:2b
>>> 猫和狗有啥区别
猫和狗虽然都是家宠物,但它们在很多方面都有显著的不同:

**体型和外形:**

* **大小:** 猫通常比狗小得多,体型更轻盈。
* **耳朵形状:** 猫的耳朵通常是圆形或三角形,而狗的耳朵形状多样,从长方形到尖尖的耳廓。
* **尾巴:** 猫的尾巴通常是细长的,而狗的尾巴形状和长度多样,可以是短毛、长毛、卷曲等等。

**性格和行为:**

* **独立性:** 猫比狗更独立,喜欢独自活动和探索。
* **社交:** 狗更擅长与人交流并寻求互动,通常需要更多陪伴和情感交流。
* **好奇心:** 猫的好奇心强,喜欢探索世界,会经常进行攀爬和探索活动。
* **玩耍方式:** 猫喜欢玩耍的方式多样,例如捉弄玩具、跳跃等。狗则更喜欢玩耍需要配合主人,比如追球、Fetch 等。

**生活习性:**

* **饮食:** 猫的食谱是肉类为主,而狗的食物类型更加多样,可以是肉类、蔬菜等。
* **照顾:** 猫和狗都需要定期清洁和护理,但猫可能比狗更需要特殊照顾。
* **训练:**  猫通常比较容易训练,而狗则需要更多时间和耐心进行训练。

**其他:**

* **寿命:** 猫的寿命比狗长,平均寿命大约为13-17年,而狗的寿命则根据品种不同而有所变化。
* **繁殖:** 猫和狗的繁殖方式和大小也存在差异。

总而言之,猫和狗虽然都是可爱的宠物,但它们之间存在很多不同的特征,需要根据你的个人情况和喜好选择合适的宠物。

希望以上信息能够帮助你更好地了解猫和狗的区别!
>>> Send a message (/? for help)

解析一张图片(gemma看起来无法解析本地路径图片--可以解析,可以解析网络图片)


>>> https://images.google.com.hk/images/branding/googlelogo/2x/googlelogo_color_272x92dp.png
Ah, that's the Google logo! 😊

It shows Google's iconic white "G" with a colorful background.


Is there anything specific you wanted to know about the image?


Let me know what you want to discuss about it! 🗺 ️💻🔍


>>> Send a message (/? for help)

通过rest API和大模型交互

image.png

通过ollama sdk和大模型交互(在和gradio集成时比较有用)

from langchain_community.llms import Ollama
import gradio as gr

def sepia(input_img):
    print(type(input_img))
    print(input_img)
    llm = Ollama(model="gemma2:2b")
    result = llm.invoke(input_img)
    return result

demo = gr.Interface(sepia, gr.Image(type="filepath"), "text")
if __name__ == "__main__":
    demo.launch()

注意:ollama默认只监听localhost,先要远程访问api,需要修改环境变量
OLLAMA_HOST:0.0.0.0
OLLAMA_MODELS:D:\huggingface\ollama // 模型存放的位置

通过gradio部署大模型交互Web工程

生成交互式文本框

from langchain_community.llms import Ollama
import gradio as gr

def greet(name, intensity):
     llm = Ollama(model="gemma2:2b")
     result = llm.invoke(name)
     return result

demo = gr.Interface(
    fn=greet,
    inputs=["text", "slider"],
    outputs=["text"],
)

demo.launch()
企业微信截图_17283892012142.png

生成图文多模态交互

from langchain_community.llms import Ollama
import gradio as gr

def sepia(input_img):
    print(type(input_img))
    print(input_img)
    llm = Ollama(model="gemma2:2b")
    result = llm.invoke(input_img)
    return result

demo = gr.Interface(sepia, gr.Image(type="filepath"), "text")
if __name__ == "__main__":
    demo.launch()
image.png

注意:Image支持不同的类型(https://www.gradio.app/docs/gradio/image),选择filepath类型时,gradio会将图片写入一个临时文件,传入文件路径

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容