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

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

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

一、前言

? ? 在AI大模型百花齊放的時(shí)代,很多人都對新興技術(shù)充滿了熱情,都想嘗試一下。但是,實(shí)際上要入門AI技術(shù)的門檻非常高。除了需要高端設(shè)備,還需要面臨復(fù)雜的部署和安裝過程,這讓很多人望而卻步。不過,隨著開源技術(shù)的不斷進(jìn)步,使得入門AI變得越來越容易。通過使用Ollama,您可以快速體驗(yàn)大語言模型的樂趣,不再需要擔(dān)心繁瑣的設(shè)置和安裝過程。另外,通過集成Spring AI,讓更多Java愛好者能便捷的將AI能力集成到項(xiàng)目中,接下來,跟隨我的腳步,一起來體驗(yàn)一把。


二、術(shù)語

2.1、Spring AI

? ? 是 Spring 生態(tài)系統(tǒng)的一個(gè)新項(xiàng)目,它簡化了 Java 中 AI 應(yīng)用程序的創(chuàng)建。它提供以下功能:

  • 支持所有主要模型提供商,例如 OpenAI、Microsoft、Amazon、Google 和 Huggingface。
  • 支持的模型類型包括“聊天”和“文本到圖像”,還有更多模型類型正在開發(fā)中。
  • 跨 AI 提供商的可移植 API,用于聊天和嵌入模型。
  • 支持同步和流 API 選項(xiàng)。
  • 支持下拉訪問模型特定功能。
  • AI 模型輸出到 POJO 的映射。

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

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


三、前置條件

3.1、JDK 17+

? ? 下載地址:https://www.oracle.com/java/technologies/downloads/#jdk17-windows

? ??開源模型應(yīng)用落地-工具使用篇-Spring AI(七),開源大語言模型-新手試煉,深度學(xué)習(xí),spring

? ? 類文件具有錯誤的版本 61.0, 應(yīng)為 52.0

3.2、創(chuàng)建Maven項(xiàng)目

? ? SpringBoot版本為3.2.3

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>3.2.3</version>
    <relativePath/> <!-- lookup parent from repository -->
</parent>

3.3、導(dǎo)入Maven依賴包

<dependency>
	<groupId>org.projectlombok</groupId>
	<artifactId>lombok</artifactId>
	<optional>true</optional>
</dependency>

<dependency>
	<groupId>ch.qos.logback</groupId>
	<artifactId>logback-core</artifactId>
</dependency>

<dependency>
	<groupId>ch.qos.logback</groupId>
	<artifactId>logback-classic</artifactId>
</dependency>

<dependency>
	<groupId>cn.hutool</groupId>
	<artifactId>hutool-core</artifactId>
	<version>5.8.24</version>
</dependency>

<dependency>
	<groupId>org.springframework.ai</groupId>
	<artifactId>spring-ai-openai-spring-boot-starter</artifactId>
	<version>0.8.0</version>
</dependency>

<dependency>
	<groupId>org.springframework.ai</groupId>
	<artifactId>spring-ai-ollama-spring-boot-starter</artifactId>
	<version>0.8.0</version>
</dependency>

3.4、 科學(xué)上網(wǎng)的軟件

3.5、 安裝Ollama及部署Qwen模型

? ? 參見:開源模型應(yīng)用落地-工具使用篇-Ollama(六)-CSDN博客


四、技術(shù)實(shí)現(xiàn)

4.1、調(diào)用Open AI

4.1.1、非流式調(diào)用

@RequestMapping("/chat")
public String chat(){
	String systemPrompt = "{prompt}";
	SystemPromptTemplate systemPromptTemplate = new SystemPromptTemplate(systemPrompt);

	String userPrompt = "廣州有什么特產(chǎn)?";
	Message userMessage = new UserMessage(userPrompt);

	Message systemMessage = systemPromptTemplate.createMessage(MapUtil.of("prompt", "you are a helpful AI assistant"));

	Prompt prompt = new Prompt(List.of(userMessage, systemMessage));

	List<Generation> response = openAiChatClient.call(prompt).getResults();

	String result = "";

	for (Generation generation : response){
		String content = generation.getOutput().getContent();
		result += content;
	}

	return result;
}

