初始化项目,由ModelHub XC社区提供模型
Model: mesolitica/malaysian-Qwen1.5-0.5B-16k-instructions Source: Original Platform
This commit is contained in:
192
README.md
Normal file
192
README.md
Normal file
@@ -0,0 +1,192 @@
|
||||
---
|
||||
language:
|
||||
- ms
|
||||
---
|
||||
|
||||
# Full Parameter Finetuning Qwen1.5-0.5B 16384 context length on Malaysian instructions dataset
|
||||
|
||||
README at https://github.com/mesolitica/malaya/tree/5.1/session/qwen2
|
||||
|
||||
We use exact Qwen1.5 Instruct chat template.
|
||||
|
||||
WandB, https://wandb.ai/huseinzol05/Qwen1.5-0.5B-4096-fpf-instructions-16k?workspace=user-huseinzol05
|
||||
|
||||
## how-to
|
||||
|
||||
```python
|
||||
from transformers import AutoTokenizer, AutoModelForCausalLM, BitsAndBytesConfig
|
||||
import torch
|
||||
|
||||
TORCH_DTYPE = 'bfloat16'
|
||||
nf4_config = BitsAndBytesConfig(
|
||||
load_in_4bit=True,
|
||||
bnb_4bit_quant_type='nf4',
|
||||
bnb_4bit_use_double_quant=True,
|
||||
bnb_4bit_compute_dtype=getattr(torch, TORCH_DTYPE)
|
||||
)
|
||||
|
||||
tokenizer = AutoTokenizer.from_pretrained('mesolitica/malaysian-Qwen1.5-0.5B-16k-instructions')
|
||||
model = AutoModelForCausalLM.from_pretrained(
|
||||
'mesolitica/malaysian-Qwen1.5-0.5B-16k-instructions',
|
||||
use_flash_attention_2 = True,
|
||||
quantization_config = nf4_config
|
||||
)
|
||||
messages = [
|
||||
{'role': 'user', 'content': 'KWSP tu apa'}
|
||||
]
|
||||
prompt = tokenizer.apply_chat_template(messages, tokenize = False)
|
||||
inputs = tokenizer([prompt], return_tensors='pt', add_special_tokens=False).to('cuda')
|
||||
generate_kwargs = dict(
|
||||
inputs,
|
||||
max_new_tokens=1024,
|
||||
top_p=0.95,
|
||||
top_k=50,
|
||||
temperature=0.9,
|
||||
do_sample=True,
|
||||
num_beams=1,
|
||||
)
|
||||
r = model.generate(**generate_kwargs)
|
||||
tokenizer.decode(r[0])
|
||||
```
|
||||
|
||||
```text
|
||||
<|im_start|>user
|
||||
KWSP tu apa<|im_end|>
|
||||
<|im_start|>assistant
|
||||
KWSP merujuk kepada Skim Simpanan Wang Persaraan (KWSP), iaitu skim simpanan untuk ahli kumpulan berumur 20 tahun ke atas. KWSP menawarkan beberapa faedah, termasuk:
|
||||
|
||||
1. Akaun Simpanan Wajib - Ahli boleh menyumbang kepada KWSP melalui akaun simpanan wajib.
|
||||
2. Akaun Simpanan Amanah - Ahli boleh menyumbang kepada KWSP melalui akaun amanah.
|
||||
3. Akaun Simpanan Pelaburan - Ahli boleh menyumbang kepada KWSP melalui pelaburan dalam skim pelaburan KWSP atau pelaburan bersama.
|
||||
4. Perolehan - Ahli boleh mendapatkan pelbagai perkhidmatan dan ganjaran daripada KWSP.
|
||||
5. Akaun Simpanan untuk Penyelamat - Ahli boleh menyumbang kepada KWSP melalui akaun simpanan untuk penyelamat, yang boleh digunakan untuk bantuan kewangan atau pemberhentian pasaran kewangan.
|
||||
|
||||
KWSP menawarkan faedah dan perlindungan yang komprehensif untuk ahli, termasuk:
|
||||
|
||||
1. Akaun Simpanan Amanah - Akaun ini menyediakan faedah dan ganjaran sebelum dan selepas persaraan.
|
||||
2. Akaun Simpanan - Akaun simpanan menawarkan kadar faedah yang lebih rendah daripada akaun simpanan biasa.
|
||||
3. Akaun Simpanan Pelaburan - Akaun ini menawarkan kadar faedah yang lebih rendah dan pelbagai ganjaran.
|
||||
4. Akaun Simpanan untuk Penyelamat - Akaun ini menawarkan kadar faedah yang lebih rendah daripada akaun simpanan biasa dan pelbagai ganjaran.
|
||||
5. Perolehan - Akaun ini menyediakan faedah dan ganjaran sebelum dan selepas persaraan.
|
||||
|
||||
KWSP juga menawarkan pelbagai perkhidmatan dan ganjaran lain, termasuk:
|
||||
|
||||
1. Program Pekerjaan - KWSP menyediakan pelbagai skim pekerjaan, termasuk Skim Pencen, Skim Pekerjaan, dan Skim Penginapan.
|
||||
2. Program Perubatan - KWSP menyediakan pelbagai skim perubatan, termasuk Skim Cukai Perubatan.
|
||||
3. Program Keselamatan Sosial - KWSP menyediakan pelbagai program keselamatan sosial, termasuk Skim Simpanan 401 (KWSP), Skim Simpanan Amanah (SW401) dan Skim Simpanan Perumahan (RSP) untuk pemastautin berdaftar.
|
||||
4. Program Penjagaan Kesihatan - KWSP menyediakan pelbagai skim penjagaan kesihatan, termasuk Skim Insurans Kesihatan Swasta (SIC), Skim Insurans Kesihatan Kumpulan Swasta (KSMC), dan Skim Insurans Kesihatan Kumpulan Swasta 1Malaysia (SIC 1M).
|
||||
5. Program Pemindahan - KWSP menyediakan pelbagai skim pemindahan, termasuk Skim Pemindahan Amanah, Skim Pemindahan KWSP, dan Skim Pemindahan Persekutuan.
|
||||
|
||||
KWSP menawarkan pelbagai pilihan dan perlindungan untuk ahli yang ingin menyumbang kepada KWSP untuk persaraan atau bantuan kewangan atau pemberhentian pasaran kewangan.<|im_end|>
|
||||
```
|
||||
|
||||
```python
|
||||
messages = [
|
||||
{'role': 'user', 'content': 'macam mana nak kod websocket guna react, contoh kod sekali'}
|
||||
]
|
||||
prompt = tokenizer.apply_chat_template(messages, tokenize = False)
|
||||
inputs = tokenizer([prompt], return_tensors='pt', add_special_tokens=False).to('cuda')
|
||||
generate_kwargs = dict(
|
||||
inputs,
|
||||
max_new_tokens=1024,
|
||||
top_p=0.95,
|
||||
top_k=50,
|
||||
temperature=0.9,
|
||||
do_sample=True,
|
||||
num_beams=1,
|
||||
)
|
||||
r = model.generate(**generate_kwargs)
|
||||
tokenizer.decode(r[0])
|
||||
```
|
||||
|
||||
```text
|
||||
<|im_start|>user
|
||||
macam mana nak kod websocket guna react, contoh kod sekali<|im_end|>
|
||||
<|im_start|>assistant
|
||||
Untuk menggunakan websocket pada React untuk mencipta pelanggan untuk menghantar dan menerima pesanan, anda boleh mengikuti langkah-langkah berikut:
|
||||
|
||||
1. Mulakan dengan membuat fail baru, contohnya `WebsocketClient.js`, dan perpustakaan yang diperlukan seperti `ws` untuk Node.js, dan `axios` untuk JavaScript untuk membuat permintaan HTTP ke websocket. Pastikan anda telah mengimport perpustakaan dengan betul.
|
||||
|
||||
2. Dalam fail `WebsocketClient.js`, cipta kelas baru dengan nama `WebsocketClient`. Anda boleh menggunakan konstruktor dengan parameter seperti nama aplikasi dan senarai objek pesanan. Contoh:
|
||||
```
|
||||
|
||||
```javascript
|
||||
import { WebSocketClient, Client } from 'ws';
|
||||
import axios from 'axios';
|
||||
|
||||
class WebsocketClient {
|
||||
constructor(appName, socket) {
|
||||
this.appName = appName;
|
||||
this.socket = socket;
|
||||
}
|
||||
|
||||
connect() {
|
||||
this.socket.onopen = () => {
|
||||
console.log('Connection successful');
|
||||
};
|
||||
this.socket.onclose = () => {
|
||||
console.log('Connection lost');
|
||||
};
|
||||
this.socket.onmessage = (message) => {
|
||||
// Code to handle incoming message
|
||||
};
|
||||
}
|
||||
|
||||
emit(data) {
|
||||
this.socket.onmessage(data);
|
||||
}
|
||||
|
||||
disconnect() {
|
||||
this.socket.offopen();
|
||||
}
|
||||
}
|
||||
|
||||
// Contoh penggunaan
|
||||
const client = new WebsocketClient('api', axios({ port: 123 }));
|
||||
client.connect();
|
||||
client.emit('message', { type: 'info', content: 'Hello, server! });
|
||||
client.emit('message', { type: 'warning', content: 'Goodbye!'});
|
||||
client.disconnect();
|
||||
```
|
||||
|
||||
```
|
||||
3. Dalam fail `WebSocketClient.js`, cipta kelas dengan nama `Client` dengan parameter seperti aplikasi dan `websocket` dari perpustakaan axios. Contoh:
|
||||
```
|
||||
|
||||
```javascript
|
||||
class Client {
|
||||
constructor(appName, websocket) {
|
||||
this.appName = appName;
|
||||
this.websocket = websocket;
|
||||
}
|
||||
|
||||
connect() {
|
||||
this.websocket.onopen = () => {
|
||||
console.log('Connection successful');
|
||||
};
|
||||
this.websocket.onclose = () => {
|
||||
console.log('Connection lost');
|
||||
};
|
||||
this.websocket.onmessage = (message) => {
|
||||
// Code to handle incoming message
|
||||
};
|
||||
}
|
||||
|
||||
disconnect() {
|
||||
this.websocket.offopen();
|
||||
}
|
||||
}
|
||||
|
||||
// Contoh penggunaan
|
||||
const client = new Client('api', axios({ port: 123 }));
|
||||
client.connect();
|
||||
client.emit('message', { type: 'info', content: 'Hello, server! });
|
||||
client.emit('message', { type: 'warning', content: 'Goodbye!'});
|
||||
client.disconnect();
|
||||
```
|
||||
|
||||
```
|
||||
Dalam contoh di atas, kami menggunakan konstruktor yang mengambil nama aplikasi dan websocket sebagai parameter untuk memulakan dan menggunakan fungsi `connect` untuk menghubungi websocket dengan ID sesi yang diinginkan. Kemudian, kami menggunakan fungsi `onmessage` untuk mengendalikan respons websocket dan fungsi `onclose` untuk menutup websocket. Apabila kami menghantar permintaan ke websocket, kami menggunakan kaedah `onmessage` untuk memproses respons tersebut. Apabila kami membuka websocket, kami menggunakan kaedah `onclose` untuk menutup websocket dan menggunakan kaedah `disconnect` untuk membunuhnya.
|
||||
|
||||
Dengan menggunakan kod di atas dan menggunakannya pada projek React anda, anda boleh mencipta websocket yang boleh menghantar dan menerima pesanan untuk aplikasi anda.<|im_end|>
|
||||
```
|
||||
Reference in New Issue
Block a user