快速掌握Dify+Chrome MCP:打造網頁操控AI助手

你是否曾經希望那些強大的開源大模型能更貼合你的專業領域,或者學會模仿你的行文風格?其實,實現這個目標的關鍵就在于“微調”。曾幾何時,微調模型是大公司的專屬游戲——動不動就需要幾十張GPU和復雜的分布式訓練技術。

而現在,借助 Ollama 和豐富的 Python 工具鏈,一切都變得簡單多了。只需要一張消費級顯卡,甚至直接用CPU,用不了一個小時,你就能親手微調出屬于自己的模型——這篇文章就會帶你一步步實現它。

準備工作:安裝核心工具

在開始之前,我們需要準備好兩樣核心工具:

  1. Ollama: 用于本地拉取、運行和管理大模型。
  2. Python 環境: 用于準備微調數據和執行微調腳本。

步驟一:安裝 Ollama訪問 Ollama 官網 (https://ollama.com),根據你的操作系統 (Windows/macOS/Linux) 下載并安裝。安裝完成后,打開終端/命令提示符,拉取一個我們要微調的基礎模型,例如小巧高效的 Llama 2

ollama pull llama2

步驟二:創建 Python 環境并安裝庫創建一個新的項目目錄,然后建立一個 Python 虛擬環境(推薦),并安裝必要的庫。

# 創建項目目錄
mkdir ollama-finetune-tutorial
cd ollama-finetune-tutorial

# 創建虛擬環境 (可選但推薦)
python -m venv .venv
# 激活虛擬環境
# On Windows: .venv\Scripts\activate
# On macOS/Linux: source .venv/bin/activate

# 安裝核心庫
pip install transformers datasets peft huggingface_hub
# 用于后續格式轉換和推送
pip install ollama

第一步:準備微調數據

微調的成功很大程度上取決于數據。數據不需要多,但需要“精”和“相關”。我們以“讓模型學會用莎士比亞的風格寫作”為例。

創建一個名為 data.jsonl 的文件,每行是一個 JSON 對象,包含 prompt(指令)和 completion(期望的回復)。

{"prompt": "Write a poem about the sun:", "completion": "Hark! The golden eye of heaven doth rise,"}
{"prompt": "What is love?", "completion": "Love is a smoke made with the fume of sighs,"}
{"prompt": "Describe the sea.", "completion": "The vasty deep, a restless field of salt and sorrow,"}

提示:對于實際任務,你可以準備問答對、指令-回復對,或者任何你希望模型學習的文本格式。數據量從幾十條到幾千條均可。

第二步:轉換數據格式

Ollama 的微調需要一種特定的格式。我們需要將上面的 data.jsonl 轉換為一個 .parquet 文件。創建一個名為 convert_to_parquet.py 的腳本:

import json
import pandas as pd
from datasets import Dataset

# 讀取我們準備的 jsonl 文件
data = []
with open('data.jsonl', 'r') as f:
? ?for line in f:
? ? ? ?data.append(json.loads(line))

# 轉換為 Hugging Face Dataset 格式
df = pd.DataFrame(data)
dataset = Dataset.from_pandas(df)

# 保存為 Parquet 格式,這是 Ollama 微調所需的
dataset.to_parquet('fine_tuning_data.parquet')

運行這個腳本:

python convert_to_parquet.py

現在你的目錄下會生成一個 fine_tuning_data.parquet 文件。


第三步:執行微調!

這是最激動人心的一步。Ollama 的命令行工具直接支持微調。打開終端,確保你在項目根目錄下,然后運行以下命令:

ollama create my-shakespeare-model -f Modelfile

這里的 my-shakespeare-model 是你自定義的新模型名字,Modelfile 是一個配置文件。我們需要先創建這個 Modelfile

創建一個名為 Modelfile 的文件(無后綴),內容如下:

FROM llama2 # 指定基礎模型

TEMPLATE """[INST] {{ .Prompt }} [/INST] {{ .Response }} </s>""" # 使用與Llama2匹配的對話模板

PARAMETER stop "[INST]"
PARAMETER stop "[/INST]"

SYSTEM """You are William Shakespeare. Respond to all prompts in the style of the Bard of Avon."""

ADAPTER ./fine_tuning_data.parquet # 指向我們的微調數據

關鍵解釋:

  • FROM: 指定從我們之前拉取的 llama2 模型開始微調。
  • TEMPLATE: 定義了模型如何理解輸入和輸出。這里的格式與 Llama 2 的指令格式保持一致。
  • SYSTEM: 給模型一個系統級別的角色設定。
  • ADAPTER: 這是核心,它告訴 Ollama 使用我們準備好的 fine_tuning_data.parquet 文件來進行微調。

現在,再次運行微調命令:

ollama create my-shakespeare-model -f Modelfile

終端會開始輸出日志。你會看到模型正在被訓練。這個過程的速度取決于你的數據大小和電腦硬件(GPU/CPU)。對于示例中的幾條數據,幾乎是瞬間完成的。


第四步:測試你的微調模型

微調完成后,你就可以像使用任何其他 Ollama 模型一樣使用它了!

在終端中直接運行:

ollama run my-shakespeare-model
>>> Write a poem about Python code.

或者,用 Python 代碼來調用:

import requests
import json

# 設置 Ollama 服務器的本地 API 地址
url = 'http://localhost:11434/api/generate'

# 準備請求數據
data = {
? ?"model": "my-shakespeare-model", # 使用你剛創建的模型名
? ?"prompt": "What is the meaning of life?",
? ?"stream": False
}

# 發送 POST 請求
response = requests.post(url, json=data)

# 解析并打印結果
result = response.json()
print(result['response'])

預期效果: 此時,模型回答“生命的意義是什么?”這個問題時,不再是用它原本的風格,而是會嘗試模仿莎士比亞的戲劇性、詩歌化的語言風格。

總結與進階

恭喜!你已經成功完成了第一次 LLM 微調。這個過程的核心流程可以總結為:

  1. 準備數據 -> 2. 轉換格式 -> 3. 編寫 Modelfile -> 4. 執行 ollama create

下一步你可以嘗試:

  • 領域知識微調:準備你所在行業(如法律、醫療、編程)的問答數據,打造一個專業顧問。
  • 風格模仿:提供大量某個作家或你自己的寫作樣本,讓模型學會這種文風。
  • 使用更多數據:嘗試更大的數據集,體驗模型能力更顯著的變化。
  • 調整參數:在 Modelfile 中,你還可以添加 PARAMETER num_epochs 10 這樣的語句來控制訓練輪數,可能會獲得更好的效果(但也要小心過擬合)。

微調不再遙不可及。借助 Ollama 和 Python,每個人都可以輕松地打造出更貼心、更專業的專屬大語言模型。現在,就快去用你的數據創造獨一無二的AI吧!


推薦閱讀

精選技術干貨

精選文章

  • 小白必看:AI智能體零基礎搭建全攻略!

  • Coze平臺指南(3):核心功能-創建智能體與設計角色

  • Browser Use:打造你的瀏覽器自動化助手

  • 讓 AI 更聰明:不可錯過的 7 大開源 MCP 項目

  • 主流自動化測試框架:技術解析與實戰手冊

  • 國產模型Qwen3-32B本地化實戰:LangChain + vLLM 構建企業智能引擎

  • 2025大模型平臺選擇指南:從個人助手到企業智能體,解讀五大場景

  • 深入解析Agent實現“聽懂→規劃→執行”全流程的奧秘

  • 2025大語言模型部署實戰指南:從個人開發到企業落地全棧解決方案

  • 企業AI轉型之戰:Coze、Dify與FastGPT的巔峰對決

  • Coze開源版本地部署指南

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/98035.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/98035.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/98035.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

單詞記憶-輕松記憶10個實用英語單詞(15)

1. repaint含義&#xff1a;重新油漆 讀音標注&#xff1a;/?ri??pe?nt/ 例句&#xff1a;We need to repaint the walls after the repairs. 譯文&#xff1a;修理完成后需要重新粉刷墻壁。 衍生含義&#xff1a;重新繪制&#xff08;圖像場景&#xff09;&#xff1b;翻新…

visual studio快捷鍵

1.visual studio代碼格式化快捷鍵 1.CtrlA&#xff08;全選&#xff09; 2.CtrlK 3.CtrlF2.多行注釋 1.Ctrlk 2.Ctrlc2.多行取消注釋 1.Ctrlk 2.Ctrlu

Django全棧班v1.04 Python基礎語法 20250913 下午

練習&#xff1a;個人信息收集器 任務&#xff1a;創建一個個人信息收集和展示程序 要求&#xff1a; 收集用戶的姓名&#xff0c;年齡&#xff0c;城市&#xff0c;愛好驗證年齡輸入&#xff0c;必須是正數格式化輸出用戶信息計算用戶出生年份 name input("請輸入姓名&a…

學習海康VisionMaster之字符缺陷檢測

前言&#xff1a;差不多三個月沒更新了&#xff0c;天天碼代碼&#xff0c;實在是太忙了&#xff0c;有時候也在想這么忙到底是不是工作方法的問題&#xff0c;怎么樣才能變成大師呢&#xff01; 一&#xff1a;進一步學習 今天學習下VisionMaster中的字符缺陷檢測&#xff1…

若依4.8.1打包war后在Tomcat無法運行,404報錯的一個解決方法

背景 最近使用若依4.8.1進行二次開發&#xff0c;接著嘗試打包成war包進行部署&#xff0c;結果出現了404&#xff0c;提示“HTTP狀態 404 - 未找到&#xff0c;請求的資源[/ruoyi-admin/]不可用”&#xff0c;翻了網上的教程&#xff0c;包括看了官方的解疑都沒有說到該情況。…

華清遠見25072班網絡編程學習day6

重點內容&#xff1a;數據庫基本概念:數據&#xff08;Data&#xff09;&#xff1a;能夠輸入計算機并能被計算機程序識別和處理的信息集合數據 &#xff08;Database&#xff09;數據庫是在數據庫管理系統管理和控制之下&#xff0c;存放在存儲介質上的數據集合重要概念&#…

機器學習-網絡架構搜索

Neural Architecture Search&#xff08;NAS&#xff09; 一個神經網絡有不同類型的超參數 拓撲結構&#xff1a;resnet&#xff0c;mobilenet 單獨層&#xff1a;核大小&#xff0c;卷積層的通道&#xff0c;輸出隱藏單元的個數NAS自動設計神經網絡 如何設計搜索空間 如何探索…

云手機在辦公領域中自動化的應用

云手機在辦公自動化領域正逐漸展現出強大的潛力&#xff0c;以下是其在辦公中自動化應用的多方面介紹&#xff1a;企業借助云手機搭載的辦公軟件&#xff0c;可實現文檔處理自動化&#xff0c;對于重復性文檔任務&#xff0c;如制作每月固定格式的銷售報告、財務報表等&#xf…

c++多線程(3)------休眠函數sleep_for和sleep_until

操作系統&#xff1a;ubuntu22.04 IDE:Visual Studio Code 編程語言&#xff1a;C11 算法描述 這兩個函數都定義在 頭文件中&#xff0c;屬于 std::this_thread 命名空間&#xff0c;用于讓當前線程暫停執行一段時間。函數功能sleep_for(rel_time)讓當前線程休眠一段相對時間&…

Intel RealSense D455深度相機驅動安裝與運行

Intel RealSense D455深度相機安裝過程遇到過一些報錯&#xff0c;所以記錄一下安裝過程&#xff01;&#xff01;&#xff01;以后方便回顧。 1.安裝最新的IntelRealSense SDK2.0 (1) 注冊服務器的公鑰 sudo apt-get update && sudo apt-get upgrade && su…

從異步到半同步:全面解讀MySQL復制的數據一致性保障方案

MySQL 主從復制&#xff08;Replication&#xff09;是其最核心的高可用性和擴展性功能之一。它的原理是將一個 MySQL 實例&#xff08;稱為主庫 Master&#xff09;的數據變更&#xff0c;自動同步到另一個或多個 MySQL 實例&#xff08;稱為從庫 Slave&#xff09;的過程。下…

PostgreSQL GIN 索引揭秘

文章目錄什么是GIN Index?示例場景GIN Index的原理GIN Index結構MetapageEntriesLeaf PagesEntry page 和 Leaf page 的關系Posting list 和posting tree待處理列表&#xff08;Pending List&#xff09;進階解讀GIN index索引結構總結什么是GIN Index? GIN (Generalized In…

開源多模態OpenFlamingo橫空出世,基于Flamingo架構實現圖像文本自由對話,重塑人機交互未來

注&#xff1a;此文章內容均節選自充電了么創始人&#xff0c;CEO兼CTO陳敬雷老師的新書《GPT多模態大模型與AI Agent智能體》&#xff08;跟我一起學人工智能&#xff09;【陳敬雷編著】【清華大學出版社】 清華《GPT多模態大模型與AI Agent智能體》書籍配套視頻課程【陳敬雷…

電子衍射模擬:基于GPU加速的MATLAB/Julia實現

點擊 “AladdinEdu&#xff0c;同學們用得起的【H卡】算力平臺”&#xff0c;注冊即送-H卡級別算力&#xff0c;80G大顯存&#xff0c;按量計費&#xff0c;靈活彈性&#xff0c;頂級配置&#xff0c;學生更享專屬優惠。 引言&#xff1a;電子衍射模擬的重要性與計算挑戰 電子…

easyExcel動態應用案例

代碼鏈接&#xff1a;https://download.csdn.net/download/ly1h1/919402991.案例說明&#xff1a;1.1.導入功能導入數據實現轉換成 List<List<String>> headers和 List<List<String>> datas&#xff0c;后續補充可以與數據模型注解結合&#xff0c;形…

【數據結構入門】排序算法(5):計數排序

目錄 1. 比較排序和非比較排序 2. 計數排序的原理 2.1 計數排序的弊端 3.代碼復現 3.1 代碼分析 3.2 排序核心 3.3 時間、空間復雜度 1. 比較排序和非比較排序 比較排序是根據排序元素的具體數值比較來進行排序&#xff1b;非比較排序則相反&#xff0c;非比較排序例如&…

輸入3.8V~32V 輸出2A 的DCDC降壓芯片SCT9320

同志們&#xff0c;今天來個降壓芯片SCT9320。輸入3.8V~32V&#xff0c;輸出最高可以達到2A。0.8V的參考電壓。500k的開關頻率。一共八個引腳&#xff0c;兩個NC&#xff08;為什么不做成六個引腳呢&#xff1f;&#xff09;。EN引腳懸空或者接到VIN都可以直接啟動&#xff0c;…

C++類和對象詳解(2);初識類的默認成員函數

1.類的默認成員函數默認成員函數就是用戶沒有顯示實現&#xff0c;編譯器會自動生成的成員函數稱為默認成員函數。一個類我們不寫的情況下編譯器會默認生成以下的6個默認成員函數。&#xff08;1&#xff09;構造函數&#xff1a;主要完成初始化的工作&#xff08;2&#xff09…

PLC通信 Tpc客戶端Socket

1.PLC通信 namespace _2.PLC通信 {public partial class Form1 : Form{public Form1(){InitializeComponent();}//連接//1.型號: 跟PLC溝通 使用哪個型號的PLC//2.IP 同上//3.機臺號:同上//4.插槽號:同上Plc plc new Plc(CpuType.S71200, "192.168.25.80", 0, 1);pr…

Android 開發實戰:從零到一集成 espeak-ng 實現中文離線 TTS(無需賬號開箱即用)

簡介 在移動應用開發中,語音合成(TTS)技術是提升用戶體驗的重要工具。然而,許多開發者在集成 TTS 時面臨依賴網絡、需注冊賬號、功能受限等問題。本文將帶你從零開始,通過開源項目 espeak-ng,實現無需賬號、開箱即用的中文離線語音播報。 文章將覆蓋以下核心內容: esp…