? ? 調(diào)用結(jié)果:

? ??開源模型應(yīng)用落地-工具使用篇-Spring AI(七),開源大語言模型-新手試煉,深度學(xué)習(xí),spring

4.1.2、流式調(diào)用

@RequestMapping("/stream")
public SseEmitter stream(HttpServletResponse response){
	response.setContentType("text/event-stream");
	response.setCharacterEncoding("UTF-8");
	SseEmitter emitter = new SseEmitter();


	String systemPrompt = "{prompt}";
	SystemPromptTemplate systemPromptTemplate = new SystemPromptTemplate(systemPrompt);

	String userPrompt = "廣州有什么特產(chǎn)?";
	Message userMessage = new UserMessage(userPrompt);

	Message systemMessage = systemPromptTemplate.createMessage(MapUtil.of("prompt", "you are a helpful AI assistant"));
	Prompt prompt = new Prompt(List.of(userMessage, systemMessage));

	openAiChatClient.stream(prompt).subscribe(x -> {
		try {
			log.info("response: {}",x);
			List<Generation> generations = x.getResults();
			if(CollUtil.isNotEmpty(generations)){
				for(Generation generation:generations){
				   AssistantMessage assistantMessage =  generation.getOutput();
					String content = assistantMessage.getContent();
					if(StringUtils.isNotEmpty(content)){
						emitter.send(content);
					}else{
						if(StringUtils.equals(content,"null"))
						emitter.complete(); // Complete the SSE connection
					}
				}
			}


		} catch (Exception e) {
			emitter.complete();
			log.error("流式返回結(jié)果異常",e);
		}
	});

	return emitter;
}

流式輸出返回的數(shù)據(jù)結(jié)構(gòu):

開源模型應(yīng)用落地-工具使用篇-Spring AI(七),開源大語言模型-新手試煉,深度學(xué)習(xí),spring

? ? 調(diào)用結(jié)果:

開源模型應(yīng)用落地-工具使用篇-Spring AI(七),開源大語言模型-新手試煉,深度學(xué)習(xí),spring

?開源模型應(yīng)用落地-工具使用篇-Spring AI(七),開源大語言模型-新手試煉,深度學(xué)習(xí),spring

4.2、調(diào)用Ollama API

Spring封裝的很好,基本和調(diào)用OpenAI的代碼一致

4.2.1、非流式調(diào)用

@RequestMapping("/chat")
public String chat(){
	String systemPrompt = "{prompt}";
	SystemPromptTemplate systemPromptTemplate = new SystemPromptTemplate(systemPrompt);

	String userPrompt = "廣州有什么特產(chǎn)?";
	Message userMessage = new UserMessage(userPrompt);

	Message systemMessage = systemPromptTemplate.createMessage(MapUtil.of("prompt", "you are a helpful AI assistant"));

	Prompt prompt = new Prompt(List.of(userMessage, systemMessage));

	List<Generation> response = ollamaChatClient.call(prompt).getResults();

	String result = "";

	for (Generation generation : response){
		String content = generation.getOutput().getContent();
		result += content;
	}

	return result;
}

調(diào)用結(jié)果:

Ollam的server.log輸出

開源模型應(yīng)用落地-工具使用篇-Spring AI(七),開源大語言模型-新手試煉,深度學(xué)習(xí),spring

開源模型應(yīng)用落地-工具使用篇-Spring AI(七),開源大語言模型-新手試煉,深度學(xué)習(xí),spring

4.2.2、流式調(diào)用

