国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

開源模型應(yīng)用落地-工具使用篇-Ollama(六)

這篇具有很好參考價值的文章主要介紹了開源模型應(yīng)用落地-工具使用篇-Ollama(六)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

一、前言

? ? 在AI大模型百花齊放的時代,很多人都對新興技術(shù)充滿了熱情,都想嘗試一下。但是,實際上要入門AI技術(shù)的門檻非常高。除了需要高端設(shè)備,還需要面臨復(fù)雜的部署和安裝過程,這讓很多人望而卻步。不過,隨著開源技術(shù)的不斷進(jìn)步,使得入門AI變得越來越容易。通過使用Ollama,您可以快速體驗大語言模型的樂趣,不再需要擔(dān)心繁瑣的設(shè)置和安裝過程。


二、術(shù)語

2.1、Ollama

? ? 是一個強(qiáng)大的框架,用于在 Docker 容器中部署 LLM(大型語言模型)。它的主要功能是在 Docker 容器內(nèi)部署和管理 LLM 的促進(jìn)者,使該過程變得簡單。它可以幫助用戶快速在本地運行大模型,通過簡單的安裝指令,用戶可以執(zhí)行一條命令就在本地運行開源大型語言模型。

? ? Ollama 支持 GPU/CPU 混合模式運行,允許用戶根據(jù)自己的硬件條件(如 GPU、顯存、CPU 和內(nèi)存)選擇不同量化版本的大模型。它提供了一種方式,使得即使在沒有高性能 GPU 的設(shè)備上,也能夠運行大型模型。

2.2、Qwen1.5

? ? Qwen1.5 is the beta version of Qwen2, a transformer-based decoder-only language model pretrained on a large amount of data. In comparison with the previous released Qwen, the improvements include:

  • 6 model sizes, including 0.5B, 1.8B, 4B, 7B, 14B, and 72B;
  • Significant performance improvement in human preference for chat models;
  • Multilingual support of both base and chat models;
  • Stable support of 32K context length for models of all sizes
  • No need of trust_remote_code.

三、前置條件

3.1、Ollama安裝

? ? 下載地址:Download Ollama on macOS

? ?python ollama api,開源大語言模型-新手試煉,深度學(xué)習(xí)

? ? 支持macOS、Linux以及windows,此處以windows操作系統(tǒng)為例:

python ollama api,開源大語言模型-新手試煉,深度學(xué)習(xí)

? ? 點擊OllmaSetup.exe進(jìn)行安裝,當(dāng)前安裝版本為0.1.27

python ollama api,開源大語言模型-新手試煉,深度學(xué)習(xí)

? ? 安裝完成后,在C:\Users\用戶名\AppData\Local\Ollama目錄下,有Ollama的配置及日志文件

python ollama api,開源大語言模型-新手試煉,深度學(xué)習(xí)

? ? 也可以在右下角快速點開

? ??python ollama api,開源大語言模型-新手試煉,深度學(xué)習(xí)

? ? 查看版本

? ??python ollama api,開源大語言模型-新手試煉,深度學(xué)習(xí)


四、使用方式

4.1、運行Qwen1.5-1.8B-Chat模型

ollama run qwen:1.8b

python ollama api,開源大語言模型-新手試煉,深度學(xué)習(xí)

python ollama api,開源大語言模型-新手試煉,深度學(xué)習(xí)


五、測試

5.1、命令行方式測試

python ollama api,開源大語言模型-新手試煉,深度學(xué)習(xí)

5.2、代碼方式測試

? ?默認(rèn)Ollama api會監(jiān)聽11434端口,可以使用命令進(jìn)行查看

? ??

netstat -ano | findstr 11434

python ollama api,開源大語言模型-新手試煉,深度學(xué)習(xí)

? ? 安裝requests庫

pip install requests -i https://pypi.douban.com/simple
# -*-  coding = utf-8 -*-
import json
import sys
import traceback
import logging

#######################日志配置#######################
import requests
from requests.adapters import HTTPAdapter

logging.basicConfig(
    level=logging.INFO,
    format='%(asctime)s [%(levelname)s]: %(message)s',  # 指定日志輸出格式
    datefmt='%Y-%m-%d %H:%M:%S'  # 指定日期時間格式
)

