🚀 OpenHermes-Llama-3B
OpenHermes-Llama-3B 是一個基於 OpenLlama-3B 微調的模型,可用於角色扮演、指令遵循和代碼生成。

該 Logo 由 Dalle 人工智能生成
有關如何進行微調的指南,請查看此博客 文章。
🚀 快速開始
本部分將為你簡要介紹 OpenHermes-Llama-3B 模型,幫助你快速瞭解其用途。
✨ 主要特性
- 開源數據集微調:OpenHermes-Lllama_3B 是基於 Hermes 數據集進行微調的,該數據集完全開源。
- 多源數據訓練:它在 15000 條主要由 GPT - 4 生成的數據上進行訓練,這些數據來自 AI 領域的多個開放數據集,包括 GPTeacher、WizardLM、Airoboros GPT - 4、Camel - AI 的領域專家數據集、CodeAlpaca、GPT4 - LLM 和 Unnatural Instructions 等。
- 能力提升顯著:與 OpenLlama - 3B 基礎模型相比,OpenHermes-Lllama-3B 在編碼能力和通用指令遵循方面有了很大的改進。
📚 詳細文檔
模型描述
OpenHermes-Lllama_3B 是對 Hermes 數據集進行微調得到的模型,該數據集完全開源!它在 15000 條主要由 GPT - 4 生成的數據上進行訓練,這些數據來自 AI 領域的多個開放數據集,包括:
- GPTeacher - 由 Teknium 提供的通用指令、角色扮演 v1、角色扮演 v2 和代碼指令數據集。
- WizardLM (v1, evol_instruct 70k) - 由 WizardLM 團隊/nlpxucan 提供。
- Airoboros GPT - 4 (v1.0) - 由 JonDurbin 提供。
- Camel - AI 的領域專家數據集 - 由 Camel - AI 團隊提供。
- CodeAlpaca - 由 Sahil2801 提供。
- GPT4 - LLM 和 Unnatural Instructions - 由微軟提供。
OpenHermes-Lllama-3B 相較於 OpenLlama - 3B 基礎模型,在編碼能力和通用指令遵循方面有了很大的提升。你可以在下面看到前後輸出的對比。
示例輸出
編寫代碼
問題:編寫一個帶有速率限制的 Fast API 端點
OpenHermes-Llama-3B 輸出

基礎模型輸出
- 創建一個新的 FastAPI 應用
- 創建一個新的端點
- 創建一個新的速率限制中間件
- 創建一個新的速率限制規則
- 創建一個新的速率限制後端
- 創建一個新的速率限制後端
規劃行程
問題:為我規劃一個為期 3 天的意大利旅行行程
OpenHermes-Llama-3B 輸出
您好,我很樂意幫助您規劃一個為期 3 天的意大利旅行行程。以下是一個示例行程:
- 第一天:
- 上午:抵達羅馬,入住酒店。
- 下午:參觀羅馬鬥獸場、羅馬廣場和萬神殿。
- 晚上:在當地餐廳用餐,享受羅馬的夜生活。
- 第二天:
- 上午:參觀梵蒂岡博物館、聖彼得大教堂和西斯廷教堂。
- 下午:參加意大利首都的導遊團。
- 晚上:在當地餐廳用餐,享受羅馬的夜生活。
- 第三天:
- 上午:參觀許願池、萬神殿和羅馬鬥獸場。
- 下午:參加意大利首都的導遊團。
- 晚上:在當地餐廳用餐,享受羅馬的夜生活。
你還可以添加對其他景點的參觀,如卡比託利歐博物館、帕拉蒂尼山和西班牙廣場。
希望這個行程能幫助您規劃意大利之行。如果您有任何問題或需要進一步的幫助,請告訴我。
基礎模型輸出
您好,我是一名旅行社代理人,我可以幫助您規劃旅行行程。我可以為您提供以下服務:
- 航班預訂
- 酒店預訂
- 汽車租賃
- 旅遊預訂
- 簽證辦理
- 旅行保險
- 機場接送
- 機場接機
- 機場送機
- 機場貴賓休息室
- 機場貴賓休息室接機
- 機場貴賓休息室送機
解釋概念
問題:解釋 Go 語言的結構體
OpenHermes-Llama-3B 輸出
Go 語言的結構體是一種在 Go 中定義數據類型的方式。它是一組字段的集合,每個字段都是特定類型的值。這些字段按層次結構排列,並通過接口連接。
示例:
type User struct {
Name string
Age int
Email string
}
在這個示例中,User
結構體包含一個 Name
字段、一個 Age
字段、一個 Email
字段和其他一些字段。Name
字段的類型是字符串,Age
字段的類型是整數,Email
字段的類型是字符串。User
結構體通過接口與其他結構體相連,例如 User
類型的接口。
Go 語言中結構體的主要優點是,它們可以以比傳統數組或映射更靈活、更易用的方式表示數據。結構體還允許創建更復雜的數據結構,而無需嵌套數組或映射。
以下是一個如何使用 User
結構體的示例:
package main
import (
"fmt"
"strings"
)
type User struct {
Name string
Age int
Email string
}
func main() {
user1 := User{"John", 25, "john@example.com"}
user2 := User{"Mary", 22, "mary@example.com"}
fmt.Printf("User 1: %s (%d)\nUser 2: %s (%d)\n", user1.Name, user1.Age, user2.Name, user2.Age)
email1 := user1.Email
email2 := user2.Email
fmt.Printf("User 1's email: %s\nUser 2's email: %s\n", email1, email2)
}
在這個示例中,User
結構體用於表示兩個不同的用戶。Name
字段用於存儲用戶的姓名,Age
字段用於存儲他們的年齡,Email
字段用於存儲他們的電子郵件。main
函數打印出用戶的姓名和年齡,以及用逗號分隔的電子郵件。
總之,Go 語言的結構體是一種在 Go 中定義數據類型的方式。它是一組字段的集合,每個字段都是特定類型的值。這些字段按層次結構排列,並通過接口連接。Go 語言中結構體的主要優點是,它們可以以比傳統數組或映射更靈活、更易用的方式表示數據。
基礎模型輸出
*結構體是一組命名的變量集合。
基準測試比較
HumanEval
模型 |
單樣本通過率 |
openllama-3b-v2 (基礎模型) |
8.1% |
openhermes-llama-3b (微調模型) |
9.8% |
📄 許可證
本模型採用 Apache - 2.0 許可證。