🚀 OpenHermes-Llama-3B
OpenLlama-3Bをファインチューニングした、ロールプレイ、命令実行、コード生成に特化したモデルです。
DalleによってAI生成されたロゴ
このモデルがどのようにファインチューニングされたかについてのガイドは、このブログ 記事 を参照してください。
🚀 クイックスタート
このモデルの使い方や詳細については、上記のブログ記事を参照してください。
✨ 主な機能
- ロールプレイ、命令実行、コード生成に対応したモデルです。
- オープンソースのデータセットを使用してファインチューニングされています。
- コーディング能力や命令実行能力がOpenLlama-3Bのベースモデルよりも向上しています。
📚 ドキュメント
モデルの説明
OpenHermes-Lllama_3B は、完全にオープンソースのデータセットであるHermesデータセットを使用してファインチューニングされたモデルです!
このモデルは、主にGPT-4によって生成された15,000件のデータを使用してトレーニングされており、AIの分野全体にわたるオープンデータセットを含んでいます。具体的には以下のようなデータセットが含まれています。
- TekniumによるGPTeacher - General Instruct, Roleplay v1, Roleplay v2, およびCode Instruct Datasets
- WizardLM Team/nlpxucanによるWizardLM (v1, evol_instruct 70k)
- JonDurbinによるAiroboros GPT-4 (v1.0)
- Camel-AI TeamによるCamel-AIのドメインエキスパートデータセット
- Sahil2801によるCodeAlpaca
- MicrosoftによるGPT4-LLMおよびUnnatural Instructions
OpenHermes-Lllama-3B は、OpenLlama-3Bのベースモデルよりもコーディング能力や一般的な命令実行能力が大幅に向上しています。以下に、ベースモデルとの出力結果の比較を示します。
出力例
コードの記述
Q: レート制限付きのFast APIエンドポイントを書いてください。
OpenHermes-Llama-3Bの出力
ベースモデルの出力
*新しいFastAPIアプリを作成する
*新しいエンドポイントを作成する
*新しいレート制限ミドルウェアを作成する
*新しいレート制限ルールを作成する
*新しいレート制限バックエンドを作成する
*新しいレート制限バックエンドを作成する
旅行計画の作成
Q: イタリアへの3日間の旅行計画を作成してください。
OpenHermes-Llama-3Bの出力
こんにちは、
イタリアへの3日間の旅行計画を作成するのをお手伝いできて嬉しいです。
以下は一例です。
1日目:
午前: ローマに到着し、ホテルにチェックインします。
午後: コロッセオ、ローマのフォーラム、パンテオンを訪れます。
夕方: 地元のレストランで夕食をとり、ローマの夜生活を楽しみます。
2日目:
午前: バチカン美術館、聖ペテロ大聖堂、システィーナ礼拝堂を訪れます。
午後: イタリアの首都をガイド付きでツアーします。
夕方: 地元のレストランで夕食をとり、ローマの夜生活を楽しみます。
3日目:
午前: トレビの泉、パンテオン、コロッセオを訪れます。
午後: イタリアの首都をガイド付きでツアーします。
夕方: 地元のレストランで夕食をとり、ローマの夜生活を楽しみます。
また、カピトリノ美術館、パラティノ丘、スペイン階段などの他の観光名所を訪れることもできます。
この旅行計画があなたのイタリア旅行の計画に役立つことを願っています。何か質問がある場合や、さらなる支援が必要な場合は、お知らせください。
ベースモデルの出力
こんにちは、
私は旅行代理店の担当者で、あなたの旅行計画をお手伝いすることができます。
以下のことをお手伝いできます。
- 航空券の予約
- ホテルの予約
- レンタカー
- ツアーの予約
- ビザ
- 旅行保険
- 空港送迎
- 空港での迎え
- 空港での送り
- 空港ラウンジ
- 空港ラウンジでの迎え
- 空港ラウンジでの送り
概念の説明
Q: golangの構造体を説明してください。
OpenHermes-Llama-3Bの出力
Golangの構造体は、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構造体を使用して2人の異なるユーザーを表現しています。Nameフィールドはユーザーの名前を格納するために使用され、Ageフィールドは彼らの年齢を格納するために使用され、Emailフィールドは彼らのメールアドレスを格納するために使用されています。main関数は、ユーザーの名前と年齢、およびカンマ区切りのメールアドレスを出力します。
要するに、Golangの構造体は、Go言語でデータ型を定義する方法です。構造体は、それぞれ特定の型の値であるフィールドの集合です。これらのフィールドは階層的に配置され、インターフェースを介して接続されています。Go言語で構造体を使用する主な利点は、従来の配列やマップよりも柔軟で使いやすい方法でデータを表現できることです。
ベースモデルの出力
*構造体は、名前付きの変数の集合です。
ベンチマーク比較
HumanEval
モデル |
pass@1 |
openllama-3b-v2 (ベースモデル) |
8.1% |
openhermes-llama-3b (ファインチューニング後) |
9.8% |
📄 ライセンス
このモデルは、Apache-2.0ライセンスの下で提供されています。