@RequestMapping("/stream")
public SseEmitter stream(HttpServletResponse response){
	response.setContentType("text/event-stream");
	response.setCharacterEncoding("UTF-8");
	SseEmitter emitter = new SseEmitter();


	String systemPrompt = "{prompt}";
	SystemPromptTemplate systemPromptTemplate = new SystemPromptTemplate(systemPrompt);

	String userPrompt = "廣州有什么特產(chǎn)?";
	Message userMessage = new UserMessage(userPrompt);

	Message systemMessage = systemPromptTemplate.createMessage(MapUtil.of("prompt", "you are a helpful AI assistant"));
	Prompt prompt = new Prompt(List.of(userMessage, systemMessage));

	ollamaChatClient.stream(prompt).subscribe(x -> {
		try {
			log.info("response: {}",x);
			List<Generation> generations = x.getResults();
			if(CollUtil.isNotEmpty(generations)){
				for(Generation generation:generations){
					AssistantMessage assistantMessage =  generation.getOutput();
					String content = assistantMessage.getContent();
					if(StringUtils.isNotEmpty(content)){
						emitter.send(content);
					}else{
						if(StringUtils.equals(content,"null"))
							emitter.complete(); // Complete the SSE connection
					}
				}
			}


		} catch (Exception e) {
			emitter.complete();
			log.error("流式返回結(jié)果異常",e);
		}
	});

	return emitter;
}

調(diào)用結(jié)果:

開源模型應(yīng)用落地-工具使用篇-Spring AI(七),開源大語言模型-新手試煉,深度學(xué)習(xí),spring

開源模型應(yīng)用落地-工具使用篇-Spring AI(七),開源大語言模型-新手試煉,深度學(xué)習(xí),spring


五、附帶說明

5.1、OpenAiChatClient默認(rèn)使用gpt-3.5-turbo模型

開源模型應(yīng)用落地-工具使用篇-Spring AI(七),開源大語言模型-新手試煉,深度學(xué)習(xí),spring

5.2、流式輸出如何關(guān)閉連接

? ? 不能判斷是否為''(即空字符串),以下代碼將提前關(guān)閉連接

開源模型應(yīng)用落地-工具使用篇-Spring AI(七),開源大語言模型-新手試煉,深度學(xué)習(xí),spring

? ? 流式輸出會返回''的情況

開源模型應(yīng)用落地-工具使用篇-Spring AI(七),開源大語言模型-新手試煉,深度學(xué)習(xí),spring

? ? ? 應(yīng)該在返回內(nèi)容為字符串null的時(shí)候關(guān)閉開源模型應(yīng)用落地-工具使用篇-Spring AI(七),開源大語言模型-新手試煉,深度學(xué)習(xí),spring

開源模型應(yīng)用落地-工具使用篇-Spring AI(七),開源大語言模型-新手試煉,深度學(xué)習(xí),spring

5.3、配置文件中指定的Ollama的模型參數(shù),要和運(yùn)行的模型一致,即

開源模型應(yīng)用落地-工具使用篇-Spring AI(七),開源大語言模型-新手試煉,深度學(xué)習(xí),spring

開源模型應(yīng)用落地-工具使用篇-Spring AI(七),開源大語言模型-新手試煉,深度學(xué)習(xí),spring

5.4、OpenAI調(diào)用完整代碼

import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.map.MapUtil;
import jakarta.servlet.http.HttpServletResponse;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.ai.chat.Generation;
import org.springframework.ai.chat.messages.AssistantMessage;
import org.springframework.ai.chat.messages.Message;
import org.springframework.ai.chat.messages.UserMessage;
import org.springframework.ai.chat.prompt.Prompt;
import org.springframework.ai.chat.prompt.SystemPromptTemplate;
import org.springframework.ai.openai.OpenAiChatClient;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.servlet.mvc.method.annotation.SseEmitter;

import java.util.List;

