Model Card for EXAONE-3.5-7.8B-s1-Ko-no-sample-packing
Base Model
- beomi/EXAONE-3.5-7.8B-Instruct-Llamafied, Llamafied version of LGAI-EXAONE/EXAONE-3.5-7.8B-Instruct
Dataset
- werty1248/s1k-KoEnKo-formatted
- From simplescaling/s1K, only question and attempt translated, thinking part not translated.
- template: {thinking_trajectories}{attempt}
Training
4xH100 SXM, 1 hours - Total 4 GPU Hours with H100 SXM
Trained with Axolotl, but trying to follow simplescaling's training config as much as possible.
Difference
- optimizer: paged_adamw_32bit
- deepspeed: ./deepspeed_configs/zero3_bf16.json
- plugins:
- axolotl.integrations.liger.LigerPlugin
νΉμ΄μ¬ν: sample packing μλ μ epoch λΉ 12stepλ°μ λμ§ μμ, 첫 batchμ λν νμ΅μ΄ μ λλ‘ μ΄λ£¨μ΄μ§μ§ μμ.
Axolotl config
base_model: beomi/EXAONE-3.5-7.8B-Instruct-Llamafied
model_type: AutoModelForCausalLM
tokenizer_config: beomi/EXAONE-3.5-7.8B-Instruct-Llamafied
tokenizer_type: AutoTokenizer
load_in_8bit: false
load_in_4bit: false
strict: false
datasets:
- path: werty1248/s1k-KoEnKo-formatted
field_messages: conversations
type: chat_template
chat_template: chatml
dataset_prepared_path: ./data_preparation
output_dir: /workspace/data
hf_use_auth_token: true
sequence_len: 32768
sample_packing: true
pad_to_sequence_len: true
plugins:
- axolotl.integrations.liger.LigerPlugin
liger_rope: true
liger_rms_norm: true
liger_layer_norm: true
liger_glu_activation: true
liger_fused_linear_cross_entropy: true
wandb_project:
#wandb_entity:
#wandb_watch:
wandb_name:
#wandb_log_model:
gradient_accumulation_steps: 4
micro_batch_size: 1
num_epochs: 5
optimizer: paged_adamw_32bit
lr_scheduler: cosine
learning_rate: 1.0e-5
adam_beta1: 0.9
adam_beta2: 0.95
train_on_inputs: false
group_by_length: false
bf16: auto
fp16:
tf32: false
gradient_checkpointing: true
early_stopping_patience:
resume_from_checkpoint:
local_rank:
logging_steps: 1
xformers_attention:
flash_attention: true
warmup_ratio: 0.05
eval_table_size:
deepspeed: ./deepspeed_configs/zero3_bf16.json
Example
Q1: From ChuGyouk/GSM8k-Ko
input = tokenizer.apply_chat_template([ { "content": "Your role as an assistant involves thoroughly exploring questions through a systematic long thinking process before providing the final precise and accurate solutions. This requires engaging in a comprehensive cycle of analysis, summarizing, exploration, reassessment, reflection, backtracing, and iteration to develop well-considered thinking process. Please structure your response into two main sections: Thought and Solution. In the Thought section, detail your reasoning process using the specified format: <|begin_of_thought|> {thought with steps separated with '\\n\\n'} <|end_of_thought|> Each step should include detailed considerations such as analisying questions, summarizing relevant findings, brainstorming new ideas, verifying the accuracy of the current steps, refining any errors, and revisiting previous steps. In the Solution section, based on various attempts, explorations, and reflections from the Thought section, systematically present the final solution that you deem correct. The solution should remain a logical, accurate, concise expression style and detail necessary step needed to reach the conclusion, formatted as follows: <|begin_of_solution|> {final formatted, precise, and clear solution written in the same language as the question.} <|end_of_solution|> Now, try to solve the following question through the above guidelines", "role": "system" },
{ "content": "Janetμ μ€λ¦¬λ ν루μ 16κ°μ λ¬κ±μ λ³μ΅λλ€. κ·Έλ
λ λ§€μΌ μμΉ¨ 3κ°μ λ¬κ±μ λ¨Ήκ³ , μΉκ΅¬λ€μ μν΄ 4κ°μ λ¬κ±λ‘ λ¨Ένμ κ΅½μ΅λλ€. κ·Έλ
λ λ¨μ λ¬κ±μ λμ°λ¬Ό μμ₯μμ μ μ ν μ€λ¦¬μ κ°λΉ 2λ¬λ¬μ ν맀ν©λλ€. κ·Έλ
λ λμ°λ¬Ό μμ₯μμ λ§€μΌ μΌλ§λ λ§μ λμ λ²κΉμ?", "role": "user" },], add_generation_prompt=True, return_tensors='pt')
res = model.generate(input.to('cuda'), max_length = 2048, tokenizer=tokenizer)
tokenizer.decode(res[0])
Output(eos ν ν° μμ)
[|assistant|]λ€μμ λ¬Έμ λ₯Ό ν΄κ²°νλ λ°©λ²μ
λλ€.
* **λ§€μΌ νμ΄λλ λ¬κ±μ μ:** μ€λ¦¬λ ν루μ 16κ°μ λ¬κ±μ λ³μ΅λλ€.
* **λ¬κ± μ¬μ©λ:**
* Janetμ μμΉ¨μ 3κ°μ λ¬κ±μ λ¨Ήμ΅λλ€.
* κ·Έλ
λ μΉκ΅¬λ€μ μν΄ 4κ°μ λ¬κ±μΌλ‘ λ¨Ένμ κ΅½μ΅λλ€.
* **μ΄ λ¬κ± μ¬μ©λ:** 3 + 4 = 7κ°
* **ν맀μ©μΌλ‘ λ¨μ λ¬κ± μ:**
* **λ¨μ λ¬κ±:** 16 (νμ΄λλ λ¬κ±) - 7 (μ¬μ©ν λ¬κ±) = 9κ°
* **λ§€μΌ μμ΅:**
* κ·Έλ
λ κ° μ€λ¦¬μμ 2λ¬λ¬μ ν맀ν©λλ€.
* **λ§€μΌ μμ΅:** 9 (ν맀μ©μΌλ‘ λ¨μ λ¬κ±) x 2 (κ° μ€λ¦¬μμ κ°κ²©) = 18λ¬λ¬
**λ΅:** Janetμ λμ°λ¬Ό μμ₯μμ λ§€μΌ 18λ¬λ¬λ₯Ό λ²κ² λ©λλ€.
**μμ½:**
* νμ΄λλ λ¬κ±: 16κ°
* μ¬μ©νλ λ¬κ±: 3 + 4 = 7κ°
* λ¨μ λ¬κ±: 16 - 7 = 9κ°
* κ° λ¨μ λ¬κ±μ κ°κ²©: $2
* λ§€μΌ μμ΅: 9 x 2 = $18
Final Answer: The final answer is $\boxed{18}$
Q2: From KSM, HAERAE-HUB/HRM8K
input = tokenizer.apply_chat_template([ { "content": "Your role as an assistant involves thoroughly exploring questions through a systematic long thinking process before providing the final precise and accurate solutions. This requires engaging in a comprehensive cycle of analysis, summarizing, exploration, reassessment, reflection, backtracing, and iteration to develop well-considered thinking process. Please structure your response into two main sections: Thought and Solution. In the Thought section, detail your reasoning process using the specified format: <|begin_of_thought|> {thought with steps separated with '\\n\\n'} <|end_of_thought|> Each step should include detailed considerations such as analisying questions, summarizing relevant findings, brainstorming new ideas, verifying the accuracy of the current steps, refining any errors, and revisiting previous steps. In the Solution section, based on various attempts, explorations, and reflections from the Thought section, systematically present the final solution that you deem correct. The solution should remain a logical, accurate, concise expression style and detail necessary step needed to reach the conclusion, formatted as follows: <|begin_of_solution|> {final formatted, precise, and clear solution written in the same language as the question.} <|end_of_solution|> Now, try to solve the following question through the above guidelines", "role": "system" },
{ "content": "μμ μ€μ μ λνμ¬ ν¨μ λ₯Ό \\[ f(t) = \\int_{0}^{\\sqrt{t}} \\int_{y}^{\\sqrt{t}} \\frac{1}{2 + \\sin(x^2)} \\, dx \\, dy \\] λ‘ μ μν λ, μ κ°μ ꡬνμμ€.", "role": "user" },], add_generation_prompt=True, return_tensors='pt')
res = model.generate(input.to('cuda'), max_length = 8192, stop_strings = ['<|end_of_solution|>'], tokenizer=tokenizer)
tokenizer.decode(res[0])
Output(μ€λ΅, think μμ, eos ν ν° μμ)
[|assistant|]λ¨Όμ , μ£Όμ΄μ§ ν¨μ \( f(t) \)λ₯Ό λ€μκ³Ό κ°μ΄ λνλΌ μ μμ΅λλ€:
\[ f(t) = \iint_{D(t)} \frac{1}{2 + \sin(x^2)} \, dA \]
μ¬κΈ°μ \( D(t) = [0, \sqrt{t}] \times [\sqrt{t}, \sqrt{t}] \)μ
λλ€.
ν¨μ \( f(t) \)λ λ λ³μ ν¨μμ μ λΆμΌλ‘ ννλ μ μμΌλ―λ‘, λΌμ΄λ² λμΈ κ·μΉμ μ¬μ©νμ¬ λν¨μλ₯Ό ꡬν μ μμ΅λλ€:
\[ f'(t) = \frac{d}{dt} \left( \iint_{D(t)} \frac{1}{2 + \sin(x^2)} \, dA \right) = \iint_{D'(t)} \frac{\partial}{\partial t} \left( \frac{1}{2 + \sin(x^2)} \right) \, dA \]
μ¬κΈ°μ \( D'(t) \)λ μμ \( D(t) \)μ κ²½κ³κ° \( t \)μ λν΄ λ―ΈλΆ κ°λ₯νκ² λ³ν λ, \( t \)μ μμ‘΄νλ λΆλΆμ
λλ€.
μμ \( D(t) \)μ κ²½κ³λ λ€μκ³Ό κ°μ΅λλ€:
\( t \ge 0 \)μ λν΄, \( 0 \le y \le \sqrt{t} \)μ΄κ³ \( y \le x \le \sqrt{t} \)μ
λλ€.
\( t \)μ λν λν¨μλ₯Ό ꡬνκΈ° μν΄, \( x \)μ \( y \)μ λν μ 보λ₯Ό μ¬μ©ν©λλ€.
\( t \)μ λν \( y \)μ λ²μλ \( y = \sqrt{t} \)μ
λλ€.
\( t \)μ λν \( x \)μ λ²μλ \( x = \sqrt{t} \)μ
λλ€.
\( D(t) \)μ κ²½κ³ \( \sqrt{t} = \sqrt{t} \)μ \( x = y \)λ‘ μ£Όμ΄μ§λλ€.
\( t \)μ λν \( x=y \)μ λ³νλ \( x=y \)λ₯Ό λ°λΌ λ°μν©λλ€.
λν, κ²½κ³ \( y = \sqrt{t} \)λ₯Ό λ°λΌ \( x \)κ° μ¦κ°ν©λλ€.
\( f'(t) \)λ₯Ό ꡬνκΈ° μν΄, μ°λ¦¬λ λ€μκ³Ό κ°μ μμμμ μ λΆν΄μΌ ν©λλ€:
\( D'(t) = [0, \sqrt{t}] \times [\sqrt{t}, \sqrt{t}] \)μμ \( t \)μ μμ‘΄νλ λΆλΆμ
λλ€.
\( y = \sqrt{t} \)μ \( x = y \)λ‘ κ²½κ³κ° νμ±λ©λλ€.
\( t \)μ λν λν¨μλ₯Ό κ³μ°ν΄ λ΄
μλ€:
\( \frac{\partial}{\partial t} \left( \frac{1}{2 + \sin(x^2)} \right) = 0 \)μ
λλ€. μ΄λ \( \frac{1}{2 + \sin(x^2)} \)κ° \( t \)μ 무κ΄νκΈ° λλ¬Έμ
λλ€.
λ°λΌμ, \( f'(t) = \iint_{D'(t)} 0 \, dA = 0 \)μ
λλ€.
μ΄κ²μ λΆλΆ μ λΆμ΄ νμ 0μ΄λΌλ μλ―ΈμΌκΉμ? μλλ©΄ λν¨μ κ³μ°μ λ¬Έμ κ° μλ κ²μΌκΉμ?
μ°λ¦¬λ λ¨Όμ \( f(t) \)λ₯Ό μ§μ λ―ΈλΆν μ μλμ§ μ΄ν΄λ΄μΌ ν©λλ€.
\( f(t) = \int_{0}^{\sqrt{t}} \int_{y}^{\sqrt{t}} \frac{1}{2 + \sin(x^2)} \, dx \, dy \)
μ΄κ²μ Leibniz μ λΆ κ·μΉμ μ¬μ©νμ¬ λ―ΈλΆνλ©΄:
\( f'(t) = \frac{d}{dt} \left( \int_{0}}^{\sqrt{t}} \frac{1}{2 + \sin(x^2)} \, dx \right) \times \text{μμ} + \int_{0}^{\int_{y}^{\sqrt{t}} \frac{1}{2 + \sin(x^2)} \, dx \, dy} \frac{\partial}{\partial t} \left( \frac{1}{2 + \sin(x^2)} \right) \, dy \)
μ΄κ²μ μ½κ° 볡μ‘νκ² λ€λ¦΄ μ μμ΅λλ€.
λ λ² μ λΆνλ λ λ€λ₯Έ λ°©λ²μ κ³ λ €ν΄ λ³΄κ² μ΅λλ€.
\( f(t) = \int_{0}^{\sqrt{t}} \left( \int_{y}^{\sqrt{t}} \frac{1}{2 + \sin(x^2)} \, dx \right) dy \)
Leibniz κ·μΉμ μν΄:
\( f'(t) = \frac{d}{dt} \left( \int_{y}^{\sqrt{t}} \frac{1}{2 + \sin(x^2)} \, dx \right)_{y=\sqrt{t}} + \int_{0}^{\sqrt{t}} \frac{\partial}{\partial t} \left( \int_{y}^{\sqrt{t}} \frac{1}{2 + \sin(x^2)} \, dx \right) dy \)
첫 λ²μ§Έ νμ λ€μκ³Ό κ°μ΅λλ€:
\( \frac{d}{dt} \left( \int_{y}^{\sqrt{t}} \frac{1}{2 + \sin(x^2)} \, dx \right) = \frac{1}{2 + \sin((\sqrt{t})^2)} \cdot \frac{d}{dt} (\sqrt{t}) = \frac{1}{2 + \sin(t)} \cdot \frac{1}{2\sqrt{t}} \)
μ΄ νμ \( y = \sqrt{t} \)μμ νκ°λ©λλ€.
λ λ²μ§Έ νμ λ€μκ³Ό κ°μ΅λλ€:
\( \int_{0}^{\sqrt{t}} \frac{\partial}{\partial t} \left( \int_{y}^{\sqrt{t}} \frac{1}{2 + \sin(x^2)} \, dx \right) dy \)
\( \frac{\partial}{\partial t} \left( \int_{y}^{\sqrt{t}} \frac{1}{2 + \sin(x^2)} \, dx \right) = -\frac{1}{2 + \sin((\sqrt{t})^2)} \cdot \frac{1}{2\sqrt{t}} = -\frac{1}{2 + \sin(t)} \cdot \frac{1}{2\sqrt{t}} \)
μ΄κ²μ μ λΆν©λλ€:
\( -\int_{0}^{\sqrt{t}} \frac{1}{2 + \sin(x^2)} \cdot \frac{1}{2\sqrt{t}} dx = -\frac{1}{2\sqrt{t}} \int_{0}^{\sqrt{t}} \frac{1}{2 + \sin(x^2)} dx \)
\( f'(t) \)μ λν μ 체 ννμ λ€μκ³Ό κ°μ΅λλ€:
\( f'(t) = \frac{1}{2\sqrt{t}(2 + \sin(t))} - \frac{1}{2\sqrt{t}} \int_{0}^{\sqrt{t}} \frac{1}{2 + \sin(x^2)} dx \)
\( f'\left(\frac{\pi}{2}\right) \)λ₯Ό ꡬν΄μΌ ν©λλ€.
\( t = \frac{\pi}{2} \)λ₯Ό λμ
νλ©΄:
\( f'\left(\frac{\pi}{2}\right) = \frac{1}{2\sqrt{\pi/2}(2 + \sin(\pi/2))} - \frac{1}{2\sqrt{\pi/2}} \int_{0}^{\sqrt{\pi/2}} \frac{1}{2 + \sin(x^2)} dx \)
\( f'\left(\frac{\pi}{2}\right) = \frac{1}{2 \cdot \frac{\sqrt{2\pi}}{2} (2 + 1)} - \frac{1}{\sqrt{2\pi}} \int_{0}^{\sqrt{\pi/2}} \frac{1}{2 + \sin(x^2)} dx \)
\( f'\left(\frac{\pi}{2}\right) = \frac{1}{\sqrt{2\pi} \cdot 3} - \frac{1}{\sqrt{2\pi}} \int_{0}^{\sqrt{\pi/2}} \frac{1}{2 + \sin(x^2)} dx \)
\( f'\left(\frac{\pi}{2}\right) = \frac{1}{3\sqrt{2\pi}} - \frac{1}{\sqrt{2\pi}} \int_{0}^{\sqrt{\pi/2}} \frac{1}{2 + \sin(x^2)} dx \)
λλ, \( f'(t) = 0 \)μ΄λΌκ³ μκ°ν΄ λ΄
μλ€. μ΄λ κ²½κ³ \( D'(t) \)κ° μ€μ λ‘ μ‘΄μ¬νκ³ μ λΆμ΄ 0μ΄ μλμ μλ―Ένμ§λ μμ΅λλ€.
\( D(t) \)μ κ²½κ³λ₯Ό \( \partial D(t) \)λΌκ³ ν©μλ€.
\( f(t) = \iint_{D(t)} g(x, y) \, dA \)λΌκ³ ν©μλ€. μ¬κΈ°μ \( g(x, y) = \frac{1}{2 + \sin(x^2)} \).
Leibniz κ·μΉμ μν΄:
\( f'(t) = \iint_{\partial D(t)} g(x, y) \mathbf{n} \cdot \mathbf{k} \, dS \) + \( \iint_{D(t)} \frac{\partial g}{\partial t} \, dA \)
μ¬κΈ°μ \( \mathbf{n} \)μ μΈλΆ λ²μ 벑ν°μ΄κ³ , \( \mathbf{k} \)λ \( t \) λ°©ν₯μ λ¨μ 벑ν°μ
λλ€.
\( \mathbf{n} \cdot \mathbf{k} \)λ κ²½κ³μμ \( t \)μ λν λ¨μ λ²μ μ κ³μμ
λλ€.
μμ \( D(t) \)μ κ²½κ³λ \( y = \sqrt{t} \)μ \( x = y \)λ‘ κ΅¬μ±λ©λλ€.
\( t \)μ λν λ³νλ \( y = \sqrt{t} \)μμ λ°μνκ³ , μ΄λ \( x=y \)λ₯Ό λ°λΌ μΌμ΄λ©λλ€.
κ²½κ³ \( y = \sqrt{t} \)λ₯Ό κ³ λ €ν΄ λ΄
μλ€. μ¬κΈ°μ μΈλΆ λ²μ 벑ν°λ \( \mathbf{n} \)μ \( \frac{\partial(x, y)}{\partial t} \)μ λ¨μ λ²μ μ
λλ€, μ¦ \( \mathbf{n} = \frac{(1, 0)}{\sqrt{1 + 0^2}} = (1, 0) \)μ
λλ€.
\( \mathbf{n} \cdot \mathbf{k} = 0 \)μ
λλ€.
κ²½κ³ \( x = y \)λ₯Ό κ³ λ €ν΄ λ΄
μλ€. μ¬κΈ°μ \( t \)μ λν \( x \)μ λ³νκ° λ°μν©λλ€.
μΈλΆ λ²μ 벑ν°λ \( \frac{\partial(x, y)}{\partial t} \)μ
λλ€.
μ΄ κ²½κ³μμ \( \mathbf{n} \cdot \mathbf{k} \)λ \( \frac{\partial x}{\partial t} \)μ
λλ€.
\( x = y \)μ΄λ―λ‘, \( \frac{\partial x}{\partial t} = \frac{\partial y}{\partial t} = \frac{1}{2\sqrt{t}} \)μ
λλ€.
\( f'(t) \)μ λν ννμ λ€μκ³Ό κ°μ΅λλ€:
\( f'(t) = \iint_{\partial D(t)} g(x, y) \cdot 0 \, dS + \iint_{D(t)} \frac{\partial g}{\partial t} \, dA \)
\( f'(t) = \iint_{D(t)} \frac{\partial}{\partial t} \left( \frac{1}{2 + \sin(x^2)} \right) \, dA \)
μ΄λ μ΄μ μ μ»μ κ²°κ³Όμ μΌμΉν©λλ€. \( \frac{\partial}{\partial t} \left( \frac{1}{2 + \sin(x^2)} \right) = 0 \)μ΄κΈ° λλ¬Έμ
λλ€.
Final Answer: The final answer is $\boxed{0}$
Q3: General Knowledge
input = tokenizer.apply_chat_template([ { "content": "Your role as an assistant involves thoroughly exploring questions through a systematic long thinking process before providing the final precise and accurate solutions. This requires engaging in a comprehensive cycle of analysis, summarizing, exploration, reassessment, reflection, backtracing, and iteration to develop well-considered thinking process. Please structure your response into two main sections: Thought and Solution. In the Thought section, detail your reasoning process using the specified format: <|begin_of_thought|> {thought with steps separated with '\\n\\n'} <|end_of_thought|> Each step should include detailed considerations such as analisying questions, summarizing relevant findings, brainstorming new ideas, verifying the accuracy of the current steps, refining any errors, and revisiting previous steps. In the Solution section, based on various attempts, explorations, and reflections from the Thought section, systematically present the final solution that you deem correct. The solution should remain a logical, accurate, concise expression style and detail necessary step needed to reach the conclusion, formatted as follows: <|begin_of_solution|> {final formatted, precise, and clear solution written in the same language as the question.} <|end_of_solution|> Now, try to solve the following question through the above guidelines", "role": "system" },
{ "content": "μΈκ³μμ μΈ λ²μ§Έλ‘ λμ μ°μ?", "role": "user" },], add_generation_prompt=True, return_tensors='pt')
res = model.generate(input.to('cuda'), max_length = 2048, temperature = 0.5, stop_strings = ['<|end_of_solution|>'], tokenizer=tokenizer)
tokenizer.decode(res[0])
- Normal temperature: hallucination (unstable answer)
- Low temperature: repitition
Output(μ€λ΅, think μμ)
[|assistant|]μΈκ³μμ μΈ λ²μ§Έλ‘ λμ μ°μ **K2(μ€κ΅λͺ
μΉ΄λΌμ½λ K2)**μ
λλ€.
* **λμ΄:** 8,611λ―Έν° (28,251νΌνΈ)
* **μμΉ:** νν€μ€νκ³Ό μ€κ΅(μ μ₯) κ΅κ²½, μΉ΄λΌμ½λ μ°λ§₯
* **λ±λ° μμ¬:** 1954λ
μ²μ λ±λ° μ±κ³΅ (μλλΌ λ±λ°λ)
* **νΉμ§:** K2λ κ°μ₯ λμ μ°μΈ μλ² λ μ€νΈμ λ€ λ²μ§Έλ‘ λμ μ°μΈ μΉΈμ²Έΰ€ungaλ³΄λ€ λ μ΄λ ΅κ³ μνν λ±λ°μΌλ‘ μλ €μ Έ μμ΅λλ€. "μΈμμμ κ°μ₯ μνν μ°"μ΄λΌλ λ³λͺ
μ κ°μ§κ³ μμ΅λλ€.
**μ°Έκ³ :** μ°μ λμ΄μ λν λ
Όμμ μ’
μ’
μ‘΄μ¬νλ©°, νΉν λ νλ©΄μ λ³λμ±μΌλ‘ μΈν΄ λμ± κ·Έλ μ΅λλ€. μμ λμ΄λ λμ΄λ μΌλ°μ μΌλ‘ μΈμ©λλ κ°μ
λλ€.
μΈκ³μμ κ°μ₯ λμ μ°μ μλ² λ μ€νΈ(8,848λ―Έν° λλ 29,031νΌνΈ)μ΄κ³ , λ λ²μ§Έλ‘ λμ μ°μ μΉΈμ²Έμμ
(8,586λ―Έν° λλ 28,169νΌνΈ)μ
λλ€.
- Downloads last month
- 16
Inference Providers
NEW
This model is not currently available via any of the supported Inference Providers.
Model tree for werty1248/EXAONE-3.5-7.8B-s1-Ko-no-sample-packing
Base model
LGAI-EXAONE/EXAONE-3.5-7.8B-Instruct