# 創(chuàng)建一個日志記錄器
formatter = logging.Formatter('%(asctime)s [%(levelname)s]: %(message)s')  # 指定日志輸出格式
logger = logging.getLogger(__name__)
logger.setLevel(logging.INFO)

if sys.platform == "linux":
    # 創(chuàng)建一個文件處理器,將日志寫入到文件中
    file_handler = logging.FileHandler('/data/logs/app.log')
else:
    # 創(chuàng)建一個文件處理器,將日志寫入到文件中
    file_handler = logging.FileHandler('E:\\logs\\app.log')

file_handler.setFormatter(formatter)
# 創(chuàng)建一個控制臺處理器,將日志輸出到控制臺
# console_handler = logging.StreamHandler()
# console_handler.setFormatter(formatter)

# 將處理器添加到日志記錄器中
logger.addHandler(file_handler)
# logger.addHandler(console_handler)

DEFAULT_MODEL = "qwen:1.8b-chat"
DEFAULT_IP='127.0.0.1'
DEFAULT_PORT=11434
DEFAULT_MAX_TOKENS = 32768
DEFAULT_CONNECT_TIMEOUT=3
DEFAULT_REQUEST_TIMEOUT=60
DEFAULT_MAX_RETRIES=0
DEFAULT_POOLSIZE=100

class Model:
    def __init__(self):
        self.headers = {"User-Agent": "Test Client"}
        self.s = requests.Session()
        self.s.mount('http://', HTTPAdapter(pool_connections=DEFAULT_POOLSIZE, pool_maxsize=DEFAULT_POOLSIZE, max_retries=DEFAULT_MAX_RETRIES))
        self.s.mount('https://', HTTPAdapter(pool_connections=DEFAULT_POOLSIZE, pool_maxsize=DEFAULT_POOLSIZE, max_retries=DEFAULT_MAX_RETRIES))

    def chat(self, message, history=None, system=None, config=None, stream=True):
        if config is None:
            config = {'temperature': 0.45, 'top_p': 0.9, 'repetition_penalty': 1.2, 'max_tokens': DEFAULT_MAX_TOKENS,'n':1}
        logger.info(f'config: {config}')

        messages = []
        if system is not None:
            messages.append({"role": "system", "content": system})

        if history is not None:
            if len(history) > 0 and len(history) % 2 == 0:
                for his in history:
                    user,assistant = his

                    user_obj = {"role": "user", "content": user}
                    assistant_obj = {"role": "assistant", "content": assistant}

                    messages.append(user_obj)
                    messages.append(assistant_obj)

        if message is None:
            raise RuntimeError("prompt不能為空!")
        else:
            messages.append({"role": "user", "content": message})
        logger.info(messages)
        try:
            merge_pload = {"model": DEFAULT_MODEL, "messages": messages, **config}
            logger.info(merge_pload)

            response = self.s.post(f"http://{DEFAULT_IP}:{DEFAULT_PORT}/api/chat", headers=self.headers,
                                   json=merge_pload, stream=stream, timeout=(DEFAULT_CONNECT_TIMEOUT, DEFAULT_REQUEST_TIMEOUT))
            str = ''
            for msg in response:
                # logger.info(msg)
                if msg and len(msg) > 0:
                    decode_msg = msg.decode('UTF-8')
                    if '\n' in decode_msg :
                        if len(str) == 0:
                            obj = json.loads(decode_msg)
                            if 'message' in obj:
                                content = obj['message']['content']
                                if content is not None:
                                    yield content
                        else:
                            str = str + decode_msg
                            obj = json.loads(str)
                            if 'message' in obj:
                                content = obj['message']['content']
                                if content is not None:
                                    str=''
                                    yield content
                    else:
                        str = str + decode_msg
        except Exception as e:
            traceback.print_exc()


if __name__ == '__main__':
    model = Model()
    message = '我家有什么特產(chǎn)?'
    system = 'You are a helpful assistant.'
    history = [('hi,你好','你好!有什么我可以幫助你的嗎?'),('我家在廣州,很好玩哦','廣州是一個美麗的城市,有很多有趣的地方可以去。'),]
    config = {'temperature': 0.45, 'top_p': 0.9, 'repetition_penalty': 1.2, 'max_tokens': 8192}
    gen = model.chat(message=message, history=history, system=system, config=config, stream=True)
    results = []
    for value in gen:
        results.append(value)
    str = ''.join(results)
    logger.info(str)