@Slf4j
@RestController
@RequestMapping("/api")
public class OpenaiTestController {
    @Autowired
    private OpenAiChatClient openAiChatClient;

//    http://localhost:7777/api/chat
    @RequestMapping("/chat")
    public String chat(){
        String systemPrompt = "{prompt}";
        SystemPromptTemplate systemPromptTemplate = new SystemPromptTemplate(systemPrompt);

        String userPrompt = "廣州有什么特產(chǎn)?";
        Message userMessage = new UserMessage(userPrompt);

        Message systemMessage = systemPromptTemplate.createMessage(MapUtil.of("prompt", "you are a helpful AI assistant"));

        Prompt prompt = new Prompt(List.of(userMessage, systemMessage));

        List<Generation> response = openAiChatClient.call(prompt).getResults();

        String result = "";

        for (Generation generation : response){
            String content = generation.getOutput().getContent();
            result += content;
        }

        return result;
    }

    @RequestMapping("/stream")
    public SseEmitter stream(HttpServletResponse response){
        response.setContentType("text/event-stream");
        response.setCharacterEncoding("UTF-8");
        SseEmitter emitter = new SseEmitter();


        String systemPrompt = "{prompt}";
        SystemPromptTemplate systemPromptTemplate = new SystemPromptTemplate(systemPrompt);

        String userPrompt = "廣州有什么特產(chǎn)?";
        Message userMessage = new UserMessage(userPrompt);

        Message systemMessage = systemPromptTemplate.createMessage(MapUtil.of("prompt", "you are a helpful AI assistant"));
        Prompt prompt = new Prompt(List.of(userMessage, systemMessage));

        openAiChatClient.stream(prompt).subscribe(x -> {
            try {
                log.info("response: {}",x);
                List<Generation> generations = x.getResults();
                if(CollUtil.isNotEmpty(generations)){
                    for(Generation generation:generations){
                       AssistantMessage assistantMessage =  generation.getOutput();
                        String content = assistantMessage.getContent();
                        if(StringUtils.isNotEmpty(content)){
                            emitter.send(content);
                        }else{
                            if(StringUtils.equals(content,"null"))
                            emitter.complete(); // Complete the SSE connection
                        }
                    }
                }


            } catch (Exception e) {
                emitter.complete();
                log.error("流式返回結(jié)果異常",e);
            }
        });

        return emitter;
    }
}

5.5、Ollama調(diào)用完整代碼

import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.map.MapUtil;
import jakarta.servlet.http.HttpServletResponse;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.ai.chat.Generation;
import org.springframework.ai.chat.messages.AssistantMessage;
import org.springframework.ai.chat.messages.Message;
import org.springframework.ai.chat.messages.UserMessage;
import org.springframework.ai.chat.prompt.Prompt;
import org.springframework.ai.chat.prompt.SystemPromptTemplate;
import org.springframework.ai.ollama.OllamaChatClient;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.servlet.mvc.method.annotation.SseEmitter;

import java.util.List;

@Slf4j
@RestController
@RequestMapping("/api")
public class OllamaTestController {
    @Autowired
    private OllamaChatClient ollamaChatClient;

    @RequestMapping("/chat")
    public String chat(){
        String systemPrompt = "{prompt}";
        SystemPromptTemplate systemPromptTemplate = new SystemPromptTemplate(systemPrompt);

        String userPrompt = "廣州有什么特產(chǎn)?";
        Message userMessage = new UserMessage(userPrompt);

        Message systemMessage = systemPromptTemplate.createMessage(MapUtil.of("prompt", "you are a helpful AI assistant"));

        Prompt prompt = new Prompt(List.of(userMessage, systemMessage));

        List<Generation> response = ollamaChatClient.call(prompt).getResults();

        String result = "";

        for (Generation generation : response){
            String content = generation.getOutput().getContent();
            result += content;
        }

        return result;
    }


