Targon (Bittensor Subnet 4) adalah mekanisme verifikasi deterministik yang digunakan untuk memberi insentif kepada penambang agar menjalankan titik akhir yang sesuai dengan openai dan melayani kueri sintetis dan organik.
PEMBERITAHUAN: Dengan menggunakan perangkat lunak ini, Anda harus menyetujui Syarat dan Perjanjian yang diberikan dalam dokumen syarat dan ketentuan. Dengan mengunduh dan menjalankan perangkat lunak ini, Anda secara implisit menyetujui syarat dan ketentuan ini.
Untuk validator kami merekomendasikan 8xA100, meskipun 1xA100 juga dapat digunakan. Kami berencana untuk fokus menurunkan biaya ini pada pembaruan mendatang.
Bagi para penambang, A100 atau H100 adalah pilihan umum. Pembandingan bergantung pada penambang untuk menentukan GPU mana yang paling cocok untuk pengoptimalan mereka.
Untuk menjalankan Targon, Anda perlu menginstal PM2 dan paket Targon. Petunjuk berikut hanya berlaku untuk OS Ubuntu. Untuk OS spesifik Anda, silakan merujuk ke dokumentasi resmi.
Untuk menginstal atau memperbarui nvm, Anda harus menjalankan skrip instalasi. Untuk melakukannya, Anda dapat mengunduh dan menjalankan skrip secara manual, atau menggunakan perintah cURL atau Wget berikut:
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
Menjalankan salah satu perintah di atas akan mengunduh skrip dan menjalankannya. Skrip mengkloning repositori nvm ke /.nvm, dan mencoba menambahkan baris sumber dari cuplikan di bawah ke file profil yang benar ( /.bash_profile, ~/.zshrc, ~/.profile, atau ~/.bashrc).
export NVM_DIR= " $( [ -z " ${XDG_CONFIG_HOME-} " ] && printf %s " ${HOME} /.nvm " || printf %s " ${XDG_CONFIG_HOME} /nvm " ) "
[ -s " $NVM_DIR /nvm.sh " ] && . " $NVM_DIR /nvm.sh " # This loads nvm
nvm install node
npm install pm2@latest -g
Anda sekarang telah menginstal PM2.
git clone https://github.com/manifold-inc/targon.git
cd targon
python3 -m pip install -e .
Anda sekarang telah menginstal Targon. Anda sekarang dapat menjalankan validator atau penambang.
Sebelum memulai atau mendaftarkan penambang Anda di Targon, pertama-tama Anda ingin menjalankan VLLM yang melayani permintaan gambar berbeda yang diminta oleh validator. Anda dapat menemukan daftarnya di https://stats.sybil.com/stats/validator di bawah tab langsung. Semakin banyak model yang Anda jalankan, semakin tinggi insentif Anda.
VLLM adalah mesin yang direkomendasikan, namun tidak diperlukan. Jika Anda menggunakan VLLM, pastikan Anda menyertakan tanda --return-tokens-as-token-ids
, jika tidak, respons Anda akan gagal.
Setelah Anda menjalankan satu (atau beberapa) model, ubah kode penambang default menjadi proksi ke instance VLLM yang tepat pada setiap permintaan. Pemverifikasi akan menyertakan header X-Targon-Model
sehingga node penambang tidak perlu mengurai isi sebenarnya.
Dalam skrip miner.py
Anda akan menemukan fungsi bernama list_models
. Untuk melayani beberapa model, Anda harus:
async def list_models(self):
return [
"ExampleName/Meta-Llama-3.1-8B-Instruct",
"ExampleName/mythomax-l2-13b",
"ExampleName/Hermes-3-Llama-3.1-8B",
"ExampleName/Nxcode-CQ-7B-orpo",
"ExampleName/deepseek-coder-33b-instruct",
"ExampleName/Llama-3.1-Nemotron-70B-Instruct-HF",
]
create_chat_completion
dan create_completion
di neurons/miner.py untuk merutekan ke server upstream vllm yang sesuai berdasarkan model (yang ada di header atau dari parameter model payload permintaan)Berikut ini petunjuk/cuplikan kode tidak lengkap untuk membantu Anda memulai:
model_port_map = {
'ExampleName/mythomax-l2-13b': 1001,
'ExampleName/Hermes-3-Llama-3.1-8B': 1002,
'ExampleName/Nxcode-CQ-7B-orpo': 1003,
'ExampleName/deepseek-coder-33b-instruct': 1004,
'ExampleName/Llama-3.1-Nemotron-70B-Instruct-HF': 1005
}
full_url = f"http://127.0.0.1:{model_port_map.get(body.get('model'), 1000)}{path}"
Setelah ini selesai, Anda siap untuk melanjutkan memulai node penambang Anda.
Menjalankan penambang melalui PM2 akan memerlukan instance vLLM untuk berjalan.
pm2 start neurons/miner.py --name miner --interpreter python3 -- --wallet.name [WALLET_NAME] --netuid 4 --wallet.hotkey [WALLET_HOTKEY] --subtensor.network finney --model-endpoint [MODEL_ENDPOINT] --api_key [API_KEY] --axon.port [AXON PORT] --logging.trace
Silakan ganti yang berikut ini dengan konfigurasi spesifik Anda:
- [WALLET_NAME]
- [WALLET_HOTKEY]
- [MODEL_ENDPOINT]
- [API_KEY]
- [AXON_PORT]
CATATAN: Pencatatan jejak sangat bertele-tele. Anda dapat menggunakan --logging.info
sebagai gantinya untuk mengurangi log yang membengkak.
Selain itu:
--no-force-validator-permit [TRUE/FALSE]
defaultnya adalah false untuk memaksa permintaan masuk memiliki izin. Setel ini ke true jika Anda kesulitan mendapatkan permintaan dari validator di jaringan 'pengujian'.
Validator hanya dijalankan melalui pm2, mengaktifkan restart otomatis dan pembaruan otomatis. Validator harus dijalankan setidaknya pada A100, namun semakin besar semakin baik, karena cluster yang lebih besar dapat menangani lebih banyak model. Mesin harus menginstal nvidia-smi / cuda bersama dengan buruh pelabuhan.
Tidak diperlukan instance vllm
Mesin Virtual Validator:
pm2 start neurons/validator.py --name validator --interperter python3 -- --wallet.name [WALLET_NAME]
Silakan ganti yang berikut ini dengan konfigurasi spesifik Anda:
- [WALLET_NAME]
default
, atau config
.endpoint
: defaultnya adalah https://targon.sybil.com/api/models
. Ini akan meniru validator berjenisdefault
: hanya menjalankan NousResearch/Meta-Llama-3.1-8B-Instructconfig
: mengurai file teks bernama models.txt
dengan daftar model yang dipisahkan oleh baris baruendpoint
. Menyetel titik akhir api untuk melakukan ping untuk daftar model. Defaultnya adalah hub targon.Contoh file konfigurasi model
models.txt
NousResearch/Meta-Llama-3.1-8B-Instruct NousResearch/Meta-Llama-3.1-70B-Instruct NousResearch/Meta-Llama-3.1-405B-Instruct
Pembaruan otomatis diterapkan di targon/utils.py. Hal ini untuk memastikan bahwa basis kode Anda cocok dengan versi terbaru di Repositori Utama Targon Github.
Pembaruan Otomatis Validator diterapkan dan dijalankan secara default setelah bobot ditetapkan. Untuk menonaktifkan , tambahkan tanda ke build baris perintah Anda:
pm2 start neurons/validator.py --name validator --interperter python3 -- --wallet.name [WALLET_NAME] --autoupdate-off
Pembaruan Otomatis Penambang tidak diterapkan. Penambang perlu memeriksa repositori Targon dan memperbarui dirinya sendiri saat versi baru dirilis. Jika tertarik untuk memanfaatkan fitur autoupdate yang digunakan Validator, silakan ikuti langkah-langkah di bawah ini:
CATATAN : Ini tidak akan dikelola oleh Tim Manifold Labs.
from targon . updater import autoupdate
if self . config . autoupdate :
autoupdate ( branch = "main" )
Tujuan dari hub ini adalah memberikan validator cara sederhana untuk langsung menghasilkan pendapatan dari bandwidth bittensor mereka. Ini dirancang sebagai templat bagi validator untuk mengambil dan membuat hub bermerek mereka sendiri, namun permintaan penarikan tetap dianjurkan.
Jika Anda tertarik untuk menjalankan instance Targon Hub Anda sendiri, Anda perlu menambahkan tanda tambahan untuk menyimpan catatan respons penambang ke DB PostgreSQL.
CATATAN : Tidak ada bendera berarti tidak ada database!
--database.url [DB_CONNECTION_STRING]
Harap ganti yang berikut ini dengan URL koneksi spesifik Anda:
- [DB_CONNECTION_STRING]
Berikut adalah langkah-langkah membuat string koneksi Supabase untuk memanfaatkan fitur ini:
Connect
berwarna hijau di dekat kanan atas layartransaction
ke session
di dropdown--database.url
dan string koneksi baruSilakan hubungi tim SN4 untuk bantuan menyiapkan hub targon di obrolan sn4 atau perselisihan kami
pm2 start neurons/validator.py --name validator --interperter python3 -- --wallet.name [WALLET_NAME] --database.url [DB_CONNECTION_STRING]
Saat validator Anda berjalan, Anda akan mulai melihat catatan ditambahkan ke database Supabase Anda. Ini akan langsung menjadi pertanyaan Targon Hub Anda.
Targon menggunakan nilai bukti kerja internal yang baru untuk memverifikasi respons model. Ini dihasilkan seperti masalah log, dan dapat digunakan untuk memverifikasi dengan akurasi tinggi bahwa respons dihasilkan dengan model yang diminta. Kami menggunakan ini bersama dengan versi verifikasi log-prob yang cepat dan lambat. Respons terverifikasi dinilai berdasarkan kecepatan dan konsistensi verifikasi.
Penambang adalah node yang bertanggung jawab untuk menghasilkan keluaran dari kueri, baik organik maupun sintetis.
Validator adalah node yang bertanggung jawab untuk memverifikasi keluaran penambang. Validator akan mengirimkan permintaan yang sesuai dengan openai ke penambang dengan. Penambang kemudian akan mengirimkan kembali respons dengan hasilnya. Validator kemudian akan menggunakan bukti nilai kerja dari respons untuk memverifikasi bahwa setiap respons penambang akurat. Validator akan mencatat skor waktu respons setiap penambang dan menggunakan rata-ratanya untuk menetapkan skor setiap periode.
Validator dapat menanyakan penambang secara langsung menggunakan paket openai apa pun, dan header Epistula. Di bawah ini adalah boilerplate untuk menanyakan penambang dengan python.
miner = openai . AsyncOpenAI (
base_url = f"http:// { axon . ip } : { axon . port } /v1" ,
api_key = "sn4" ,
max_retries = 0 ,
timeout = Timeout ( 12 , connect = 5 , read = 5 ),
http_client = openai . DefaultAsyncHttpxClient (
event_hooks = {
"request" : [
# This injects Epistula headers right before the request is sent.
# wallet.hotkey is the public / private keypair
#
# You can find this function in the `epistula.py` file in
# the targon repo
create_header_hook ( wallet . hotkey , axon . hotkey_ss58 )
]
}
),
)
Pengelola proyek mempunyai hak untuk mempertimbangkan pendapat para peer reviewer dengan menggunakan penilaian yang masuk akal dan juga dapat mempertimbangkan berdasarkan prestasi. Peninjau yang telah menunjukkan komitmen dan pemahaman yang lebih dalam terhadap proyek dari waktu ke waktu atau yang memiliki keahlian domain yang jelas tentu saja akan memiliki bobot lebih, seperti yang diharapkan di semua lapisan masyarakat. Jika kumpulan patch memengaruhi kode yang penting bagi konsensus, batasannya akan jauh lebih tinggi dalam hal persyaratan diskusi dan tinjauan sejawat, dengan mengingat bahwa kesalahan bisa sangat merugikan komunitas luas. Hal ini termasuk pemfaktoran ulang kode yang kritis terhadap konsensus. Jika kumpulan tambalan mengusulkan untuk mengubah subnet Targon, hal itu harus telah dibahas secara luas di server perselisihan dan saluran lainnya, disertai dengan BIP yang dibahas secara luas dan memiliki konsensus teknis yang secara umum dianggap sebagai perubahan yang bermanfaat berdasarkan penilaian dari para pengelola. Meskipun demikian, Manifold menyambut baik semua PR demi kemajuan subnet dan Bittensor secara keseluruhan. Kami berupaya melakukan perbaikan di setiap interval dan percaya bahwa kesuksesan dapat dicapai melalui komunikasi terbuka dan berbagi ide.