? 模型參數(shù):

python ollama api,開源大語言模型-新手試煉,深度學(xué)習(xí)

?Ollama Api返回的數(shù)據(jù)格式以\n結(jié)尾,但由于流式返回,可能存在多行輸出再返回\n的情況:

python ollama api,開源大語言模型-新手試煉,深度學(xué)習(xí)

測試結(jié)果:

python ollama api,開源大語言模型-新手試煉,深度學(xué)習(xí)


六、附帶說明

6.1、各操作系統(tǒng)下的安裝步驟

? ? https://github.com/ollama/ollama

6.2、Ollama支持的模型庫

? ? https://ollama.com/library

? ??

6.3、運行各規(guī)格qwen模型的命令

https://registry.ollama.ai/library/qwen/tags

? ?python ollama api,開源大語言模型-新手試煉,深度學(xué)習(xí)

6.4、問題

python ollama api,開源大語言模型-新手試煉,深度學(xué)習(xí)

? # 重試幾次或者換另外規(guī)格的模型

6.5、代碼中傳遞給Ollama Api的模型參數(shù),要和運行的模型一致,即

python ollama api,開源大語言模型-新手試煉,深度學(xué)習(xí)

python ollama api,開源大語言模型-新手試煉,深度學(xué)習(xí)

6.6、Ollama常用命令

# list

python ollama api,開源大語言模型-新手試煉,深度學(xué)習(xí)

# show

python ollama api,開源大語言模型-新手試煉,深度學(xué)習(xí)

# delete

等等,可以查閱:https://github.com/ollama/ollama/blob/main/cmd/cmd.go文章來源地址http://www.zghlxwxcb.cn/news/detail-837306.html