    @RequestMapping("/stream")
    public SseEmitter stream(HttpServletResponse response){
        response.setContentType("text/event-stream");
        response.setCharacterEncoding("UTF-8");
        SseEmitter emitter = new SseEmitter();


        String systemPrompt = "{prompt}";
        SystemPromptTemplate systemPromptTemplate = new SystemPromptTemplate(systemPrompt);

        String userPrompt = "廣州有什么特產(chǎn)?";
        Message userMessage = new UserMessage(userPrompt);

        Message systemMessage = systemPromptTemplate.createMessage(MapUtil.of("prompt", "you are a helpful AI assistant"));
        Prompt prompt = new Prompt(List.of(userMessage, systemMessage));

        ollamaChatClient.stream(prompt).subscribe(x -> {
            try {
                log.info("response: {}",x);
                List<Generation> generations = x.getResults();
                if(CollUtil.isNotEmpty(generations)){
                    for(Generation generation:generations){
                        AssistantMessage assistantMessage =  generation.getOutput();
                        String content = assistantMessage.getContent();
                        if(StringUtils.isNotEmpty(content)){
                            emitter.send(content);
                        }else{
                            if(StringUtils.equals(content,"null"))
                                emitter.complete(); // Complete the SSE connection
                        }
                    }
                }


            } catch (Exception e) {
                emitter.complete();
                log.error("流式返回結(jié)果異常",e);
            }
        });

        return emitter;
    }
}

5.6、核心配置

spring:
  ai:
    openai:
      api-key: sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
    ollama:
      base-url: http://localhost:11434
      chat:
        model: qwen:1.8b-chat

5.7、啟動類文章來源地址http://www.zghlxwxcb.cn/news/detail-838278.html

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class AiApplication {

    public static void main(String[] args) {
        System.setProperty("http.proxyHost","127.0.0.1");
        System.setProperty("http.proxyPort","7078"); // 修改為你代理軟件的端口
        System.setProperty("https.proxyHost","127.0.0.1");
        System.setProperty("https.proxyPort","7078"); // 同理

        SpringApplication.run(AiApplication.class, args);
    }

}

到了這里,關(guān)于開源模型應(yīng)用落地-工具使用篇-Spring AI(七)的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

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

