Skip to content

Commit 26049e3

Browse files
authored
Use extension/llm directly from LLaMARunner.
Differential Revision: D77414678 Pull Request resolved: #12050
1 parent a2b620a commit 26049e3

File tree

1 file changed

+26
-21
lines changed
  • examples/demo-apps/apple_ios/LLaMA/LLaMARunner/LLaMARunner/Exported

1 file changed

+26
-21
lines changed

examples/demo-apps/apple_ios/LLaMA/LLaMARunner/LLaMARunner/Exported/LLaMARunner.mm

Lines changed: 26 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -9,28 +9,33 @@
99
#import "LLaMARunner.h"
1010

1111
#import <ExecuTorch/ExecuTorchLog.h>
12-
#import <executorch/examples/models/llama/runner/runner.h>
12+
#import <executorch/extension/llm/runner/text_llm_runner.h>
13+
#import <executorch/examples/models/llama/tokenizer/llama_tiktoken.h>
1314

14-
using executorch::extension::llm::GenerationConfig;
15-
using executorch::extension::llm::TextLLMRunner;
16-
using executorch::runtime::Error;
15+
using namespace executorch::extension;
16+
using namespace executorch::runtime;
1717

1818
NSErrorDomain const LLaMARunnerErrorDomain = @"LLaMARunnerErrorDomain";
1919

2020
@interface LLaMARunner ()<ExecuTorchLogSink>
2121
@end
2222

2323
@implementation LLaMARunner {
24-
std::unique_ptr<TextLLMRunner> _runner;
24+
std::unique_ptr<llm::TextLLMRunner> _runner;
2525
}
2626

2727
- (instancetype)initWithModelPath:(NSString*)modelPath
2828
tokenizerPath:(NSString*)tokenizerPath {
2929
self = [super init];
3030
if (self) {
3131
[ExecuTorchLog.sharedLog addSink:self];
32-
_runner = example::create_llama_runner(
33-
modelPath.UTF8String, tokenizerPath.UTF8String);
32+
_runner = llm::create_text_llm_runner(
33+
modelPath.UTF8String,
34+
llm::load_tokenizer(
35+
tokenizerPath.UTF8String,
36+
example::get_special_tokens(example::Version::Default)
37+
)
38+
);
3439
}
3540
return self;
3641
}
@@ -60,20 +65,19 @@ - (BOOL)generate:(NSString*)prompt
6065
sequenceLength:(NSInteger)seq_len
6166
withTokenCallback:(nullable void (^)(NSString*))callback
6267
error:(NSError**)error {
63-
const GenerationConfig config{
64-
.seq_len = static_cast<int32_t>(seq_len)
65-
};
6668
const auto status = _runner->generate(
67-
prompt.UTF8String, config, [callback](const std::string& token) {
69+
prompt.UTF8String,
70+
llm::GenerationConfig{.seq_len = static_cast<int32_t>(seq_len)},
71+
[callback](const std::string& token) {
6872
callback(@(token.c_str()));
6973
});
7074
if (status != Error::Ok) {
7175
if (error) {
7276
*error = [NSError errorWithDomain:LLaMARunnerErrorDomain
7377
code:(NSInteger)status
7478
userInfo:nil];
75-
return NO;
7679
}
80+
return NO;
7781
}
7882
return YES;
7983
}
@@ -95,15 +99,16 @@ - (void)logWithLevel:(ExecuTorchLogLevel)level
9599
NSUInteger seconds = totalSeconds % 60;
96100
NSUInteger microseconds = (timestamp - totalSeconds) * 1000000;
97101
NSLog(
98-
@"%c %02lu:%02lu:%02lu.%06lu executorch:%s:%zu] %s",
99-
(char)level,
100-
hours,
101-
minutes,
102-
seconds,
103-
microseconds,
104-
filename.UTF8String,
105-
line,
106-
message.UTF8String);
102+
@"%c %02lu:%02lu:%02lu.%06lu executorch:%s:%zu] %s",
103+
(char)level,
104+
hours,
105+
minutes,
106+
seconds,
107+
microseconds,
108+
filename.UTF8String,
109+
line,
110+
message.UTF8String
111+
);
107112
}
108113

109114
@end

0 commit comments

Comments
 (0)