到了這里,關(guān)于開源模型應(yīng)用落地-工具使用篇-Ollama(六)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 開源模型應(yīng)用落地-工具使用篇-向量數(shù)據(jù)庫(三)

    開源模型應(yīng)用落地-工具使用篇-向量數(shù)據(jù)庫(三)

    一、前言 ? ? 通過學(xué)習(xí)\\\"開源模型應(yīng)用落地\\\"系列文章,我們成功地建立了一個完整可實施的AI交付流程。現(xiàn)在,我們要引入向量數(shù)據(jù)庫,作為我們AI服務(wù)的二級緩存。本文將詳細(xì)介紹如何使用Milvus Lite來為我們的AI服務(wù)部署一個前置緩存。 二、術(shù)語 2.1、向量數(shù)據(jù)庫 ? ? 向量數(shù)

    2024年02月19日
    瀏覽(89)
  • 開源模型應(yīng)用落地-工具使用篇-Spring AI-高階用法(九)

    開源模型應(yīng)用落地-工具使用篇-Spring AI-高階用法(九)

    一、前言 ? ? 通過“開源模型應(yīng)用落地-工具使用篇-Spring AI-Function Call(八)-CSDN博客”文章的學(xué)習(xí),已經(jīng)掌握了如何通過Spring AI集成OpenAI以及如何進(jìn)行function call的調(diào)用,現(xiàn)在將進(jìn)一步學(xué)習(xí)Spring AI更高階的用法,如:傳遞歷史上下文對話,調(diào)整模型參數(shù)等。 二、術(shù)語 2.1、Sp

    2024年03月12日
    瀏覽(27)
  • 如何在本地使用Ollama運行開源LLMs

    如何在本地使用Ollama運行開源LLMs

    本文將指導(dǎo)您下載并使用Ollama,在您的本地設(shè)備上與開源大型語言模型(LLMs)進(jìn)行交互的強(qiáng)大工具。 與像ChatGPT這樣的閉源模型不同,Ollama提供透明度和定制性,使其成為開發(fā)人員和愛好者的寶貴資源。 我們將探索如何下載Ollama并與兩個令人興奮的開源LLM模型進(jìn)行交互:Me

    2024年04月27日
    瀏覽(20)
  • 開源模型應(yīng)用落地-工具使用篇-Spring AI-Function Call(八)

    開源模型應(yīng)用落地-工具使用篇-Spring AI-Function Call(八)

    ? ? 通過“開源模型應(yīng)用落地-工具使用篇-Spring AI(七)-CSDN博客”文章的學(xué)習(xí),已經(jīng)掌握了如何通過Spring AI集成OpenAI和Ollama系列的模型,現(xiàn)在將通過進(jìn)一步的學(xué)習(xí),讓Spring AI集成大語言模型更高階的用法,使得我們能完成更復(fù)雜的需求。 ? 是 Spring 生態(tài)系統(tǒng)的一個新項目,它

    2024年03月14日
    瀏覽(27)
  • 小白Windows下通過Ollama部署使用本地模型

    小白Windows下通過Ollama部署使用本地模型

    運行環(huán)境為 windows R9000P2021拯救者筆記本 AMD R7-5800H 32G 內(nèi)存 NVIDIA RTX 3070 Laptop GPU Ollama下載exe,直接下一步下一步?jīng)]有設(shè)置可以更改 windows默認(rèn)安裝路徑: C:UserswbigoAppDataLocalProgramsOllama 安裝后會自動將該路徑加入環(huán)境變量 雙擊圖標(biāo)運行后狀態(tài)欄會出現(xiàn)小圖標(biāo),右鍵有退出、

    2024年03月13日
    瀏覽(24)
  • 使用Ollama在本地運行AI大模型gemma

    使用Ollama在本地運行AI大模型gemma

    本次本人用到的軟件匯總:百度網(wǎng)盤下載 https://github.com/ollama/ollama/releases 我的電腦-右鍵-屬性-系統(tǒng)-高級系統(tǒng)設(shè)置-環(huán)境變量-【系統(tǒng)環(huán)境變量】新建 變量名:OLLAMA_MODELS (固定變量名) 變量值:E:OllamaLib (寫自己要存放的路徑) 先配置好這個變量,這個是ollama的存儲路徑。

    2024年04月25日
    瀏覽(31)
  • 使用Docker簡化ollama大模型與mistral模型的集成流程

    引言: 在機(jī)器學(xué)習(xí)和人工智能領(lǐng)域,ollama提供了一個強(qiáng)大的大模型框架,而mistral則是一個用于構(gòu)建、訓(xùn)練和部署機(jī)器學(xué)習(xí)模型的平臺。當(dāng)這兩個工具結(jié)合在一起時,可以極大地提高開發(fā)者處理復(fù)雜機(jī)器學(xué)習(xí)任務(wù)的效率。然而,安裝和配置這些工具可能會比較復(fù)雜,尤其是在

    2024年04月25日
    瀏覽(18)
  • 使用 ollama 部署最新的Llama 3 70B本地模型

    使用 ollama 部署最新的Llama 3 70B本地模型

    在本地啟動并運行大型語言模型。運行Llama 3,Mistral, Gemma, Code Llama和其他模型。自定義并創(chuàng)建您自己的。 綜合優(yōu)點: 快速下載+容器自動運行大模型,現(xiàn)在下載,馬上上手。 本地利用 cpu 運行大模型,本地安全可靠。 ollama 命令,管理大模型相對方便,也可以多個大模型中切

    2024年04月25日
    瀏覽(23)
  • AIGC 實戰(zhàn):如何使用 Ollama 開發(fā)自定義的大模型(LLM)

    雖然 Ollama 提供了運行和交互式使用大型語言模型(LLM)的功能,但從頭開始創(chuàng)建完全定制化的 LLM 需要 Ollama 之外的其他工具和專業(yè)知識。然而,Ollama 可以通過微調(diào)在定制過程中發(fā)揮作用。以下是細(xì)分說明: 預(yù)訓(xùn)練模型選擇: Ollama 提供了一個預(yù)訓(xùn)練的開源 LLM 庫,例如 Ll

    2024年03月10日
    瀏覽(24)
  • 自定義數(shù)據(jù)集使用llama_factory微調(diào)模型并導(dǎo)入ollama

    自定義數(shù)據(jù)集使用llama_factory微調(diào)模型并導(dǎo)入ollama

    本文所有操作均在linux系統(tǒng)下完成 參考github的安裝命令 參考github,使用以下命令啟動LLaMA Factory web頁面:(web ui界面只支持單卡運行,如需多卡微調(diào)請參考github相關(guān)部分) 此外可以選擇模型下載源,這里推薦國內(nèi)用戶使用魔搭社區(qū)下載渠道。 ?成功啟動后會進(jìn)入web操作界面:

    2024年04月26日
    瀏覽(25)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包