相關(guān)文章

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

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

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

    2024年02月19日
    瀏覽(89)
  • 【AI 開源框架】BMTools 是一能讓語言模型使用擴(kuò)展工具的開源倉庫

    【AI 開源框架】BMTools 是一能讓語言模型使用擴(kuò)展工具的開源倉庫

    BMTools 是一能讓語言模型使用擴(kuò)展工具的開源倉庫,其也是開源社區(qū)構(gòu)建和共享工具的一個(gè)平臺。在這個(gè)倉庫中,您可以: (1) 通過編寫 Python 函數(shù)輕松構(gòu)建插件, (2) 使用外部的 ChatGPT-Plugins。 本項(xiàng)目受到開源項(xiàng)目LangChain的啟發(fā),針對開源工具的使用(例如ChatGPT-Plugins)進(jìn)行了

    2024年02月08日
    瀏覽(24)
  • rk3588使用npu進(jìn)行模型轉(zhuǎn)換和推理,加速AI應(yīng)用落地

    本文完成于2022-07-02 20:21:55 。博主在瑞芯微RK3588的開發(fā)板上跑了deepsort跟蹤算法,從IP相機(jī)中的server拉取rtsp視頻流,但是fps只有1.2,和放PPT一樣卡頓,無法投入實(shí)際應(yīng)用。本來想使用tensorrt進(jìn)行加速推理,但是前提需要cuda,rk的板子上都是Arm的手機(jī)gpu,沒有Nvidia的cuda,所以這條

    2023年04月12日
    瀏覽(14)
  • 開源模型應(yīng)用落地-總述

    開源模型應(yīng)用落地-總述

    ? ? ? ? 在當(dāng)今社會,實(shí)際應(yīng)用比純粹理解原理和概念更為重要。即使您對某個(gè)領(lǐng)域的原理和概念有深入的理解,但如果無法將其應(yīng)用于實(shí)際場景并受制于各種客觀條件,那么與其一開始就過于深入,不如先從基礎(chǔ)開始,實(shí)際操作后再逐步深入探索。 ? ? ? ? 在這種實(shí)踐至上

    2024年03月14日
    瀏覽(35)
  • 開源模型應(yīng)用落地-業(yè)務(wù)整合篇(四)

    一、前言 ? ? 通過學(xué)習(xí)第三篇文章,我們已經(jīng)成功地建立了IM與AI服務(wù)之間的數(shù)據(jù)鏈路。然而,我們目前面臨一個(gè)緊迫需要解決的安全性問題,即非法用戶可能會通過獲取WebSocket的連接信息,順利地連接到我們的服務(wù)。這不僅占用了大量的無效連接和資源,還對業(yè)務(wù)數(shù)據(jù)帶來

    2024年01月24日
    瀏覽(41)
  • 開源模型應(yīng)用落地-業(yè)務(wù)整合篇(一)

    一、前言 ? ? 經(jīng)過對qwen-7b-chat的部署以及與vllm的推理加速的整合,我們成功構(gòu)建了一套高性能、高可靠、高安全的AI服務(wù)能力?,F(xiàn)在,我們將著手整合具體的業(yè)務(wù)場景,以實(shí)現(xiàn)完整可落地的功能交付。 ? ? 作為上游部門,通常會采用最常用的方式來接入下游服務(wù)。為了調(diào)用

    2024年01月20日
    瀏覽(32)
  • 開源模型應(yīng)用落地-業(yè)務(wù)優(yōu)化篇(六)

    一、前言 ? ? 經(jīng)過線程池優(yōu)化、請求排隊(duì)和服務(wù)實(shí)例水平擴(kuò)容等措施,整個(gè)AI服務(wù)鏈路的性能得到了顯著地提升。但是,作為追求卓越的大家,絕不會止步于此。我們的目標(biāo)是在降低成本和提高效率方面不斷努力,追求最佳結(jié)果。如果你們在實(shí)施AI項(xiàng)目方面有經(jīng)驗(yàn),那一定會

    2024年02月22日
    瀏覽(26)
  • 開源模型應(yīng)用落地-qwen模型小試-入門篇(三)

    一、前言 ? ? 相信您已經(jīng)學(xué)會了如何在Windows環(huán)境下以最低成本、無需GPU的情況下運(yùn)行qwen大模型?,F(xiàn)在,讓我們進(jìn)一步探索如何在Linux環(huán)境下,并且擁有GPU的情況下運(yùn)行qwen大模型,以提升性能和效率。 二、術(shù)語 ? ? 2.1. CentOS ? ? ? ? CentOS是一種基于Linux的自由開源操作系統(tǒng)。

    2024年01月21日
    瀏覽(28)
  • 以太坊實(shí)現(xiàn)、語言模型應(yīng)用與實(shí)用工具 | 開源日報(bào) 0817

    Go Ethereum 是以太坊協(xié)議的官方 Golang 執(zhí)行層實(shí)現(xiàn),可運(yùn)行各種節(jié)點(diǎn)并提供網(wǎng)關(guān)訪問以太坊網(wǎng)絡(luò);LangChain-Chatchat 是基于大語言模型的本地知識庫問答應(yīng)用實(shí)現(xiàn),支持離線運(yùn)行和多種模型接入;Shiori 是簡單易用的書簽管理器,支持命令行和 Web 應(yīng)用程序,且可移植性強(qiáng);Awesome G

    2024年02月09日
    瀏覽(26)
  • 開源模型應(yīng)用落地-baichuan2模型小試-入門篇(三)

    ? ? ? ? 相信您已經(jīng)學(xué)會了如何在Windows環(huán)境下以最低成本、無需GPU的情況下運(yùn)行baichuan2大模型?,F(xiàn)在,讓我們進(jìn)一步探索如何在Linux環(huán)境下,并且擁有GPU的情況下運(yùn)行baichuan2大模型,以提升性能和效率。 ? ? CentOS是一種基于Linux的自由開源操作系統(tǒng)。它是從Red Hat Enterprise Li

    2024年04月17日
    瀏覽(38)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包